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.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -21
  3. data/documentation/AI-Integration.md +9 -9
  4. data/documentation/AWS.md +2 -2
  5. data/documentation/Agent-Tool-Registry.md +1 -1
  6. data/documentation/Banner.md +1 -1
  7. data/documentation/Blockchain.md +3 -3
  8. data/documentation/Bounty.md +4 -4
  9. data/documentation/BurpSuite.md +2 -2
  10. data/documentation/CLI-Drivers.md +3 -3
  11. data/documentation/Configuration.md +58 -58
  12. data/documentation/Contributing.md +3 -3
  13. data/documentation/Cron.md +5 -5
  14. data/documentation/Diagrams.md +4 -4
  15. data/documentation/Drivers.md +4 -4
  16. data/documentation/Extrospection.md +149 -149
  17. data/documentation/FFI.md +50 -25
  18. data/documentation/Fuzzing.md +2 -2
  19. data/documentation/General-PWN-Usage.md +1 -1
  20. data/documentation/Hardware.md +8 -8
  21. data/documentation/Home.md +6 -6
  22. data/documentation/How-PWN-Works.md +11 -11
  23. data/documentation/Installation.md +18 -18
  24. data/documentation/Metasploit.md +4 -4
  25. data/documentation/Mistakes.md +22 -22
  26. data/documentation/NmapIt.md +1 -1
  27. data/documentation/Persistence.md +6 -6
  28. data/documentation/Plugins.md +11 -11
  29. data/documentation/Reporting.md +3 -3
  30. data/documentation/SAST.md +1 -1
  31. data/documentation/SDR.md +54 -20
  32. data/documentation/Sessions.md +5 -5
  33. data/documentation/Skills-Memory-Learning.md +67 -67
  34. data/documentation/Swarm.md +8 -8
  35. data/documentation/Transparent-Browser.md +9 -9
  36. data/documentation/Troubleshooting.md +8 -8
  37. data/documentation/WWW.md +2 -2
  38. data/documentation/What-is-PWN.md +10 -10
  39. data/documentation/Why-PWN.md +4 -4
  40. data/documentation/diagrams/agent-tool-registry.svg +1 -1
  41. data/documentation/diagrams/ai-integration-tool-calling.svg +2 -2
  42. data/documentation/diagrams/aws-cloud-security.svg +1 -1
  43. data/documentation/diagrams/burp-vs-zap-preference.svg +27 -27
  44. data/documentation/diagrams/code-scanning-sast.svg +1 -1
  45. data/documentation/diagrams/cron-scheduling.svg +1 -1
  46. data/documentation/diagrams/dot/_THEME.md +1 -1
  47. data/documentation/diagrams/dot/agent-tool-registry.dot +1 -1
  48. data/documentation/diagrams/dot/ai-integration-tool-calling.dot +2 -2
  49. data/documentation/diagrams/dot/aws-cloud-security.dot +1 -1
  50. data/documentation/diagrams/dot/burp-vs-zap-preference.dot +1 -1
  51. data/documentation/diagrams/dot/code-scanning-sast.dot +1 -1
  52. data/documentation/diagrams/dot/cron-scheduling.dot +1 -1
  53. data/documentation/diagrams/dot/driver-framework.dot +1 -1
  54. data/documentation/diagrams/dot/extrospection-world-awareness.dot +1 -1
  55. data/documentation/diagrams/dot/history-to-drivers.dot +1 -1
  56. data/documentation/diagrams/dot/memory-skills-detailed.dot +1 -1
  57. data/documentation/diagrams/dot/mistakes-negative-feedback.dot +6 -6
  58. data/documentation/diagrams/dot/overall-pwn-architecture.dot +1 -1
  59. data/documentation/diagrams/dot/persistence-filesystem.dot +2 -2
  60. data/documentation/diagrams/dot/plugin-ecosystem.dot +1 -1
  61. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +1 -1
  62. data/documentation/diagrams/dot/pwn-repl-prototyping.dot +1 -1
  63. data/documentation/diagrams/dot/reporting-pipeline.dot +1 -1
  64. data/documentation/diagrams/dot/sdr-radio-flow.dot +16 -12
  65. data/documentation/diagrams/dot/sessions-cron-automation.dot +1 -1
  66. data/documentation/diagrams/dot/swarm-multi-agent.dot +1 -1
  67. data/documentation/diagrams/driver-framework.svg +1 -1
  68. data/documentation/diagrams/extrospection-world-awareness.svg +1 -1
  69. data/documentation/diagrams/history-to-drivers.svg +32 -32
  70. data/documentation/diagrams/memory-skills-detailed.svg +1 -1
  71. data/documentation/diagrams/mistakes-negative-feedback.svg +51 -51
  72. data/documentation/diagrams/overall-pwn-architecture.svg +1 -1
  73. data/documentation/diagrams/persistence-filesystem.svg +102 -101
  74. data/documentation/diagrams/plugin-ecosystem.svg +1 -1
  75. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +1 -1
  76. data/documentation/diagrams/pwn-repl-prototyping.svg +1 -1
  77. data/documentation/diagrams/reporting-pipeline.svg +1 -1
  78. data/documentation/diagrams/sdr-radio-flow.svg +181 -146
  79. data/documentation/diagrams/sessions-cron-automation.svg +1 -1
  80. data/documentation/diagrams/swarm-multi-agent.svg +1 -1
  81. data/documentation/pwn-REPL.md +7 -7
  82. data/documentation/pwn-ai-Agent.md +15 -15
  83. data/lib/pwn/ai/agent/extrospection.rb +39 -39
  84. data/lib/pwn/ai/agent/tools/extrospection.rb +20 -20
  85. data/lib/pwn/config.rb +1 -1
  86. data/lib/pwn/ffi/hack_rf.rb +119 -0
  87. data/lib/pwn/ffi/soapy_sdr.rb +165 -3
  88. data/lib/pwn/sdr/decoder/adsb.rb +1 -1
  89. data/lib/pwn/sdr/decoder/base.rb +30 -16
  90. data/lib/pwn/sdr/decoder/flex.rb +378 -120
  91. data/lib/pwn/sdr/decoder/rtl433.rb +1 -1
  92. data/lib/pwn/sdr/decoder/rtty.rb +1 -1
  93. data/lib/pwn/sdr/decoder.rb +1 -1
  94. data/lib/pwn/sdr/gqrx.rb +7 -7
  95. data/lib/pwn/version.rb +1 -1
  96. data/spec/lib/pwn/sdr/decoder/flex_spec.rb +67 -0
  97. data/third_party/pwn_rdoc.jsonl +25 -11
  98. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f0c536ea0f5b7dbd2c88621241adfa866f7ed726ee4e2109abe83aef13b0385
