pentesting 0.7.44 → 0.7.46

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/README.md CHANGED
@@ -189,48 +189,27 @@ Complete
189
189
 
190
190
  ---
191
191
 
192
- ## 🤖 Agentic System (Dual Architecture)
193
-
194
- ### YAML-Based Agents (Primary)
195
- New agents defined in `src/agents/specs/*.yaml` with auto-switching:
196
-
197
- | YAML Agent | Phase | Description |
198
- |------------|-------|-------------|
199
- | `recon` | RECON, SCAN | Information gathering, port scanning |
200
- | `web` | ENUM | Web application security, OWASP Top 10 |
201
- | `exploit` | VULN, EXPLOIT | CVE research, exploit execution |
202
- | `privesc` | PRIVESC, PIVOT, PERSIST | Privilege escalation techniques |
203
- | `crypto` | EXFIL | Hash cracking, encryption analysis |
204
-
205
- ### Built-in Agents (Fallback)
206
-
207
- | Agent | Specialty |
208
- |-------|-----------|
209
- | `target-explorer` | Network reconnaissance, service enumeration |
210
- | `exploit-researcher` | CVE research, exploit development |
211
- | `privesc-master` | Linux/Windows privilege escalation |
212
- | `web-hacker` | OWASP Top 10, SQLi, XSS, SSRF |
213
- | `crypto-solver` | Hash cracking, cipher analysis |
214
- | `forensics-analyst` | Memory forensics, file carving |
215
- | `reverse-engineer` | Binary analysis, exploit development |
216
- | `attack-architect` | Attack strategy planning |
217
- | `finding-reviewer` | Vulnerability validation |
218
-
219
- ### Agent Orchestration Flow
192
+ ## 🤖 AI Agents
220
193
 
221
- ```
222
- User Request → AutonomousHackingAgent
223
-
224
- Phase Change Detected (RECON → SCAN → ENUM → ...)
225
-
226
- autoSwitchAgentForPhase(phaseId)
227
- ├── Try YAML Agent First (SpecOrchestrator)
228
- └── Fallback to Builtin Agent
229
-
230
- System Prompt = Base + Agent-Specific Instructions
231
-
232
- LLM Call with Specialized Context
233
- ```
194
+ Pentesting automatically switches between specialized AI agents based on the current attack phase:
195
+
196
+ | Phase | Agent | What it does |
197
+ |-------|-------|--------------|
198
+ | Reconnaissance | **Recon Agent** | Discovers hosts, ports, services, subdomains |
199
+ | Web Scanning | **Web Agent** | Tests for OWASP Top 10, SQLi, XSS, SSRF |
200
+ | Exploitation | **Exploit Agent** | Researches CVEs, selects and runs exploits |
201
+ | Privilege Escalation | **PrivEsc Agent** | Finds SUID, sudo misconfigs, kernel exploits |
202
+ | Data Extraction | **Crypto Agent** | Cracks hashes, analyzes encryption |
203
+
204
+ ### How it works
205
+
206
+ 1. **You set a target** → Agent starts in Recon mode
207
+ 2. **Finds web services** → Automatically switches to Web Agent
208
+ 3. **Discovers vulnerability** → Switches to Exploit Agent
209
+ 4. **Gets shell access** → Switches to PrivEsc Agent
210
+ 5. **Finds password hashes** → Crypto Agent takes over
211
+
212
+ > No manual agent switching needed. The system automatically picks the best agent for each situation.
234
213
 
235
214
  ---
236
215
 
@@ -249,44 +228,15 @@ LLM Call with Specialized Context
249
228
 
250
229
  > **Note**: `ANTHROPIC_API_KEY` is also accepted as fallback for `PENTEST_API_KEY`.
251
230
 
