pwn 0.5.615 → 0.5.617

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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -10
  3. data/bin/pwn +47 -2
  4. data/bin/pwn_gqrx_scanner +75 -18
  5. data/documentation/Diagrams.md +123 -40
  6. data/documentation/General-PWN-Usage.md +50 -30
  7. data/documentation/Home.md +78 -51
  8. data/documentation/How-PWN-Works.md +59 -57
  9. data/documentation/Installation.md +53 -28
  10. data/documentation/What-is-PWN.md +51 -32
  11. data/documentation/Why-PWN.md +41 -11
  12. data/documentation/diagrams/ai-integration-tool-calling.svg +141 -103
  13. data/documentation/diagrams/build.sh +20 -0
  14. data/documentation/diagrams/burp-vs-zap-preference.svg +47 -62
  15. data/documentation/diagrams/code-scanning-sast.svg +139 -79
  16. data/documentation/diagrams/dot/_THEME.md +27 -0
  17. data/documentation/diagrams/dot/agent-tool-registry.dot +59 -0
  18. data/documentation/diagrams/dot/ai-integration-tool-calling.dot +47 -20
  19. data/documentation/diagrams/dot/aws-cloud-security.dot +48 -0
  20. data/documentation/diagrams/dot/burp-vs-zap-preference.dot +23 -12
  21. data/documentation/diagrams/dot/code-scanning-sast.dot +46 -18
  22. data/documentation/diagrams/dot/cron-scheduling.dot +40 -0
  23. data/documentation/diagrams/dot/driver-framework.dot +36 -14
  24. data/documentation/diagrams/dot/extrospection-world-awareness.dot +55 -0
  25. data/documentation/diagrams/dot/fuzzing-workflow.dot +44 -24
  26. data/documentation/diagrams/dot/history-to-drivers.dot +31 -17
  27. data/documentation/diagrams/dot/memory-skills-detailed.dot +57 -25
  28. data/documentation/diagrams/dot/network-infra-testing.dot +51 -19
  29. data/documentation/diagrams/dot/overall-pwn-architecture.dot +110 -44
  30. data/documentation/diagrams/dot/penetration-testing-workflow.dot +56 -25
  31. data/documentation/diagrams/dot/plugin-ecosystem.dot +41 -27
  32. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +87 -46
  33. data/documentation/diagrams/dot/pwn-repl-prototyping.dot +49 -30
  34. data/documentation/diagrams/dot/reporting-pipeline.dot +43 -14
  35. data/documentation/diagrams/dot/reverse-engineering-flow.dot +40 -18
  36. data/documentation/diagrams/dot/sdr-radio-flow.dot +45 -0
  37. data/documentation/diagrams/dot/sessions-cron-automation.dot +41 -14
  38. data/documentation/diagrams/dot/swarm-multi-agent.dot +70 -0
  39. data/documentation/diagrams/dot/web-application-testing.dot +45 -23
  40. data/documentation/diagrams/dot/zero-day-research-flow.dot +46 -24
  41. data/documentation/diagrams/driver-framework.svg +87 -66
  42. data/documentation/diagrams/fuzzing-workflow.svg +128 -115
  43. data/documentation/diagrams/history-to-drivers.svg +84 -82
  44. data/documentation/diagrams/memory-skills-detailed.svg +167 -119
  45. data/documentation/diagrams/network-infra-testing.svg +146 -84
  46. data/documentation/diagrams/overall-pwn-architecture.svg +356 -185
  47. data/documentation/diagrams/penetration-testing-workflow.svg +161 -108
  48. data/documentation/diagrams/plugin-ecosystem.svg +225 -121
  49. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +257 -185
  50. data/documentation/diagrams/pwn-repl-prototyping.svg +126 -137
  51. data/documentation/diagrams/reporting-pipeline.svg +128 -68
  52. data/documentation/diagrams/reverse-engineering-flow.svg +100 -80
  53. data/documentation/diagrams/sessions-cron-automation.svg +112 -68
  54. data/documentation/diagrams/web-application-testing.svg +136 -100
  55. data/documentation/diagrams/zero-day-research-flow.svg +116 -112
  56. data/git_commit.sh +1 -1
  57. data/lib/pwn/ai/agent/assembly.rb +1 -1
  58. data/lib/pwn/ai/agent/btc.rb +1 -1
  59. data/lib/pwn/ai/agent/burp_suite.rb +1 -1
  60. data/lib/pwn/ai/agent/extrospection.rb +618 -0
  61. data/lib/pwn/ai/agent/gqrx.rb +2 -2
  62. data/lib/pwn/ai/agent/hacker_one.rb +1 -1
  63. data/lib/pwn/ai/agent/introspection.rb +91 -0
  64. data/lib/pwn/ai/agent/learning.rb +6 -4
  65. data/lib/pwn/ai/agent/loop.rb +15 -0
  66. data/lib/pwn/ai/agent/prompt_builder.rb +10 -1
  67. data/lib/pwn/ai/agent/sast.rb +1 -1
  68. data/lib/pwn/ai/agent/swarm.rb +437 -0
  69. data/lib/pwn/ai/agent/tools/cron.rb +163 -0
  70. data/lib/pwn/ai/agent/tools/extrospection.rb +280 -0
  71. data/lib/pwn/ai/agent/tools/learning.rb +108 -0
  72. data/lib/pwn/ai/agent/tools/memory.rb +27 -0
  73. data/lib/pwn/ai/agent/tools/metrics.rb +61 -0
  74. data/lib/pwn/ai/agent/tools/sessions.rb +139 -0
  75. data/lib/pwn/ai/agent/tools/skills.rb +30 -0
  76. data/lib/pwn/ai/agent/tools/swarm.rb +229 -0
  77. data/lib/pwn/ai/agent/transparent_browser.rb +1 -1
  78. data/lib/pwn/ai/agent/vuln_gen.rb +2 -2
  79. data/lib/pwn/ai/agent.rb +3 -0
  80. data/lib/pwn/ai/anthropic.rb +19 -4
  81. data/lib/pwn/ai.rb +0 -1
  82. data/lib/pwn/config.rb +10 -23
  83. data/lib/pwn/cron.rb +16 -7
  84. data/lib/pwn/plugins/repl.rb +90 -281
  85. data/lib/pwn/sdr/decoder/base.rb +251 -0
  86. data/lib/pwn/sdr/decoder/gsm.rb +84 -185
  87. data/lib/pwn/sdr/decoder/pocsag.rb +62 -217
  88. data/lib/pwn/sdr/decoder.rb +1 -0
  89. data/lib/pwn/sdr/gqrx.rb +446 -65
  90. data/lib/pwn/version.rb +1 -1
  91. data/spec/lib/pwn/ai/agent/extrospection_spec.rb +15 -0
  92. data/spec/lib/pwn/ai/agent/introspection_spec.rb +15 -0
  93. data/spec/lib/pwn/ai/agent/swarm_spec.rb +34 -0
  94. data/spec/lib/pwn/ai/agent/tools/cron_spec.rb +40 -0
  95. data/spec/lib/pwn/ai/agent/tools/extrospection_spec.rb +40 -0
  96. data/spec/lib/pwn/ai/agent/tools/metrics_spec.rb +20 -0
  97. data/spec/lib/pwn/ai/agent/tools/sessions_spec.rb +35 -0
  98. data/spec/lib/pwn/ai/agent/tools/swarm_spec.rb +17 -0
  99. data/spec/lib/pwn/{ai/introspection_spec.rb → sdr/decoder/base_spec.rb} +3 -3
  100. data/third_party/pwn_rdoc.jsonl +178 -33
  101. metadata +27 -3
  102. data/lib/pwn/ai/introspection.rb +0 -76
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.615
4
+ version: 0.5.617
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -1472,12 +1472,18 @@ files:
1472
1472
  - documentation/What-is-PWN.md
