pwn 0.5.629 → 0.5.631
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/README.md +21 -21
- data/documentation/AI-Integration.md +9 -9
- data/documentation/AWS.md +2 -2
- data/documentation/Agent-Tool-Registry.md +1 -1
- data/documentation/Banner.md +1 -1
- data/documentation/Blockchain.md +3 -3
- data/documentation/Bounty.md +4 -4
- data/documentation/BurpSuite.md +2 -2
- data/documentation/CLI-Drivers.md +3 -3
- data/documentation/Configuration.md +58 -58
- data/documentation/Contributing.md +3 -3
- data/documentation/Cron.md +5 -5
- data/documentation/Diagrams.md +4 -4
- data/documentation/Drivers.md +4 -4
- data/documentation/Extrospection.md +149 -149
- data/documentation/FFI.md +50 -25
- data/documentation/Fuzzing.md +2 -2
- data/documentation/General-PWN-Usage.md +1 -1
- data/documentation/Hardware.md +8 -8
- data/documentation/Home.md +6 -6
- data/documentation/How-PWN-Works.md +11 -11
- data/documentation/Installation.md +18 -18
- data/documentation/Metasploit.md +4 -4
- data/documentation/Mistakes.md +22 -22
- data/documentation/NmapIt.md +1 -1
- data/documentation/Persistence.md +6 -6
- data/documentation/Plugins.md +11 -11
- data/documentation/Reporting.md +3 -3
- data/documentation/SAST.md +1 -1
- data/documentation/SDR.md +54 -20
- data/documentation/Sessions.md +5 -5
- data/documentation/Skills-Memory-Learning.md +67 -67
- data/documentation/Swarm.md +8 -8
- data/documentation/Transparent-Browser.md +9 -9
- data/documentation/Troubleshooting.md +8 -8
- data/documentation/WWW.md +2 -2
- data/documentation/What-is-PWN.md +10 -10
- data/documentation/Why-PWN.md +4 -4
- data/documentation/diagrams/agent-tool-registry.svg +1 -1
- data/documentation/diagrams/ai-integration-tool-calling.svg +2 -2
- data/documentation/diagrams/aws-cloud-security.svg +1 -1
- data/documentation/diagrams/burp-vs-zap-preference.svg +27 -27
- data/documentation/diagrams/code-scanning-sast.svg +1 -1
- data/documentation/diagrams/cron-scheduling.svg +1 -1
- data/documentation/diagrams/dot/_THEME.md +1 -1
- data/documentation/diagrams/dot/agent-tool-registry.dot +1 -1
- data/documentation/diagrams/dot/ai-integration-tool-calling.dot +2 -2
- data/documentation/diagrams/dot/aws-cloud-security.dot +1 -1
- data/documentation/diagrams/dot/burp-vs-zap-preference.dot +1 -1
- data/documentation/diagrams/dot/code-scanning-sast.dot +1 -1
- data/documentation/diagrams/dot/cron-scheduling.dot +1 -1
- data/documentation/diagrams/dot/driver-framework.dot +1 -1
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +1 -1
- data/documentation/diagrams/dot/history-to-drivers.dot +1 -1
- data/documentation/diagrams/dot/memory-skills-detailed.dot +1 -1
- data/documentation/diagrams/dot/mistakes-negative-feedback.dot +6 -6
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +1 -1
- data/documentation/diagrams/dot/persistence-filesystem.dot +2 -2
- data/documentation/diagrams/dot/plugin-ecosystem.dot +1 -1
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +1 -1
- data/documentation/diagrams/dot/pwn-repl-prototyping.dot +1 -1
- data/documentation/diagrams/dot/reporting-pipeline.dot +1 -1
- data/documentation/diagrams/dot/sdr-radio-flow.dot +16 -12
- data/documentation/diagrams/dot/sessions-cron-automation.dot +1 -1
- data/documentation/diagrams/dot/swarm-multi-agent.dot +1 -1
- data/documentation/diagrams/driver-framework.svg +1 -1
- data/documentation/diagrams/extrospection-world-awareness.svg +1 -1
- data/documentation/diagrams/history-to-drivers.svg +32 -32
- data/documentation/diagrams/memory-skills-detailed.svg +1 -1
- data/documentation/diagrams/mistakes-negative-feedback.svg +51 -51
- data/documentation/diagrams/overall-pwn-architecture.svg +1 -1
- data/documentation/diagrams/persistence-filesystem.svg +102 -101
- data/documentation/diagrams/plugin-ecosystem.svg +1 -1
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +1 -1
- data/documentation/diagrams/pwn-repl-prototyping.svg +1 -1
- data/documentation/diagrams/reporting-pipeline.svg +1 -1
- data/documentation/diagrams/sdr-radio-flow.svg +181 -146
- data/documentation/diagrams/sessions-cron-automation.svg +1 -1
- data/documentation/diagrams/swarm-multi-agent.svg +1 -1
- data/documentation/pwn-REPL.md +7 -7
- data/documentation/pwn-ai-Agent.md +15 -15
- data/lib/pwn/ai/agent/extrospection.rb +39 -39
- data/lib/pwn/ai/agent/tools/extrospection.rb +20 -20
- data/lib/pwn/config.rb +1 -1
- data/lib/pwn/ffi/hack_rf.rb +119 -0
- data/lib/pwn/ffi/soapy_sdr.rb +165 -3
- data/lib/pwn/sdr/decoder/adsb.rb +1 -1
- data/lib/pwn/sdr/decoder/base.rb +30 -16
- data/lib/pwn/sdr/decoder/flex.rb +378 -120
- data/lib/pwn/sdr/decoder/rtl433.rb +1 -1
- data/lib/pwn/sdr/decoder/rtty.rb +1 -1
- data/lib/pwn/sdr/decoder.rb +1 -1
- data/lib/pwn/sdr/gqrx.rb +7 -7
- data/lib/pwn/version.rb +1 -1
- data/spec/lib/pwn/sdr/decoder/flex_spec.rb +67 -0
- data/third_party/pwn_rdoc.jsonl +25 -11
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f125b1fd9398d2de99e6b311a1950e646992736f38552b818cb269e9d8704a6d
|
|
4
|
+
data.tar.gz: a84266bb38a93fecb6e8c5fa0b5c73b638dcaa9196838a436c31127f95eedf31
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9a2114b37283201211235e16fb558b51e5eb64ebec22d164898fc5b40db763696f56fdea8a99e9cf3905701fa3738a866726822a797e970a1de64c3ded54503d
|
|
7
|
+
data.tar.gz: fb3452718e38139450c34b8de7905188906e5d10935aabb592f6c96c0789e61ab1e29d4b4bc6e4563c1c124ffa87c835c4c417bccd99a0c919a93443e757f70f
|
data/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!--  -->
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<img src="documentation/pwn_silent_help_learn_demo.gif" alt="PWN Silent Demo
|
|
4
|
+
<img src="documentation/pwn_silent_help_learn_demo.gif" alt="PWN Silent Demo - Help Surfaces + Learning Feedback Loop" width="640">
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
### **Table of Contents** ###
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
|
|
25
25
|
#### **What is PWN** ####
|
|
26
26
|
|
|
27
|
-
PWN (pronounced /pōn/
|
|
27
|
+
PWN (pronounced /pōn/ - *pone*) is an open-source **offensive-security
|
|
28
28
|
automation framework** and **continuous-security-integration** platform.
|
|
29
29
|
It gives security researchers, red teamers, penetration testers and
|
|
30
30
|
vulnerability researchers a single, scriptable Ruby surface over the entire
|
|
31
|
-
offensive toolchain
|
|
32
|
-
hardware / radio exploitation, to reporting and disclosure
|
|
31
|
+
offensive toolchain - from OSINT and network discovery, through web / cloud /
|
|
32
|
+
hardware / radio exploitation, to reporting and disclosure - and puts a
|
|
33
33
|
**self-improving, tool-calling, multi-agent AI** on top of it.
|
|
34
34
|
|
|
35
35
|
**In numbers:** 66 `PWN::Plugins` · 48 `PWN::SAST` rules · 90 `PWN::AWS`
|
|
@@ -43,7 +43,7 @@ Full page: [What is PWN](documentation/What-is-PWN.md)
|
|
|
43
43
|
Offensive security is a *toolchain problem*. PWN's bet is that the right
|
|
44
44
|
abstraction is **plain Ruby methods with a uniform `opts = {}` signature**,
|
|
45
45
|
exposed simultaneously to a human in a REPL, an LLM in a tool-calling loop, a
|
|
46
|
-
shell script in CI, and a cron job at 3 am
|
|
46
|
+
shell script in CI, and a cron job at 3 am - all open-source and auditable,
|
|
47
47
|
which matters when the caller is autonomous.
|
|
48
48
|
|
|
49
49
|
Full page: [Why PWN](documentation/Why-PWN.md)
|
|
@@ -54,10 +54,10 @@ Five layers, edges only ever go down:
|
|
|
54
54
|
|
|
55
55
|

|
|
56
56
|
|
|
57
|
-
The AI layer closes a **self-improvement loop** on every turn
|
|
57
|
+
The AI layer closes a **self-improvement loop** on every turn - Metrics +
|
|
58
58
|
Learning + **Mistakes** (introspection / negative feedback) joined with
|
|
59
|
-
Snapshot + Drift + Intel + RF + **Web** (extrospection)
|
|
60
|
-
agent knows whether a failure was *its* fault or *the world* changed
|
|
59
|
+
Snapshot + Drift + Intel + RF + **Web** (extrospection) - plus browser-backed **`extro_verify`** / **`extro_watch`** and RF **`extro_rf_tune`** sensing - via `extro_correlate`, so the
|
|
60
|
+
agent knows whether a failure was *its* fault or *the world* changed -
|
|
61
61
|
**and does not repeat the same mistake twice**:
|
|
62
62
|
|
|
63
63
|

|
|
@@ -68,8 +68,8 @@ on the next recurrence:
|
|
|
68
68
|
|
|
69
69
|

|
|
70
70
|
|
|
71
|
-
And **Swarm** runs multiple personas
|
|
72
|
-
optionally on a *different* LLM engine
|
|
71
|
+
And **Swarm** runs multiple personas - each a full tool-calling agent,
|
|
72
|
+
optionally on a *different* LLM engine - over a shared append-only bus:
|
|
73
73
|
|
|
74
74
|

|
|
75
75
|
|
|
@@ -103,17 +103,17 @@ Rebuild every SVG from its Graphviz source:
|
|
|
103
103
|
|
|
104
104
|
### **Installation** ###
|
|
105
105
|
|
|
106
|
-
PWN is a **single gem** with a built-in post-install doctor/provisioner
|
|
107
|
-
`pwn setup`
|
|
106
|
+
PWN is a **single gem** with a built-in post-install doctor/provisioner -
|
|
107
|
+
`pwn setup` - that detects your package manager (`apt` · `dnf` · `pacman` ·
|
|
108
108
|
`brew` · `port`) and installs exactly the OS headers + external tools each
|
|
109
109
|
`PWN::` capability needs. Tested on Kali/Debian/Ubuntu, Fedora, Arch, macOS.
|
|
110
110
|
|
|
111
111
|
```
|
|
112
112
|
$ gem install pwn
|
|
113
113
|
$ pwn setup # read-only doctor: which capabilities are usable?
|
|
114
|
-
$ pwn setup --profile full --yes # provision everything (or: web | net | sdr | vision |
|
|
114
|
+
$ pwn setup --profile full --yes # provision everything (or: web | net | sdr | vision | ...)
|
|
115
115
|
$ pwn
|
|
116
|
-
pwn[v0.5.
|
|
116
|
+
pwn[v0.5.631]:001 >>> PWN.help
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
Only need a subset?
|
|
@@ -140,14 +140,14 @@ Full page: [Installation](documentation/Installation.md) ·
|
|
|
140
140
|
[General Usage Quick-Start](https://github.com/0dayinc/pwn/wiki/General-PWN-Usage) ·
|
|
141
141
|
local: [General PWN Usage](documentation/General-PWN-Usage.md)
|
|
142
142
|
|
|
143
|
-
Update PWN frequently
|
|
143
|
+
Update PWN frequently - new plugins, agent tools, skills and zero-day tooling
|
|
144
144
|
land regularly:
|
|
145
145
|
|
|
146
146
|
```
|
|
147
147
|
$ gem update pwn
|
|
148
|
-
$ pwn setup # re-doctor
|
|
148
|
+
$ pwn setup # re-doctor - new versions may add capabilities
|
|
149
149
|
$ pwn
|
|
150
|
-
pwn[v0.5.
|
|
150
|
+
pwn[v0.5.631]:001 >>> PWN.help
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
From a git checkout:
|
|
@@ -158,7 +158,7 @@ $ cd /opt/pwn && git pull && rake install && pwn setup
|
|
|
158
158
|
|
|
159
159
|
**Inside the `pwn` REPL:**
|
|
160
160
|
- Full access to every `PWN::` module.
|
|
161
|
-
- `pwn-ai`
|
|
161
|
+
- `pwn-ai` - launch the autonomous agent TUI (SHIFT+ENTER newline, ENTER submit).
|
|
162
162
|
- `pwn-asm`, `pwn-ai-memory`, `pwn-ai-sessions`, `pwn-ai-cron`, `pwn-ai-delegate`.
|
|
163
163
|
|
|
164
164
|
**Headless / CI one-shot (`pwn --ai`):**
|
|
@@ -181,7 +181,7 @@ $ pwn setup --profile web --yes && pwn setup --check # exits 1 if degraded
|
|
|
181
181
|
|
|
182
182
|
Contributions that expand PWN's offensive capabilities are welcome. If you can
|
|
183
183
|
provide access to additional commercial LLMs, security scanners, or bounty
|
|
184
|
-
platforms
|
|
184
|
+
platforms - or wish to contribute plugins, AI skills, or exploit modules -
|
|
185
185
|
please [email us](mailto:support@0dayinc.com). See
|
|
186
186
|
[CONTRIBUTING.md](https://github.com/0dayInc/pwn/blob/master/CONTRIBUTING.md)
|
|
187
187
|
and the local [Contributing](documentation/Contributing.md) page.
|
|
@@ -190,7 +190,7 @@ and the local [Contributing](documentation/Contributing.md) page.
|
|
|
190
190
|
|
|
191
191
|
### **Module Documentation** ###
|
|
192
192
|
|
|
193
|
-
**Primary:** [`documentation/Home.md`](documentation/Home.md)
|
|
193
|
+
**Primary:** [`documentation/Home.md`](documentation/Home.md) - the full local
|
|
194
194
|
wiki with 30+ pages and 26 SVG data-flow diagrams.
|
|
195
195
|
|
|
196
196
|
**API reference:** [rubydoc.info/gems/pwn](https://www.rubydoc.info/gems/pwn),
|
|
@@ -206,7 +206,7 @@ Highlights:
|
|
|
206
206
|
[SAST](documentation/SAST.md) ·
|
|
207
207
|
[AI Integration](documentation/AI-Integration.md)
|
|
208
208
|
|
|
209
|
-
I hope you enjoy PWN
|
|
209
|
+
I hope you enjoy PWN - and remember: **always have permission** before any
|
|
210
210
|
security testing. Now go pwn all the things (responsibly)!
|
|
211
211
|
|
|
212
212
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# AI / LLM Integration
|
|
1
|
+
# AI / LLM Integration - `PWN::AI`
|
|
2
2
|
|
|
3
3
|
One agent loop, five interchangeable engines. Swap providers by changing one
|
|
4
4
|
line in `~/.pwn/pwn.yaml`; the tool-calling contract is normalised so the
|
|
@@ -12,12 +12,12 @@ agent code never cares which model is behind it.
|
|
|
12
12
|
|---|---|---|---|
|
|
13
13
|
| `openai` | `PWN::AI::OpenAI` | `key:` | function-calling native |
|
|
14
14
|
| `anthropic` | `PWN::AI::Anthropic` | `key:` | tool-use native |
|
|
15
|
-
| `grok` | `PWN::AI::Grok` | `key:` **or** `oauth: true` | OAuth = RFC-8628 device-code flow using xAI's public Grok-CLI client id (no secret)
|
|
15
|
+
| `grok` | `PWN::AI::Grok` | `key:` **or** `oauth: true` | OAuth = RFC-8628 device-code flow using xAI's public Grok-CLI client id (no secret) - see skill `xai_grok_oauth_device_flow` |
|
|
16
16
|
| `gemini` | `PWN::AI::Gemini` | `key:` | function-calling native |
|
|
17
|
-
| `ollama` | `PWN::AI::Ollama` | none | local
|
|
17
|
+
| `ollama` | `PWN::AI::Ollama` | none | local - native `/api/chat` (`num_ctx`, `keep_alive`, low-temp + `format:'json'` on tool turns) and `/api/embed` for `PWN::MemoryIndex` |
|
|
18
18
|
|
|
19
19
|
> PWN is **model-agnostic**. `ai.<engine>.model` is passed straight through to
|
|
20
|
-
> the provider
|
|
20
|
+
> the provider - the codebase and docs deliberately never name a specific
|
|
21
21
|
> model id so you can point each engine at whatever the vendor currently
|
|
22
22
|
> ships (or whatever `ollama list` shows locally).
|
|
23
23
|
|
|
@@ -29,7 +29,7 @@ ai:
|
|
|
29
29
|
active: grok
|
|
30
30
|
grok:
|
|
31
31
|
oauth:
|
|
32
|
-
enroll: true # first run opens https://accounts.x.ai
|
|
32
|
+
enroll: true # first run opens https://accounts.x.ai/... device page
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
```ruby
|
|
@@ -37,7 +37,7 @@ ai:
|
|
|
37
37
|
PWN::Env[:ai][:active] = :ollama
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
## Engine-aware
|
|
40
|
+
## Engine-aware behavior
|
|
41
41
|
|
|
42
42
|
The harness adapts to the *class* of engine, not the model name:
|
|
43
43
|
|
|
@@ -48,9 +48,9 @@ The harness adapts to the *class* of engine, not the model name:
|
|
|
48
48
|
| **Tool schemas shipped** | all toolsets | `CORE_TOOLS` + top-K keyword matches when `ai.agent.tool_router` is on |
|
|
49
49
|
| **Pre-pass** | none | `plan_first` numbered tool plan before first dispatch |
|
|
50
50
|
| **Few-shot** | none | `Learning.exemplars_for(request)` splices a prior successful trace |
|
|
51
|
-
| **Dispatch parsing** | strict | tolerant
|
|
51
|
+
| **Dispatch parsing** | strict | tolerant - Levenshtein tool-name repair + JSON5-ish arg cleanup, each repair fingerprinted into `Mistakes` |
|
|
52
52
|
| **Post-answer** | `auto_introspect` | `auto_introspect` **+** `fact_check_local_final` (auto `extro_verify` on CVE/version-shaped claims) |
|
|
53
|
-
| **Metrics bucket** | `metrics.json[:tools][name][:engines][:<engine>]` | same
|
|
53
|
+
| **Metrics bucket** | `metrics.json[:tools][name][:engines][:<engine>]` | same - the `TOOL EFFECTIVENESS` block is per-engine so local telemetry never blends with frontier |
|
|
54
54
|
|
|
55
55
|
## Teacher-student reflection
|
|
56
56
|
|
|
@@ -78,7 +78,7 @@ puts resp[:content]
|
|
|
78
78
|
## Model diversity in Swarm
|
|
79
79
|
|
|
80
80
|
Because each persona in [`agents.yml`](Swarm.md) can override `engine:`, an
|
|
81
|
-
`agent_debate` can pit five *different providers* against each other
|
|
81
|
+
`agent_debate` can pit five *different providers* against each other - real
|
|
82
82
|
antagonism, not one model role-playing three voices. The same mechanism backs
|
|
83
83
|
`ai.agent.escalation_persona`: when a local model is stuck, `Loop.run` asks a
|
|
84
84
|
frontier persona for a 3-line corrective hint and injects it as a synthetic
|
data/documentation/AWS.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# `PWN::AWS`
|
|
1
|
+
# `PWN::AWS` - Cloud Security (90 service wrappers)
|
|
2
2
|
|
|
3
3
|
One thin module per AWS service, each wrapping the official `aws-sdk-*` gem
|
|
4
4
|
with the PWN `opts = {}` convention so they compose in the REPL and in
|
|
@@ -51,7 +51,7 @@ CLI: `pwn_aws_describe_resources -r us-east-1 -o out/`
|
|
|
51
51
|
`ec2:RunInstances` with instance profile.
|
|
52
52
|
- **Persist** → new access key, Lambda backdoor, EC2 userdata.
|
|
53
53
|
|
|
54
|
-
Record everything with `extro_observe(source: 'aws',
|
|
54
|
+
Record everything with `extro_observe(source: 'aws', ...)` so
|
|
55
55
|
[Extrospection](Extrospection.md) can correlate later.
|
|
56
56
|
|
|
57
57
|
[← Home](Home.md)
|
|
@@ -24,7 +24,7 @@ toolsets; the JSON-Schema for each tool is what the model actually sees.
|
|
|
24
24
|
|
|
25
25
|
## Dynamic tool-set slimming (`ai.agent.tool_router`)
|
|
26
26
|
|
|
27
|
-
Shipping every schema on every turn overwhelms a small local model
|
|
27
|
+
Shipping every schema on every turn overwhelms a small local model - the
|
|
28
28
|
choice space is huge and it mis-routes (e.g. picks an RF tool for a git
|
|
29
29
|
question). When `ai.agent.tool_router: true` **and** `Loop.run` passes the
|
|
30
30
|
user request through as `relevance:`, `Registry.definitions` shrinks the
|
data/documentation/Banner.md
CHANGED
data/documentation/Blockchain.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# `PWN::Blockchain`
|
|
1
|
+
# `PWN::Blockchain` - BTC · ETH
|
|
2
2
|
|
|
3
3
|
Lightweight helpers for on-chain recon and wallet interaction.
|
|
4
4
|
Source: `lib/pwn/blockchain/*.rb`.
|
|
@@ -11,8 +11,8 @@ Source: `lib/pwn/blockchain/*.rb`.
|
|
|
11
11
|
Also exposed to the agent via `PWN::AI::Agent::BTC` for wallet-aware prompts.
|
|
12
12
|
|
|
13
13
|
```ruby
|
|
14
|
-
PWN::Blockchain::BTC.balance(address: 'bc1q
|
|
15
|
-
PWN::Blockchain::ETH.call(contract: '0x
|
|
14
|
+
PWN::Blockchain::BTC.balance(address: 'bc1q...')
|
|
15
|
+
PWN::Blockchain::ETH.call(contract: '0x...', method: 'owner()')
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
[← Home](Home.md)
|
data/documentation/Bounty.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# `PWN::Bounty`
|
|
1
|
+
# `PWN::Bounty` - Bug-Bounty Lifecycle Tooling
|
|
2
2
|
|
|
3
3
|
| Module | Purpose |
|
|
4
4
|
|---|---|
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
Pairs naturally with:
|
|
8
8
|
|
|
9
|
-
- [`PWN::WWW::HackerOne`](WWW.md) / `BugCrowd` / `Synack`
|
|
10
|
-
- `PWN::Plugins::HackerOne`
|
|
11
|
-
- [`PWN::Plugins::BurpSuite`](BurpSuite.md)
|
|
9
|
+
- [`PWN::WWW::HackerOne`](WWW.md) / `BugCrowd` / `Synack` - programme navigation
|
|
10
|
+
- `PWN::Plugins::HackerOne` - submissions API
|
|
11
|
+
- [`PWN::Plugins::BurpSuite`](BurpSuite.md) - capture the session to replay
|
|
12
12
|
|
|
13
13
|
```ruby
|
|
14
14
|
PWN::Bounty::LifecycleAuthzReplay.start(
|
data/documentation/BurpSuite.md
CHANGED
|
@@ -6,7 +6,7 @@ Professional's headless mode + REST API.
|
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
|
-
> **Install:** `pwn setup --profile web`
|
|
9
|
+
> **Install:** `pwn setup --profile web` - burpsuite · zaproxy · chromium ·
|
|
10
10
|
> geckodriver · sqlmap · tor. See [Installation](Installation.md).
|
|
11
11
|
|
|
12
12
|
## Configure
|
|
@@ -42,7 +42,7 @@ PWN::Plugins::BurpSuite.stop(burp_obj: burp)
|
|
|
42
42
|
## CLI drivers
|
|
43
43
|
|
|
44
44
|
- `pwn_burp_suite_pro_active_scan -t URL -o out/`
|
|
45
|
-
- `pwn_burp_suite_pro_active_rest_api_scan`
|
|
45
|
+
- `pwn_burp_suite_pro_active_rest_api_scan` - pure REST, no JVM spawn
|
|
46
46
|
|
|
47
47
|
## Why preferred over ZAP
|
|
48
48
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# CLI Drivers
|
|
1
|
+
# CLI Drivers - `bin/pwn_*`
|
|
2
2
|
|
|
3
3
|
53 headless executables, each a thin `OptionParser` wrapper over one plugin
|
|
4
4
|
(or one workflow). They exist so CI/CD can call PWN without a REPL or an LLM.
|
|
@@ -37,7 +37,7 @@ pwn_jenkins_install_plugin pwn_www_uri_buster
|
|
|
37
37
|
|
|
38
38
|
Run any with `--help` for its flags.
|
|
39
39
|
|
|
40
|
-
## `pwn_setup`
|
|
40
|
+
## `pwn_setup` - post-install doctor & capability provisioner
|
|
41
41
|
|
|
42
42
|
The one driver that isn't a plugin wrapper. It grows a bare `gem install pwn`
|
|
43
43
|
into a fully-armed host by installing OS headers / external tools for whatever
|
|
@@ -69,7 +69,7 @@ sast:
|
|
|
69
69
|
|
|
70
70
|
## Write your own
|
|
71
71
|
|
|
72
|
-
See [Drivers](Drivers.md)
|
|
72
|
+
See [Drivers](Drivers.md) - copy any file in `bin/`, swap the plugin call,
|
|
73
73
|
`rake install`, done.
|
|
74
74
|
|
|
75
75
|
[← Home](Home.md)
|