4
- data.tar.gz: 7e3bc1436b9ce27c63da25dc609eab317a009b1339a843a6cdfe03469386b195
3
+ metadata.gz: f125b1fd9398d2de99e6b311a1950e646992736f38552b818cb269e9d8704a6d
4
+ data.tar.gz: a84266bb38a93fecb6e8c5fa0b5c73b638dcaa9196838a436c31127f95eedf31
5
5
  SHA512:
6
- metadata.gz: 572496cd5d2754022fdb35c360db8e5fec65cd91693ea196f8e44666c28141f198b3353146cd658aa07b93d0add52e3808448fe0836b38830c2fb1b553d8dad2
7
- data.tar.gz: 7dc0f6160402b01d8acb694e72d86daef36743fd9b9f0b84a2f87da0d77367798e8ef429463e25f36747f359c5b621615e61e26df29033de9561a24d926af4a6
6
+ metadata.gz: 9a2114b37283201211235e16fb558b51e5eb64ebec22d164898fc5b40db763696f56fdea8a99e9cf3905701fa3738a866726822a797e970a1de64c3ded54503d
7
+ data.tar.gz: fb3452718e38139450c34b8de7905188906e5d10935aabb592f6c96c0789e61ab1e29d4b4bc6e4563c1c124ffa87c835c4c417bccd99a0c919a93443e757f70f
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- ![PWN](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/PWN.png) -->
2
2
 