1473
1473
  - documentation/Why-PWN.md
1474
1474
  - documentation/diagrams/ai-integration-tool-calling.svg
1475
+ - documentation/diagrams/build.sh
1475
1476
  - documentation/diagrams/burp-vs-zap-preference.svg
1476
1477
  - documentation/diagrams/code-scanning-sast.svg
1478
+ - documentation/diagrams/dot/_THEME.md
1479
+ - documentation/diagrams/dot/agent-tool-registry.dot
1477
1480
  - documentation/diagrams/dot/ai-integration-tool-calling.dot
1481
+ - documentation/diagrams/dot/aws-cloud-security.dot
1478
1482
  - documentation/diagrams/dot/burp-vs-zap-preference.dot
1479
1483
  - documentation/diagrams/dot/code-scanning-sast.dot
1484
+ - documentation/diagrams/dot/cron-scheduling.dot
1480
1485
  - documentation/diagrams/dot/driver-framework.dot
1486
+ - documentation/diagrams/dot/extrospection-world-awareness.dot
1481
1487
  - documentation/diagrams/dot/fuzzing-workflow.dot
1482
1488
  - documentation/diagrams/dot/history-to-drivers.dot
1483
1489
  - documentation/diagrams/dot/memory-skills-detailed.dot
@@ -1489,7 +1495,9 @@ files:
1489
1495
  - documentation/diagrams/dot/pwn-repl-prototyping.dot
