Skip to content

Commit 513c4de

Browse files
Merge pull request #37 from dreadnode/ads/cap-996-add-pacu-to-web-security-capability-in-cap
feat: add Pacu to web-security capability
2 parents bdd709b + 476e166 commit 513c4de

5 files changed

Lines changed: 89 additions & 3 deletions

File tree

‎capabilities/web-security/agents/web-security.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ Use tools proactively when they reduce uncertainty or verify a finding. Match th
8686
- Use `get_callback_url` and `check_callbacks` for out-of-band testing (blind SSRF, blind XSS, DNS exfiltration).
8787
- Use `list_free_phone_numbers` and `read_phone_inbox` when signup or MFA flows require SMS verification, unless prompted by the user. Free public numbers first — fall back to `request_private_number`/`poll_private_number` (paid API, needs key via `store_credential`) only when the target blocks public numbers.
8888
- Use `generate_rebinding_hostname` and `list_rebinding_presets` for DNS rebinding SSRF bypass when IP filters validate resolved addresses before fetching.
89+
- Use the local `pacu` CLI when an authorized test yields AWS credentials, cloud metadata access, or another AWS-impact lead that needs validation. Load the `pacu-aws-exploitation` skill first, confirm AWS scope, and start with identity/read-only enumeration before any mutating module.
8990
- Use `log_image_output`, `log_audio_output`, and `log_video_output` when another tool has already written useful PoC media to disk and you need it attached to the current Dreadnode run as typed output. Use `log_file_artifact` when you want the raw file uploaded as an artifact instead of rendered media.
9091
- When a finding is browser-visible or a screenshot materially improves reproducibility, capture the screenshot and attach it to the run. Treat screenshot logging as standard evidence collection, not an optional flourish.
9192
- Use `bbscope_find` at the start of an engagement to check if a target is covered by any bug bounty program and retrieve scope boundaries. Use `bbscope_program` to get full in-scope/out-of-scope details for a specific program. Use `bbscope_targets` to enumerate targets by type (wildcards, domains, URLs, IPs, CIDRs) for reconnaissance. Use `bbscope_updates` to find freshly added targets that may be under-tested.

‎capabilities/web-security/capability.yaml‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
schema: 1
22
name: web-security
3-
version: "1.1.0"
3+
version: "1.1.1"
44
description: >
55
Web application penetration testing with 60+ attack technique playbooks
66
covering request smuggling, cache poisoning, SSRF, SSTI, DOM
77
vulnerabilities, authentication bypasses, parser differentials,
88
AEM/Sling exploitation, and client-side attacks. Includes HTTP client
99
tooling, Caido proxy integration via MCP, credential management, DNS
10-
rebinding, phone verification, and vulnerability verification.
10+
rebinding, AWS exploitation with Pacu, phone verification, and
11+
vulnerability verification.
1112
1213
mcp:
1314
servers:
@@ -106,6 +107,8 @@ checks:
106107
command: test -f /opt/burp/burpsuite.jar
107108
- name: waymore
108109
command: command -v waymore
110+
- name: pacu
111+
command: command -v pacu
109112
- name: jxscout
110113
command: command -v jxscout-pro-v2
111114

@@ -126,3 +129,5 @@ keywords:
126129
- adobe-experience-manager
127130
- sling
128131
- dispatcher-bypass
132+
- aws-security
133+
- cloud-security

‎capabilities/web-security/docker/Dockerfile.runtime‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
# - agent-browser (headless Chromium for DOM interaction)
2222
# - kiterunner (API-aware content discovery)
2323
# - surf (SSRF target identification)
24+
# - pacu (AWS exploitation framework)
2425
#
2526
# Tools NOT included (require external instances reachable by network):
2627
# - Caido — set CAIDO_URL to a running instance
@@ -113,7 +114,8 @@ ENV CHROME_PATH="/usr/bin/chromium"
113114
RUN pip install --no-cache-dir \
114115
"fastmcp>=2.0" \
115116
"httpx>=0.28" \
116-
"caido-sdk-client"
117+
"caido-sdk-client" \
118+
"pacu"
117119