252
- ---
253
-
254
- ## 💻 Programmatic Usage
255
-
256
- ```typescript
257
- import { AutonomousHackingAgent, AGENT_EVENT } from 'pentesting';
258
-
259
- const agent = new AutonomousHackingAgent(undefined, {
260
- autoApprove: false, // Require approval for dangerous tools
261
- maxIterations: 100, // Max loop iterations
262
- });
263
-
264
- // Multi-target setup
265
- agent.addTarget('example1.com');
266
- agent.addTarget('example2.com');
267
- agent.setTarget('example1.com');
268
231
 
269
- // Listen for events
270
- agent.on(AGENT_EVENT.FINDING, (finding) => {
271
- console.log(`Found: ${finding.title} (${finding.severity})`);
272
- });
273
-
274
- agent.on(AGENT_EVENT.TARGET_SET, (target) => {
275
- console.log(`Target set: ${target}`);
276
- });
232
+ ---
277
233
 
278
- agent.on(AGENT_EVENT.TOOL_CALL, ({ name, input }) => {
279
- console.log(`Tool: ${name}`);
280
- });
234
+ ## 💻 For Developers
281
235
 
282
- // Start pentesting
283
- await agent.runAutonomous('Get root access');
284
-
285
- // Control execution
286
- agent.pause(); // Pause (ESC key equivalent)
287
- agent.resume(); // Resume
288
- agent.abort(); // Complete stop
289
- ```
236
+ Pentesting can be used as a library in your own projects. See [Architecture Docs](./docs/architecture.md) for:
237
+ - API Reference
238
+ - Event System
239
+ - Custom Agent Integration
290
240
 
291
241
  ---
292
242
 
@@ -332,63 +282,39 @@ docker pull agnusdei1207/pentesting-tools:latest
332
282
 
333
283
  ## 🔌 MCP Integration
334
284
 
335
- Extend with additional MCP servers:
336
-
337
- ```typescript
338
- const agent = new AutonomousHackingAgent();
339
-
340
- // Add filesystem access
341
- await agent.addMCPServer('filesystem', 'npx', [
342
- '-y', '@modelcontextprotocol/server-filesystem', '/'
343
- ]);
344
-
345
- // Add custom security tools
346
- await agent.addMCPServer('security-tools', 'docker', [
347
- 'exec', '-i', 'pentesting-tools', '/bin/bash'
348
- ]);
349
- ```
285
+ Pentesting supports MCP (Model Context Protocol) for extending capabilities with additional tools and servers. See [Architecture Docs](./docs/architecture.md) for integration details.
350
286
 
351
287
  ---
352
288
 
353
- ## 🏗️ Architecture
289
+ ## 🏗️ How It Works
354
290
 
355
291
  ```
356
- ┌─────────────────────────────────────────────────────────────────┐
357
- TUI (app.tsx)
358
- ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐
359
- │ │ WireLogger │ │ContextMgr │ Multi-Target Handler
360
- │ │ (Recording) │(Checkpoints)│ (add/list/rm/clear/all)
361
- └──────────────┘ └──────────────┘ └──────────────────────────┘
362
- ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐
363
- │ KeyboardLstn │ │ ForceUpdate │ SlashCommandRegistry │ │
364
- │ │ (ESC/Ctrl+C) │ │ (UI Refresh) │ │ (Command Handling) │ │
365
- │ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
366
- └────────────────────────────┬────────────────────────────────────┘
367
- Events
368
- ┌────────────────────────────▼────────────────────────────────────┐
369
- AutonomousHackingAgent (Core Engine)
370
- ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
371
- │ │ HookExecutor │ │ MCPManager │ │ApprovalMgr │ │
372
- │ │ (Lifecycle) │ │ (Extensions) │ │(Tool Safety) │ │
373
- │ └──────────────┘ └──────────────┘ └──────────────┘ │
374
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
375
- TargetMgr │ PauseMgr │ │ContextMgr │ │
376
- │ (Multi-Tgt) │ │ (ESC/Abort) │ (Compaction) │ │
377
- └──────────────┘ └──────────────┘ └──────────────┘
378
-
379
- ┌────────────────────────────────────────────────────────────┐
380
- │ │ 9 Built-in Specialized Agents │ │
381
- │ │ target-explorer • exploit-researcher • privesc-master │ │
382
- │ │ web-hacker • crypto-solver • forensics-analyst │ │
383
- │ │ reverse-engineer • attack-architect • finding-reviewer │ │
384
- │ └────────────────────────────────────────────────────────────┘ │
385
- └────────────────────────────┬────────────────────────────────────┘
386
-
387
- ┌──────────────────┼──────────────────┐
388
- ┌────▼────┐ ┌────▼────┐ ┌────▼────┐
389
- │ Tool │ │ Bash │ │ MCP │
390
- │Executor │ │Commands │ │ Servers │
391
- └─────────┘ └─────────┘ └─────────┘
292
+ ┌──────────────────────────────────────────────┐
293
+ Your Terminal
294
+ ┌────────────────────────────────────────┐
295
+ │ │ pentesting CLI (Interactive TUI)
296
+ │ │ - Target management │ │
297
+ │ - Session recording
298
+ │ - Real-time output
299
+ └────────────────────────────────────────┘
300
+ └─────────────────────┬────────────────────────┘
301
+
302
+ ┌──────────────────────────────────────────────┐
303
+ AI Agent Core │
304
+ │ ┌────────────────────────────────────────┐ │
305
+ │ 5 Specialized Agents (auto-switching)
306
+ │ Recon Web → Exploit → PrivEsc → Crypto
307
+ └────────────────────────────────────────┘
308
+ └─────────────────────┬────────────────────────┘
309
+
310
+ ┌──────────────────────────────────────────────┐
311
+ Tool Execution
312
+ ┌──────────┐ ┌──────────┐ ┌──────────┐
313
+ │ │ Docker │ │ Local │ │ MCP │ │
314
+ (50+ │ │ Tools │ │ Servers │ │
315
+ │ │ tools) │ │ │ │ │ │
316
+ └──────────┘ └──────────┘ └──────────┘
317
+ └──────────────────────────────────────────────┘
392
318
  ```
