pwn 0.5.707 → 0.5.709

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 (447) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/Installation.md +1 -0
  3. data/documentation/Reinforcement-Learning.md +2 -2
  4. data/etc/default_skills/pwn/ai/agent/curriculum/SKILL.md +1 -0
  5. data/etc/default_skills/pwn/ai/agent/extrospection/osint/bridges/SKILL.md +30 -8
  6. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/SKILL.md +30 -8
  7. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/references/urls.md +1 -1
  8. data/etc/default_skills/pwn/ai/agent/extrospection/references/urls.md +0 -1
  9. data/etc/default_skills/pwn/ai/agent/metrics/SKILL.md +4 -0
  10. data/etc/default_skills/pwn/ai/agent/policy/SKILL.md +1 -1
  11. data/etc/default_skills/pwn/ai/agent/reward/SKILL.md +2 -0
  12. data/etc/default_skills/pwn/ai/agent/tool_guard/SKILL.md +2 -0
  13. data/etc/default_skills/pwn/memory_index/SKILL.md +0 -4
  14. data/etc/default_skills/pwn/plugins/aflplusplus/SKILL.md +48 -0
  15. data/etc/default_skills/pwn/plugins/android/SKILL.md +1 -0
  16. data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +49 -0
  17. data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +54 -0
  18. data/etc/default_skills/pwn/plugins/credential_attack/SKILL.md +51 -0
  19. data/etc/default_skills/pwn/plugins/doctor/SKILL.md +57 -0
  20. data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +61 -0
  21. data/etc/default_skills/pwn/plugins/frida/SKILL.md +49 -0
  22. data/etc/default_skills/pwn/plugins/gdb/SKILL.md +52 -0
  23. data/etc/default_skills/pwn/plugins/jobs/SKILL.md +51 -0
  24. data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +48 -0
  25. data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +52 -0
  26. data/etc/default_skills/pwn/plugins/radare2/SKILL.md +59 -0
  27. data/etc/default_skills/pwn/plugins/recon/SKILL.md +55 -0
  28. data/etc/default_skills/pwn/plugins/recon/references/urls.md +5 -0
  29. data/etc/default_skills/pwn/plugins/sqlmap/SKILL.md +48 -0
  30. data/etc/default_skills/pwn/plugins/transparent_browser/SKILL.md +0 -4
  31. data/etc/default_skills/pwn/plugins/volatility/SKILL.md +48 -0
  32. data/lib/pwn/ai/agent/assembly.rb +4 -1
  33. data/lib/pwn/ai/agent/btc.rb +4 -1
  34. data/lib/pwn/ai/agent/burp_suite.rb +5 -2
  35. data/lib/pwn/ai/agent/curriculum.rb +140 -37
  36. data/lib/pwn/ai/agent/dispatch.rb +34 -16
  37. data/lib/pwn/ai/agent/extrospection/osint/bridges.rb +9 -18
  38. data/lib/pwn/ai/agent/extrospection/osint/social.rb +9 -18
  39. data/lib/pwn/ai/agent/extrospection.rb +185 -60
  40. data/lib/pwn/ai/agent/gqrx.rb +4 -1
  41. data/lib/pwn/ai/agent/hacker_one.rb +5 -2
  42. data/lib/pwn/ai/agent/learning.rb +161 -29
  43. data/lib/pwn/ai/agent/loop.rb +84 -47
  44. data/lib/pwn/ai/agent/metrics.rb +198 -21
  45. data/lib/pwn/ai/agent/mistakes.rb +137 -20
  46. data/lib/pwn/ai/agent/open_goal.rb +25 -9
  47. data/lib/pwn/ai/agent/policy.rb +204 -53
  48. data/lib/pwn/ai/agent/prompt_builder.rb +38 -16
  49. data/lib/pwn/ai/agent/prompt_cache.rb +44 -13
  50. data/lib/pwn/ai/agent/reflect.rb +9 -5
  51. data/lib/pwn/ai/agent/registry.rb +65 -12
  52. data/lib/pwn/ai/agent/result.rb +19 -10
  53. data/lib/pwn/ai/agent/reward.rb +175 -38
  54. data/lib/pwn/ai/agent/sast.rb +4 -1
  55. data/lib/pwn/ai/agent/swarm.rb +72 -36
  56. data/lib/pwn/ai/agent/task_summarizer.rb +165 -36
  57. data/lib/pwn/ai/agent/tool_guard.rb +124 -6
  58. data/lib/pwn/ai/agent/transparent_browser.rb +4 -1
  59. data/lib/pwn/ai/agent/turn_finalizer.rb +41 -21
  60. data/lib/pwn/ai/agent/vuln_gen.rb +6 -3
  61. data/lib/pwn/ai/agent.rb +4 -0
  62. data/lib/pwn/ai/anthropic.rb +41 -7
  63. data/lib/pwn/ai/gemini.rb +21 -11
  64. data/lib/pwn/ai/grok.rb +44 -6
  65. data/lib/pwn/ai/http_retry.rb +40 -12
  66. data/lib/pwn/ai/ollama.rb +19 -10
  67. data/lib/pwn/ai/open_ai.rb +81 -30
  68. data/lib/pwn/ai/open_web_ui.rb +20 -14
  69. data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +7 -1
  70. data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +7 -1
  71. data/lib/pwn/ai/red_team/excessive_agency.rb +7 -1
  72. data/lib/pwn/ai/red_team/hidden_context_exposure.rb +7 -1
  73. data/lib/pwn/ai/red_team/insecure_output_handling.rb +7 -1
  74. data/lib/pwn/ai/red_team/jailbreak.rb +7 -1
  75. data/lib/pwn/ai/red_team/memory_poisoning.rb +7 -1
  76. data/lib/pwn/ai/red_team/multimodal_injection.rb +7 -1
  77. data/lib/pwn/ai/red_team/overreliance.rb +7 -1
  78. data/lib/pwn/ai/red_team/payload_splitting.rb +7 -1
  79. data/lib/pwn/ai/red_team/prompt_injection.rb +7 -1
  80. data/lib/pwn/ai/red_team/rag_poisoning.rb +7 -1
  81. data/lib/pwn/ai/red_team/sensitive_information_disclosure.rb +7 -1
  82. data/lib/pwn/ai/red_team/supply_chain.rb +7 -1
  83. data/lib/pwn/ai/red_team/system_prompt_extraction.rb +7 -1
  84. data/lib/pwn/ai/red_team/test_case_engine.rb +12 -9
  85. data/lib/pwn/ai/red_team/token_smuggling.rb +7 -1
  86. data/lib/pwn/ai/red_team/unbounded_consumption.rb +7 -1
  87. data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +7 -1
  88. data/lib/pwn/ai/red_team.rb +4 -0
  89. data/lib/pwn/ai.rb +4 -0
  90. data/lib/pwn/aws/acm.rb +5 -2
  91. data/lib/pwn/aws/api_gateway.rb +10 -7
  92. data/lib/pwn/aws/app_stream.rb +5 -2
  93. data/lib/pwn/aws/application_auto_scaling.rb +5 -2
  94. data/lib/pwn/aws/application_discovery_service.rb +5 -2
  95. data/lib/pwn/aws/auto_scaling.rb +5 -2
  96. data/lib/pwn/aws/batch.rb +5 -2
  97. data/lib/pwn/aws/budgets.rb +5 -2
  98. data/lib/pwn/aws/cloud_formation.rb +5 -2
  99. data/lib/pwn/aws/cloud_front.rb +7 -4
  100. data/lib/pwn/aws/cloud_hsm.rb +5 -2
  101. data/lib/pwn/aws/cloud_search.rb +5 -2
  102. data/lib/pwn/aws/cloud_search_domain.rb +5 -2
  103. data/lib/pwn/aws/cloud_trail.rb +5 -2
  104. data/lib/pwn/aws/cloud_watch.rb +5 -2
  105. data/lib/pwn/aws/cloud_watch_events.rb +5 -2
  106. data/lib/pwn/aws/cloud_watch_logs.rb +5 -2
  107. data/lib/pwn/aws/code_build.rb +5 -2
  108. data/lib/pwn/aws/code_commit.rb +5 -2
  109. data/lib/pwn/aws/code_deploy.rb +5 -2
  110. data/lib/pwn/aws/code_pipeline.rb +5 -2
  111. data/lib/pwn/aws/cognito_identity.rb +5 -2
  112. data/lib/pwn/aws/cognito_identity_provider.rb +5 -2
  113. data/lib/pwn/aws/cognito_sync.rb +5 -2
  114. data/lib/pwn/aws/config_service.rb +5 -2
  115. data/lib/pwn/aws/data_pipleline.rb +5 -2
  116. data/lib/pwn/aws/database_migration_service.rb +5 -2
  117. data/lib/pwn/aws/device_farm.rb +5 -2
  118. data/lib/pwn/aws/direct_connect.rb +5 -2
  119. data/lib/pwn/aws/directory_service.rb +5 -2
  120. data/lib/pwn/aws/dynamo_db.rb +5 -2
  121. data/lib/pwn/aws/dynamo_db_streams.rb +5 -2
  122. data/lib/pwn/aws/ec2.rb +5 -2
  123. data/lib/pwn/aws/ecr.rb +5 -2
  124. data/lib/pwn/aws/ecs.rb +5 -2
  125. data/lib/pwn/aws/efs.rb +5 -2
  126. data/lib/pwn/aws/elasti_cache.rb +5 -2
  127. data/lib/pwn/aws/elastic_beanstalk.rb +8 -5
  128. data/lib/pwn/aws/elastic_load_balancing.rb +5 -2
  129. data/lib/pwn/aws/elastic_load_balancing_v2.rb +6 -3
  130. data/lib/pwn/aws/elastic_transcoder.rb +5 -2
  131. data/lib/pwn/aws/elasticsearch_service.rb +5 -2
  132. data/lib/pwn/aws/emr.rb +5 -2
  133. data/lib/pwn/aws/firehose.rb +5 -2
  134. data/lib/pwn/aws/game_lift.rb +5 -2
  135. data/lib/pwn/aws/glacier.rb +6 -3
  136. data/lib/pwn/aws/health.rb +5 -2
  137. data/lib/pwn/aws/iam.rb +10 -4
  138. data/lib/pwn/aws/import_export.rb +5 -2
  139. data/lib/pwn/aws/inspector.rb +5 -2
  140. data/lib/pwn/aws/iot.rb +5 -2
  141. data/lib/pwn/aws/iot_data_plane.rb +5 -2
  142. data/lib/pwn/aws/kinesis.rb +5 -2
  143. data/lib/pwn/aws/kinesis_analytics.rb +5 -2
  144. data/lib/pwn/aws/kms.rb +5 -2
  145. data/lib/pwn/aws/lambda.rb +5 -2
  146. data/lib/pwn/aws/lambda_preview.rb +5 -2
  147. data/lib/pwn/aws/lex.rb +5 -2
  148. data/lib/pwn/aws/lightsail.rb +5 -2
  149. data/lib/pwn/aws/machine_learning.rb +5 -2
  150. data/lib/pwn/aws/marketplace_commerce_analytics.rb +5 -2
  151. data/lib/pwn/aws/marketplace_metering.rb +5 -2
  152. data/lib/pwn/aws/ops_works.rb +5 -2
  153. data/lib/pwn/aws/ops_works_cm.rb +5 -2
  154. data/lib/pwn/aws/pinpoint.rb +5 -2
  155. data/lib/pwn/aws/polly.rb +5 -2
  156. data/lib/pwn/aws/rds.rb +5 -2
  157. data/lib/pwn/aws/redshift.rb +5 -2
  158. data/lib/pwn/aws/rekognition.rb +5 -2
  159. data/lib/pwn/aws/route53.rb +5 -2
  160. data/lib/pwn/aws/route53_domains.rb +5 -2
  161. data/lib/pwn/aws/s3.rb +5 -2
  162. data/lib/pwn/aws/service_catalog.rb +5 -2
  163. data/lib/pwn/aws/ses.rb +5 -2
  164. data/lib/pwn/aws/shield.rb +5 -2
  165. data/lib/pwn/aws/simple_db.rb +5 -2
  166. data/lib/pwn/aws/sms.rb +5 -2
  167. data/lib/pwn/aws/snowball.rb +5 -2
  168. data/lib/pwn/aws/sns.rb +5 -2
  169. data/lib/pwn/aws/sqs.rb +5 -2
  170. data/lib/pwn/aws/ssm.rb +5 -2
  171. data/lib/pwn/aws/states.rb +5 -2
  172. data/lib/pwn/aws/storage_gateway.rb +5 -2
  173. data/lib/pwn/aws/sts.rb +4 -1
  174. data/lib/pwn/aws/support.rb +5 -2
  175. data/lib/pwn/aws/swf.rb +5 -2
  176. data/lib/pwn/aws/waf.rb +5 -2
  177. data/lib/pwn/aws/waf_regional.rb +5 -2
  178. data/lib/pwn/aws/workspaces.rb +5 -2
  179. data/lib/pwn/aws/x_ray.rb +5 -2
  180. data/lib/pwn/aws.rb +4 -0
  181. data/lib/pwn/banner/anon.rb +3 -0
  182. data/lib/pwn/banner/bubble.rb +3 -0
  183. data/lib/pwn/banner/cheshire.rb +3 -0
  184. data/lib/pwn/banner/code_cave.rb +3 -0
  185. data/lib/pwn/banner/dont_panic.rb +3 -0
  186. data/lib/pwn/banner/f_society.rb +3 -0
  187. data/lib/pwn/banner/fork_bomb.rb +3 -0
  188. data/lib/pwn/banner/jmp_esp.rb +3 -0
  189. data/lib/pwn/banner/matrix.rb +5 -1
  190. data/lib/pwn/banner/ninja.rb +3 -0
  191. data/lib/pwn/banner/off_the_air.rb +3 -0
  192. data/lib/pwn/banner/pirate.rb +3 -0
  193. data/lib/pwn/banner/radare2.rb +3 -0
  194. data/lib/pwn/banner/radare2_ai.rb +3 -0
  195. data/lib/pwn/banner/white_rabbit.rb +3 -0
  196. data/lib/pwn/banner.rb +6 -2
  197. data/lib/pwn/blockchain/btc.rb +8 -3
  198. data/lib/pwn/blockchain/eth.rb +10 -3
  199. data/lib/pwn/blockchain.rb +4 -0
  200. data/lib/pwn/bounty/lifecycle_authz_replay.rb +46 -27
  201. data/lib/pwn/bounty.rb +4 -0
  202. data/lib/pwn/config.rb +86 -19
  203. data/lib/pwn/cron.rb +297 -20
  204. data/lib/pwn/driver.rb +2 -18
  205. data/lib/pwn/ffi/adalm_pluto.rb +65 -11
  206. data/lib/pwn/ffi/fftw.rb +31 -6
  207. data/lib/pwn/ffi/hack_rf.rb +59 -8
  208. data/lib/pwn/ffi/liquid.rb +63 -10
  209. data/lib/pwn/ffi/rtl_sdr.rb +35 -5
  210. data/lib/pwn/ffi/soapy_sdr.rb +60 -10
  211. data/lib/pwn/ffi/stdio.rb +5 -8
  212. data/lib/pwn/ffi/volk.rb +36 -7
  213. data/lib/pwn/ffi.rb +12 -0
  214. data/lib/pwn/memory.rb +136 -16
  215. data/lib/pwn/memory_index.rb +34 -19
  216. data/lib/pwn/migrate.rb +34 -24
  217. data/lib/pwn/module_skills.rb +39 -8
  218. data/lib/pwn/plugins/aflplusplus.rb +52 -0
  219. data/lib/pwn/plugins/android.rb +65 -245
  220. data/lib/pwn/plugins/artifact_registry.rb +71 -0
  221. data/lib/pwn/plugins/assembly.rb +9 -4
  222. data/lib/pwn/plugins/authentication_helper.rb +8 -5
  223. data/lib/pwn/plugins/baresip.rb +59 -12
  224. data/lib/pwn/plugins/basic_auth.rb +9 -3
  225. data/lib/pwn/plugins/beef.rb +28 -18
  226. data/lib/pwn/plugins/binary_parser.rb +133 -0
  227. data/lib/pwn/plugins/black_duck_binary_analysis.rb +63 -39
  228. data/lib/pwn/plugins/burp_suite.rb +98 -68
  229. data/lib/pwn/plugins/bus_pirate.rb +15 -8
  230. data/lib/pwn/plugins/char.rb +33 -3
  231. data/lib/pwn/plugins/credential_attack.rb +99 -0
  232. data/lib/pwn/plugins/credit_card.rb +6 -1
  233. data/lib/pwn/plugins/dao_ldap.rb +19 -13
  234. data/lib/pwn/plugins/dao_mongo.rb +11 -5
  235. data/lib/pwn/plugins/dao_postgres.rb +28 -19
  236. data/lib/pwn/plugins/dao_sqlite3.rb +15 -6
  237. data/lib/pwn/plugins/defect_dojo.rb +38 -22
  238. data/lib/pwn/plugins/detect_os.rb +5 -0
  239. data/lib/pwn/plugins/doctor.rb +149 -0
  240. data/lib/pwn/plugins/ein.rb +3 -0
  241. data/lib/pwn/plugins/exploit_dev.rb +264 -0
  242. data/lib/pwn/plugins/file_fu.rb +11 -8
  243. data/lib/pwn/plugins/frida.rb +61 -0
  244. data/lib/pwn/plugins/fuzz.rb +9 -6
  245. data/lib/pwn/plugins/gdb.rb +95 -0
  246. data/lib/pwn/plugins/git.rb +19 -14
  247. data/lib/pwn/plugins/github.rb +38 -15
  248. data/lib/pwn/plugins/google_workspace.rb +188 -45
  249. data/lib/pwn/plugins/hacker_one.rb +159 -35
  250. data/lib/pwn/plugins/hunter.rb +6 -3
  251. data/lib/pwn/plugins/ip_info.rb +9 -4
  252. data/lib/pwn/plugins/irc.rb +28 -15
  253. data/lib/pwn/plugins/jenkins.rb +65 -57
  254. data/lib/pwn/plugins/jira_data_center.rb +30 -22
  255. data/lib/pwn/plugins/jobs.rb +109 -0
  256. data/lib/pwn/plugins/json_pathify.rb +9 -5
  257. data/lib/pwn/plugins/log.rb +113 -13
  258. data/lib/pwn/plugins/mail_agent.rb +87 -79
  259. data/lib/pwn/plugins/metasploit.rb +11 -6
  260. data/lib/pwn/plugins/monkey_patch.rb +3 -0
  261. data/lib/pwn/plugins/msr206.rb +42 -28
  262. data/lib/pwn/plugins/nessus_cloud.rb +44 -4
  263. data/lib/pwn/plugins/nexpose_vuln_scan.rb +40 -24
  264. data/lib/pwn/plugins/nmap_it.rb +14 -34
  265. data/lib/pwn/plugins/nuclei.rb +57 -0
  266. data/lib/pwn/plugins/oauth2.rb +11 -5
  267. data/lib/pwn/plugins/ocr.rb +3 -0
  268. data/lib/pwn/plugins/open_api.rb +5 -2
  269. data/lib/pwn/plugins/openvas.rb +33 -25
  270. data/lib/pwn/plugins/packet.rb +152 -31
  271. data/lib/pwn/plugins/pdf_parse.rb +5 -2
  272. data/lib/pwn/plugins/pony.rb +86 -1
  273. data/lib/pwn/plugins/process_tube.rb +120 -0
  274. data/lib/pwn/plugins/ps.rb +7 -1
  275. data/lib/pwn/plugins/pwn_logger.rb +6 -2
  276. data/lib/pwn/plugins/rabbit_mq.rb +12 -7
  277. data/lib/pwn/plugins/radare2.rb +253 -0
  278. data/lib/pwn/plugins/recon.rb +161 -0
  279. data/lib/pwn/plugins/repl.rb +122 -1
  280. data/lib/pwn/plugins/scannable_codes.rb +5 -1
  281. data/lib/pwn/plugins/serial.rb +24 -14
  282. data/lib/pwn/plugins/shodan.rb +54 -35
  283. data/lib/pwn/plugins/slack_client.rb +11 -6
  284. data/lib/pwn/plugins/sock.rb +16 -8
  285. data/lib/pwn/plugins/spider.rb +5 -2
  286. data/lib/pwn/plugins/sqlmap.rb +49 -0
  287. data/lib/pwn/plugins/ssn.rb +3 -0
  288. data/lib/pwn/plugins/thread_pool.rb +6 -9
  289. data/lib/pwn/plugins/tor.rb +9 -4
  290. data/lib/pwn/plugins/transparent_browser.rb +62 -107
  291. data/lib/pwn/plugins/tty_spinner.rb +16 -2
  292. data/lib/pwn/plugins/twitter_api.rb +6 -2
  293. data/lib/pwn/plugins/uri_scheme.rb +4 -1
  294. data/lib/pwn/plugins/vault.rb +12 -3
  295. data/lib/pwn/plugins/vin.rb +24 -12
  296. data/lib/pwn/plugins/voice.rb +7 -2
  297. data/lib/pwn/plugins/volatility.rb +48 -0
  298. data/lib/pwn/plugins/vsphere.rb +9 -5
  299. data/lib/pwn/plugins/xxd.rb +12 -43
  300. data/lib/pwn/plugins/zaproxy.rb +30 -16
  301. data/lib/pwn/plugins.rb +19 -0
  302. data/lib/pwn/reports/ai_red_team.rb +6 -2
  303. data/lib/pwn/reports/csv.rb +8 -1
  304. data/lib/pwn/reports/fuzz.rb +5 -2
  305. data/lib/pwn/reports/html.rb +8 -1
  306. data/lib/pwn/reports/html_footer.rb +4 -3
  307. data/lib/pwn/reports/html_header.rb +6 -2
  308. data/lib/pwn/reports/json.rb +8 -1
  309. data/lib/pwn/reports/markdown.rb +8 -1
  310. data/lib/pwn/reports/pdf.rb +8 -1
  311. data/lib/pwn/reports/phone.rb +5 -2
  312. data/lib/pwn/reports/sast.rb +6 -2
  313. data/lib/pwn/reports/uri_buster.rb +5 -2
  314. data/lib/pwn/reports/xml.rb +8 -1
  315. data/lib/pwn/reports.rb +19 -0
  316. data/lib/pwn/sast/amqp_connect_as_guest.rb +9 -3
  317. data/lib/pwn/sast/apache_file_system_util_api.rb +9 -3
  318. data/lib/pwn/sast/aws.rb +9 -3
  319. data/lib/pwn/sast/banned_function_calls_c.rb +9 -3
  320. data/lib/pwn/sast/base64.rb +9 -3
  321. data/lib/pwn/sast/beef_hook.rb +9 -3
  322. data/lib/pwn/sast/cmd_execution_go_lang.rb +9 -3
  323. data/lib/pwn/sast/cmd_execution_java.rb +9 -3
  324. data/lib/pwn/sast/cmd_execution_python.rb +9 -3
  325. data/lib/pwn/sast/cmd_execution_ruby.rb +9 -3
  326. data/lib/pwn/sast/cmd_execution_scala.rb +9 -3
  327. data/lib/pwn/sast/csrf.rb +9 -3
  328. data/lib/pwn/sast/deserial_java.rb +9 -3
  329. data/lib/pwn/sast/emoticon.rb +9 -3
  330. data/lib/pwn/sast/eval.rb +9 -3
  331. data/lib/pwn/sast/factory.rb +9 -3
  332. data/lib/pwn/sast/http_authorization_header.rb +9 -3
  333. data/lib/pwn/sast/inner_html.rb +9 -3
  334. data/lib/pwn/sast/keystore.rb +9 -3
  335. data/lib/pwn/sast/local_storage.rb +9 -3
  336. data/lib/pwn/sast/location_hash.rb +9 -3
  337. data/lib/pwn/sast/log4j.rb +9 -3
  338. data/lib/pwn/sast/logger.rb +9 -3
  339. data/lib/pwn/sast/md5.rb +9 -3
  340. data/lib/pwn/sast/outer_html.rb +9 -3
  341. data/lib/pwn/sast/padding_oracle.rb +9 -3
  342. data/lib/pwn/sast/password.rb +9 -3
  343. data/lib/pwn/sast/php_input_mechanisms.rb +9 -3
  344. data/lib/pwn/sast/php_type_juggling.rb +9 -3
  345. data/lib/pwn/sast/pom_version.rb +9 -3
  346. data/lib/pwn/sast/port.rb +9 -3
  347. data/lib/pwn/sast/post_message.rb +9 -3
  348. data/lib/pwn/sast/private_key.rb +9 -3
  349. data/lib/pwn/sast/redirect.rb +9 -3
  350. data/lib/pwn/sast/redos.rb +9 -3
  351. data/lib/pwn/sast/shell.rb +9 -3
  352. data/lib/pwn/sast/signature.rb +9 -3
  353. data/lib/pwn/sast/sql.rb +9 -3
  354. data/lib/pwn/sast/ssl.rb +9 -3
  355. data/lib/pwn/sast/sudo.rb +9 -3
  356. data/lib/pwn/sast/task_tag.rb +9 -3
  357. data/lib/pwn/sast/test_case_engine.rb +11 -7
  358. data/lib/pwn/sast/throw_errors.rb +9 -3
  359. data/lib/pwn/sast/token.rb +9 -3
  360. data/lib/pwn/sast/type_script_type_juggling.rb +9 -3
  361. data/lib/pwn/sast/use_after_free.rb +9 -3
  362. data/lib/pwn/sast/version.rb +9 -3
  363. data/lib/pwn/sast/window_location_hash.rb +9 -3
  364. data/lib/pwn/sast.rb +4 -0
  365. data/lib/pwn/sdr/decoder/adsb.rb +36 -5
  366. data/lib/pwn/sdr/decoder/apt.rb +9 -6
  367. data/lib/pwn/sdr/decoder/base.rb +74 -22
  368. data/lib/pwn/sdr/decoder/bluetooth.rb +17 -5
  369. data/lib/pwn/sdr/decoder/dect.rb +12 -3
  370. data/lib/pwn/sdr/decoder/dsp.rb +229 -39
  371. data/lib/pwn/sdr/decoder/flex.rb +59 -11
  372. data/lib/pwn/sdr/decoder/gps.rb +12 -3
  373. data/lib/pwn/sdr/decoder/gsm.rb +24 -4
  374. data/lib/pwn/sdr/decoder/iridium.rb +12 -3
  375. data/lib/pwn/sdr/decoder/lora.rb +13 -4
  376. data/lib/pwn/sdr/decoder/lte.rb +27 -3
  377. data/lib/pwn/sdr/decoder/morse.rb +12 -3
  378. data/lib/pwn/sdr/decoder/p25.rb +12 -3
  379. data/lib/pwn/sdr/decoder/pager.rb +8 -5
  380. data/lib/pwn/sdr/decoder/pocsag.rb +29 -9
  381. data/lib/pwn/sdr/decoder/rds.rb +14 -8
  382. data/lib/pwn/sdr/decoder/rfid.rb +12 -3
  383. data/lib/pwn/sdr/decoder/rtl433.rb +12 -3
  384. data/lib/pwn/sdr/decoder/rtty.rb +8 -5
  385. data/lib/pwn/sdr/decoder/wifi.rb +12 -3
  386. data/lib/pwn/sdr/decoder/zigbee.rb +12 -3
  387. data/lib/pwn/sdr/decoder.rb +9 -0
  388. data/lib/pwn/sdr/flipper_zero.rb +17 -10
  389. data/lib/pwn/sdr/frequency_allocation.rb +4 -1
  390. data/lib/pwn/sdr/gqrx.rb +178 -119
  391. data/lib/pwn/sdr/rfidler.rb +4 -1
  392. data/lib/pwn/sdr/son_micro_rfid.rb +37 -24
  393. data/lib/pwn/sdr.rb +14 -0
  394. data/lib/pwn/sessions.rb +86 -16
  395. data/lib/pwn/setup.rb +94 -37
  396. data/lib/pwn/version.rb +1 -1
  397. data/lib/pwn/www/app_cobalt_io.rb +11 -5
  398. data/lib/pwn/www/bing.rb +10 -5
  399. data/lib/pwn/www/bug_crowd.rb +11 -5
  400. data/lib/pwn/www/checkip.rb +8 -4
  401. data/lib/pwn/www/coinbase_pro.rb +11 -5
  402. data/lib/pwn/www/duckduckgo.rb +12 -6
  403. data/lib/pwn/www/facebook.rb +11 -5
  404. data/lib/pwn/www/github.rb +11 -5
  405. data/lib/pwn/www/google.rb +11 -5
  406. data/lib/pwn/www/hacker_one.rb +20 -9
  407. data/lib/pwn/www/linkedin.rb +11 -5
  408. data/lib/pwn/www/pandora.rb +11 -5
  409. data/lib/pwn/www/pastebin.rb +9 -4
  410. data/lib/pwn/www/paypal.rb +19 -11
  411. data/lib/pwn/www/synack.rb +11 -5
  412. data/lib/pwn/www/torch.rb +13 -8
  413. data/lib/pwn/www/trading_view.rb +11 -5
  414. data/lib/pwn/www/twitter.rb +11 -5
  415. data/lib/pwn/www/uber.rb +11 -5
  416. data/lib/pwn/www/upwork.rb +11 -5
  417. data/lib/pwn/www/wayback_machine.rb +12 -6
  418. data/lib/pwn/www/youtube.rb +10 -5
  419. data/lib/pwn/www.rb +4 -0
  420. data/spec/conventions_spec.rb +118 -2
  421. data/spec/integration/prompt_builder_spec.rb +1 -1
  422. data/spec/integration/reinforced_feedback_loop_spec.rb +8 -8
  423. data/spec/lib/pwn/ai/agent/injection_guard_spec.rb +65 -0
  424. data/spec/lib/pwn/ai/agent/metrics_spec.rb +15 -0
  425. data/spec/lib/pwn/ai/agent/mistakes_spec.rb +5 -2
  426. data/spec/lib/pwn/ai/agent/policy_spec.rb +33 -2
  427. data/spec/lib/pwn/ai/agent/reward_spec.rb +9 -0
  428. data/spec/lib/pwn/ai/agent/scoreboard_roadmap_spec.rb +61 -0
  429. data/spec/lib/pwn/plugins/aflplusplus_spec.rb +13 -0
  430. data/spec/lib/pwn/plugins/artifact_registry_spec.rb +13 -0
  431. data/spec/lib/pwn/plugins/binary_parser_spec.rb +21 -0
  432. data/spec/lib/pwn/plugins/credential_attack_spec.rb +13 -0
  433. data/spec/lib/pwn/plugins/doctor_spec.rb +23 -0
  434. data/spec/lib/pwn/plugins/exploit_dev_spec.rb +23 -0
  435. data/spec/lib/pwn/plugins/frida_spec.rb +13 -0
  436. data/spec/lib/pwn/plugins/gdb_spec.rb +13 -0
  437. data/spec/lib/pwn/plugins/jobs_spec.rb +13 -0
  438. data/spec/lib/pwn/plugins/nuclei_spec.rb +13 -0
  439. data/spec/lib/pwn/plugins/process_tube_spec.rb +13 -0
  440. data/spec/lib/pwn/plugins/radare2_spec.rb +13 -0
  441. data/spec/lib/pwn/plugins/recon_spec.rb +26 -0
  442. data/spec/lib/pwn/plugins/sqlmap_spec.rb +13 -0
  443. data/spec/lib/pwn/plugins/volatility_spec.rb +13 -0
  444. data/third_party/pwn_rdoc.jsonl +136 -6
  445. metadata +49 -3
  446. data/etc/default_skills/pwn/memory_index/references/urls.md +0 -4
  447. data/etc/default_skills/pwn/plugins/transparent_browser/references/urls.md +0 -3
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: pwn-plugins-gdb
3
+ description: Drive PWN::Plugins::GDB from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::GDB
10
+ source: pwn/plugins/gdb.rb
11
+ ---
12
+
13
+ # PWN::Plugins::GDB
14
+
15
+ gdb/MI batch driver: run-to-crash, registers, mitigations, core dumps.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::GDB` 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/gdb.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::GDB.help
31
+ PWN::Plugins::GDB.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `batch`
38
+ - `run_to_crash`
39
+ - `registers`
40
+ - `mitigations`
41
+ - `core`
42
+ - `authors`
43
+ - `help`
44
+
45
+ ## Source
46
+
47
+ `pwn/plugins/gdb.rb`
48
+
49
+ ## Verification
50
+
51
+ `PWN::Plugins::GDB.respond_to?(:required_bins)` after the
52
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: pwn-plugins-jobs
3
+ description: Drive PWN::Plugins::Jobs from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Jobs
10
+ source: pwn/plugins/jobs.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Jobs
14
+
15
+ Background jobs that survive a pwn-ai turn (scans, fuzz campaigns).
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Jobs` 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/jobs.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::Jobs.help
31
+ PWN::Plugins::Jobs.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `start`
38
+ - `status`
39
+ - `tail`
40
+ - `stop`
41
+ - `authors`
42
+ - `help`
43
+
44
+ ## Source
45
+
46
+ `pwn/plugins/jobs.rb`
47
+
48
+ ## Verification
49
+
50
+ `PWN::Plugins::Jobs.respond_to?(:required_bins)` after the
51
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: pwn-plugins-nuclei
3
+ description: Drive PWN::Plugins::Nuclei from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Nuclei
10
+ source: pwn/plugins/nuclei.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Nuclei
14
+
15
+ nuclei wrapper: template/severity, JSONL findings.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Nuclei` 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/nuclei.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::Nuclei.help
31
+ PWN::Plugins::Nuclei.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `scan`
38
+ - `authors`
39
+ - `help`
40
+
41
+ ## Source
42
+
43
+ `pwn/plugins/nuclei.rb`
44
+
45
+ ## Verification
46
+
47
+ `PWN::Plugins::Nuclei.respond_to?(:required_bins)` after the
48
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: pwn-plugins-processtube
3
+ description: Drive PWN::Plugins::ProcessTube from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::ProcessTube
10
+ source: pwn/plugins/process_tube.rb
11
+ ---
12
+
13
+ # PWN::Plugins::ProcessTube
14
+
15
+ PTY.spawn tube: sendline/recvuntil/recvline, persisted across pwn_eval.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::ProcessTube` 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/process_tube.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::ProcessTube.help
31
+ PWN::Plugins::ProcessTube.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `spawn`
38
+ - `write_line`
39
+ - `recvuntil`
40
+ - `recvline`
41
+ - `close`
42
+ - `authors`
43
+ - `help`
44
+
45
+ ## Source
46
+
47
+ `pwn/plugins/process_tube.rb`
48
+
49
+ ## Verification
50
+
51
+ `PWN::Plugins::ProcessTube.respond_to?(:required_bins)` after the
52
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: pwn-plugins-radare2
3
+ description: Drive PWN::Plugins::Radare2 from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Radare2
10
+ source: pwn/plugins/radare2.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Radare2
14
+
15
+ Persistent r2pipe-style session: open/cmd/cmdj/close plus helpers.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::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/plugins/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::Plugins::Radare2.help
31
+ PWN::Plugins::Radare2.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `open`
38
+ - `cmd`
39
+ - `cmdj`
40
+ - `close`
41
+ - `functions`
42
+ - `xrefs_to`
43
+ - `disasm`
44
+ - `strings`
45
+ - `imports`
46
+ - `sections`
47
+ - `binary_info`
48
+ - `decompile`
49
+ - `authors`
50
+ - `help`
51
+
52
+ ## Source
53
+
54
+ `pwn/plugins/radare2.rb`
55
+
56
+ ## Verification
57
+
58
+ `PWN::Plugins::Radare2.respond_to?(:required_bins)` after the
59
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: pwn-plugins-recon
3
+ description: Drive PWN::Plugins::Recon from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Recon
10
+ source: pwn/plugins/recon.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Recon
14
+
15
+ subfinder/httpx/masscan wrappers + cert-transparency (crt.sh, certspotter).
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Recon` 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/recon.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::Recon.help
31
+ PWN::Plugins::Recon.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `subdomains`
38
+ - `httpx`
39
+ - `masscan`
40
+ - `crt_sh`
41
+ - `authors`
42
+ - `help`
43
+
44
+ ## References
45
+
46
+ - `references/urls.md` — URLs from source
47
+
48
+ ## Source
49
+
50
+ `pwn/plugins/recon.rb`
51
+
52
+ ## Verification
53
+
54
+ `PWN::Plugins::Recon.respond_to?(:required_bins)` after the
55
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,5 @@
1
+ # PWN::Plugins::Recon source links
2
+
3
+ - https://api.certspotter.com/v1/issuances?domain=#{URI.encode_www_form_component(domain
4
+ - https://crt.sh/?q=#{URI.encode_www_form_component(domain
5
+ - https://crt.sh/?q=#{URI.encode_www_form_component(
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: pwn-plugins-sqlmap
3
+ description: Drive PWN::Plugins::Sqlmap from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Sqlmap
10
+ source: pwn/plugins/sqlmap.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Sqlmap
14
+
15
+ sqlmap wrapper to pair with SAST SQL detection.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Sqlmap` 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/sqlmap.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::Sqlmap.help
31
+ PWN::Plugins::Sqlmap.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `run`
38
+ - `authors`
39
+ - `help`
40
+
41
+ ## Source
42
+
43
+ `pwn/plugins/sqlmap.rb`
44
+
45
+ ## Verification
46
+
47
+ `PWN::Plugins::Sqlmap.respond_to?(:required_bins)` after the
48
+ module is loaded. Read the source for parameter names.
@@ -58,10 +58,6 @@ PWN::Plugins::TransparentBrowser.open(opts)
58
58
  - `authors`
