Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions docs/skills/pentest-with-weaponized/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,17 @@ them, read their output, send commands, and even create pre-configured terminals
| `send_to_terminal` | Send a command to a terminal | Running commands, interacting with shells |
| `create_terminal` | Create a new terminal (with optional profile) | Starting tools — profiles: `netcat`, `msfconsole`, `meterpreter`, `web-delivery`, `shell` |

### Goal & Intent(半自动渗透闭环)

| Tool | Purpose | When to use |
|------|---------|-------------|
| `set_goal` | Set engagement goal and phase constraints | Start of engagement or phase switch |
| `get_goal` | Read current goal | Before every Reason step |
| `create_intent` | Write reasoned action intent to queue (pending) | After each Reason round — create multiple |
| `list_intents` | List intent queue, filterable by status | Confirm which intents are approved |
| `update_intent_status` | Update intent status (dismiss/elevate) | When hypothesis invalidated or confirmed |
| `execute_intent` | Execute approved intent, auto-capture output | When intent has status=approved |

### Available Resources (read-only)

| URI | Content |
Expand Down Expand Up @@ -121,6 +132,32 @@ them, read their output, send commands, and even create pre-configured terminals
7. get_graph → check if new attack paths opened
```

### Pattern 5: AI-Driven Intent Loop(半自动渗透闭环)

**Full loop:**

1. `get_goal`
→ Confirm current goal and phase constraints

2. `get_engagement_summary(include_intents=true)`
→ One call for full context: Findings + Hosts + Users + Graph + existing Intents

3. `create_intent × N` (batch — never one at a time)
→ All action intents from this Reason round
→ `reasoning` MUST reference specific Finding IDs or confirmed state

4. [Wait for human approval in TreeView]
→ `list_intents(status="approved")` to confirm

5. `execute_intent(id)`
→ Auto-executes + captures initial output (no manual send+read needed)

6. Analyze output:
- Hypothesis confirmed → `create_finding(...)` + `update_intent_status(id, "elevated", finding_id=...)`
- Hypothesis invalidated → `update_intent_status(id, "dismissed", dismissed_reason="...")`

7. Return to step 2 (loop until Goal achieved or user stops)

---

## Best Practices
Expand Down Expand Up @@ -227,3 +264,19 @@ and the tester has explicit authorization. TLS certificate verification is
intentionally disabled for lab/range environments. Treat the workspace as a live
engagement — document everything, maintain operational security, and follow
responsible disclosure practices.

## Intent Usage Rules

**Batch creation, never single**
Create all intents from a Reason round in one batch. The human sees the full attack plan.

**reasoning MUST cite specific evidence**
✗ "This target may have vulnerabilities"
✓ "Finding F-003 confirms SMB signing is disabled; credential user@corp.local valid; NTLM relay conditions met"

**Confirm approved before execute_intent**
Call `list_intents(status="approved")` before `execute_intent` to confirm the human approved.

**Findings and Intents are decoupled**
Do NOT pass `intent_id` to `create_finding` — Findings are pure fact records.
After elevating, call `update_intent_status(id, "elevated", finding_id=...)` to link them.
Loading
Loading