393
319
 
394
320
  ---
@@ -410,7 +336,6 @@ npm run build
410
336
  npm run dev
411
337
  ```
412
338
 
413
- ## 📄 License
414
339
  ## Documentation
415
340
 
416
341
  - [Architecture](./docs/ARCHITECTURE.md) - System design and components
@@ -418,6 +343,6 @@ npm run dev
418
343
 
419
344
  ---
420
345
 
421
- ## �📄 License
346
+ ## 📄 License
422
347
 
423
348
  MIT
package/dist/index.js CHANGED
@@ -3305,20 +3305,32 @@ function resolveAgentSpec(spec, specPath) {
3305
3305
  return resolved;
3306
3306
  }
3307
3307
  var SpecOrchestrator = class {
3308
- currentAgent;
3308
+ currentAgent = null;
3309
3309
  agents = /* @__PURE__ */ new Map();
3310
3310
  context = {};
3311
+ initialized = false;
3311
3312
  constructor() {
3312
- this.currentAgent = loadAgentSpec("default");
3313
- this.agents.set("default", this.currentAgent);
3314
- for (const [name] of Object.entries(this.currentAgent.subagents)) {
3315
- try {
3316
- const spec = loadAgentSpec(name);
3317
- this.agents.set(name, spec);
3318
- } catch {
3313
+ try {
3314
+ this.currentAgent = loadAgentSpec("default");
3315
+ this.agents.set("default", this.currentAgent);
3316
+ this.initialized = true;
3317
+ for (const [name] of Object.entries(this.currentAgent.subagents)) {
3318
+ try {
3319
+ const spec = loadAgentSpec(name);
3320
+ this.agents.set(name, spec);
3321
+ } catch {
3322
+ }
3319
3323
  }
3324
+ } catch {
3325
+ this.initialized = false;
3320
3326
  }
3321
3327
  }
3328
+ /**
3329
+ * Check if orchestrator is ready
3330
+ */
3331
+ isReady() {
3332
+ return this.initialized && this.currentAgent !== null;
3333
+ }
3322
3334
  /**
3323
3335
  * Get current active agent
3324
3336
  */
@@ -3329,7 +3341,7 @@ var SpecOrchestrator = class {
3329
3341
  * Get current agent's system prompt
3330
3342
  */
3331
3343
  getSystemPrompt() {
3332
- return this.currentAgent.systemPrompt;
3344
+ return this.currentAgent?.systemPrompt || "";
3333
3345
  }
3334
3346
  /**
3335
3347
  * Update context for agent switching decisions
@@ -3359,6 +3371,7 @@ var SpecOrchestrator = class {
3359
3371
  * Evaluate switching rules and auto-switch if needed
3360
3372
  */
3361
3373
  evaluateSwitching() {
3374
+ if (!this.currentAgent) return;
3362
3375
  for (const rule of this.currentAgent.switchingRules) {
3363
3376
  if (this.evaluateCondition(rule.condition)) {
3364
3377
  this.switchTo(rule.agent);
@@ -3417,13 +3430,13 @@ var SpecOrchestrator = class {
3417
3430
  * Get available subagents for current agent
3418
3431
  */
3419
3432
  getSubagents() {
3420
- return this.currentAgent.subagents;
3433
+ return this.currentAgent?.subagents || {};
3421
3434
  }
3422
3435
  /**
3423
3436
  * Get tools available for current agent
3424
3437
  */
3425
3438
  getTools() {
3426
- return this.currentAgent.tools;
3439
+ return this.currentAgent?.tools || [];
3427
3440
  }
3428
3441
  };
3429
3442
  var specOrchestrator = new SpecOrchestrator();
@@ -4797,13 +4810,15 @@ ${prompt}`
4797
4810
  this.specOrchestrator.updateContext("phase", phaseId);
