erosolar-cli 2.0.5 → 2.1.2
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/agents/erosolar-security.rules.json +147 -0
- package/dist/capabilities/enhancedAnalysisCapability.d.ts +13 -0
- package/dist/capabilities/enhancedAnalysisCapability.d.ts.map +1 -0
- package/dist/capabilities/enhancedAnalysisCapability.js +20 -0
- package/dist/capabilities/enhancedAnalysisCapability.js.map +1 -0
- package/dist/capabilities/offsecOpsCapability.d.ts +6 -0
- package/dist/capabilities/offsecOpsCapability.d.ts.map +1 -0
- package/dist/capabilities/offsecOpsCapability.js +20 -0
- package/dist/capabilities/offsecOpsCapability.js.map +1 -0
- package/dist/capabilities/offsecSearchCapability.d.ts +12 -0
- package/dist/capabilities/offsecSearchCapability.d.ts.map +1 -0
- package/dist/capabilities/offsecSearchCapability.js +27 -0
- package/dist/capabilities/offsecSearchCapability.js.map +1 -0
- package/dist/capabilities/taoCapability.d.ts +6 -0
- package/dist/capabilities/taoCapability.d.ts.map +1 -0
- package/dist/capabilities/taoCapability.js +20 -0
- package/dist/capabilities/taoCapability.js.map +1 -0
- package/dist/capabilities/toolRegistry.d.ts +2 -1
- package/dist/capabilities/toolRegistry.d.ts.map +1 -1
- package/dist/capabilities/toolRegistry.js +6 -1
- package/dist/capabilities/toolRegistry.js.map +1 -1
- package/dist/contracts/agent-schemas.json +18 -19
- package/dist/contracts/tools.schema.json +38 -8
- package/dist/core/agent.js +4 -4
- package/dist/core/agent.js.map +1 -1
- package/dist/core/alphaZeroEngine.js +1 -1
- package/dist/core/alphaZeroEngine.js.map +1 -1
- package/dist/core/alphaZeroModular.js +2 -2
- package/dist/core/alphaZeroModular.js.map +1 -1
- package/dist/core/contextManager.d.ts +8 -2
- package/dist/core/contextManager.d.ts.map +1 -1
- package/dist/core/contextManager.js +15 -2
- package/dist/core/contextManager.js.map +1 -1
- package/dist/core/costTracker.js +1 -1
- package/dist/core/costTracker.js.map +1 -1
- package/dist/core/deepBugAnalyzer.d.ts +128 -0
- package/dist/core/deepBugAnalyzer.d.ts.map +1 -0
- package/dist/core/deepBugAnalyzer.js +406 -0
- package/dist/core/deepBugAnalyzer.js.map +1 -0
- package/dist/core/hypothesisEngine.d.ts +113 -0
- package/dist/core/hypothesisEngine.d.ts.map +1 -0
- package/dist/core/hypothesisEngine.js +264 -0
- package/dist/core/hypothesisEngine.js.map +1 -0
- package/dist/core/intelligentSummarizer.d.ts +79 -0
- package/dist/core/intelligentSummarizer.d.ts.map +1 -0
- package/dist/core/intelligentSummarizer.js +273 -0
- package/dist/core/intelligentSummarizer.js.map +1 -0
- package/dist/core/memorySystem.js +2 -2
- package/dist/core/memorySystem.js.map +1 -1
- package/dist/core/offsecAlphaZero.d.ts +3 -0
- package/dist/core/offsecAlphaZero.d.ts.map +1 -1
- package/dist/core/offsecAlphaZero.js +166 -5
- package/dist/core/offsecAlphaZero.js.map +1 -1
- package/dist/core/productTestHarness.d.ts +113 -0
- package/dist/core/productTestHarness.d.ts.map +1 -0
- package/dist/core/productTestHarness.js +345 -0
- package/dist/core/productTestHarness.js.map +1 -0
- package/dist/core/securityAssessment.js +1 -1
- package/dist/core/securityAssessment.js.map +1 -1
- package/dist/core/toolPatternAnalyzer.d.ts +87 -0
- package/dist/core/toolPatternAnalyzer.d.ts.map +1 -0
- package/dist/core/toolPatternAnalyzer.js +272 -0
- package/dist/core/toolPatternAnalyzer.js.map +1 -0
- package/dist/core/updateChecker.js +3 -3
- package/dist/core/updateChecker.js.map +1 -1
- package/dist/mcp/sseClient.js +1 -1
- package/dist/mcp/sseClient.js.map +1 -1
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts +3 -0
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js +14 -0
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js.map +1 -0
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts +3 -0
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts.map +1 -0
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js +12 -0
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js.map +1 -0
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts +3 -0
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js +12 -0
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +12 -0
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/plugins/tools/offsec/offsecOpsPlugin.d.ts +3 -0
- package/dist/plugins/tools/offsec/offsecOpsPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/offsec/offsecOpsPlugin.js +10 -0
- package/dist/plugins/tools/offsec/offsecOpsPlugin.js.map +1 -0
- package/dist/plugins/tools/offsec/offsecSearchPlugin.d.ts +3 -0
- package/dist/plugins/tools/offsec/offsecSearchPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/offsec/offsecSearchPlugin.js +12 -0
- package/dist/plugins/tools/offsec/offsecSearchPlugin.js.map +1 -0
- package/dist/plugins/tools/tao/taoPlugin.d.ts +3 -0
- package/dist/plugins/tools/tao/taoPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/tao/taoPlugin.js +10 -0
- package/dist/plugins/tools/tao/taoPlugin.js.map +1 -0
- package/dist/shell/composableMessage.js +2 -2
- package/dist/shell/composableMessage.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +6 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +50 -15
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/shellApp.js +1 -1
- package/dist/shell/shellApp.js.map +1 -1
- package/dist/shell/systemPrompt.d.ts.map +1 -1
- package/dist/shell/systemPrompt.js +3 -0
- package/dist/shell/systemPrompt.js.map +1 -1
- package/dist/tools/buildTools.js +1 -1
- package/dist/tools/buildTools.js.map +1 -1
- package/dist/tools/diffUtils.js +6 -6
- package/dist/tools/diffUtils.js.map +1 -1
- package/dist/tools/editTools.js +1 -1
- package/dist/tools/editTools.js.map +1 -1
- package/dist/tools/enhancedAnalysisTools.d.ts +9 -0
- package/dist/tools/enhancedAnalysisTools.d.ts.map +1 -0
- package/dist/tools/enhancedAnalysisTools.js +382 -0
- package/dist/tools/enhancedAnalysisTools.js.map +1 -0
- package/dist/tools/enhancedCodeIntelligenceTools.d.ts +1 -21
- package/dist/tools/enhancedCodeIntelligenceTools.d.ts.map +1 -1
- package/dist/tools/enhancedCodeIntelligenceTools.js +378 -256
- package/dist/tools/enhancedCodeIntelligenceTools.js.map +1 -1
- package/dist/tools/enhancedDevWorkflowTools.d.ts +2 -10
- package/dist/tools/enhancedDevWorkflowTools.d.ts.map +1 -1
- package/dist/tools/enhancedDevWorkflowTools.js +293 -165
- package/dist/tools/enhancedDevWorkflowTools.js.map +1 -1
- package/dist/tools/interactionTools.d.ts.map +1 -1
- package/dist/tools/interactionTools.js +55 -0
- package/dist/tools/interactionTools.js.map +1 -1
- package/dist/tools/learnTools.js +1 -1
- package/dist/tools/learnTools.js.map +1 -1
- package/dist/tools/offsec/offsecOperationsTools.d.ts +3 -0
- package/dist/tools/offsec/offsecOperationsTools.d.ts.map +1 -0
- package/dist/tools/offsec/offsecOperationsTools.js +333 -0
- package/dist/tools/offsec/offsecOperationsTools.js.map +1 -0
- package/dist/tools/offsecSearchTools.d.ts +3 -0
- package/dist/tools/offsecSearchTools.d.ts.map +1 -0
- package/dist/tools/offsecSearchTools.js +330 -0
- package/dist/tools/offsecSearchTools.js.map +1 -0
- package/dist/tools/taoOperations.d.ts +7 -0
- package/dist/tools/taoOperations.d.ts.map +1 -0
- package/dist/tools/taoOperations.js +744 -0
- package/dist/tools/taoOperations.js.map +1 -0
- package/dist/ui/ClaudeCodeRenderer.js +1 -1
- package/dist/ui/ClaudeCodeRenderer.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +10 -6
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +69 -67
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +2 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +64 -13
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/ui/globalWriteLock.d.ts.map +1 -1
- package/dist/ui/globalWriteLock.js +6 -0
- package/dist/ui/globalWriteLock.js.map +1 -1
- package/dist/ui/inPlaceUpdater.js +1 -1
- package/dist/ui/inPlaceUpdater.js.map +1 -1
- package/dist/ui/outputMode.d.ts.map +1 -1
- package/dist/ui/outputMode.js +1 -2
- package/dist/ui/outputMode.js.map +1 -1
- package/dist/ui/richText.js +4 -4
- package/dist/ui/richText.js.map +1 -1
- package/dist/ui/streamingFormatter.d.ts +11 -0
- package/dist/ui/streamingFormatter.d.ts.map +1 -1
- package/dist/ui/streamingFormatter.js +27 -1
- package/dist/ui/streamingFormatter.js.map +1 -1
- package/dist/ui/toolDisplay.js +1 -1
- package/dist/ui/toolDisplay.js.map +1 -1
- package/package.json +4 -13
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
6
|
+
const execFileAsync = promisify(execFile);
|
|
7
|
+
const OFFSEC_BASE_DIR = join(homedir(), '.erosolar', 'offsec');
|
|
8
|
+
const OFFSEC_RESULTS_DIR = join(OFFSEC_BASE_DIR, 'results');
|
|
9
|
+
const DEFAULT_TIMEOUT_MS = 120_000;
|
|
10
|
+
export function createOffsecOperationsTools() {
|
|
11
|
+
return [
|
|
12
|
+
{
|
|
13
|
+
name: 'offsec_nmap_scan',
|
|
14
|
+
description: 'Run a constrained nmap scan (quick/full/top ports). Saves output to ~/.erosolar/offsec/results.',
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
target: { type: 'string', description: 'Target host or CIDR (e.g., 10.0.0.0/24)', minLength: 1 },
|
|
19
|
+
scan_type: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
enum: ['quick', 'full', 'top100', 'top1000'],
|
|
22
|
+
description: 'Scan profile (default: quick).',
|
|
23
|
+
},
|
|
24
|
+
timing: { type: 'string', enum: ['T2', 'T3', 'T4'], description: 'Timing template (default: T3).' },
|
|
25
|
+
},
|
|
26
|
+
required: ['target'],
|
|
27
|
+
additionalProperties: false,
|
|
28
|
+
},
|
|
29
|
+
handler: async (args) => {
|
|
30
|
+
const target = typeof args['target'] === 'string' ? args['target'].trim() : '';
|
|
31
|
+
if (!target)
|
|
32
|
+
return 'Error: target is required.';
|
|
33
|
+
const scanType = args['scan_type'] ?? 'quick';
|
|
34
|
+
const timing = args['timing'] ?? 'T3';
|
|
35
|
+
if (!(await binaryAvailable('nmap'))) {
|
|
36
|
+
return 'Error: nmap is not installed or not on PATH.';
|
|
37
|
+
}
|
|
38
|
+
const cmd = buildNmapArgs(target, scanType, timing);
|
|
39
|
+
return runAndRecord('nmap', cmd, DEFAULT_TIMEOUT_MS);
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'offsec_dirbust',
|
|
44
|
+
description: 'Run directory busting with dirsearch (preferred) or ffuf fallback. Saves output to ~/.erosolar/offsec/results.',
|
|
45
|
+
parameters: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
url: { type: 'string', description: 'Base URL to enumerate', minLength: 1 },
|
|
49
|
+
wordlist: { type: 'string', description: 'Path to wordlist (default: dirsearch default wordlist)' },
|
|
50
|
+
extensions: { type: 'string', description: 'Comma-separated extensions (e.g., php,asp,txt)' },
|
|
51
|
+
threads: { type: 'number', description: 'Number of threads (default: 10)' },
|
|
52
|
+
},
|
|
53
|
+
required: ['url'],
|
|
54
|
+
additionalProperties: false,
|
|
55
|
+
},
|
|
56
|
+
handler: async (args) => {
|
|
57
|
+
const url = typeof args['url'] === 'string' ? args['url'].trim() : '';
|
|
58
|
+
if (!url)
|
|
59
|
+
return 'Error: url is required.';
|
|
60
|
+
const wordlist = typeof args['wordlist'] === 'string' ? args['wordlist'].trim() : '';
|
|
61
|
+
const extensions = typeof args['extensions'] === 'string' ? args['extensions'].trim() : '';
|
|
62
|
+
const threads = Number.isFinite(args['threads']) ? Number(args['threads']) : 10;
|
|
63
|
+
if (await binaryAvailable('dirsearch')) {
|
|
64
|
+
const cmd = buildDirsearchArgs(url, wordlist, extensions, threads);
|
|
65
|
+
return runAndRecord('dirsearch', cmd, DEFAULT_TIMEOUT_MS);
|
|
66
|
+
}
|
|
67
|
+
if (await binaryAvailable('ffuf')) {
|
|
68
|
+
const cmd = buildFfufArgs(url, wordlist);
|
|
69
|
+
return runAndRecord('ffuf', cmd, DEFAULT_TIMEOUT_MS);
|
|
70
|
+
}
|
|
71
|
+
return 'Error: neither dirsearch nor ffuf is available on PATH.';
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'offsec_sqlinjection_test',
|
|
76
|
+
description: 'Run sqlmap with safe defaults (--batch, low risk/level). Saves output to ~/.erosolar/offsec/results.',
|
|
77
|
+
parameters: {
|
|
78
|
+
type: 'object',
|
|
79
|
+
properties: {
|
|
80
|
+
url: { type: 'string', description: 'Target URL with parameter (e.g., https://x/?id=1)', minLength: 1 },
|
|
81
|
+
level: { type: 'number', description: 'Sqlmap level (1-5, default 2)' },
|
|
82
|
+
risk: { type: 'number', description: 'Sqlmap risk (1-3, default 1)' },
|
|
83
|
+
crawl: { type: 'number', description: 'Crawl depth (default 1)' },
|
|
84
|
+
},
|
|
85
|
+
required: ['url'],
|
|
86
|
+
additionalProperties: false,
|
|
87
|
+
},
|
|
88
|
+
handler: async (args) => {
|
|
89
|
+
const url = typeof args['url'] === 'string' ? args['url'].trim() : '';
|
|
90
|
+
if (!url)
|
|
91
|
+
return 'Error: url is required.';
|
|
92
|
+
if (!(await binaryAvailable('sqlmap'))) {
|
|
93
|
+
return 'Error: sqlmap is not installed or not on PATH.';
|
|
94
|
+
}
|
|
95
|
+
const level = clampNumber(args['level'], 2, 1, 5);
|
|
96
|
+
const risk = clampNumber(args['risk'], 1, 1, 3);
|
|
97
|
+
const crawl = clampNumber(args['crawl'], 1, 0, 3);
|
|
98
|
+
const cmd = ['-u', url, '--batch', `--level=${level}`, `--risk=${risk}`, '--smart'];
|
|
99
|
+
if (crawl > 0)
|
|
100
|
+
cmd.push(`--crawl=${crawl}`);
|
|
101
|
+
return runAndRecord('sqlmap', cmd, DEFAULT_TIMEOUT_MS);
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'offsec_password_crack',
|
|
106
|
+
description: 'Attempt password cracking with john (preferred) or hashcat fallback using a provided hash and wordlist. Saves output to ~/.erosolar/offsec/results.',
|
|
107
|
+
parameters: {
|
|
108
|
+
type: 'object',
|
|
109
|
+
properties: {
|
|
110
|
+
hash: { type: 'string', description: 'Hash string to crack', minLength: 6 },
|
|
111
|
+
wordlist: { type: 'string', description: 'Path to wordlist (default: /usr/share/wordlists/rockyou.txt if present)' },
|
|
112
|
+
format: { type: 'string', description: 'Optional john --format value (auto-detected if omitted)' },
|
|
113
|
+
},
|
|
114
|
+
required: ['hash'],
|
|
115
|
+
additionalProperties: false,
|
|
116
|
+
},
|
|
117
|
+
handler: async (args) => {
|
|
118
|
+
const hash = typeof args['hash'] === 'string' ? args['hash'].trim() : '';
|
|
119
|
+
if (!hash)
|
|
120
|
+
return 'Error: hash is required.';
|
|
121
|
+
const wordlist = resolveWordlist(args['wordlist']);
|
|
122
|
+
if (!wordlist)
|
|
123
|
+
return 'Error: wordlist not found. Provide wordlist path.';
|
|
124
|
+
if (await binaryAvailable('john')) {
|
|
125
|
+
return runJohn(hash, wordlist, typeof args['format'] === 'string' ? args['format'] : undefined);
|
|
126
|
+
}
|
|
127
|
+
if (await binaryAvailable('hashcat')) {
|
|
128
|
+
return runHashcat(hash, wordlist);
|
|
129
|
+
}
|
|
130
|
+
return 'Error: neither john nor hashcat is installed.';
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: 'offsec_payload_gen',
|
|
135
|
+
description: 'Generate a harmless payload (base64 marker) or msfvenom template if installed (harmless command payload).',
|
|
136
|
+
parameters: {
|
|
137
|
+
type: 'object',
|
|
138
|
+
properties: {
|
|
139
|
+
mode: { type: 'string', enum: ['harmless_base64', 'msfvenom'], description: 'Payload mode (default: harmless_base64).' },
|
|
140
|
+
template: {
|
|
141
|
+
type: 'string',
|
|
142
|
+
description: 'msfvenom payload (default: cmd/unix/reverse_perl). Ignored unless mode=msfvenom.',
|
|
143
|
+
},
|
|
144
|
+
lhost: { type: 'string', description: 'LHOST for msfvenom (default: 127.0.0.1).' },
|
|
145
|
+
lport: { type: 'number', description: 'LPORT for msfvenom (default: 4444).' },
|
|
146
|
+
},
|
|
147
|
+
additionalProperties: false,
|
|
148
|
+
},
|
|
149
|
+
handler: async (args) => {
|
|
150
|
+
const mode = args['mode'] ?? 'harmless_base64';
|
|
151
|
+
if (mode !== 'msfvenom') {
|
|
152
|
+
const payload = Buffer.from(`erosolar-offsec-${Date.now()}`).toString('base64');
|
|
153
|
+
return `Harmless base64 payload:\n${payload}`;
|
|
154
|
+
}
|
|
155
|
+
if (!(await binaryAvailable('msfvenom'))) {
|
|
156
|
+
return 'Error: msfvenom not installed. Use mode=harmless_base64 instead.';
|
|
157
|
+
}
|
|
158
|
+
const template = typeof args['template'] === 'string' && args['template'].trim()
|
|
159
|
+
? args['template'].trim()
|
|
160
|
+
: 'cmd/unix/reverse_perl';
|
|
161
|
+
const lhost = typeof args['lhost'] === 'string' && args['lhost'].trim() ? args['lhost'].trim() : '127.0.0.1';
|
|
162
|
+
const lport = clampNumber(args['lport'], 4444, 1, 65535);
|
|
163
|
+
const cmd = ['-p', template, `LHOST=${lhost}`, `LPORT=${lport}`, '-f', 'raw'];
|
|
164
|
+
return runAndRecord('msfvenom', cmd, DEFAULT_TIMEOUT_MS);
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: 'offsec_exploit_search',
|
|
169
|
+
description: 'Search exploits with searchsploit if available (offline exploit-db).',
|
|
170
|
+
parameters: {
|
|
171
|
+
type: 'object',
|
|
172
|
+
properties: {
|
|
173
|
+
query: { type: 'string', description: 'Search term (e.g., CVE-2023-1234 or product name)', minLength: 2 },
|
|
174
|
+
json: { type: 'boolean', description: 'Return JSON output if supported (default: true).' },
|
|
175
|
+
},
|
|
176
|
+
required: ['query'],
|
|
177
|
+
additionalProperties: false,
|
|
178
|
+
},
|
|
179
|
+
handler: async (args) => {
|
|
180
|
+
const query = typeof args['query'] === 'string' ? args['query'].trim() : '';
|
|
181
|
+
if (!query)
|
|
182
|
+
return 'Error: query is required.';
|
|
183
|
+
if (!(await binaryAvailable('searchsploit'))) {
|
|
184
|
+
return 'Error: searchsploit not installed. Install exploitdb/searchsploit to enable this tool.';
|
|
185
|
+
}
|
|
186
|
+
const useJson = args['json'] !== false;
|
|
187
|
+
const cmd = useJson ? ['-j', query] : [query];
|
|
188
|
+
return runAndRecord('searchsploit', cmd, 30_000);
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
name: 'offsec_log_finding',
|
|
193
|
+
description: 'Log a critical or high-priority finding to ~/.erosolar/offsec/results for later review (no interactive UI required).',
|
|
194
|
+
parameters: {
|
|
195
|
+
type: 'object',
|
|
196
|
+
properties: {
|
|
197
|
+
severity: {
|
|
198
|
+
type: 'string',
|
|
199
|
+
enum: ['critical', 'high', 'medium', 'low', 'info'],
|
|
200
|
+
description: 'Finding severity (default: high)',
|
|
201
|
+
},
|
|
202
|
+
title: { type: 'string', description: 'Short title of the finding', minLength: 3 },
|
|
203
|
+
details: { type: 'string', description: 'Details/evidence for the finding', minLength: 1 },
|
|
204
|
+
target: { type: 'string', description: 'Target or scope reference', minLength: 1 },
|
|
205
|
+
},
|
|
206
|
+
required: ['title', 'details'],
|
|
207
|
+
additionalProperties: false,
|
|
208
|
+
},
|
|
209
|
+
handler: async (args) => {
|
|
210
|
+
const severity = args['severity'] ?? 'high';
|
|
211
|
+
const title = typeof args['title'] === 'string' ? args['title'].trim() : '';
|
|
212
|
+
const details = typeof args['details'] === 'string' ? args['details'].trim() : '';
|
|
213
|
+
const target = typeof args['target'] === 'string' ? args['target'].trim() : '';
|
|
214
|
+
if (!title || !details) {
|
|
215
|
+
return 'Error: title and details are required.';
|
|
216
|
+
}
|
|
217
|
+
const entry = {
|
|
218
|
+
ts: new Date().toISOString(),
|
|
219
|
+
severity,
|
|
220
|
+
title,
|
|
221
|
+
details,
|
|
222
|
+
target,
|
|
223
|
+
};
|
|
224
|
+
const path = writeFinding(entry);
|
|
225
|
+
return `Finding logged (${severity}): ${title}\nSaved: ${path}`;
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
];
|
|
229
|
+
}
|
|
230
|
+
function clampNumber(value, fallback, min, max) {
|
|
231
|
+
if (typeof value !== 'number' || Number.isNaN(value))
|
|
232
|
+
return fallback;
|
|
233
|
+
return Math.min(Math.max(value, min), max);
|
|
234
|
+
}
|
|
235
|
+
async function binaryAvailable(command) {
|
|
236
|
+
try {
|
|
237
|
+
await execFileAsync('which', [command]);
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function ensureResultsDir() {
|
|
245
|
+
if (!existsSync(OFFSEC_RESULTS_DIR)) {
|
|
246
|
+
mkdirSync(OFFSEC_RESULTS_DIR, { recursive: true });
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
async function runAndRecord(command, args, timeoutMs) {
|
|
250
|
+
ensureResultsDir();
|
|
251
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
252
|
+
const outfile = join(OFFSEC_RESULTS_DIR, `${timestamp}-${command}.log`);
|
|
253
|
+
try {
|
|
254
|
+
const { stdout, stderr } = await execFileAsync(command, args, {
|
|
255
|
+
timeout: timeoutMs,
|
|
256
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
257
|
+
});
|
|
258
|
+
const combined = [stdout, stderr].filter(Boolean).join('\n').trim() || '(no output)';
|
|
259
|
+
writeFileSync(outfile, combined);
|
|
260
|
+
return `Command: ${command} ${args.join(' ')}\nSaved: ${outfile}\n\n${combined}`;
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
const combined = [error?.stdout, error?.stderr, error?.message].filter(Boolean).join('\n').trim();
|
|
264
|
+
writeFileSync(outfile, combined || 'No output');
|
|
265
|
+
if (error?.killed) {
|
|
266
|
+
return `Command timed out after ${timeoutMs}ms. Saved output: ${outfile}`;
|
|
267
|
+
}
|
|
268
|
+
return `Command failed (saved to ${outfile}):\n${combined || '(no output)'}`;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
function buildNmapArgs(target, scanType, timing) {
|
|
272
|
+
const timingFlag = ['T2', 'T3', 'T4'].includes(timing) ? `-${timing}` : '-T3';
|
|
273
|
+
switch (scanType) {
|
|
274
|
+
case 'full':
|
|
275
|
+
return ['-sS', '-Pn', timingFlag, '-p-', target];
|
|
276
|
+
case 'top100':
|
|
277
|
+
return ['-sV', '-Pn', timingFlag, '--top-ports', '100', target];
|
|
278
|
+
case 'top1000':
|
|
279
|
+
return ['-sV', '-Pn', timingFlag, '--top-ports', '1000', target];
|
|
280
|
+
case 'quick':
|
|
281
|
+
default:
|
|
282
|
+
return ['-sV', '-Pn', timingFlag, '--top-ports', '200', target];
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
function buildDirsearchArgs(url, wordlist, extensions, threads) {
|
|
286
|
+
const args = ['-u', url, '-t', String(threads || 10), '--random-agent'];
|
|
287
|
+
if (wordlist)
|
|
288
|
+
args.push('-w', wordlist);
|
|
289
|
+
if (extensions)
|
|
290
|
+
args.push('-e', extensions);
|
|
291
|
+
args.push('--plain-text-report', join(OFFSEC_RESULTS_DIR, `dirsearch-${Date.now()}.txt`));
|
|
292
|
+
return args;
|
|
293
|
+
}
|
|
294
|
+
function buildFfufArgs(url, wordlist) {
|
|
295
|
+
const wl = wordlist || '/usr/share/wordlists/dirb/common.txt';
|
|
296
|
+
return ['-u', `${url.replace(/FUZZ/gi, 'FUZZ')}/FUZZ`, '-w', wl, '-mc', '200,204,301,302,307,401,403,500'];
|
|
297
|
+
}
|
|
298
|
+
function resolveWordlist(raw) {
|
|
299
|
+
if (typeof raw === 'string' && raw.trim()) {
|
|
300
|
+
return raw.trim();
|
|
301
|
+
}
|
|
302
|
+
const common = ['/usr/share/wordlists/rockyou.txt', '/usr/share/wordlists/rockyou.txt.gz'];
|
|
303
|
+
for (const candidate of common) {
|
|
304
|
+
if (existsSync(candidate))
|
|
305
|
+
return candidate;
|
|
306
|
+
}
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
async function runJohn(hash, wordlist, format) {
|
|
310
|
+
ensureResultsDir();
|
|
311
|
+
const hashFile = join(OFFSEC_RESULTS_DIR, `john-hash-${Date.now()}.txt`);
|
|
312
|
+
writeFileSync(hashFile, `${hash}\n`);
|
|
313
|
+
const args = ['--wordlist=' + wordlist, hashFile];
|
|
314
|
+
if (format)
|
|
315
|
+
args.push(`--format=${format}`);
|
|
316
|
+
return runAndRecord('john', args, DEFAULT_TIMEOUT_MS);
|
|
317
|
+
}
|
|
318
|
+
async function runHashcat(hash, wordlist) {
|
|
319
|
+
ensureResultsDir();
|
|
320
|
+
const hashFile = join(OFFSEC_RESULTS_DIR, `hashcat-hash-${Date.now()}.txt`);
|
|
321
|
+
writeFileSync(hashFile, `${hash}\n`);
|
|
322
|
+
// Mode not provided; use straight dictionary (-a 0) with automatic hash-type detection (-m 0 is md5; here we rely on --hash-type=0 as a safe default).
|
|
323
|
+
const args = ['-a', '0', '-m', '0', hashFile, wordlist, '--force'];
|
|
324
|
+
return runAndRecord('hashcat', args, DEFAULT_TIMEOUT_MS);
|
|
325
|
+
}
|
|
326
|
+
function writeFinding(entry) {
|
|
327
|
+
ensureResultsDir();
|
|
328
|
+
const file = join(OFFSEC_RESULTS_DIR, 'findings.log');
|
|
329
|
+
const line = JSON.stringify(entry);
|
|
330
|
+
writeFileSync(file, `${line}\n`, { flag: 'a' });
|
|
331
|
+
return file;
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=offsecOperationsTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offsecOperationsTools.js","sourceRoot":"","sources":["../../../src/tools/offsec/offsecOperationsTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offsecSearchTools.d.ts","sourceRoot":"","sources":["../../src/tools/offsecSearchTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA+C7D,wBAAgB,uBAAuB,IAAI,cAAc,EAAE,CAyE1D"}
|