pwn 0.5.737 → 0.5.738
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.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +0 -1
- data/documentation/Agent-Tool-Registry.md +3 -3
- data/documentation/Diagrams.md +1 -1
- data/documentation/How-PWN-Works.md +1 -1
- data/documentation/Plugin-Degradation.md +74 -0
- data/documentation/Swarm.md +2 -3
- data/documentation/What-is-PWN.md +1 -1
- data/documentation/pwn-REPL.md +0 -1
- data/documentation/pwn-ai-Agent.md +1 -1
- data/etc/default_skills/browser-exploitation/SKILL.md +10 -0
- data/etc/default_skills/firmware-unpack-emulate/SKILL.md +10 -0
- data/etc/default_skills/heap-exploitation/SKILL.md +11 -0
- data/etc/default_skills/kernel-pwn-triage/SKILL.md +11 -0
- data/etc/default_skills/pwn/ai/agent/swarm/SKILL.md +1 -1
- data/etc/default_skills/pwn/ai/agent/tools/sbom_scan/SKILL.md +45 -0
- data/etc/default_skills/pwn/corpus/SKILL.md +52 -0
- data/etc/default_skills/pwn/corpus/references/urls.md +3 -0
- data/etc/default_skills/pwn/engagement/SKILL.md +55 -0
- data/etc/default_skills/pwn/plugins/debugger/SKILL.md +62 -0
- data/etc/default_skills/pwn/plugins/fuzz/SKILL.md +1 -0
- data/etc/default_skills/pwn/plugins/handler/SKILL.md +52 -0
- data/etc/default_skills/pwn/plugins/jobs/SKILL.md +1 -0
- data/etc/default_skills/pwn/plugins/mitm_proxy/SKILL.md +1 -0
- data/etc/default_skills/pwn/plugins/nmap_it/SKILL.md +1 -0
- data/etc/default_skills/pwn/plugins/packet/SKILL.md +1 -0
- data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +2 -0
- data/etc/default_skills/pwn/plugins/redb/SKILL.md +52 -0
- data/etc/default_skills/pwn/plugins/sbom/SKILL.md +48 -0
- data/etc/default_skills/pwn/redaction/SKILL.md +1 -0
- data/etc/default_skills/rop-jop-chain-construction/SKILL.md +10 -0
- data/etc/default_skills/windows-internals-triage/SKILL.md +10 -0
- data/lib/pwn/ai/agent/loop.rb +76 -8
- data/lib/pwn/ai/agent/prompt_builder.rb +19 -1
- data/lib/pwn/ai/agent/swarm.rb +4 -5
- data/lib/pwn/ai/agent/tool_guard.rb +11 -4
- data/lib/pwn/ai/agent/tools/fuzz_campaign.rb +2 -1
- data/lib/pwn/ai/agent/tools/job_run.rb +9 -3
- data/lib/pwn/ai/agent/tools/pty_session.rb +7 -1
- data/lib/pwn/ai/agent/tools/sbom_scan.rb +25 -0
- data/lib/pwn/ai/agent/tools/shell.rb +3 -2
- data/lib/pwn/ai/agent/tools/swarm.rb +3 -6
- data/lib/pwn/ai/agent/turn_finalizer.rb +2 -2
- data/lib/pwn/corpus.rb +107 -0
- data/lib/pwn/engagement.rb +158 -0
- data/lib/pwn/plugins/debugger.rb +284 -0
- data/lib/pwn/plugins/findings.rb +14 -3
- data/lib/pwn/plugins/fuzz.rb +62 -0
- data/lib/pwn/plugins/handler.rb +171 -0
- data/lib/pwn/plugins/jobs.rb +55 -0
- data/lib/pwn/plugins/mitm_proxy.rb +37 -2
- data/lib/pwn/plugins/nmap_it.rb +32 -0
- data/lib/pwn/plugins/packet.rb +18 -0
- data/lib/pwn/plugins/preflight_checker.rb +6 -2
- data/lib/pwn/plugins/process_tube.rb +99 -8
- data/lib/pwn/plugins/redb.rb +210 -0
- data/lib/pwn/plugins/repl.rb +0 -3
- data/lib/pwn/plugins/sbom.rb +145 -0
- data/lib/pwn/plugins.rb +4 -0
- data/lib/pwn/redaction.rb +53 -0
- data/lib/pwn/reports/engagement.rb +2 -1
- data/lib/pwn/sessions.rb +3 -1
- data/lib/pwn/version.rb +1 -1
- data/lib/pwn.rb +2 -0
- data/packer/provisioners/irc.sh +1 -1
- data/spec/lib/pwn/ai/agent/harness_2026_09_15_spec.rb +144 -0
- data/spec/lib/pwn/ai/agent/tools/sbom_scan_spec.rb +10 -0
- data/spec/lib/pwn/corpus_spec.rb +23 -0
- data/spec/lib/pwn/engagement_spec.rb +27 -0
- data/spec/lib/pwn/plugins/debugger_spec.rb +27 -0
- data/spec/lib/pwn/plugins/handler_spec.rb +25 -0
- data/spec/lib/pwn/plugins/redb_spec.rb +33 -0
- data/spec/lib/pwn/plugins/repl_spec.rb +7 -1
- data/spec/lib/pwn/plugins/sbom_spec.rb +22 -0
- data/third_party/pwn_rdoc.jsonl +96 -4
- metadata +31 -4
- data/etc/default_skills/pwn/plugins/repl/irc/SKILL.md +0 -47
- data/lib/pwn/plugins/repl/irc.rb +0 -153
- data/spec/lib/pwn/plugins/repl/irc_spec.rb +0 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1ca56931addf19f59b18ee2776ee84b0af0a75496bcf9bd9d8453b96b9b9eef2
|
|
4
|
+
data.tar.gz: b9310696c7ae7098d37dc3c8e46b1cd2214ab652a49ef75df281b34c472a738c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d6ec57ded9a7213562cdaf4b4486d680387f8dea1ec1fbf6bfc47a2b4ed40e7c7782c40e3ab80a5164c308c5dae220442956b83cf2c0ccbddbbc2e398b1e6acf
|
|
7
|
+
data.tar.gz: 7c447c3b9e42779e4ca86038836719dad5b051a872f4bbad2bc704b54596a69644c56a92a6d877681045f3c7000cddb0a51aaa49e79be9ab1afc5de40b7fa8a2
|
data/.rubocop_todo.yml
CHANGED
|
@@ -6,13 +6,13 @@ toolsets; the JSON-Schema for each tool is what the model actually sees.
|
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
|
-
## Toolsets to tools (13 toolsets ·
|
|
9
|
+
## Toolsets to tools (13 toolsets · 88 tools)
|
|
10
10
|
|
|
11
11
|
| Toolset | Tools | Backed by |
|
|
12
12
|
|---|---|---|
|
|
13
13
|
| `http` | `http_proxy_start` · `http_proxy_stop` · `http_proxy_entries` · `http_proxy_rules` · `http_replay` | `PWN::Plugins::MitmProxy`: native HTTP HAR capture/replay; opaque CONNECT tunnels |
|
|
14
14
|
| `terminal` | `shell` | `Open3.capture3` on the host, after `PWN::AI::Agent::ToolGuard` |
|
|
15
|
-
| `pwn` | `pwn_eval` | `TOPLEVEL_BINDING.eval` in the live REPL process, after `ToolGuard` |
|
|
15
|
+
| `pwn` | `pwn_eval` · `sbom_scan` | `TOPLEVEL_BINDING.eval` in the live REPL process, after `ToolGuard`; SBOM engines via `PWN::Plugins::SBOM` |
|
|
16
16
|
| `mcp` | `mcp` | `PWN::AI::MCP` session broker → any `PWN::AI::MCP::*` stdio client |
|
|
17
17
|
| `memory` | `memory_remember` · `memory_recall` · `memory_forget` · `memory_clear` · **`memory_lean`** | `PWN::Memory` → `~/.pwn/memory.json` |
|
|
18
18
|
| `skills` | `skills_consolidate` · **`skills_recall`** · `skill_list` · `skill_view` · `skill_create` · `skill_add_reference` · `skill_delete` · `skill_migrate_legacy` | `~/.pwn/skills/<name>/SKILL.md` (**[agentskills.io](https://agentskills.io) spec**; legacy flat `*.md` auto-migrated) |
|
|
@@ -70,7 +70,7 @@ PWN::AI::Agent::Registry.definitions(relevance: 'nmap sweep 10.0.0.0/8', top_k:
|
|
|
70
70
|
PWN::AI::Agent::Registry.rank(query: 'run a shell command') # inspect ranking
|
|
71
71
|
PWN::AI::Agent::Registry.preference_order # Env / DEFAULT_PREFERENCE
|
|
72
72
|
PWN::AI::Agent::Registry.toolsets # -> the 13 names above
|
|
73
|
-
PWN::AI::Agent::Registry.all.count # ->
|
|
73
|
+
PWN::AI::Agent::Registry.all.count # -> 88
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
Frontier engines leave `tool_router` off (unless you set it) and receive the
|
data/documentation/Diagrams.md
CHANGED
|
@@ -68,7 +68,7 @@ groups) so lines never criss-cross.
|
|
|
68
68
|
[source](diagrams/dot/ai-integration-tool-calling.dot) · doc: [AI Integration](AI-Integration.md)
|
|
69
69
|

|
|
70
70
|
|
|
71
|
-
### Agent Tool Registry (13 toolsets ·
|
|
71
|
+
### Agent Tool Registry (13 toolsets · 88 tools)
|
|
72
72
|
[source](diagrams/dot/agent-tool-registry.dot) · doc: [Agent Tool Registry](Agent-Tool-Registry.md)
|
|
73
73
|

|
|
74
74
|
|
|
@@ -29,7 +29,7 @@ hardware).
|
|
|
29
29
|
|---|---|
|
|
30
30
|
| `Loop` | plan → **TaskSummarizer** briefs → dispatch tool_calls → observe → repeat until `may_finalize?`. No iteration-budget abort |
|
|
31
31
|
| **`TaskSummarizer`** | Executive UX: every request gets an English task compass (`emit_plan!` · `about_to` as `task k/n`) - no statement/question/goal type |
|
|
32
|
-
| `Registry` | JSON-Schema function definitions grouped into 13 **toolsets** · **
|
|
32
|
+
| `Registry` | JSON-Schema function definitions grouped into 13 **toolsets** · **88 tools** · `CORE_TOOLS` = `DEFAULT_PREFERENCE` (`memory_recall` · `session_recall` · `skills_recall` · `pwn_eval` · `shell` · `mistakes_record` · `mistakes_resolve` · `learning_note_outcome` · `memory_remember`) |
|
|
33
33
|
| `Dispatch` / `Result` | execute a tool, capture stdout/value/error/duration |
|
|
34
34
|
| `PromptBuilder` | inject MEMORY / SKILLS / LEARNING / **KNOWN MISTAKES + FIXES** / METRICS / **POLICY** / EXTROSPECTION / RECENT TURNS |
|
|
35
35
|
| `Metrics` · `Learning` · `Reflect` · **`Policy`** | **introspection** - how well am I doing? (Policy is live Q / REINFORCE, advisory rank only) |
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Plugin degradation and fallbacks
|
|
2
|
+
|
|
3
|
+
Each `PreflightChecker` health line links here. CI asserts every plugin in
|
|
4
|
+
`PLUGIN_DEPS` has an anchor and that documented fallbacks still exist.
|
|
5
|
+
|
|
6
|
+
## pwn-plugins-radare2
|
|
7
|
+
|
|
8
|
+
Required: `r2`. Fallback: `objdump` / `PWN::Plugins::REDB` binutils path.
|
|
9
|
+
|
|
10
|
+
## pwn-plugins-gdb
|
|
11
|
+
|
|
12
|
+
Required: `gdb`. Fallback: `PWN::Plugins::Debugger` still exposes `cyclic` helpers.
|
|
13
|
+
|
|
14
|
+
## pwn-plugins-nuclei
|
|
15
|
+
|
|
16
|
+
Required: `nuclei`. Fallback: `TransparentBrowser` + `pwn_eval`.
|
|
17
|
+
|
|
18
|
+
## pwn-plugins-sqlmap
|
|
19
|
+
|
|
20
|
+
Required: `sqlmap`. Fallback: `pwn_eval` HTTP clients.
|
|
21
|
+
|
|
22
|
+
## pwn-plugins-frida
|
|
23
|
+
|
|
24
|
+
Required: `frida`. Fallback: `Debugger` + `REDB`.
|
|
25
|
+
|
|
26
|
+
## pwn-plugins-aflplusplus
|
|
27
|
+
|
|
28
|
+
Required: `afl-fuzz`. Fallback: `PWN::Plugins::Fuzz.triage` on an existing crash dir.
|
|
29
|
+
|
|
30
|
+
## pwn-plugins-volatility
|
|
31
|
+
|
|
32
|
+
Required: `vol`. Fallback: `pwn_eval` + strings/REDB.
|
|
33
|
+
|
|
34
|
+
## pwn-plugins-nmapit
|
|
35
|
+
|
|
36
|
+
Required: `nmap`. Fallback: `Packet.tcp_connect_scan`.
|
|
37
|
+
|
|
38
|
+
## pwn-plugins-metasploit
|
|
39
|
+
|
|
40
|
+
Required: `msfconsole`. Fallback: `exploitdev`, `pwn_eval`, `PWN::Plugins::Handler`.
|
|
41
|
+
|
|
42
|
+
## pwn-plugins-burpsuite
|
|
43
|
+
|
|
44
|
+
Required: `burpsuite`. Fallback: `TransparentBrowser`, `nuclei`, `PWN::Plugins::MitmProxy`.
|
|
45
|
+
|
|
46
|
+
## pwn-plugins-zaproxy
|
|
47
|
+
|
|
48
|
+
Required: `zaproxy`. Fallback: `nuclei`, `TransparentBrowser`, `PWN::Plugins::MitmProxy`.
|
|
49
|
+
|
|
50
|
+
## pwn-plugins-packet
|
|
51
|
+
|
|
52
|
+
Required: `CAP_NET_RAW` **or** the capability broker helper. Install the helper
|
|
53
|
+
from `documentation/Capability-Broker-Sandbox.md` (setcap the helper binary, not
|
|
54
|
+
the Ruby interpreter). Fallback: `Packet.tcp_connect_scan` / `PWN::Plugins::Sock`.
|
|
55
|
+
|
|
56
|
+
## pwn-plugins-k8s
|
|
57
|
+
|
|
58
|
+
Required: `trivy` and docker.sock. Fallback: `sbom_scan` / `pwn_eval`.
|
|
59
|
+
|
|
60
|
+
## pwn-plugins-semgrep
|
|
61
|
+
|
|
62
|
+
Required: `semgrep`. Fallback: `sast` tools / `pwn_eval`.
|
|
63
|
+
|
|
64
|
+
## pwn-plugins-exploitdb
|
|
65
|
+
|
|
66
|
+
Required: `searchsploit`. Fallback: `intel_lookup`.
|
|
67
|
+
|
|
68
|
+
## pwn-plugins-recon
|
|
69
|
+
|
|
70
|
+
Required: `subfinder`, `httpx`. Fallback: `NmapIt.scan` + `Corpus.get`.
|
|
71
|
+
|
|
72
|
+
## pwn-plugins-credentialattack
|
|
73
|
+
|
|
74
|
+
Required: `hydra`, `john`, `hashcat`. Fallback: `pwn_eval` + `Corpus`.
|
data/documentation/Swarm.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# Swarm - Native Multi-Agent Orchestration
|
|
2
2
|
|
|
3
|
-
`PWN::AI::Agent::Swarm`
|
|
4
|
-
|
|
5
|
-
`PWN::AI::Agent::Loop`. Each persona is a *full* tool-calling agent - Memory,
|
|
3
|
+
`PWN::AI::Agent::Swarm` is first-class multi-agent orchestration built
|
|
4
|
+
directly on `PWN::AI::Agent::Loop`. Each persona is a *full* tool-calling agent - Memory,
|
|
6
5
|
Skills, Learning, Metrics and Extrospection all apply - so the
|
|
7
6
|
self-improvement loop covers the whole swarm.
|
|
8
7
|
|
|
@@ -20,7 +20,7 @@ with a **tool-calling AI agent** on top that can run the same methods.
|
|
|
20
20
|
| `PWN::FFI::*` | **8** | Native DSP/RF backends: Volk · Liquid · FFTW · RTLSdr · HackRF · AdalmPluto · SoapySDR · Stdio |
|
|
21
21
|
| `PWN::AI::*` | **6** engines | OpenAI, Anthropic, Grok (OAuth device-flow), Gemini, Ollama, Open WebUI |
|
|
22
22
|
| `bin/pwn_*` + `pwn` | **54** | Headless CLI executables for CI/CD |
|
|
23
|
-
| Agent toolsets | **13** · **
|
|
23
|
+
| Agent toolsets | **13** · **88 tools** | terminal · pwn · memory · skills · sessions · learning · metrics · policy · extrospection · cron · swarm · reward · curriculum |
|
|
24
24
|
|
|
25
25
|
## Three ways to use it
|
|
26
26
|
|
data/documentation/pwn-REPL.md
CHANGED
|
@@ -26,7 +26,6 @@ commands.
|
|
|
26
26
|
| `pwn-ai-sessions` | `PWN::Sessions` | List/view/delete transcripts |
|
|
27
27
|
| `pwn-ai-cron` | `PWN::Cron` | List/run/toggle scheduled jobs |
|
|
28
28
|
| `pwn-ai-delegate` | `Agent::Swarm` | Send one request to a persona |
|
|
29
|
-
| `pwn-irc` | *(deprecated)* | Prints a pointer to `Agent::Swarm` - the IRC daemon transport is gone |
|
|
30
29
|
| `toggle-debug` | `Agent::Loop` / `Plugins::Log` | Stage log per operator request to `/tmp/pwn-ai-DEBUG-<SESSION_ID>-RN.log` |
|
|
31
30
|
| `toggle-trace` | `Agent::Loop` / `Plugins::Log` | Turns `toggle-debug` on with TracePoint; ENTER after each engine/tool step. Pry.config, not Env. Off turns both off. |
|
|
32
31
|
| `toggle-pwn-ai-speaks` | `Plugins::Voice` | TTS every final answer on/off |
|
|
@@ -101,7 +101,7 @@ $ pwn --ai "run bin/pwn_sast against ./src and push findings to DefectDojo"
|
|
|
101
101
|
|
|
102
102
|
## What the agent can call
|
|
103
103
|
|
|
104
|
-
13 toolsets · **
|
|
104
|
+
13 toolsets · **88 tools** - full table at
|
|
105
105
|
[Agent Tool Registry](Agent-Tool-Registry.md).
|
|
106
106
|
|
|
107
107
|
The two that matter most:
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: browser-exploitation
|
|
3
|
+
description: Use when attacking browsers. Proxy plus Debugger.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Browser exploitation
|
|
7
|
+
|
|
8
|
+
1. `PWN::Plugins::MitmProxy.start` and TransparentBrowser `proxy:`.
|
|
9
|
+
2. `replay` mutated requests; diff HAR entries.
|
|
10
|
+
3. Native crashes go through `PWN::Plugins::Debugger` and `REDB`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: firmware-unpack-emulate
|
|
3
|
+
description: Use when unpacking firmware. REDB on extracted bins.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Firmware unpack and emulate
|
|
7
|
+
|
|
8
|
+
1. Unpack with binwalk/firmware-mod-kit outside the radio path.
|
|
9
|
+
2. `PWN::Plugins::REDB.open` on extracted userland binaries.
|
|
10
|
+
3. Emulate with qemu user; debug via `PWN::Plugins::Debugger.launch`.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: heap-exploitation
|
|
3
|
+
description: Use when exploiting glibc heap. Debugger and REDB steps for tcache.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Heap exploitation (tcache / fastbin)
|
|
7
|
+
|
|
8
|
+
1. `PWN::Plugins::REDB.open(bin: path)` then `xrefs_to(sym: 'malloc')` and `xrefs_to(sym: 'free')`.
|
|
9
|
+
2. `PWN::Plugins::Debugger.launch(bin: path)` then `break(addr_or_sym: 'main')` and `run`.
|
|
10
|
+
3. Use `cyclic` / `cyclic_find` to locate overflow into tcache metadata (`tcache_perthread_struct`).
|
|
11
|
+
4. Confirm with `regs` and `read_mem` after `continue`. Write the proof via `Findings.record`.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kernel-pwn-triage
|
|
3
|
+
description: Use when triaging kernel bugs. Debugger and REDB first.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Kernel pwn triage
|
|
7
|
+
|
|
8
|
+
1. `PWN::Plugins::REDB.open(bin: vmlinux)` then `funcs` / `xrefs_to`.
|
|
9
|
+
2. `PWN::Plugins::Debugger.attach(host: '127.0.0.1', port: 1234)` to a QEMU gdbstub (`-s`).
|
|
10
|
+
3. `break(addr_or_sym: 'commit_creds')`, `continue`, `regs`, `backtrace`.
|
|
11
|
+
4. Record findings with evidence paths; do not guess offsets.
|
|
@@ -12,7 +12,7 @@ metadata:
|
|
|
12
12
|
|
|
13
13
|
# PWN::AI::Agent::Swarm
|
|
14
14
|
|
|
15
|
-
Native multi-agent orchestration for pwn-ai.
|
|
15
|
+
Native multi-agent orchestration for pwn-ai. First-class sub-agents built on top of PWN::AI::Agent::Loop.run. Each persona is a full tool-calling agent — Memory, Skills, Learning, Metrics and Extrospection all apply — so the self-improvement loop covers the whole swarm. ~/.pwn/agents.yml # persona registry ~/.pwn/swarm/<swarm_id>/bus.jsonl # append-only message bus ~/.pwn/swarm/<swarm_id>/personas.json# persona -> PWN::Sessions id Cross-session / cross-process communication == another pwn-ai (or a PWN::Cron job) calling Swarm.ask/debate with the same swarm_id and reading the same bus.jsonl. No daemon required.
|
|
16
16
|
|
|
17
17
|
## When to use
|
|
18
18
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-agent-tools-sbomscan
|
|
3
|
+
description: Drive PWN::Ai::Agent::Tools::SbomScan from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::Ai::Agent::Tools::SbomScan
|
|
10
|
+
source: pwn/ai/agent/tools/sbom_scan.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::Ai::Agent::Tools::SbomScan
|
|
14
|
+
|
|
15
|
+
Public API for PWN::Ai::Agent::Tools::SbomScan.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::Ai::Agent::Tools::SbomScan` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/agent/tools/sbom_scan.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::Ai::Agent::Tools::SbomScan.help
|
|
31
|
+
PWN::Ai::Agent::Tools::SbomScan.help(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- _(no public class methods parsed)_
|
|
37
|
+
|
|
38
|
+
## Source
|
|
39
|
+
|
|
40
|
+
`pwn/ai/agent/tools/sbom_scan.rb`
|
|
41
|
+
|
|
42
|
+
## Verification
|
|
43
|
+
|
|
44
|
+
`PWN::Ai::Agent::Tools::SbomScan.respond_to?(:help)` after the
|
|
45
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-corpus
|
|
3
|
+
description: Drive PWN::Corpus from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::Corpus
|
|
10
|
+
source: pwn/corpus.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::Corpus
|
|
14
|
+
|
|
15
|
+
Named wordlist and payload corpora under ~/.pwn/corpora.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::Corpus` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/corpus.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::Corpus.help
|
|
31
|
+
PWN::Corpus.get(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `get`
|
|
37
|
+
- `update`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/urls.md` — URLs from source
|
|
44
|
+
|
|
45
|
+
## Source
|
|
46
|
+
|
|
47
|
+
`pwn/corpus.rb`
|
|
48
|
+
|
|
49
|
+
## Verification
|
|
50
|
+
|
|
51
|
+
`PWN::Corpus.respond_to?(:get)` after the
|
|
52
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-engagement
|
|
3
|
+
description: Drive PWN::Engagement from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::Engagement
|
|
10
|
+
source: pwn/engagement.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::Engagement
|
|
14
|
+
|
|
15
|
+
Engagement scope, host state, and vault refs under ~/.pwn/engagements.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::Engagement` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/engagement.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::Engagement.help
|
|
31
|
+
PWN::Engagement.open(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `open`
|
|
37
|
+
- `close`
|
|
38
|
+
- `status`
|
|
39
|
+
- `in_scope`
|
|
40
|
+
- `warn_unless_in_scope`
|
|
41
|
+
- `record_host`
|
|
42
|
+
- `hosts`
|
|
43
|
+
- `merge_scan`
|
|
44
|
+
- `authors`
|
|
45
|
+
- `help`
|
|
46
|
+
- `in_scope?`
|
|
47
|
+
|
|
48
|
+
## Source
|
|
49
|
+
|
|
50
|
+
`pwn/engagement.rb`
|
|
51
|
+
|
|
52
|
+
## Verification
|
|
53
|
+
|
|
54
|
+
`PWN::Engagement.respond_to?(:open)` after the
|
|
55
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-plugins-debugger
|
|
3
|
+
description: Drive PWN::Plugins::Debugger from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::Plugins::Debugger
|
|
10
|
+
source: pwn/plugins/debugger.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::Plugins::Debugger
|
|
14
|
+
|
|
15
|
+
Structured GDB/MI driver with a handle registry that survives pwn_eval.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::Plugins::Debugger` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/plugins/debugger.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::Plugins::Debugger.help
|
|
31
|
+
PWN::Plugins::Debugger.required_bins(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `required_bins`
|
|
37
|
+
- `launch`
|
|
38
|
+
- `attach`
|
|
39
|
+
- `run`
|
|
40
|
+
- `break`
|
|
41
|
+
- `continue`
|
|
42
|
+
- `step`
|
|
43
|
+
- `read_mem`
|
|
44
|
+
- `write_mem`
|
|
45
|
+
- `regs`
|
|
46
|
+
- `backtrace`
|
|
47
|
+
- `checksec`
|
|
48
|
+
- `cyclic`
|
|
49
|
+
- `cyclic_find`
|
|
50
|
+
- `to_pwntools_offsets`
|
|
51
|
+
- `close`
|
|
52
|
+
- `authors`
|
|
53
|
+
- `help`
|
|
54
|
+
|
|
55
|
+
## Source
|
|
56
|
+
|
|
57
|
+
`pwn/plugins/debugger.rb`
|
|
58
|
+
|
|
59
|
+
## Verification
|
|
60
|
+
|
|
61
|
+
`PWN::Plugins::Debugger.respond_to?(:required_bins)` after the
|
|
62
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-plugins-handler
|
|
3
|
+
description: Drive PWN::Plugins::Handler from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::Plugins::Handler
|
|
10
|
+
source: pwn/plugins/handler.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::Plugins::Handler
|
|
14
|
+
|
|
15
|
+
Payload generation and listener sessions without Metasploit.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::Plugins::Handler` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/plugins/handler.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::Plugins::Handler.help
|
|
31
|
+
PWN::Plugins::Handler.required_bins(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `required_bins`
|
|
37
|
+
- `generate`
|
|
38
|
+
- `listen`
|
|
39
|
+
- `accept`
|
|
40
|
+
- `interact`
|
|
41
|
+
- `stop`
|
|
42
|
+
- `authors`
|
|
43
|
+
- `help`
|
|
44
|
+
|
|
45
|
+
## Source
|
|
46
|
+
|
|
47
|
+
`pwn/plugins/handler.rb`
|
|
48
|
+
|
|
49
|
+
## Verification
|
|
50
|
+
|
|
51
|
+
`PWN::Plugins::Handler.respond_to?(:required_bins)` after the
|
|
52
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-plugins-redb
|
|
3
|
+
description: Drive PWN::Plugins::REDB from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::Plugins::REDB
|
|
10
|
+
source: pwn/plugins/redb.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::Plugins::REDB
|
|
14
|
+
|
|
15
|
+
Persistent per-binary analysis DB under ~/.pwn/redb.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::Plugins::REDB` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/plugins/redb.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::Plugins::REDB.help
|
|
31
|
+
PWN::Plugins::REDB.open(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `open`
|
|
37
|
+
- `funcs`
|
|
38
|
+
- `xrefs_to`
|
|
39
|
+
- `strings`
|
|
40
|
+
- `decompile`
|
|
41
|
+
- `annotate`
|
|
42
|
+
- `authors`
|
|
43
|
+
- `help`
|
|
44
|
+
|
|
45
|
+
## Source
|
|
46
|
+
|
|
47
|
+
`pwn/plugins/redb.rb`
|
|
48
|
+
|
|
49
|
+
## Verification
|
|
50
|
+
|
|
51
|
+
`PWN::Plugins::REDB.respond_to?(:open)` after the
|
|
52
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-plugins-sbom
|
|
3
|
+
description: Drive PWN::Plugins::SBOM from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::Plugins::SBOM
|
|
10
|
+
source: pwn/plugins/sbom.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::Plugins::SBOM
|
|
14
|
+
|
|
15
|
+
Generic lockfile/image CVE scan with engine selection.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::Plugins::SBOM` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/plugins/sbom.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::Plugins::SBOM.help
|
|
31
|
+
PWN::Plugins::SBOM.required_bins(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `required_bins`
|
|
37
|
+
- `scan`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## Source
|
|
42
|
+
|
|
43
|
+
`pwn/plugins/sbom.rb`
|
|
44
|
+
|
|
45
|
+
## Verification
|
|
46
|
+
|
|
47
|
+
`PWN::Plugins::SBOM.respond_to?(:required_bins)` after the
|
|
48
|
+
module is loaded. Read the source for parameter names.
|