1490
1496
  - documentation/diagrams/dot/reporting-pipeline.dot
1491
1497
  - documentation/diagrams/dot/reverse-engineering-flow.dot
1498
+ - documentation/diagrams/dot/sdr-radio-flow.dot
1492
1499
  - documentation/diagrams/dot/sessions-cron-automation.dot
1500
+ - documentation/diagrams/dot/swarm-multi-agent.dot
1493
1501
  - documentation/diagrams/dot/web-application-testing.dot
1494
1502
  - documentation/diagrams/dot/zero-day-research-flow.dot
1495
1503
  - documentation/diagrams/driver-framework.svg
@@ -1823,8 +1831,10 @@ files:
1823
1831
  - lib/pwn/ai/agent/btc.rb
1824
1832
  - lib/pwn/ai/agent/burp_suite.rb
1825
1833
  - lib/pwn/ai/agent/dispatch.rb
1834
+ - lib/pwn/ai/agent/extrospection.rb
1826
1835
  - lib/pwn/ai/agent/gqrx.rb
1827
1836
  - lib/pwn/ai/agent/hacker_one.rb
1837
+ - lib/pwn/ai/agent/introspection.rb
1828
1838
  - lib/pwn/ai/agent/learning.rb
1829
1839
  - lib/pwn/ai/agent/loop.rb
1830
1840
  - lib/pwn/ai/agent/metrics.rb
@@ -1832,17 +1842,22 @@ files:
1832
1842
  - lib/pwn/ai/agent/registry.rb
1833
1843
  - lib/pwn/ai/agent/result.rb
1834
1844
  - lib/pwn/ai/agent/sast.rb
1845
+ - lib/pwn/ai/agent/swarm.rb
1846
+ - lib/pwn/ai/agent/tools/cron.rb
1847
+ - lib/pwn/ai/agent/tools/extrospection.rb
1835
1848
  - lib/pwn/ai/agent/tools/learning.rb
1836
1849
  - lib/pwn/ai/agent/tools/memory.rb
1850
+ - lib/pwn/ai/agent/tools/metrics.rb
1837
1851
  - lib/pwn/ai/agent/tools/ruby_eval.rb
1852
+ - lib/pwn/ai/agent/tools/sessions.rb
1838
1853
  - lib/pwn/ai/agent/tools/shell.rb