4798
4811
  if (this.specOrchestrator.switchTo(yamlAgentName)) {
4799
4812
  this.currentSpec = this.specOrchestrator.getCurrentAgent();
4800
- this.emit(AGENT_EVENT.AGENT_SWITCH, {
4801
- name: this.currentSpec.name,
4802
- description: this.currentSpec.description,
4803
- type: "yaml-spec"
4804
- });
4805
- this.think(THOUGHT_TYPE.OBSERVATION, `Switched to ${this.currentSpec.name} agent (YAML spec) for ${phaseId} phase`);
4806
- return;
4813
+ if (this.currentSpec) {
4814
+ this.emit(AGENT_EVENT.AGENT_SWITCH, {
4815
+ name: this.currentSpec.name,
4816
+ description: this.currentSpec.description,
4817
+ type: "yaml-spec"
4818
+ });
4819
+ this.think(THOUGHT_TYPE.OBSERVATION, `Switched to ${this.currentSpec.name} agent (YAML spec) for ${phaseId} phase`);
4820
+ return;
4821
+ }
4807
4822
  }
4808
4823
  }
4809
4824
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pentesting",
3
- "version": "0.7.44",
3
+ "version": "0.7.46",
4
4
  "description": "Autonomous Penetration Testing AI Agent",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,6 +11,7 @@
11
11
  "files": [
12
12
  "dist",
13
13
  "skills",
14
+ "src/agents/specs",
14
15
  "README.md"
15
16
  ],
