pwn 0.5.719 → 0.5.721

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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/etc/default_skills/pwn/ai/agent/engagement/SKILL.md +53 -0
  3. data/etc/default_skills/pwn/ai/agent/learning/SKILL.md +4 -0
  4. data/etc/default_skills/pwn/ai/agent/loop/SKILL.md +5 -2
  5. data/etc/default_skills/pwn/ai/agent/metrics/SKILL.md +1 -0
  6. data/etc/default_skills/pwn/ai/agent/registry/SKILL.md +3 -0
  7. data/etc/default_skills/pwn/ai/agent/swarm/SKILL.md +1 -0
  8. data/etc/default_skills/pwn/ai/agent/tool_guard/SKILL.md +3 -0
  9. data/etc/default_skills/pwn/ai/agent/tools/debug_lane/SKILL.md +45 -0
  10. data/etc/default_skills/pwn/ai/agent/tools/engagement/SKILL.md +45 -0
  11. data/etc/default_skills/pwn/ai/agent/turn_finalizer/SKILL.md +4 -0
  12. data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +1 -0
  13. data/etc/default_skills/pwn/plugins/bin_workspace/SKILL.md +49 -0
  14. data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +1 -0
  15. data/etc/default_skills/pwn/plugins/capability/SKILL.md +48 -0
  16. data/etc/default_skills/pwn/plugins/detonate/SKILL.md +47 -0
  17. data/etc/default_skills/pwn/plugins/emulator/SKILL.md +47 -0
  18. data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +1 -0
  19. data/etc/default_skills/pwn/plugins/findings/SKILL.md +1 -0
  20. data/etc/default_skills/pwn/plugins/gdb/SKILL.md +2 -0
  21. data/etc/default_skills/pwn/plugins/packet/SKILL.md +1 -0
  22. data/etc/default_skills/pwn/plugins/preflight_checker/SKILL.md +1 -0
  23. data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +2 -0
  24. data/etc/default_skills/pwn/plugins/repl/SKILL.md +1 -0
  25. data/etc/default_skills/pwn/plugins/vault/SKILL.md +4 -0
  26. data/etc/default_skills/pwn/reports/engagement/SKILL.md +47 -0
  27. data/lib/pwn/ai/agent/dispatch.rb +69 -1
  28. data/lib/pwn/ai/agent/engagement.rb +167 -0
  29. data/lib/pwn/ai/agent/learning.rb +105 -5
  30. data/lib/pwn/ai/agent/loop.rb +83 -25
  31. data/lib/pwn/ai/agent/metrics.rb +35 -1
  32. data/lib/pwn/ai/agent/registry.rb +28 -0
  33. data/lib/pwn/ai/agent/reward.rb +80 -15
  34. data/lib/pwn/ai/agent/swarm.rb +36 -0
  35. data/lib/pwn/ai/agent/tool_guard.rb +93 -9
  36. data/lib/pwn/ai/agent/tools/debug_lane.rb +160 -0
  37. data/lib/pwn/ai/agent/tools/engagement.rb +40 -0
  38. data/lib/pwn/ai/agent/turn_finalizer.rb +84 -0
  39. data/lib/pwn/ai/agent.rb +1 -0
  40. data/lib/pwn/config.rb +18 -2
  41. data/lib/pwn/plugins/artifact_registry.rb +32 -2
  42. data/lib/pwn/plugins/bin_workspace.rb +81 -0
  43. data/lib/pwn/plugins/binary_parser.rb +27 -0
  44. data/lib/pwn/plugins/capability.rb +68 -0
  45. data/lib/pwn/plugins/detonate.rb +62 -0
  46. data/lib/pwn/plugins/emulator.rb +64 -0
  47. data/lib/pwn/plugins/exploit_dev.rb +33 -0
  48. data/lib/pwn/plugins/findings.rb +56 -1
  49. data/lib/pwn/plugins/gdb.rb +42 -0
  50. data/lib/pwn/plugins/ghidra.rb +20 -2
  51. data/lib/pwn/plugins/packet.rb +26 -0
  52. data/lib/pwn/plugins/preflight_checker.rb +23 -0
  53. data/lib/pwn/plugins/process_tube.rb +31 -1
  54. data/lib/pwn/plugins/repl.rb +25 -2
  55. data/lib/pwn/plugins/vault.rb +116 -0
  56. data/lib/pwn/plugins.rb +4 -0
  57. data/lib/pwn/reports/engagement.rb +63 -0
  58. data/lib/pwn/reports.rb +1 -0
  59. data/lib/pwn/sessions.rb +4 -0
  60. data/lib/pwn/version.rb +1 -1
  61. data/spec/lib/pwn/ai/agent/dispatch_spec.rb +9 -0
  62. data/spec/lib/pwn/ai/agent/engagement_spec.rb +27 -0
  63. data/spec/lib/pwn/ai/agent/learning_spec.rb +23 -0
  64. data/spec/lib/pwn/ai/agent/loop_spec.rb +44 -0
  65. data/spec/lib/pwn/ai/agent/reward_spec.rb +17 -1
  66. data/spec/lib/pwn/ai/agent/swarm_spec.rb +11 -0
  67. data/spec/lib/pwn/ai/agent/tool_guard_spec.rb +9 -0
  68. data/spec/lib/pwn/ai/agent/tools/debug_lane_spec.rb +16 -0
  69. data/spec/lib/pwn/ai/agent/tools/engagement_spec.rb +16 -0
  70. data/spec/lib/pwn/ai/agent/turn_finalizer_spec.rb +18 -0
  71. data/spec/lib/pwn/plugins/bin_workspace_spec.rb +26 -0
  72. data/spec/lib/pwn/plugins/capability_spec.rb +19 -0
  73. data/spec/lib/pwn/plugins/detonate_spec.rb +24 -0
  74. data/spec/lib/pwn/plugins/emulator_spec.rb +18 -0
  75. data/spec/lib/pwn/plugins/findings_spec.rb +16 -3
  76. data/spec/lib/pwn/plugins/gdb_spec.rb +10 -0
  77. data/spec/lib/pwn/plugins/packet_spec.rb +6 -0
  78. data/spec/lib/pwn/plugins/repl_spec.rb +1 -1
  79. data/spec/lib/pwn/plugins/vault_spec.rb +11 -0
  80. data/spec/lib/pwn/reports/engagement_spec.rb +30 -0
  81. data/third_party/pwn_rdoc.jsonl +73 -0
  82. metadata +25 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 898622177b06081e32121144c9ae5461d510482e70a85b62de425967933e4e24