59
59
  - `help`
60
60
 
61
- ## References
62
-
63
- - `references/urls.md` — URLs from source
64
-
65
61
  ## Source
66
62
 
67
63
  `pwn/plugins/transparent_browser.rb`
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: pwn-plugins-volatility
3
+ description: Drive PWN::Plugins::Volatility from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Volatility
10
+ source: pwn/plugins/volatility.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Volatility
14
+
15
+ volatility3 wrapper.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Volatility` 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/volatility.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::Volatility.help
31
+ PWN::Plugins::Volatility.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `run`
38
+ - `authors`
39
+ - `help`
40
+
41
+ ## Source
42
+
43
+ `pwn/plugins/volatility.rb`
44
+
45
+ ## Verification
46
+
47
+ `PWN::Plugins::Volatility.respond_to?(:required_bins)` after the
48
+ module is loaded. Read the source for parameter names.
@@ -56,15 +56,18 @@ module PWN
56
56
 
57
57
  public_class_method def self.help
58
58
  puts "USAGE:
59
- ai_analysis = PWN::AI::Agent::Assembly.analyze(
59
+ # Run analyze and return its result
60
+ #{self}.analyze(
60
61
  request: 'required - the assembly opcodes or instructions to be analyzed',
61
62
  type: 'required - :opcodes_to_asm|:asm_to_opcodes - specify the type of analysis to perform',
62
63
  arch: 'required - name of arch returned from `PWN::Plugins::Assembly.list_supported_archs` (e.g., :i386|:i686|:x86|:x64|:arm|:arm64, etc.)',
63
64
  endian: 'required - the endianness of the assembly code (e.g., :little|:big)'
64
65
  )
65
66
 
67
+ # Print the AUTHOR(S) string for this module.
66
68
  #{self}.authors
67
69
  "
70
+ constants.sort
68
71
  end
69
72
  end
70
73
  end
@@ -37,12 +37,15 @@ module PWN
37
37
 
38
38
  public_class_method def self.help
39
39
  puts "USAGE:
40
- ai_analysis = PWN::AI::Agent::BTC.analyze(
40
+ # Run analyze and return its result
41
+ #{self}.analyze(
41
42
  request: 'required - latest block information retrieved from a bitcoin node via `PWN::Blockchain::BTC.get_latest_block`'
42
43
  )
43
44
 
45
+ # Print the AUTHOR(S) string for this module.
44
46
  #{self}.authors
45
47
  "
48
+ constants.sort
46
49
  end
47
50
  end
48
51
  end
@@ -71,12 +71,15 @@ module PWN
71
71
 
72
72
  public_class_method def self.help
73
73
  puts "USAGE:
74
- ai_analysis = PWN::AI::Agent::BurpSuite.analyze(
75
- request: 'required HTTP request/response pair or WebSocket message as a string'
74
+ # Run analyze and return its result
75
+ #{self}.analyze(
76
+ request: 'required - required HTTP request/response pair or WebSocket message as a string'
76
77
  )
77
78
 
79
+ # Print the AUTHOR(S) string for this module.
78
80
  #{self}.authors
79
81
  "
82
+ constants.sort
80
83
  end
81
84
  end
82
85
  end