pwn 0.5.739 → 0.5.741

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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/documentation/Agent-Tool-Registry.md +163 -6
  4. data/documentation/Diagrams.md +1 -1
  5. data/documentation/Home.md +1 -1
  6. data/documentation/How-PWN-Works.md +1 -1
  7. data/documentation/Plugin-Degradation.md +6 -2
  8. data/documentation/Recon-Findings-API.md +33 -1
  9. data/documentation/What-is-PWN.md +1 -1
  10. data/documentation/pwn-ai-Agent.md +1 -1
  11. data/etc/default_skills/pwn/ai/agent/confirmation/SKILL.md +49 -0
  12. data/etc/default_skills/pwn/ai/agent/result/SKILL.md +4 -1
  13. data/etc/default_skills/pwn/ai/agent/task_dag/SKILL.md +50 -0
  14. data/etc/default_skills/pwn/ai/agent/tool_guard/SKILL.md +2 -0
  15. data/etc/default_skills/pwn/ai/agent/tools/browser_goto/SKILL.md +45 -0
  16. data/etc/default_skills/pwn/ai/agent/tools/loot_query/SKILL.md +45 -0
  17. data/etc/default_skills/pwn/ai/agent/tools/nmap_scan/SKILL.md +45 -0
  18. data/etc/default_skills/pwn/ai/agent/tools/nuclei_scan/SKILL.md +45 -0
  19. data/etc/default_skills/pwn/ai/agent/tools/radare2/SKILL.md +45 -0
  20. data/etc/default_skills/pwn/ai/agent/turn_finalizer/SKILL.md +3 -0
  21. data/etc/default_skills/pwn/ai/router/SKILL.md +51 -0
  22. data/etc/default_skills/pwn/engagement/SKILL.md +2 -0
  23. data/etc/default_skills/pwn/ffi/capstone/SKILL.md +54 -0
  24. data/etc/default_skills/pwn/ffi/keystone/SKILL.md +50 -0
  25. data/etc/default_skills/pwn/plugins/aflplusplus/SKILL.md +5 -1
  26. data/etc/default_skills/pwn/plugins/ai_sandbox/SKILL.md +52 -0
  27. data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +3 -0
  28. data/etc/default_skills/pwn/plugins/assembly/SKILL.md +2 -0
  29. data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +1 -0
  30. data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +1 -0
  31. data/etc/default_skills/pwn/plugins/findings/SKILL.md +1 -0
  32. data/etc/default_skills/pwn/plugins/gdbmi/SKILL.md +8 -2
  33. data/etc/default_skills/pwn/plugins/httpx/SKILL.md +49 -0
  34. data/etc/default_skills/pwn/plugins/jobs/SKILL.md +1 -0
  35. data/etc/default_skills/pwn/plugins/method_catalog/SKILL.md +50 -0
  36. data/etc/default_skills/pwn/plugins/nmap_it/SKILL.md +2 -0
  37. data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +2 -1
  38. data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +2 -0
  39. data/etc/default_skills/pwn/plugins/radare2/SKILL.md +3 -0
  40. data/etc/default_skills/pwn/plugins/recon/SKILL.md +1 -0
  41. data/etc/default_skills/pwn/plugins/rop/SKILL.md +1 -0
  42. data/etc/default_skills/pwn/plugins/transparent_browser/SKILL.md +1 -0
  43. data/etc/default_skills/pwn/plugins/vault/SKILL.md +3 -0
  44. data/etc/default_skills/pwn/reports/SKILL.md +2 -0
  45. data/lib/pwn/ai/agent/confirmation.rb +163 -0
  46. data/lib/pwn/ai/agent/dispatch.rb +43 -5
  47. data/lib/pwn/ai/agent/loop.rb +45 -11
  48. data/lib/pwn/ai/agent/prompt_builder.rb +7 -4
  49. data/lib/pwn/ai/agent/registry.rb +2 -1
  50. data/lib/pwn/ai/agent/result.rb +76 -6
  51. data/lib/pwn/ai/agent/task_dag.rb +220 -0
  52. data/lib/pwn/ai/agent/tool_guard.rb +166 -24
  53. data/lib/pwn/ai/agent/tools/artifacts.rb +35 -5
  54. data/lib/pwn/ai/agent/tools/binary_triage.rb +7 -3
  55. data/lib/pwn/ai/agent/tools/browser_goto.rb +32 -0
  56. data/lib/pwn/ai/agent/tools/debug_lane.rb +23 -0
  57. data/lib/pwn/ai/agent/tools/exploitdev.rb +32 -12
  58. data/lib/pwn/ai/agent/tools/finding_record.rb +31 -5
  59. data/lib/pwn/ai/agent/tools/fuzz_campaign.rb +44 -21
  60. data/lib/pwn/ai/agent/tools/job_run.rb +30 -18
  61. data/lib/pwn/ai/agent/tools/loot_query.rb +44 -0
  62. data/lib/pwn/ai/agent/tools/nmap_scan.rb +32 -0
  63. data/lib/pwn/ai/agent/tools/nuclei_scan.rb +31 -0
  64. data/lib/pwn/ai/agent/tools/radare2.rb +55 -0
  65. data/lib/pwn/ai/agent/tools/ruby_eval.rb +19 -2
  66. data/lib/pwn/ai/agent/tools/shell.rb +22 -10
  67. data/lib/pwn/ai/agent/turn_finalizer.rb +46 -5
  68. data/lib/pwn/ai/agent.rb +3 -1
  69. data/lib/pwn/ai/cli.rb +26 -2
  70. data/lib/pwn/ai/context.rb +4 -2
  71. data/lib/pwn/ai/router.rb +196 -0
  72. data/lib/pwn/ai/tools/README.md +5 -0
  73. data/lib/pwn/ai.rb +1 -0
  74. data/lib/pwn/config.rb +10 -0
  75. data/lib/pwn/engagement.rb +45 -1
  76. data/lib/pwn/ffi/capstone.rb +120 -0
  77. data/lib/pwn/ffi/keystone.rb +107 -0
  78. data/lib/pwn/ffi.rb +2 -0
  79. data/lib/pwn/migrate.rb +5 -1
  80. data/lib/pwn/plugins/aflplusplus.rb +238 -13
  81. data/lib/pwn/plugins/ai_sandbox.rb +240 -0
  82. data/lib/pwn/plugins/artifact_registry.rb +188 -22
  83. data/lib/pwn/plugins/assembly.rb +73 -2
  84. data/lib/pwn/plugins/basic_auth.rb +17 -4
  85. data/lib/pwn/plugins/binary_parser.rb +439 -38
  86. data/lib/pwn/plugins/exploit_dev.rb +83 -14
  87. data/lib/pwn/plugins/findings.rb +208 -42
  88. data/lib/pwn/plugins/gdbmi.rb +265 -38
  89. data/lib/pwn/plugins/httpx.rb +93 -0
  90. data/lib/pwn/plugins/jobs.rb +260 -102
  91. data/lib/pwn/plugins/method_catalog.rb +328 -0
  92. data/lib/pwn/plugins/nmap_it.rb +157 -26
  93. data/lib/pwn/plugins/nuclei.rb +122 -29
  94. data/lib/pwn/plugins/preflight_checker.rb +3 -2
  95. data/lib/pwn/plugins/process_tube.rb +51 -2
  96. data/lib/pwn/plugins/radare2.rb +120 -26
  97. data/lib/pwn/plugins/recon.rb +33 -0
  98. data/lib/pwn/plugins/repl/mesh.rb +203 -13
  99. data/lib/pwn/plugins/rop.rb +121 -31
  100. data/lib/pwn/plugins/transparent_browser.rb +212 -14
  101. data/lib/pwn/plugins/vault.rb +182 -24
  102. data/lib/pwn/plugins.rb +4 -0
  103. data/lib/pwn/reports/engagement.rb +8 -2
  104. data/lib/pwn/reports/html.rb +28 -9
  105. data/lib/pwn/reports/json.rb +2 -1
  106. data/lib/pwn/reports/markdown.rb +49 -12
  107. data/lib/pwn/reports/sarif.rb +17 -3
  108. data/lib/pwn/reports.rb +184 -34
  109. data/lib/pwn/version.rb +1 -1
  110. data/spec/integration/reports_spec.rb +93 -0
  111. data/spec/integration/result_condition_spec.rb +11 -8
  112. data/spec/lib/pwn/ai/agent/confirmation_spec.rb +59 -0
  113. data/spec/lib/pwn/ai/agent/dispatch_confirmation_spec.rb +52 -0
  114. data/spec/lib/pwn/ai/agent/dispatch_policy_spec.rb +51 -0
  115. data/spec/lib/pwn/ai/agent/loop_spec.rb +86 -0
  116. data/spec/lib/pwn/ai/agent/registry_spec.rb +1 -1
  117. data/spec/lib/pwn/ai/agent/result_spec.rb +84 -1
  118. data/spec/lib/pwn/ai/agent/task_dag_spec.rb +63 -0
  119. data/spec/lib/pwn/ai/agent/tool_guard_spec.rb +48 -0
  120. data/spec/lib/pwn/ai/agent/tools/ai_sandbox_spec.rb +36 -0
  121. data/spec/lib/pwn/ai/agent/tools/binary_triage_spec.rb +21 -0
  122. data/spec/lib/pwn/ai/agent/tools/browser_goto_spec.rb +57 -0
  123. data/spec/lib/pwn/ai/agent/tools/exploitdev_spec.rb +42 -0
  124. data/spec/lib/pwn/ai/agent/tools/finding_record_spec.rb +46 -2
  125. data/spec/lib/pwn/ai/agent/tools/fuzz_campaign_spec.rb +46 -0
  126. data/spec/lib/pwn/ai/agent/tools/job_run_spec.rb +52 -0
  127. data/spec/lib/pwn/ai/agent/tools/loot_query_spec.rb +46 -0
  128. data/spec/lib/pwn/ai/agent/tools/nmap_scan_spec.rb +26 -0
  129. data/spec/lib/pwn/ai/agent/tools/nuclei_scan_spec.rb +37 -0
  130. data/spec/lib/pwn/ai/agent/tools/pwn_eval_schema_spec.rb +27 -0
  131. data/spec/lib/pwn/ai/agent/tools/radare2_spec.rb +15 -0
  132. data/spec/lib/pwn/ai/agent/turn_finalizer_spec.rb +76 -0
  133. data/spec/lib/pwn/ai/cli_spec.rb +12 -1
  134. data/spec/lib/pwn/ai/router_spec.rb +57 -0
  135. data/spec/lib/pwn/ffi/capstone_spec.rb +33 -0
  136. data/spec/lib/pwn/ffi/keystone_spec.rb +33 -0
  137. data/spec/lib/pwn/migrate_spec.rb +30 -2
  138. data/spec/lib/pwn/plugins/aflplusplus_spec.rb +40 -0
  139. data/spec/lib/pwn/plugins/ai_sandbox_spec.rb +44 -0
  140. data/spec/lib/pwn/plugins/artifact_registry_spec.rb +116 -1
  141. data/spec/lib/pwn/plugins/assembly_spec.rb +12 -0
  142. data/spec/lib/pwn/plugins/basic_auth_spec.rb +15 -0
  143. data/spec/lib/pwn/plugins/binary_parser_spec.rb +59 -2
  144. data/spec/lib/pwn/plugins/exploit_dev_spec.rb +44 -0
  145. data/spec/lib/pwn/plugins/findings_structured_spec.rb +196 -1
  146. data/spec/lib/pwn/plugins/gdbmi_spec.rb +99 -1
  147. data/spec/lib/pwn/plugins/httpx_spec.rb +23 -0
  148. data/spec/lib/pwn/plugins/jobs_spec.rb +141 -0
  149. data/spec/lib/pwn/plugins/method_catalog_spec.rb +29 -0
  150. data/spec/lib/pwn/plugins/nmap_it_spec.rb +49 -0
  151. data/spec/lib/pwn/plugins/nuclei_spec.rb +33 -1
  152. data/spec/lib/pwn/plugins/radare2_spec.rb +115 -0
  153. data/spec/lib/pwn/plugins/recon_spec.rb +15 -0
  154. data/spec/lib/pwn/plugins/repl_mesh_channel_route_spec.rb +107 -1
  155. data/spec/lib/pwn/plugins/repl_mesh_history_spec.rb +122 -0
  156. data/spec/lib/pwn/plugins/rop_spec.rb +19 -0
  157. data/spec/lib/pwn/plugins/transparent_browser_spec.rb +71 -0
  158. data/spec/lib/pwn/plugins/vault_spec.rb +41 -0
  159. data/spec/lib/pwn/reports/engagement_spec.rb +51 -0
  160. data/spec/lib/pwn/reports_spec.rb +196 -0
  161. data/spec/spec_helper.rb +3 -0
  162. data/third_party/pwn_rdoc.jsonl +230 -4
  163. metadata +47 -5
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: pwn-ai-agent-tools-nucleiscan
3
+ description: Drive PWN::Ai::Agent::Tools::NucleiScan 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::NucleiScan
10
+ source: pwn/ai/agent/tools/nuclei_scan.rb
11
+ ---
12
+
13
+ # PWN::Ai::Agent::Tools::NucleiScan
14
+
15
+ Public API for PWN::Ai::Agent::Tools::NucleiScan.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Ai::Agent::Tools::NucleiScan` 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/nuclei_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::NucleiScan.help
31
+ PWN::Ai::Agent::Tools::NucleiScan.help(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - _(no public class methods parsed)_
37
+
38
+ ## Source
39
+
40
+ `pwn/ai/agent/tools/nuclei_scan.rb`
41
+
42
+ ## Verification
43
+
44
+ `PWN::Ai::Agent::Tools::NucleiScan.respond_to?(:help)` after the
45
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: pwn-ai-agent-tools-radare2
3
+ description: Drive PWN::Ai::Agent::Tools::Radare2 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::Radare2
10
+ source: pwn/ai/agent/tools/radare2.rb
11
+ ---
12
+
13
+ # PWN::Ai::Agent::Tools::Radare2
14
+
15
+ Public API for PWN::Ai::Agent::Tools::Radare2.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Ai::Agent::Tools::Radare2` 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/radare2.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::Radare2.help
31
+ PWN::Ai::Agent::Tools::Radare2.help(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - _(no public class methods parsed)_
37
+
38
+ ## Source
39
+
40
+ `pwn/ai/agent/tools/radare2.rb`
41
+
42
+ ## Verification
43
+
44
+ `PWN::Ai::Agent::Tools::Radare2.respond_to?(:help)` after the
45
+ module is loaded. Read the source for parameter names.
@@ -41,6 +41,8 @@ PWN::AI::Agent::TurnFinalizer.enter_user_path(opts)
41
41
  - `finalize`
42
42
  - `join_all`
43
43
  - `pending`
44
+ - `commit_artifacts`
45
+ - `required_artifacts`
44
46
  - `output_paths`
45
47
  - `artifact_snapshot`
46
48
  - `observe_artifacts`
@@ -49,6 +51,7 @@ PWN::AI::Agent::TurnFinalizer.enter_user_path(opts)
49
51
  - `evidence_satisfied`
50
52
  - `authors`
51
53
  - `help`
54
+ - `commit_artifacts!`
52
55
  - `enter_user_path!`
53
56
  - `evidence_satisfied?`
54
57
  - `join_all!`
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: pwn-ai-router
3
+ description: Drive PWN::AI::Router from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::AI::Router
10
+ source: pwn/ai/router.rb
11
+ ---
12
+
13
+ # PWN::AI::Router
14
+
15
+ Task-class model routing from pwn.yaml ai_router / model_routes.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::AI::Router` 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/router.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::Router.help
31
+ PWN::AI::Router.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `resolve`
38
+ - `summarize`
39
+ - `usage`
40
+ - `reset_usage`
41
+ - `authors`
42
+ - `help`
43
+
44
+ ## Source
45
+
46
+ `pwn/ai/router.rb`
47
+
48
+ ## Verification
49
+
50
+ `PWN::AI::Router.respond_to?(:required_bins)` after the
51
+ module is loaded. Read the source for parameter names.
@@ -41,6 +41,8 @@ PWN::Engagement.open(opts)
41
41
  - `record_host`
42
42
  - `hosts`
43
43
  - `merge_scan`
44
+ - `record_scan`
45
+ - `scans`
44
46
  - `authors`
45
47
  - `help`
46
48
  - `in_scope?`
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: pwn-ffi-capstone
3
+ description: Drive PWN::FFI::Capstone from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::FFI::Capstone
10
+ source: pwn/ffi/capstone.rb
11
+ ---
12
+
13
+ # PWN::FFI::Capstone
14
+
15
+ Thin libcapstone disassembler.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::FFI::Capstone` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/ffi/capstone.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::FFI::Capstone.help
31
+ PWN::FFI::Capstone.available(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `available`
37
+ - `disassemble`
38
+ - `authors`
39
+ - `help`
40
+ - `available?`
41
+ - `cs_close`
42
+ - `cs_disasm`
43
+ - `cs_free`
44
+ - `cs_open`
45
+ - `load_error`
46
+
47
+ ## Source
48
+
49
+ `pwn/ffi/capstone.rb`
50
+
51
+ ## Verification
52
+
53
+ `PWN::FFI::Capstone.respond_to?(:available)` after the
54
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: pwn-ffi-keystone
3
+ description: Drive PWN::FFI::Keystone from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::FFI::Keystone
10
+ source: pwn/ffi/keystone.rb
11
+ ---
12
+
13
+ # PWN::FFI::Keystone
14
+
15
+ Thin libkeystone assembler.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::FFI::Keystone` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/ffi/keystone.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::FFI::Keystone.help
31
+ PWN::FFI::Keystone.available(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `available`
37
+ - `assemble`
38
+ - `authors`
39
+ - `help`
40
+ - `available?`
41
+ - `load_error`
42
+
43
+ ## Source
44
+
45
+ `pwn/ffi/keystone.rb`
46
+
47
+ ## Verification
48
+
49
+ `PWN::FFI::Keystone.respond_to?(:available)` after the
50
+ module is loaded. Read the source for parameter names.
@@ -12,7 +12,7 @@ metadata:
12
12
 
13
13
  # PWN::Plugins::AFLplusplus
14
14
 
15
- AFL++ campaign wrapper.
15
+ AFL++ / libFuzzer campaign wrapper with corpus, dictionary, and RE triage handoff.
16
16
 
17
17
  ## When to use
18
18
 
@@ -36,6 +36,10 @@ PWN::Plugins::AFLplusplus.required_bins(opts)
36
36
  - `required_bins`
37
37
  - `fuzz`
38
38
  - `parse_stats`
39
+ - `dictionary_from_binary`
40
+ - `prepare_corpus`
41
+ - `campaign_command`
42
+ - `campaign`
39
43
  - `crash_triage`
40
44
  - `minimize`
41
45
  - `authors`
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: pwn-plugins-aisandbox
3
+ description: Drive PWN::Plugins::AISandbox from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::AISandbox
10
+ source: pwn/plugins/ai_sandbox.rb
11
+ ---
12
+
13
+ # PWN::Plugins::AISandbox
14
+
15
+ Forked worker for model-authored shell/Ruby with Landlock/seccomp profiles.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::AISandbox` 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/ai_sandbox.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::AISandbox.help
31
+ PWN::Plugins::AISandbox.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `mode`
38
+ - `classify`
39
+ - `exec`
40
+ - `wrap_shell`
41
+ - `wrap_ruby`
42
+ - `authors`
43
+ - `help`
44
+
45
+ ## Source
46
+
47
+ `pwn/plugins/ai_sandbox.rb`
48
+
49
+ ## Verification
50
+
51
+ `PWN::Plugins::AISandbox.respond_to?(:required_bins)` after the
52
+ module is loaded. Read the source for parameter names.
@@ -34,10 +34,13 @@ PWN::Plugins::ArtifactRegistry.required_bins(opts)
34
34
  ## Public methods
35
35
 
36
36
  - `required_bins`
37
+ - `spill`
37
38
  - `register`
38
39
  - `list`
39
40
  - `get`
40
41
  - `read_page`
42
+ - `grep`
43
+ - `resolve`
41
44
  - `put`
42
45
  - `authors`
43
46
  - `help`
@@ -35,6 +35,8 @@ PWN::Plugins::Assembly.opcodes_to_asm(opts)
35
35
 
36
36
  - `opcodes_to_asm`
37
37
  - `asm_to_opcodes`
38
+ - `assemble`
39
+ - `disassemble`
38
40
  - `list_supported_archs`
39
41
  - `authors`
40
42
  - `help`
@@ -41,6 +41,7 @@ PWN::Plugins::BinaryParser.required_bins(opts)
41
41
  - `imports`
42
42
  - `exports`
43
43
  - `relocations`
44
+ - `elf_resolve`
44
45
  - `triage`
45
46
  - `diff`
46
47
  - `authors`
@@ -54,6 +54,7 @@ PWN::Plugins::ExploitDev.required_bins(opts)
54
54
  - `io`
55
55
  - `scaffold`
56
56
  - `from_crash`
57
+ - `ret2libc`
57
58
  - `authors`
58
59
  - `help`
59
60
 
@@ -40,6 +40,7 @@ PWN::Plugins::Findings.required_bins(opts)
40
40
  - `report`
41
41
  - `query`
42
42
  - `chain`
43
+ - `link`
43
44
  - `chain_score`
44
45
  - `verify`
45
46
  - `retest`
@@ -12,7 +12,7 @@ metadata:
12
12
 
13
13
  # PWN::Plugins::GDBMI
14
14
 
15
- GDB machine-interface bridge: breakpoints, stepping, registers, memory, backtraces, checksec. Pairs with ProcessTube for interactive sessions.
15
+ Plugin namespace. GDBMi is a requested alias of GDBMI.
16
16
 
17
17
  ## When to use
18
18
 
@@ -35,12 +35,18 @@ PWN::Plugins::GDBMI.required_bins(opts)
35
35
 
36
36
  - `required_bins`
37
37
  - `open`
38
+ - `session`
39
+ - `close`
38
40
  - `break`
39
- - `step`
41
+ - `run`
42
+ - `continue`
40
43
  - `registers`
44
+ - `read_mem`
41
45
  - `read_memory`
42
46
  - `backtrace`
47
+ - `step`
43
48
  - `checksec`
49
+ - `run_to_crash`
44
50
  - `mi`
45
51
  - `authors`
46
52
  - `help`
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: pwn-plugins-httpx
3
+ description: Drive PWN::Plugins::Httpx from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Httpx
10
+ source: pwn/plugins/httpx.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Httpx
14
+
15
+ httpx JSONL probe: live URLs, status, title, and detected tech stack.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Httpx` 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/httpx.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::Httpx.help
31
+ PWN::Plugins::Httpx.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `probe`
38
+ - `techs`
39
+ - `authors`
40
+ - `help`
41
+
42
+ ## Source
43
+
44
+ `pwn/plugins/httpx.rb`
45
+
46
+ ## Verification
47
+
48
+ `PWN::Plugins::Httpx.respond_to?(:required_bins)` after the
49
+ module is loaded. Read the source for parameter names.
@@ -50,6 +50,7 @@ PWN::Plugins::Jobs.required_bins(opts)
50
50
  - `graph`
51
51
  - `authors`
52
52
  - `help`
53
+ - `supervise`
53
54
 
54
55
  ## Source
55
56
 
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: pwn-plugins-methodcatalog
3
+ description: Drive PWN::Plugins::MethodCatalog from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::MethodCatalog
10
+ source: pwn/plugins/method_catalog.rb
11
+ ---
12
+
13
+ # PWN::Plugins::MethodCatalog
14
+
15
+ JSON-schema descriptors for public PWN::Plugins methods, generated from YARD / Supported Method Parameters docs. pwn_eval validates kwargs first.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::MethodCatalog` 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/method_catalog.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::MethodCatalog.help
31
+ PWN::Plugins::MethodCatalog.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `schema`
38
+ - `guard_eval`
39
+ - `descriptors`
40
+ - `authors`
41
+ - `help`
42
+
43
+ ## Source
44
+
45
+ `pwn/plugins/method_catalog.rb`
46
+
47
+ ## Verification
48
+
49
+ `PWN::Plugins::MethodCatalog.respond_to?(:required_bins)` after the
50
+ module is loaded. Read the source for parameter names.
@@ -37,7 +37,9 @@ PWN::Plugins::NmapIt.port_scan(opts)
37
37
  - `parse_xml_results`
38
38
  - `diff_xml_results`
39
39
  - `to_findings`
40
+ - `inventory`
40
41
  - `scan`
42
+ - `changes`
41
43
  - `authors`
42
44
  - `help`
43
45
 
@@ -12,7 +12,7 @@ metadata:
12
12
 
13
13
  # PWN::Plugins::Nuclei
14
14
 
15
- nuclei wrapper: template/severity, JSONL findings.
15
+ nuclei wrapper: template/severity, JSONL findings into the findings store.
16
16
 
17
17
  ## When to use
18
18
 
@@ -34,6 +34,7 @@ PWN::Plugins::Nuclei.required_bins(opts)
34
34
  ## Public methods
35
35
 
36
36
  - `required_bins`
37
+ - `select_templates`
37
38
  - `scan`
38
39
  - `to_findings`
39
40
  - `to_defectdojo`
@@ -37,6 +37,8 @@ PWN::Plugins::ProcessTube.required_bins(opts)
37
37
  - `spawn`
38
38
  - `connect`
39
39
  - `send_line`
40
+ - `sendline`
41
+ - `recv`
40
42
  - `write_line`
41
43
  - `recvuntil`
42
44
  - `recvline`
@@ -35,6 +35,7 @@ PWN::Plugins::Radare2.required_bins(opts)
35
35
 
36
36
  - `required_bins`
37
37
  - `open`
38
+ - `analyze`
38
39
  - `cmd`
39
40
  - `cmdj`
40
41
  - `close`
@@ -42,6 +43,8 @@ PWN::Plugins::Radare2.required_bins(opts)
42
43
  - `xrefs_to`
43
44
  - `xrefs_from`
44
45
  - `disasm`
46
+ - `seek`
47
+ - `patch_bytes`
45
48
  - `strings`
46
49
  - `imports`
47
50
  - `sections`
@@ -41,6 +41,7 @@ PWN::Plugins::Recon.required_bins(opts)
41
41
  - `crt_sh`
42
42
  - `amass`
43
43
  - `passive_dns`
44
+ - `harvest_loot`
44
45
  - `authors`
45
46
  - `help`
46
47
 
@@ -34,6 +34,7 @@ PWN::Plugins::ROP.required_bins(opts)
34
34
  ## Public methods
35
35
 
36
36
  - `required_bins`
37
+ - `parse`
37
38
  - `gadgets`
38
39
  - `filter`
39
40
  - `authors`
@@ -56,6 +56,7 @@ PWN::Plugins::TransparentBrowser.open(opts)
56
56
  - `jmp_devtools_panel`
57
57
  - `close`
58
58
  - `evidence`
59
+ - `goto`
59
60
  - `intercept`
60
61
  - `har_export`
61
62
  - `replay`
@@ -44,6 +44,9 @@ PWN::Plugins::Vault.seal_credentials(opts)
44
44
  - `file_encrypted`
45
45
  - `store`
46
46
  - `fetch`
47
+ - `query`
48
+ - `offer`
49
+ - `ingest`
47
50
  - `expand`
48
51
  - `redact`
49
52
  - `authors`
@@ -36,6 +36,8 @@ PWN::Reports.resolve_path(opts)
36
36
  - `resolve_path`
37
37
  - `report_payload`
38
38
  - `attack_chains`
39
+ - `package_evidence`
40
+ - `poc_preview`
39
41
  - `authors`
40
42
  - `help`
41
43