4
- data.tar.gz: ddfe5cac2e3db9bab8ab9cafdb1f48a2e2191545a2d0ad5bb7245cb7f45ab45f
3
+ metadata.gz: c26adc03f68a0e0275c0eb1a85aa2bb06def95aeb014411b000f52c6a83e3e40
4
+ data.tar.gz: 6a082b81f8f1885de1b3ac42c604f1f21a08d48e7260609ce35e00d1461afa79
5
5
  SHA512:
6
- metadata.gz: 2751aa2984fe13fe852a6f12577bd840f097e5d84f240a05642e374938bbf8fe9095dcaee15a607b0b1c3c4b90d65b787f041ffbda26ec3868f26f68a400b28b
7
- data.tar.gz: db70fe6f75eaa22625849d30ab0e1a73dec982e160db005cce3096e625346eaea5d68653a4fb27a6e452f4ba01c63ab0313a5bd484b54a874f95bf44944ea149
6
+ metadata.gz: 719d713266b6a3d4200895bb41d4ac5ec7ccfc6d142463cb70085cd6c8d02a514191553b5b12317de45a38abf3d4d1ccb47101f54dc5e588e596a13bc3e77af8
7
+ data.tar.gz: 271d9ff938ac37275ebe9da7d3031305bd09f587e5b6d14f0386fc006bd120b6e684b00aa651c935da7eefbd3a71c298b114ef07ec21b7a9099a75d9f71df647
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: pwn-ai-agent-engagement
3
+ description: Drive PWN::AI::Agent::Engagement 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::Engagement
10
+ source: pwn/ai/agent/engagement.rb
11
+ ---
12
+
13
+ # PWN::AI::Agent::Engagement
14
+
15
+ First-class engagement scope, RoE, and findings pointer.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::AI::Agent::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/ai/agent/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::AI::Agent::Engagement.help
31
+ PWN::AI::Agent::Engagement.open(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `open`
37
+ - `close`
38
+ - `status`
39
+ - `current_name`
40
+ - `in_scope`
41
+ - `deny_if_out_of_scope`
42
+ - `authors`
43
+ - `help`
44
+ - `in_scope?`
45
+
46
+ ## Source
47
+
48
+ `pwn/ai/agent/engagement.rb`
49
+
50
+ ## Verification
51
+
52
+ `PWN::AI::Agent::Engagement.respond_to?(:open)` after the
53
+ module is loaded. Read the source for parameter names.
@@ -54,8 +54,12 @@ PWN::AI::Agent::Learning.note_outcome(opts)
54
54
  - `lesson_record`
55
55
  - `lesson_observe`
56
56
  - `lesson_prompt`
57
+ - `list_conflicted`
58
+ - `requeue_conflicted`
59
+ - `compact`
57
60
  - `authors`
58
61
  - `help`
62
+ - `compact!`
59
63
  - `gc_stores!`
60
64
  - `lean!`
61
65
  - `prune_outcomes!`
@@ -28,11 +28,12 @@ Class methods take `(opts = {})` and read `opts`.
28
28
 
29
29
  ```ruby
30
30
  PWN::AI::Agent::Loop.help
31
- PWN::AI::Agent::Loop.debug_on(opts)
31
+ PWN::AI::Agent::Loop.evidence_satisfied(opts)
32
32
  ```
33
33
 
34
34
  ## Public methods
35
35
 
36
+ - `evidence_satisfied`
36
37
  - `debug_on`
37
38
  - `catalog_lookup`
38
39
  - `world_knowledge`
@@ -41,10 +42,12 @@ PWN::AI::Agent::Loop.debug_on(opts)
41
42
  - `openai_wire_messages`
42
43
  - `request_intent`
43
44
  - `run`
45
+ - `budget_status`
44
46
  - `authors`
45
47
  - `help`
46
48
  - `catalog_lookup?`
47
49
  - `debug_on?`
50
+ - `evidence_satisfied?`
48
51
  - `needs_host_work?`
49
52
  - `world_knowledge?`
50
53
 
@@ -58,5 +61,5 @@ PWN::AI::Agent::Loop.debug_on(opts)
58
61
 
59
62
  ## Verification
60
63
 
61
- `PWN::AI::Agent::Loop.respond_to?(:debug_on)` after the
64
+ `PWN::AI::Agent::Loop.respond_to?(:evidence_satisfied)` after the
62
65
  module is loaded. Read the source for parameter names.
@@ -36,6 +36,7 @@ PWN::AI::Agent::Metrics.load(opts)
36
36
  - `load`
37
37
  - `save`
38
38
  - `record`
39
+ - `append_jsonl`
39
40
  - `summary`
40
41
  - `to_context`
41
42
  - `proxy_trust`
@@ -42,8 +42,11 @@ PWN::AI::Agent::Registry.register(opts)
42
42
  - `apply_preference`
43
43
  - `rank`
44
44
  - `discover`
45
+ - `eager_load`
46
+ - `selftest`
45
47
  - `authors`
46
48
  - `help`
49
+ - `eager_load!`
47
50
 
48
51
  ## Source
49
52
 
@@ -46,6 +46,7 @@ PWN::AI::Agent::Swarm.personas(opts)
46
46
  - `map_targets`
47
47
  - `fact_record`
48
48
  - `facts_prompt`
49
+ - `claim`
49
50
  - `authors`
50
51
  - `help`
51
52
 
@@ -60,6 +60,8 @@ PWN::AI::Agent::ToolGuard.present(opts)
60
60
  - `timeout_prior_count`
61
61
  - `refuse_copied_persist`
62
62
  - `scope_refusal`
63
+ - `policy_decision`
64
+ - `scope_check`
63
65
  - `rfc1918`
64
66
  - `ip_in_cidr`
65
67
  - `command_class`
@@ -80,6 +82,7 @@ PWN::AI::Agent::ToolGuard.present(opts)
80
82
  - `refuse_copied_persist?`
81
83
  - `reset_timeout_budget!`
82
84
  - `rfc1918?`
85
+ - `scope_check!`
83
86
  - `shell_bash?`
84
87
 
85
88
  ## Source
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: pwn-ai-agent-tools-debuglane
3
+ description: Drive PWN::Ai::Agent::Tools::DebugLane 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::DebugLane
10
+ source: pwn/ai/agent/tools/debug_lane.rb
11
+ ---
12
+
13
+ # PWN::Ai::Agent::Tools::DebugLane
14
+
15
+ Public API for PWN::Ai::Agent::Tools::DebugLane.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Ai::Agent::Tools::DebugLane` 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/debug_lane.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::DebugLane.help
31
+ PWN::Ai::Agent::Tools::DebugLane.help(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - _(no public class methods parsed)_
37
+
38
+ ## Source
39
+
40
+ `pwn/ai/agent/tools/debug_lane.rb`
41
+
42
+ ## Verification
43
+
44
+ `PWN::Ai::Agent::Tools::DebugLane.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-engagement
3
+ description: Drive PWN::Ai::Agent::Tools::Engagement 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::Engagement
10
+ source: pwn/ai/agent/tools/engagement.rb
11
+ ---
12
+
13
+ # PWN::Ai::Agent::Tools::Engagement
14
+
15
+ Public API for PWN::Ai::Agent::Tools::Engagement.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Ai::Agent::Tools::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/ai/agent/tools/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::Ai::Agent::Tools::Engagement.help
31
+ PWN::Ai::Agent::Tools::Engagement.help(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - _(no public class methods parsed)_
37
+
38
+ ## Source
39
+
40
+ `pwn/ai/agent/tools/engagement.rb`
41
+
42
+ ## Verification
43
+
44
+ `PWN::Ai::Agent::Tools::Engagement.respond_to?(:help)` after the
45
+ module is loaded. Read the source for parameter names.
@@ -41,9 +41,13 @@ PWN::AI::Agent::TurnFinalizer.enter_user_path(opts)
41
41
  - `finalize`
42
42
  - `join_all`
43
43
  - `pending`
44
+ - `arbitrate`
45
+ - `evidence_ledger`
46
+ - `evidence_satisfied`
44
47
  - `authors`
45
48
  - `help`
46
49
  - `enter_user_path!`
50
+ - `evidence_satisfied?`
47
51
  - `join_all!`
48
52
  - `leave_user_path!`
49
53
  - `should_defer?`
@@ -38,6 +38,7 @@ PWN::Plugins::ArtifactRegistry.required_bins(opts)
38
38
  - `list`
39
39
  - `get`
40
40
  - `read_page`
41
+ - `put`
41
42
  - `authors`
42
43
  - `help`
43
44
 
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: pwn-plugins-binworkspace
3
+ description: Drive PWN::Plugins::BinWorkspace from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::BinWorkspace
10
+ source: pwn/plugins/bin_workspace.rb
11
+ ---
12
+
13
+ # PWN::Plugins::BinWorkspace
14
+
15
+ Persistent per-binary analysis workspace keyed by sha256.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::BinWorkspace` 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/bin_workspace.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::BinWorkspace.help
31
+ PWN::Plugins::BinWorkspace.for(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `for`
37
+ - `annotate`
38
+ - `notes`
39
+ - `authors`
40
+ - `help`
41
+
42
+ ## Source
43
+
44
+ `pwn/plugins/bin_workspace.rb`
45
+
46
+ ## Verification
47
+
48
+ `PWN::Plugins::BinWorkspace.respond_to?(:for)` after the
49
+ module is loaded. Read the source for parameter names.
@@ -42,6 +42,7 @@ PWN::Plugins::BinaryParser.required_bins(opts)
42
42
  - `exports`
43
43
  - `relocations`
44
44
  - `triage`
45
+ - `diff`
45
46
  - `authors`
46
47
  - `help`
47
48
 
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: pwn-plugins-capability
3
+ description: Drive PWN::Plugins::Capability from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Capability
10
+ source: pwn/plugins/capability.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Capability
14
+
15
+ Operator-approved capability elevation (never auto-sudo).
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Capability` 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/capability.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::Capability.help
31
+ PWN::Plugins::Capability.request(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `request`
37
+ - `grantable_caps`
38
+ - `authors`
39
+ - `help`
40
+
41
+ ## Source
42
+
43
+ `pwn/plugins/capability.rb`
44
+
45
+ ## Verification
46
+
47
+ `PWN::Plugins::Capability.respond_to?(:request)` after the
48
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: pwn-plugins-detonate
3
+ description: Drive PWN::Plugins::Detonate from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Detonate
10
+ source: pwn/plugins/detonate.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Detonate
14
+
15
+ Isolated sample detonation. Refuses if podman/isolation is missing.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Detonate` 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/detonate.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::Detonate.help
31
+ PWN::Plugins::Detonate.detonate(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `detonate`
37
+ - `authors`
38
+ - `help`
39
+
40
+ ## Source
41
+
42
+ `pwn/plugins/detonate.rb`
43
+
44
+ ## Verification
45
+
46
+ `PWN::Plugins::Detonate.respond_to?(:detonate)` after the
47
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: pwn-plugins-emulator
3
+ description: Drive PWN::Plugins::Emulator from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Emulator
10
+ source: pwn/plugins/emulator.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Emulator
14
+
15
+ Unicorn-backed single-function emulation with a stub backend for tests.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Emulator` 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/emulator.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::Emulator.help
31
+ PWN::Plugins::Emulator.emulate(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `emulate`
37
+ - `authors`
38
+ - `help`
39
+
40
+ ## Source
41
+
42
+ `pwn/plugins/emulator.rb`
43
+
44
+ ## Verification
45
+
46
+ `PWN::Plugins::Emulator.respond_to?(:emulate)` after the
47
+ module is loaded. Read the source for parameter names.
@@ -52,6 +52,7 @@ PWN::Plugins::ExploitDev.required_bins(opts)
52
52
  - `gadgets`
53
53
  - `fmtstr`
54
54
  - `io`
55
+ - `scaffold`
55
56
  - `authors`
56
57
  - `help`
57
58
 
@@ -35,6 +35,7 @@ PWN::Plugins::Findings.required_bins(opts)
35
35
 
36
36
  - `required_bins`
37
37
  - `record`
38
+ - `evidence_verify`
38
39
  - `report`
39
40
  - `query`
40
41
  - `chain`
@@ -40,6 +40,8 @@ PWN::Plugins::GDB.required_bins(opts)
40
40
  - `mitigations`
41
41
  - `core`
42
42
  - `breakpoints`
43
+ - `crash_info`
44
+ - `debug_session`
43
45
  - `authors`
44
46
  - `help`
45
47
 
@@ -44,6 +44,7 @@ PWN::Plugins::Packet.open_pcap_file(opts)
44
44
  - `construct_tcp`
45
45
  - `construct_udp`
46
46
  - `send`
47
+ - `tcp_connect_scan`
47
48
  - `authors`
48
49
  - `help`
49
50
 
@@ -37,6 +37,7 @@ PWN::Plugins::PreflightChecker.required_bins(opts)
37
37
  - `bin`
38
38
  - `require_bin`
39
39
  - `route`
40
+ - `capability_coverage`
40
41
  - `pick`
41
42
  - `cap_net_raw`
42
43
  - `require_cap_net_raw`
@@ -43,6 +43,8 @@ PWN::Plugins::ProcessTube.required_bins(opts)
43
43
  - `expect`
44
44
  - `stream`
45
45
  - `reap_orphans`
46
+ - `list`
47
+ - `kill`
46
48
  - `authors`
47
49
  - `help`
48
50
 
@@ -56,6 +56,7 @@ PWN::Plugins::REPL.ready_tty(opts)
56
56
  - `pwn_ai_run_cron`
57
57
  - `pwn_ai_run_sessions`
58
58
  - `pwn_ai_run_memory`
59
+ - `pwn_ai_run_learning`
59
60
  - `pwn_ai_run_skills`
60
61
  - `enable_autocomplete`
61
62
  - `start`
@@ -40,6 +40,10 @@ PWN::Plugins::Vault.refresh_encryption_secrets(opts)
40
40
  - `edit`
41
41
  - `encrypt`
42
42
  - `file_encrypted`
43
+ - `store`
44
+ - `fetch`
45
+ - `expand`
46
+ - `redact`
43
47
  - `authors`
44
48
  - `help`
45
49
  - `file_encrypted?`
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: pwn-reports-engagement
3
+ description: Drive PWN::Reports::Engagement from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Reports::Engagement
10
+ source: pwn/reports/engagement.rb
11
+ ---
12
+
13
+ # PWN::Reports::Engagement
14
+
15
+ Compile engagement findings into a client-ready HTML/Markdown report.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Reports::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/reports/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::Reports::Engagement.help
31
+ PWN::Reports::Engagement.generate(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `generate`
37
+ - `authors`
38
+ - `help`
39
+
40
+ ## Source
41
+
42
+ `pwn/reports/engagement.rb`
43
+
44
+ ## Verification
45
+
46
+ `PWN::Reports::Engagement.respond_to?(:generate)` after the
47
+ module is loaded. Read the source for parameter names.