118120
# ── Clean up Go build cache ─────────────────────────────────────────
119121
RUN go clean -cache -modcache

‎capabilities/web-security/scripts/install_tools.sh‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ agent-browser install || true
107107
# -- waymore (Wayback Machine recon) -----------------------------------------
108108
pip install --break-system-packages waymore
109109

110+
# -- Pacu (AWS exploitation framework) ----------------------------------------
111+
pip install --break-system-packages pacu
112+
110113
# -- Clean up Go build cache -----------------------------------------------
111114
go clean -cache -modcache 2>/dev/null || true
112115

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
name: pacu-aws-exploitation
3+
description: AWS exploitation and post-compromise validation with Pacu. Use when an authorized web test yields AWS credentials, cloud metadata access, SSRF-to-AWS impact, exposed AWS keys, or an explicit request to assess an AWS account with Pacu.
4+
allowed-tools: bash
5+
---
6+
7+
# Pacu -- AWS Exploitation Framework
8+
9+
Pacu is an AWS exploitation framework for authorized cloud security testing. Use it only when the engagement scope explicitly includes the AWS account or when a confirmed web vulnerability produces AWS credentials or metadata access that must be validated for impact.
10+
11+
## When to Use
12+
13+
- SSRF confirms access to AWS metadata and yields temporary credentials.
14+
- Source, logs, CI output, client bundles, or config files expose AWS access keys.
15+
- A target owner provides AWS credentials for an authorized cloud assessment.
16+
- You need to prove concrete AWS impact after a web finding, such as IAM privilege escalation paths, Lambda exposure, S3 access, or current principal identity.
17+
18+
## When Not to Use
19+
20+
- The target scope excludes cloud infrastructure or AWS account testing.
21+
- You only have a public AWS account ID, ARN, bucket name, or hostname without authorization or credentials.
22+
- You can prove the web vulnerability impact without touching AWS APIs.
23+
24+
## Setup
25+
26+
Pacu is installed as the `pacu` CLI. It stores sessions locally. Use a descriptive session name tied to the engagement or finding ID.
27+
28+
```bash
29+
pacu --help
30+
pacu --session target-ssrf-l003 --pacu-help
31+
```
32+
33+
If you have temporary credentials, set them inside Pacu with `set_keys`, including the session token. Do not print secrets in the transcript; use existing credential storage or environment variables where possible.
34+
35+
## Core Commands
36+
37+
| Command | Purpose |
38+
|---------|---------|
39+
| `pacu --list-modules` | List modules without requiring a session |
40+
| `pacu --session <name> --whoami` | Identify the active AWS principal |
41+
| `pacu --session <name> --module-name <module> --module-info` | Inspect module behavior before running it |
42+
| `pacu --session <name> --module-name <module> --exec` | Execute a module |
43+
| `pacu --session <name> --data all` | Review locally collected data |
44+
45+
## Safe Workflow
46+
47+
1. Confirm scope before making AWS API calls.
48+
2. Identify the principal first with `--whoami`.
49+
3. Inspect module docs with `--module-info` before execution.
50+
4. Prefer read-only enumeration modules before exploit or mutation modules.
51+
5. Record the exact module, region set, and output that proves impact.
52+
53+
## Patterns
54+
55+
```bash
56+
# List modules.
57+
pacu --list-modules
58+
59+
# Identify the active principal for a named session.
60+
pacu --session target-ssrf-l003 --whoami
61+
62+
# Inspect a module before running it.
63+
pacu --session target-ssrf-l003 \
64+
--module-name iam__enum_permissions \
65+
--module-info
66+
67+
# Run a scoped module after confirming it is appropriate.
68+
pacu --session target-ssrf-l003 \
69+
--module-name iam__enum_permissions \
70+
--exec
71+
```
72+
73+
## Evidence Standard
74+
75+
For a web-security report, Pacu output is supporting evidence for the original web finding. Tie the AWS result back to the web primitive: which request exposed credentials, which Pacu principal was authenticated, and which AWS permission or data access proves impact.

0 commit comments

Comments
 (0)