1839
1854
  - lib/pwn/ai/agent/tools/skills.rb
1855
+ - lib/pwn/ai/agent/tools/swarm.rb
1840
1856
  - lib/pwn/ai/agent/transparent_browser.rb
1841
1857
  - lib/pwn/ai/agent/vuln_gen.rb
1842
1858
  - lib/pwn/ai/anthropic.rb
1843
1859
  - lib/pwn/ai/gemini.rb
1844
1860
  - lib/pwn/ai/grok.rb
1845
- - lib/pwn/ai/introspection.rb
1846
1861
  - lib/pwn/ai/ollama.rb
1847
1862
  - lib/pwn/ai/open_ai.rb
1848
1863
  - lib/pwn/aws.rb
@@ -2088,6 +2103,7 @@ files:
2088
2103
  - lib/pwn/sast/window_location_hash.rb
2089
2104
  - lib/pwn/sdr.rb
2090
2105
  - lib/pwn/sdr/decoder.rb
2106
+ - lib/pwn/sdr/decoder/base.rb
2091
2107
  - lib/pwn/sdr/decoder/flex.rb
2092
2108
  - lib/pwn/sdr/decoder/gsm.rb
2093
2109
  - lib/pwn/sdr/decoder/pocsag.rb
@@ -2211,8 +2227,10 @@ files:
2211
2227
  - spec/lib/pwn/ai/agent/btc_spec.rb
2212
2228
  - spec/lib/pwn/ai/agent/burp_suite_spec.rb
2213
2229
  - spec/lib/pwn/ai/agent/dispatch_spec.rb
2230
+ - spec/lib/pwn/ai/agent/extrospection_spec.rb
2214
2231
  - spec/lib/pwn/ai/agent/gqrx_spec.rb
2215
2232
  - spec/lib/pwn/ai/agent/hacker_one_spec.rb
2233
+ - spec/lib/pwn/ai/agent/introspection_spec.rb
2216
2234
  - spec/lib/pwn/ai/agent/learning_spec.rb
2217
2235
  - spec/lib/pwn/ai/agent/loop_spec.rb
2218
2236
  - spec/lib/pwn/ai/agent/metrics_spec.rb
@@ -2220,18 +2238,23 @@ files:
2220
2238
  - spec/lib/pwn/ai/agent/registry_spec.rb
2221
2239
  - spec/lib/pwn/ai/agent/result_spec.rb
2222
2240
  - spec/lib/pwn/ai/agent/sast_spec.rb
2241
+ - spec/lib/pwn/ai/agent/swarm_spec.rb
2242
+ - spec/lib/pwn/ai/agent/tools/cron_spec.rb
2243
+ - spec/lib/pwn/ai/agent/tools/extrospection_spec.rb
2223
2244
  - spec/lib/pwn/ai/agent/tools/learning_spec.rb
2224
2245
  - spec/lib/pwn/ai/agent/tools/memory_spec.rb
2246
+ - spec/lib/pwn/ai/agent/tools/metrics_spec.rb
2225
2247
  - spec/lib/pwn/ai/agent/tools/ruby_eval_spec.rb
2248
+ - spec/lib/pwn/ai/agent/tools/sessions_spec.rb
2226
2249
  - spec/lib/pwn/ai/agent/tools/shell_spec.rb
2227
2250
  - spec/lib/pwn/ai/agent/tools/skills_spec.rb
2251
+ - spec/lib/pwn/ai/agent/tools/swarm_spec.rb
2228
2252
  - spec/lib/pwn/ai/agent/transparent_browser_spec.rb
2229
2253
  - spec/lib/pwn/ai/agent/vuln_gen_spec.rb
2230
2254
  - spec/lib/pwn/ai/agent_spec.rb
2231
2255
  - spec/lib/pwn/ai/anthropic_spec.rb
2232
2256
  - spec/lib/pwn/ai/gemini_spec.rb