3
3
  <p align="center">
4
- <img src="documentation/pwn_silent_help_learn_demo.gif" alt="PWN Silent Demo Help Surfaces + Learning Feedback Loop" width="640">
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/ *pone*) is an open-source **offensive-security
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 from OSINT and network discovery, through web / cloud /
32
- hardware / radio exploitation, to reporting and disclosure and puts a
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 all open-source and auditable,
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
  ![PWN Overall Architecture](documentation/diagrams/overall-pwn-architecture.svg)
56
56
 
57
- The AI layer closes a **self-improvement loop** on every turn Metrics +
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) 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
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
  ![pwn-ai Feedback Learning Loop](documentation/diagrams/pwn-ai-feedback-learning-loop.svg)
@@ -68,8 +68,8 @@ on the next recurrence:
68
68
 
69
69
  ![Mistakes Negative-Feedback Loop](documentation/diagrams/mistakes-negative-feedback.svg)
70
70
 
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:
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
  ![Swarm Multi-Agent](documentation/diagrams/swarm-multi-agent.svg)
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` that detects your package manager (`apt` · `dnf` · `pacman` ·
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.629]:001 >>> PWN.help
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 new plugins, agent tools, skills and zero-day tooling
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 new versions may add capabilities
148
+ $ pwn setup # re-doctor - new versions may add capabilities
149
149
  $ pwn
150
- pwn[v0.5.629]:001 >>> PWN.help
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` launch the autonomous agent TUI (SHIFT+ENTER newline, ENTER submit).
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 or wish to contribute plugins, AI skills, or exploit modules
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) the full local
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 and remember: **always have permission** before any
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 `PWN::AI`
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) see skill `xai_grok_oauth_device_flow` |
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 native `/api/chat` (`num_ctx`, `keep_alive`, low-temp + `format:'json'` on tool turns) and `/api/embed` for `PWN::MemoryIndex` |
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 the codebase and docs deliberately never name a specific
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/… device page
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 behaviour
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 Levenshtein tool-name repair + JSON5-ish arg cleanup, each repair fingerprinted into `Mistakes` |
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 the `TOOL EFFECTIVENESS` block is per-engine so local telemetry never blends with frontier |
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 real
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` Cloud Security (90 service wrappers)
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', )` so
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 the
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
@@ -1,4 +1,4 @@
1
- # `PWN::Banner` Startup Art
1
+ # `PWN::Banner` - Startup Art
2
2
 
3
3
  15 ANSI banners; one is picked at random every time the REPL starts. Purely
4
4
  cosmetic, entirely necessary.
@@ -1,4 +1,4 @@
1
- # `PWN::Blockchain` BTC · ETH
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', method: 'owner()')
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)
@@ -1,4 +1,4 @@
1
- # `PWN::Bounty` Bug-Bounty Lifecycle Tooling
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` programme navigation
10
- - `PWN::Plugins::HackerOne` submissions API
11
- - [`PWN::Plugins::BurpSuite`](BurpSuite.md) capture the session to replay
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(
@@ -6,7 +6,7 @@ Professional's headless mode + REST API.
6
6
 
7
7
  ![Web application testing](diagrams/web-application-testing.svg)
8
8
 
9
- > **Install:** `pwn setup --profile web` burpsuite · zaproxy · chromium ·
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` pure REST, no JVM spawn
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 `bin/pwn_*`
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` post-install doctor & capability provisioner
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) copy any file in `bin/`, swap the plugin call,
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)