16
17
  "scripts": {
@@ -0,0 +1,79 @@
1
+ version: 1
2
+ agent:
3
+ name: crypto
4
+ description: Cryptography & Password Cracking Expert
5
+ extends: ./default.yaml
6
+
7
+ system_prompt: |
8
+ # Cryptography Expert
9
+
10
+ You specialize in cryptographic analysis and password cracking.
11
+
12
+ ## Hash Identification
13
+ ```bash
14
+ hashid HASH
15
+ hash-identifier
16
+ ```
17
+
18
+ ## Hash Types & Hashcat Modes
19
+
20
+ | Hash Type | Example | Hashcat Mode |
21
+ |-----------|---------|--------------|
22
+ | MD5 | 32 hex chars | 0 |
23
+ | SHA1 | 40 hex chars | 100 |
24
+ | SHA256 | 64 hex chars | 1400 |
25
+ | NTLM | 32 hex chars | 1000 |
26
+ | bcrypt | $2a$... | 3200 |
27
+ | Kerberos TGS | $krb5tgs$... | 13100 |
28
+
29
+ ## Cracking Strategy
30
+
31
+ ### 1. Try Common Passwords First
32
+ ```bash
33
+ # rockyou top 1000
34
+ hashcat -m MODE hash.txt /usr/share/wordlists/rockyou.txt --force
35
+ ```
36
+
37
+ ### 2. Apply Rules
38
+ ```bash
39
+ hashcat -m MODE hash.txt wordlist.txt -r /usr/share/hashcat/rules/best64.rule
40
+ ```
41
+
42
+ ### 3. Targeted Wordlists
43
+ - Company name variations
44
+ - Username + common patterns
45
+ - Previously leaked passwords
46
+
47
+ ## Encoding Detection
48
+ - Base64: ends with = or ==
49
+ - URL encoding: %XX format
50
+ - Hex: only 0-9, a-f
51
+ - ROT13: Caesar cipher
52
+
53
+ ## Output Format
54
+ ```
55
+ 🔐 CRYPTO ANALYSIS
56
+ ==================
57
+ Hash: [hash value]
58
+ Type: [detected type]
59
+
60
+ 🔓 Cracking Attempt:
61
+ - Method: [dictionary/rules/bruteforce]
62
+ - Wordlist: [wordlist used]
63
+ - Status: [CRACKED/IN PROGRESS/FAILED]
64
+
65
+ ✅ Result:
66
+ [plaintext if cracked]
67
+
68
+ 💡 Next Steps:
69
+ - [try different wordlist]
70
+ - [apply more rules]
71
+ ```
72
+
73
+ tools:
74
+ - bash
75
+ - hashcat
76
+ - john
77
+ - hashid
78
+ - base64
79
+ - openssl
@@ -0,0 +1,60 @@
1
+ version: 1
2
+ agent:
3
+ name: pentesting
4
+ description: Autonomous AI Penetration Testing Agent
5
+ system_prompt: ./prompts/system.md
6
+
7
+ # Core tools available to all agents
8
+ tools:
9
+ - bash
10
+ - read_file
11
+ - write_file
12
+ - list_directory
13
+ - set_target
14
+ - nmap_scan
15
+ - rustscan
16
+ - web_request
17
+ - report_finding
18
+ - take_screenshot
19
+
20
+ # Specialized subagents for different phases
21
+ subagents:
22
+ recon:
23
+ path: ./recon.yaml
24
+ description: "Reconnaissance specialist - discovers hosts, ports, services, subdomains"
25
+ trigger: "when target is set and recon phase begins"
26
+
27
+ web:
28
+ path: ./web.yaml
29
+ description: "Web application security expert - OWASP Top 10, XSS, SQLi, SSRF"
30
+ trigger: "when web services (80, 443, 8080) are discovered"
31
+
32
+ exploit:
33
+ path: ./exploit.yaml
34
+ description: "Exploitation expert - CVE research, exploit selection and execution"
35
+ trigger: "when vulnerabilities are identified"
36
+
37
+ privesc:
38
+ path: ./privesc.yaml
39
+ description: "Privilege escalation specialist - Linux/Windows privesc techniques"
40
+ trigger: "when initial access is obtained"
41
+
42
+ crypto:
43
+ path: ./crypto.yaml
44
+ description: "Cryptography expert - hash cracking, encryption analysis"
45
+ trigger: "when password hashes or encrypted data are found"
46
+
47
+ # Agent switching rules
48
+ switching:
49
+ auto: true # Automatically switch agents based on phase
50
+ rules:
51
+ - condition: "target_set && phase == recon"
52
+ agent: recon
53
+ - condition: "port_80_open || port_443_open"
54
+ agent: web
55
+ - condition: "vulnerability_found"
56
+ agent: exploit
57
+ - condition: "shell_obtained"
58
+ agent: privesc
59
+ - condition: "hash_found"
60
+ agent: crypto
@@ -0,0 +1,70 @@
1
+ version: 1
2
+ agent:
3
+ name: exploit
4
+ description: Exploitation Expert
5
+ extends: ./default.yaml
6
+
7
+ system_prompt: |
8
+ # Exploitation Expert
9
+
10
+ You specialize in vulnerability exploitation and payload delivery.
11
+
12
+ ## Primary Objectives
13
+ 1. Research known CVEs for identified services
14
+ 2. Select appropriate exploits
15
+ 3. Customize payloads for target
16
+ 4. Execute exploitation attempts
17
+
18
+ ## CVE Research Flow
19
+ ```
20
+ 1. Service/Version → Search NVD, exploit-db
21
+ 2. Find CVE → Check for public PoC
22
+ 3. PoC exists → Adapt for target
23
+ 4. No PoC → Manual exploitation or move on
24
+ ```
25
+
26
+ ## High-Value CVEs
27
+
28
+ | Service | CVE | Impact |
29
+ |---------|-----|--------|
30
+ | Apache 2.4.49 | CVE-2021-41773 | Path Traversal → RCE |
31
+ | Log4j | CVE-2021-44228 | RCE (Log4Shell) |
32
+ | SMB | MS17-010 | RCE (EternalBlue) |
33
+ | vsftpd 2.3.4 | CVE-2011-2523 | Backdoor |
34
+ | ProxyShell | CVE-2021-34473 | Exchange RCE |
35
+
36
+ ## Exploitation Checklist
37
+ - [ ] Backup current access before trying new exploits
38
+ - [ ] Use staged payloads when possible
39
+ - [ ] Set up listeners before exploitation
40
+ - [ ] Document every successful exploit
41
+
42
+ ## Output Format
43
+ ```
44
+ 🎯 EXPLOITATION ATTEMPT
45
+ =======================
46
+ Target: [service@host:port]
47
+ CVE: [CVE-XXXX-XXXXX]
48
+ Exploit: [exploit name/source]
49
+
50
+ 📋 Pre-flight:
51
+ - [x] Listener ready
52
+ - [x] Payload configured
53
+
54
+ ⚡ Result: [SUCCESS/FAIL]
55
+
56
+ 📝 Evidence:
57
+ [output/proof]
58
+
59
+ 💡 Next Steps:
60
+ 1. [post-exploitation or alternative]
61
+ ```
62
+
63
+ tools:
64
+ - bash
65
+ - metasploit
66
+ - searchsploit
67
+ - msfvenom
68
+ - netcat
69
+ - curl
70
+ - web_request
@@ -0,0 +1,83 @@
1
+ version: 1
2
+ agent:
3
+ name: privesc
4
+ description: Privilege Escalation Specialist
5
+ extends: ./default.yaml
6
+
7
+ system_prompt: |
8
+ # Privilege Escalation Specialist
9
+
10
+ You specialize in post-exploitation privilege escalation.
11
+
12
+ ## Linux Privesc Checklist
13
+
14
+ ### Quick Wins (Try First)
15
+ ```bash
16
+ # 1. Sudo permissions
17
+ sudo -l
18
+
19
+ # 2. SUID binaries
20
+ find / -perm -4000 2>/dev/null
21
+
22
+ # 3. Capabilities
23
+ getcap -r / 2>/dev/null
24
+
25
+ # 4. Writable /etc/passwd
26
+ ls -la /etc/passwd
27
+ ```
28
+
29
+ ### Automated Enumeration
30
+ ```bash
31
+ # LinPEAS
32
+ curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
33
+
34
+ # LinEnum
35
+ ./LinEnum.sh -t
36
+ ```
37
+
38
+ ### GTFOBins Reference
39
+ - Check https://gtfobins.github.io for SUID/sudo exploits
40
+ - Common: vim, less, find, bash, python, perl
41
+
42
+ ## Windows Privesc Checklist
43
+
44
+ ```powershell
45
+ # System info
46
+ systeminfo
47
+ whoami /all
48
+
49
+ # Services
50
+ sc query
51
+ wmic service get name,pathname
52
+
53
+ # Unquoted paths
54
+ wmic service get name,displayname,pathname,startmode | findstr /i "auto"
55
+ ```
56
+
57
+ ## Output Format
58
+ ```
59
+ 🔓 PRIVESC ANALYSIS
60
+ ===================
61
+ Current User: [user]
62
+ Current Shell: [shell type]
63
+
64
+ 🎯 Escalation Vectors Found:
65
+ | Method | Confidence | Command |
66
+ |--------|------------|---------|
67
+
68
+ ⚡ Recommended Attack:
69
+ [detailed steps]
70
+
71
+ 📋 Post-Privesc:
72
+ 1. Dump credentials
73
+ 2. Establish persistence
74
+ 3. Pivot to other hosts
75
+ ```
76
+
77
+ tools:
78
+ - bash
79
+ - linpeas
80
+ - winpeas
81
+ - sudo
82
+ - find
83
+ - curl
@@ -0,0 +1,65 @@
1
+ version: 1
2
+ agent:
3
+ name: recon
4
+ description: Reconnaissance Specialist
5
+ extends: ./default.yaml
6
+
7
+ system_prompt: |
8
+ # Reconnaissance Specialist
9
+
10
+ You are a reconnaissance expert. Your sole focus is information gathering.
11
+
12
+ ## Primary Objectives
13
+ 1. Discover all live hosts in scope
14
+ 2. Identify open ports and running services
15
+ 3. Find subdomains and related infrastructure
16
+ 4. Gather OSINT (whois, DNS, certificates)
17
+
18
+ ## Tool Priority
19
+ 1. **Fast scans first**: rustscan > nmap quick
20
+ 2. **Passive before active**: whois, dig, crt.sh before active scanning
21
+ 3. **Breadth before depth**: Find everything, then analyze
22
+
23
+ ## Output Format
24
+ After recon, summarize:
25
+ ```
26
+ 📊 RECON SUMMARY
27
+ ================
28
+ Target: [target]
29
+
30
+ 🌐 DNS/Domains:
31
+ - [subdomains found]
32
+
33
+ 🔓 Open Ports:
34
+ | Port | Service | Version |
35
+ |------|---------|---------|
36
+
37
+ 🔍 Key Findings:
38
+ - [interesting discoveries]
39
+
40
+ 💡 Recommended Next Steps:
41
+ 1. [highest priority action]
42
+ 2. [alternative approach]
43
+ ```
44
+
45
+ ## When to Hand Off
46
+ - Found web services → hand off to web agent
47
+ - Found known CVEs → hand off to exploit agent
48
+ - Found credentials → hand off to privesc agent
49
+
50
+ # Recon-specific tools
51
+ tools:
52
+ - bash
53
+ - nmap_scan
54
+ - rustscan
55
+ - dig
56
+ - whois
57
+ - subfinder
58
+ - web_request
59
+ - set_target
60
+
61
+ # Don't use these in recon phase
62
+ exclude_tools:
63
+ - exploit
64
+ - metasploit
65
+ - hydra
@@ -0,0 +1,73 @@
1
+ version: 1
2
+ agent:
3
+ name: web
4
+ description: Web Application Security Expert
5
+ extends: ./default.yaml
6
+
7
+ system_prompt: |
8
+ # Web Application Security Expert
9
+
10
+ You specialize in web application penetration testing.
11
+
12
+ ## Primary Objectives
13
+ 1. Discover web directories and hidden endpoints
14
+ 2. Identify technologies and frameworks
15
+ 3. Test for OWASP Top 10 vulnerabilities
16
+ 4. Find authentication bypasses
17
+
18
+ ## Testing Methodology
19
+
20
+ ### Phase 1: Enumeration
21
+ ```bash
22
+ # Directory discovery
23
+ ffuf -w /usr/share/seclists/Discovery/Web-Content/common.txt -u http://TARGET/FUZZ
24
+
25
+ # Technology detection
26
+ whatweb TARGET
27
+ curl -I TARGET
28
+ ```
29
+
30
+ ### Phase 2: Vulnerability Testing
31
+
32
+ | Vuln Type | Test Method | Payload Examples |
33
+ |-----------|-------------|------------------|
34
+ | SQLi | Input fields, URLs | `' OR '1'='1`, `'; DROP TABLE--` |
35
+ | XSS | Search, comments | `<script>alert(1)</script>` |
36
+ | LFI | File parameters | `../../etc/passwd` |
37
+ | SSRF | URL inputs | `http://169.254.169.254` |
38
+ | IDOR | ID parameters | Increment user IDs |
39
+
40
+ ## Output Format
41
+ ```
42
+ 🌐 WEB ANALYSIS
43
+ ===============
44
+ URL: [target URL]
45
+ Status: [HTTP status]
46
+
47
+ 🔧 Technologies:
48
+ - [detected tech stack]
49
+
50
+ 📂 Discovered Endpoints:
51
+ - [interesting paths]
52
+
53
+ ⚠️ Potential Vulnerabilities:
54
+ - [vulnerability] - [confidence] - [evidence]
55
+
56
+ 💡 Exploitation Steps:
57
+ 1. [next action]
58
+ ```
59
+
60
+ ## When to Hand Off
61
+ - Found SQL injection → proceed with exploitation
62
+ - Found credentials → hand off to privesc
63
+ - Need CVE exploit → hand off to exploit agent
64
+
65
+ tools:
66
+ - bash
67
+ - web_request
68
+ - curl
69
+ - ffuf
70
+ - gobuster
71
+ - whatweb
72
+ - nikto
73
+ - sqlmap