2233
2257
  - spec/lib/pwn/ai/grok_spec.rb
2234
- - spec/lib/pwn/ai/introspection_spec.rb
2235
2258
  - spec/lib/pwn/ai/ollama_spec.rb
2236
2259
  - spec/lib/pwn/ai/open_ai_spec.rb
2237
2260
  - spec/lib/pwn/ai_spec.rb
@@ -2476,6 +2499,7 @@ files:
2476
2499
  - spec/lib/pwn/sast/version_spec.rb
2477
2500
  - spec/lib/pwn/sast/window_location_hash_spec.rb
2478
2501
  - spec/lib/pwn/sast_spec.rb
2502
+ - spec/lib/pwn/sdr/decoder/base_spec.rb
2479
2503
  - spec/lib/pwn/sdr/decoder/flex_spec.rb
2480
2504
  - spec/lib/pwn/sdr/decoder/gsm_spec.rb
2481
2505
  - spec/lib/pwn/sdr/decoder/pocsag_spec.rb
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
- require 'rest-client'
5
-
6
- module PWN
7
- module AI
8
- # This plugin interacts with PWN::Env's `ai` data structure
9
- # when `PWN::Env[:ai][:introspection]` is set to `true`.
10
- module Introspection
11
- # Supported Method Parameters::
12
- # response = PWN::AI::Introspection.reflect_on(
13
- # request: 'required - String - What you want the AI to reflect on',
14
- # system_role_content: 'optional - context to set up the model behavior for reflection',
15
- # spinner: 'optional - Boolean - Display spinner during operation (default: false)',
16
- # suppress_pii_warning: 'optional - Boolean - Suppress PII Warnings (default: false)'
17
- # )
18
-
19
- public_class_method def self.reflect_on(opts = {})
20
- request = opts[:request]
21
- raise 'ERROR: request must be provided' if request.nil?
22
-
23
- system_role_content = opts[:system_role_content]
24
-
25
- spinner = opts[:spinner] || false
26
-
27
- suppress_pii_warning = opts[:suppress_pii_warning] || false
28
-
29
- response = nil
30
-
31
- ai_introspection = PWN::Env[:ai][:introspection]
32
-
33
- if ai_introspection && request.length.positive?
34
- engine = PWN::Env[:ai][:active].to_s.downcase.to_sym
35
- valid_ai_engines = PWN::AI.help.reject { |e| e.downcase == :introspection }.map(&:downcase)
36
- raise "ERROR: Unsupported AI engine. Supported engines are: #{valid_ai_engines}" unless valid_ai_engines.include?(engine)
37
-
38
- warn "AI Introspection is enabled. Ensure #{engine} has been authorized for use and/or requests are sanitized properly." unless suppress_pii_warning
39
- response = PWN::AI::Agent::Loop.run(
40
- request: request.chomp,
41
- system_role_content: system_role_content,
42
- enabled_toolsets: [],
43
- spinner: spinner
44
- )
45
- end
46
-
47
- response
48
- rescue StandardError => e
49
- raise e
50
- end
51
-
52
- # Author(s):: 0day Inc. <support@0dayinc.com>
53
-
54
- public_class_method def self.authors
55
- "AUTHOR(S):
56
- 0day Inc. <support@0dayinc.com>
57
- "
58
- end
59
-
60
- # Display Usage for this Module
61
-
62
- public_class_method def self.help
63
- puts "USAGE:
64
- #{self}.reflect_on(
65
- request: 'required - String - What you want the AI to reflect on',
66
- system_role_content: 'optional - context to set up the model behavior for reflection',
67
- spinner: 'optional - Boolean - Display spinner during operation (default: false)',
68
- suppress_pii_warning: 'optional - Boolean - Suppress PII Warnings (default: false)'
69
- )
70
-
71
- #{self}.authors
72
- "
73
- end
74
- end
75
- end
76
- end