pwn 0.5.708 → 0.5.710

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 (450) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/documentation/Installation.md +1 -0
  4. data/etc/default_skills/exploitdev/SKILL.md +38 -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/memory_index/SKILL.md +0 -4
  10. data/etc/default_skills/pwn/plugins/aflplusplus/SKILL.md +49 -0
  11. data/etc/default_skills/pwn/plugins/android/SKILL.md +1 -0
  12. data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +49 -0
  13. data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +54 -0
  14. data/etc/default_skills/pwn/plugins/credential_attack/SKILL.md +58 -0
  15. data/etc/default_skills/pwn/plugins/credential_attack/references/urls.md +3 -0
  16. data/etc/default_skills/pwn/plugins/exploit_db/SKILL.md +49 -0
  17. data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +63 -0
  18. data/etc/default_skills/pwn/plugins/frida/SKILL.md +51 -0
  19. data/etc/default_skills/pwn/plugins/fuzz/SKILL.md +2 -0
  20. data/etc/default_skills/pwn/plugins/gdb/SKILL.md +53 -0
  21. data/etc/default_skills/pwn/plugins/jobs/SKILL.md +51 -0
  22. data/etc/default_skills/pwn/plugins/k8s/SKILL.md +51 -0
  23. data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +50 -0
  24. data/etc/default_skills/pwn/plugins/preflight_checker/SKILL.md +59 -0
  25. data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +53 -0
  26. data/etc/default_skills/pwn/plugins/radare2/SKILL.md +59 -0
  27. data/etc/default_skills/pwn/plugins/recon/SKILL.md +57 -0
  28. data/etc/default_skills/pwn/plugins/recon/references/urls.md +6 -0
  29. data/etc/default_skills/pwn/plugins/semgrep/SKILL.md +48 -0
  30. data/etc/default_skills/pwn/plugins/sqlmap/SKILL.md +48 -0
  31. data/etc/default_skills/pwn/plugins/transparent_browser/SKILL.md +0 -4
  32. data/etc/default_skills/pwn/plugins/volatility/SKILL.md +49 -0
  33. data/lib/pwn/ai/agent/assembly.rb +4 -1
  34. data/lib/pwn/ai/agent/btc.rb +4 -1
  35. data/lib/pwn/ai/agent/burp_suite.rb +5 -2
  36. data/lib/pwn/ai/agent/curriculum.rb +89 -30
  37. data/lib/pwn/ai/agent/dispatch.rb +27 -16
  38. data/lib/pwn/ai/agent/extrospection/osint/bridges.rb +9 -18
  39. data/lib/pwn/ai/agent/extrospection/osint/social.rb +9 -18
  40. data/lib/pwn/ai/agent/extrospection.rb +185 -60
  41. data/lib/pwn/ai/agent/gqrx.rb +4 -1
  42. data/lib/pwn/ai/agent/hacker_one.rb +5 -2
  43. data/lib/pwn/ai/agent/learning.rb +142 -25
  44. data/lib/pwn/ai/agent/loop.rb +53 -46
  45. data/lib/pwn/ai/agent/metrics.rb +133 -23
  46. data/lib/pwn/ai/agent/mistakes.rb +126 -17
  47. data/lib/pwn/ai/agent/open_goal.rb +25 -9
  48. data/lib/pwn/ai/agent/policy.rb +158 -18
  49. data/lib/pwn/ai/agent/prompt_builder.rb +21 -11
  50. data/lib/pwn/ai/agent/prompt_cache.rb +44 -13
  51. data/lib/pwn/ai/agent/reflect.rb +9 -5
  52. data/lib/pwn/ai/agent/registry.rb +65 -12
  53. data/lib/pwn/ai/agent/result.rb +19 -10
  54. data/lib/pwn/ai/agent/reward.rb +150 -32
  55. data/lib/pwn/ai/agent/sast.rb +4 -1
  56. data/lib/pwn/ai/agent/swarm.rb +72 -36
  57. data/lib/pwn/ai/agent/task_summarizer.rb +165 -36
  58. data/lib/pwn/ai/agent/tool_guard.rb +105 -6
  59. data/lib/pwn/ai/agent/tools/sessions.rb +8 -1
  60. data/lib/pwn/ai/agent/transparent_browser.rb +4 -1
  61. data/lib/pwn/ai/agent/turn_finalizer.rb +41 -21
  62. data/lib/pwn/ai/agent/vuln_gen.rb +6 -3
  63. data/lib/pwn/ai/agent.rb +4 -0
  64. data/lib/pwn/ai/anthropic.rb +41 -7
  65. data/lib/pwn/ai/gemini.rb +21 -11
  66. data/lib/pwn/ai/grok.rb +44 -6
  67. data/lib/pwn/ai/http_retry.rb +40 -12
  68. data/lib/pwn/ai/ollama.rb +19 -10
  69. data/lib/pwn/ai/open_ai.rb +81 -30
  70. data/lib/pwn/ai/open_web_ui.rb +20 -14
  71. data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +7 -1
  72. data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +7 -1
  73. data/lib/pwn/ai/red_team/excessive_agency.rb +7 -1
  74. data/lib/pwn/ai/red_team/hidden_context_exposure.rb +7 -1
  75. data/lib/pwn/ai/red_team/insecure_output_handling.rb +7 -1
  76. data/lib/pwn/ai/red_team/jailbreak.rb +7 -1
  77. data/lib/pwn/ai/red_team/memory_poisoning.rb +7 -1
  78. data/lib/pwn/ai/red_team/multimodal_injection.rb +7 -1
  79. data/lib/pwn/ai/red_team/overreliance.rb +7 -1
  80. data/lib/pwn/ai/red_team/payload_splitting.rb +7 -1
  81. data/lib/pwn/ai/red_team/prompt_injection.rb +7 -1
  82. data/lib/pwn/ai/red_team/rag_poisoning.rb +7 -1
  83. data/lib/pwn/ai/red_team/sensitive_information_disclosure.rb +7 -1
  84. data/lib/pwn/ai/red_team/supply_chain.rb +7 -1
  85. data/lib/pwn/ai/red_team/system_prompt_extraction.rb +7 -1
  86. data/lib/pwn/ai/red_team/test_case_engine.rb +12 -9
  87. data/lib/pwn/ai/red_team/token_smuggling.rb +7 -1
  88. data/lib/pwn/ai/red_team/unbounded_consumption.rb +7 -1
  89. data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +7 -1
  90. data/lib/pwn/ai/red_team.rb +4 -0
  91. data/lib/pwn/ai.rb +4 -0
  92. data/lib/pwn/aws/acm.rb +5 -2
  93. data/lib/pwn/aws/api_gateway.rb +10 -7
  94. data/lib/pwn/aws/app_stream.rb +5 -2
  95. data/lib/pwn/aws/application_auto_scaling.rb +5 -2
  96. data/lib/pwn/aws/application_discovery_service.rb +5 -2
  97. data/lib/pwn/aws/auto_scaling.rb +5 -2
  98. data/lib/pwn/aws/batch.rb +5 -2
  99. data/lib/pwn/aws/budgets.rb +5 -2
  100. data/lib/pwn/aws/cloud_formation.rb +5 -2
  101. data/lib/pwn/aws/cloud_front.rb +7 -4
  102. data/lib/pwn/aws/cloud_hsm.rb +5 -2
  103. data/lib/pwn/aws/cloud_search.rb +5 -2
  104. data/lib/pwn/aws/cloud_search_domain.rb +5 -2
  105. data/lib/pwn/aws/cloud_trail.rb +5 -2
  106. data/lib/pwn/aws/cloud_watch.rb +5 -2
  107. data/lib/pwn/aws/cloud_watch_events.rb +5 -2
  108. data/lib/pwn/aws/cloud_watch_logs.rb +5 -2
  109. data/lib/pwn/aws/code_build.rb +5 -2
  110. data/lib/pwn/aws/code_commit.rb +5 -2
  111. data/lib/pwn/aws/code_deploy.rb +5 -2
  112. data/lib/pwn/aws/code_pipeline.rb +5 -2
  113. data/lib/pwn/aws/cognito_identity.rb +5 -2
  114. data/lib/pwn/aws/cognito_identity_provider.rb +5 -2
  115. data/lib/pwn/aws/cognito_sync.rb +5 -2
  116. data/lib/pwn/aws/config_service.rb +5 -2
  117. data/lib/pwn/aws/data_pipleline.rb +5 -2
  118. data/lib/pwn/aws/database_migration_service.rb +5 -2
  119. data/lib/pwn/aws/device_farm.rb +5 -2
  120. data/lib/pwn/aws/direct_connect.rb +5 -2
  121. data/lib/pwn/aws/directory_service.rb +5 -2
  122. data/lib/pwn/aws/dynamo_db.rb +5 -2
  123. data/lib/pwn/aws/dynamo_db_streams.rb +5 -2
  124. data/lib/pwn/aws/ec2.rb +5 -2
  125. data/lib/pwn/aws/ecr.rb +5 -2
  126. data/lib/pwn/aws/ecs.rb +5 -2
  127. data/lib/pwn/aws/efs.rb +5 -2
  128. data/lib/pwn/aws/elasti_cache.rb +5 -2
  129. data/lib/pwn/aws/elastic_beanstalk.rb +8 -5
  130. data/lib/pwn/aws/elastic_load_balancing.rb +5 -2
  131. data/lib/pwn/aws/elastic_load_balancing_v2.rb +6 -3
  132. data/lib/pwn/aws/elastic_transcoder.rb +5 -2
  133. data/lib/pwn/aws/elasticsearch_service.rb +5 -2
  134. data/lib/pwn/aws/emr.rb +5 -2
  135. data/lib/pwn/aws/firehose.rb +5 -2
  136. data/lib/pwn/aws/game_lift.rb +5 -2
  137. data/lib/pwn/aws/glacier.rb +6 -3
  138. data/lib/pwn/aws/health.rb +5 -2
  139. data/lib/pwn/aws/iam.rb +10 -4
  140. data/lib/pwn/aws/import_export.rb +5 -2
  141. data/lib/pwn/aws/inspector.rb +5 -2
  142. data/lib/pwn/aws/iot.rb +5 -2
  143. data/lib/pwn/aws/iot_data_plane.rb +5 -2
  144. data/lib/pwn/aws/kinesis.rb +5 -2
  145. data/lib/pwn/aws/kinesis_analytics.rb +5 -2
  146. data/lib/pwn/aws/kms.rb +5 -2
  147. data/lib/pwn/aws/lambda.rb +5 -2
  148. data/lib/pwn/aws/lambda_preview.rb +5 -2
  149. data/lib/pwn/aws/lex.rb +5 -2
  150. data/lib/pwn/aws/lightsail.rb +5 -2
  151. data/lib/pwn/aws/machine_learning.rb +5 -2
  152. data/lib/pwn/aws/marketplace_commerce_analytics.rb +5 -2
  153. data/lib/pwn/aws/marketplace_metering.rb +5 -2
  154. data/lib/pwn/aws/ops_works.rb +5 -2
  155. data/lib/pwn/aws/ops_works_cm.rb +5 -2
  156. data/lib/pwn/aws/pinpoint.rb +5 -2
  157. data/lib/pwn/aws/polly.rb +5 -2
  158. data/lib/pwn/aws/rds.rb +5 -2
  159. data/lib/pwn/aws/redshift.rb +5 -2
  160. data/lib/pwn/aws/rekognition.rb +5 -2
  161. data/lib/pwn/aws/route53.rb +5 -2
  162. data/lib/pwn/aws/route53_domains.rb +5 -2
  163. data/lib/pwn/aws/s3.rb +5 -2
  164. data/lib/pwn/aws/service_catalog.rb +5 -2
  165. data/lib/pwn/aws/ses.rb +5 -2
  166. data/lib/pwn/aws/shield.rb +5 -2
  167. data/lib/pwn/aws/simple_db.rb +5 -2
  168. data/lib/pwn/aws/sms.rb +5 -2
  169. data/lib/pwn/aws/snowball.rb +5 -2
  170. data/lib/pwn/aws/sns.rb +5 -2
  171. data/lib/pwn/aws/sqs.rb +5 -2
  172. data/lib/pwn/aws/ssm.rb +5 -2
  173. data/lib/pwn/aws/states.rb +5 -2
  174. data/lib/pwn/aws/storage_gateway.rb +5 -2
  175. data/lib/pwn/aws/sts.rb +4 -1
  176. data/lib/pwn/aws/support.rb +5 -2
  177. data/lib/pwn/aws/swf.rb +5 -2
  178. data/lib/pwn/aws/waf.rb +5 -2
  179. data/lib/pwn/aws/waf_regional.rb +5 -2
  180. data/lib/pwn/aws/workspaces.rb +5 -2
  181. data/lib/pwn/aws/x_ray.rb +5 -2
  182. data/lib/pwn/aws.rb +4 -0
  183. data/lib/pwn/banner/anon.rb +3 -0
  184. data/lib/pwn/banner/bubble.rb +3 -0
  185. data/lib/pwn/banner/cheshire.rb +3 -0
  186. data/lib/pwn/banner/code_cave.rb +3 -0
  187. data/lib/pwn/banner/dont_panic.rb +3 -0
  188. data/lib/pwn/banner/f_society.rb +3 -0
  189. data/lib/pwn/banner/fork_bomb.rb +3 -0
  190. data/lib/pwn/banner/jmp_esp.rb +3 -0
  191. data/lib/pwn/banner/matrix.rb +5 -1
  192. data/lib/pwn/banner/ninja.rb +3 -0
  193. data/lib/pwn/banner/off_the_air.rb +3 -0
  194. data/lib/pwn/banner/pirate.rb +3 -0
  195. data/lib/pwn/banner/radare2.rb +3 -0
  196. data/lib/pwn/banner/radare2_ai.rb +3 -0
  197. data/lib/pwn/banner/white_rabbit.rb +3 -0
  198. data/lib/pwn/banner.rb +6 -2
  199. data/lib/pwn/blockchain/btc.rb +8 -3
  200. data/lib/pwn/blockchain/eth.rb +10 -3
  201. data/lib/pwn/blockchain.rb +4 -0
  202. data/lib/pwn/bounty/lifecycle_authz_replay.rb +46 -27
  203. data/lib/pwn/bounty.rb +4 -0
  204. data/lib/pwn/config.rb +79 -13
  205. data/lib/pwn/cron.rb +297 -20
  206. data/lib/pwn/driver.rb +2 -18
  207. data/lib/pwn/ffi/adalm_pluto.rb +65 -11
  208. data/lib/pwn/ffi/fftw.rb +31 -6
  209. data/lib/pwn/ffi/hack_rf.rb +59 -8
  210. data/lib/pwn/ffi/liquid.rb +63 -10
  211. data/lib/pwn/ffi/rtl_sdr.rb +35 -5
  212. data/lib/pwn/ffi/soapy_sdr.rb +60 -10
  213. data/lib/pwn/ffi/stdio.rb +7 -8
  214. data/lib/pwn/ffi/volk.rb +36 -7
  215. data/lib/pwn/ffi.rb +12 -0
  216. data/lib/pwn/memory.rb +136 -16
  217. data/lib/pwn/memory_index.rb +34 -19
  218. data/lib/pwn/migrate.rb +34 -24
  219. data/lib/pwn/module_skills.rb +39 -8
  220. data/lib/pwn/plugins/aflplusplus.rb +72 -0
  221. data/lib/pwn/plugins/android.rb +71 -245
  222. data/lib/pwn/plugins/artifact_registry.rb +71 -0
  223. data/lib/pwn/plugins/assembly.rb +9 -4
  224. data/lib/pwn/plugins/authentication_helper.rb +8 -5
  225. data/lib/pwn/plugins/baresip.rb +59 -12
  226. data/lib/pwn/plugins/basic_auth.rb +9 -3
  227. data/lib/pwn/plugins/beef.rb +28 -18
  228. data/lib/pwn/plugins/binary_parser.rb +133 -0
  229. data/lib/pwn/plugins/black_duck_binary_analysis.rb +63 -39
  230. data/lib/pwn/plugins/burp_suite.rb +98 -68
  231. data/lib/pwn/plugins/bus_pirate.rb +15 -8
  232. data/lib/pwn/plugins/char.rb +33 -3
  233. data/lib/pwn/plugins/credential_attack.rb +158 -0
  234. data/lib/pwn/plugins/credit_card.rb +6 -1
  235. data/lib/pwn/plugins/dao_ldap.rb +19 -13
  236. data/lib/pwn/plugins/dao_mongo.rb +11 -5
  237. data/lib/pwn/plugins/dao_postgres.rb +28 -19
  238. data/lib/pwn/plugins/dao_sqlite3.rb +15 -6
  239. data/lib/pwn/plugins/defect_dojo.rb +38 -22
  240. data/lib/pwn/plugins/detect_os.rb +5 -0
  241. data/lib/pwn/plugins/ein.rb +3 -0
  242. data/lib/pwn/plugins/exploit_db.rb +69 -0
  243. data/lib/pwn/plugins/exploit_dev.rb +330 -0
  244. data/lib/pwn/plugins/file_fu.rb +11 -8
  245. data/lib/pwn/plugins/frida.rb +112 -0
  246. data/lib/pwn/plugins/fuzz.rb +42 -6
  247. data/lib/pwn/plugins/gdb.rb +115 -0
  248. data/lib/pwn/plugins/git.rb +19 -14
  249. data/lib/pwn/plugins/github.rb +38 -15
  250. data/lib/pwn/plugins/google_workspace.rb +188 -45
  251. data/lib/pwn/plugins/hacker_one.rb +159 -35
  252. data/lib/pwn/plugins/hunter.rb +6 -3
  253. data/lib/pwn/plugins/ip_info.rb +9 -4
  254. data/lib/pwn/plugins/irc.rb +28 -15
  255. data/lib/pwn/plugins/jenkins.rb +65 -57
  256. data/lib/pwn/plugins/jira_data_center.rb +30 -22
  257. data/lib/pwn/plugins/jobs.rb +110 -0
  258. data/lib/pwn/plugins/json_pathify.rb +9 -5
  259. data/lib/pwn/plugins/k8s.rb +73 -0
  260. data/lib/pwn/plugins/log.rb +113 -13
  261. data/lib/pwn/plugins/mail_agent.rb +87 -79
  262. data/lib/pwn/plugins/metasploit.rb +11 -6
  263. data/lib/pwn/plugins/monkey_patch.rb +3 -0
  264. data/lib/pwn/plugins/msr206.rb +42 -28
  265. data/lib/pwn/plugins/nessus_cloud.rb +44 -4
  266. data/lib/pwn/plugins/nexpose_vuln_scan.rb +40 -24
  267. data/lib/pwn/plugins/nmap_it.rb +14 -34
  268. data/lib/pwn/plugins/nuclei.rb +90 -0
  269. data/lib/pwn/plugins/oauth2.rb +11 -5
  270. data/lib/pwn/plugins/ocr.rb +3 -0
  271. data/lib/pwn/plugins/open_api.rb +5 -2
  272. data/lib/pwn/plugins/openvas.rb +33 -25
  273. data/lib/pwn/plugins/packet.rb +152 -31
  274. data/lib/pwn/plugins/pdf_parse.rb +5 -2
  275. data/lib/pwn/plugins/pony.rb +86 -1
  276. data/lib/pwn/plugins/preflight_checker.rb +166 -0
  277. data/lib/pwn/plugins/process_tube.rb +139 -0
  278. data/lib/pwn/plugins/ps.rb +7 -1
  279. data/lib/pwn/plugins/pwn_logger.rb +6 -2
  280. data/lib/pwn/plugins/rabbit_mq.rb +12 -7
  281. data/lib/pwn/plugins/radare2.rb +253 -0
  282. data/lib/pwn/plugins/recon.rb +196 -0
  283. data/lib/pwn/plugins/repl.rb +122 -1
  284. data/lib/pwn/plugins/scannable_codes.rb +5 -1
  285. data/lib/pwn/plugins/semgrep.rb +61 -0
  286. data/lib/pwn/plugins/serial.rb +24 -14
  287. data/lib/pwn/plugins/shodan.rb +54 -35
  288. data/lib/pwn/plugins/slack_client.rb +11 -6
  289. data/lib/pwn/plugins/sock.rb +17 -8
  290. data/lib/pwn/plugins/spider.rb +5 -2
  291. data/lib/pwn/plugins/sqlmap.rb +49 -0
  292. data/lib/pwn/plugins/ssn.rb +3 -0
  293. data/lib/pwn/plugins/thread_pool.rb +6 -9
  294. data/lib/pwn/plugins/tor.rb +9 -4
  295. data/lib/pwn/plugins/transparent_browser.rb +62 -107
  296. data/lib/pwn/plugins/tty_spinner.rb +16 -2
  297. data/lib/pwn/plugins/twitter_api.rb +6 -2
  298. data/lib/pwn/plugins/uri_scheme.rb +4 -1
  299. data/lib/pwn/plugins/vault.rb +12 -3
  300. data/lib/pwn/plugins/vin.rb +24 -12
  301. data/lib/pwn/plugins/voice.rb +7 -2
  302. data/lib/pwn/plugins/volatility.rb +67 -0
  303. data/lib/pwn/plugins/vsphere.rb +9 -5
  304. data/lib/pwn/plugins/xxd.rb +12 -43
  305. data/lib/pwn/plugins/zaproxy.rb +30 -16
  306. data/lib/pwn/plugins.rb +22 -0
  307. data/lib/pwn/reports/ai_red_team.rb +6 -2
  308. data/lib/pwn/reports/csv.rb +8 -1
  309. data/lib/pwn/reports/fuzz.rb +5 -2
  310. data/lib/pwn/reports/html.rb +8 -1
  311. data/lib/pwn/reports/html_footer.rb +4 -3
  312. data/lib/pwn/reports/html_header.rb +6 -2
  313. data/lib/pwn/reports/json.rb +8 -1
  314. data/lib/pwn/reports/markdown.rb +8 -1
  315. data/lib/pwn/reports/pdf.rb +8 -1
  316. data/lib/pwn/reports/phone.rb +5 -2
  317. data/lib/pwn/reports/sast.rb +6 -2
  318. data/lib/pwn/reports/uri_buster.rb +5 -2
  319. data/lib/pwn/reports/xml.rb +8 -1
  320. data/lib/pwn/reports.rb +19 -0
  321. data/lib/pwn/sast/amqp_connect_as_guest.rb +9 -3
  322. data/lib/pwn/sast/apache_file_system_util_api.rb +9 -3
  323. data/lib/pwn/sast/aws.rb +9 -3
  324. data/lib/pwn/sast/banned_function_calls_c.rb +9 -3
  325. data/lib/pwn/sast/base64.rb +9 -3
  326. data/lib/pwn/sast/beef_hook.rb +9 -3
  327. data/lib/pwn/sast/cmd_execution_go_lang.rb +9 -3
  328. data/lib/pwn/sast/cmd_execution_java.rb +9 -3
  329. data/lib/pwn/sast/cmd_execution_python.rb +9 -3
  330. data/lib/pwn/sast/cmd_execution_ruby.rb +9 -3
  331. data/lib/pwn/sast/cmd_execution_scala.rb +9 -3
  332. data/lib/pwn/sast/csrf.rb +9 -3
  333. data/lib/pwn/sast/deserial_java.rb +9 -3
  334. data/lib/pwn/sast/emoticon.rb +9 -3
  335. data/lib/pwn/sast/eval.rb +9 -3
  336. data/lib/pwn/sast/factory.rb +9 -3
  337. data/lib/pwn/sast/http_authorization_header.rb +9 -3
  338. data/lib/pwn/sast/inner_html.rb +9 -3
  339. data/lib/pwn/sast/keystore.rb +9 -3
  340. data/lib/pwn/sast/local_storage.rb +9 -3
  341. data/lib/pwn/sast/location_hash.rb +9 -3
  342. data/lib/pwn/sast/log4j.rb +9 -3
  343. data/lib/pwn/sast/logger.rb +9 -3
  344. data/lib/pwn/sast/md5.rb +9 -3
  345. data/lib/pwn/sast/outer_html.rb +9 -3
  346. data/lib/pwn/sast/padding_oracle.rb +9 -3
  347. data/lib/pwn/sast/password.rb +9 -3
  348. data/lib/pwn/sast/php_input_mechanisms.rb +9 -3
  349. data/lib/pwn/sast/php_type_juggling.rb +9 -3
  350. data/lib/pwn/sast/pom_version.rb +9 -3
  351. data/lib/pwn/sast/port.rb +9 -3
  352. data/lib/pwn/sast/post_message.rb +9 -3
  353. data/lib/pwn/sast/private_key.rb +9 -3
  354. data/lib/pwn/sast/redirect.rb +9 -3
  355. data/lib/pwn/sast/redos.rb +9 -3
  356. data/lib/pwn/sast/shell.rb +9 -3
  357. data/lib/pwn/sast/signature.rb +9 -3
  358. data/lib/pwn/sast/sql.rb +9 -3
  359. data/lib/pwn/sast/ssl.rb +9 -3
  360. data/lib/pwn/sast/sudo.rb +9 -3
  361. data/lib/pwn/sast/task_tag.rb +9 -3
  362. data/lib/pwn/sast/test_case_engine.rb +11 -7
  363. data/lib/pwn/sast/throw_errors.rb +9 -3
  364. data/lib/pwn/sast/token.rb +9 -3
  365. data/lib/pwn/sast/type_script_type_juggling.rb +9 -3
  366. data/lib/pwn/sast/use_after_free.rb +9 -3
  367. data/lib/pwn/sast/version.rb +9 -3
  368. data/lib/pwn/sast/window_location_hash.rb +9 -3
  369. data/lib/pwn/sast.rb +4 -0
  370. data/lib/pwn/sdr/decoder/adsb.rb +36 -5
  371. data/lib/pwn/sdr/decoder/apt.rb +9 -6
  372. data/lib/pwn/sdr/decoder/base.rb +74 -22
  373. data/lib/pwn/sdr/decoder/bluetooth.rb +17 -5
  374. data/lib/pwn/sdr/decoder/dect.rb +12 -3
  375. data/lib/pwn/sdr/decoder/dsp.rb +229 -39
  376. data/lib/pwn/sdr/decoder/flex.rb +59 -11
  377. data/lib/pwn/sdr/decoder/gps.rb +12 -3
  378. data/lib/pwn/sdr/decoder/gsm.rb +24 -4
  379. data/lib/pwn/sdr/decoder/iridium.rb +12 -3
  380. data/lib/pwn/sdr/decoder/lora.rb +13 -4
  381. data/lib/pwn/sdr/decoder/lte.rb +27 -3
  382. data/lib/pwn/sdr/decoder/morse.rb +12 -3
  383. data/lib/pwn/sdr/decoder/p25.rb +12 -3
  384. data/lib/pwn/sdr/decoder/pager.rb +8 -5
  385. data/lib/pwn/sdr/decoder/pocsag.rb +29 -9
  386. data/lib/pwn/sdr/decoder/rds.rb +14 -8
  387. data/lib/pwn/sdr/decoder/rfid.rb +12 -3
  388. data/lib/pwn/sdr/decoder/rtl433.rb +12 -3
  389. data/lib/pwn/sdr/decoder/rtty.rb +8 -5
  390. data/lib/pwn/sdr/decoder/wifi.rb +12 -3
  391. data/lib/pwn/sdr/decoder/zigbee.rb +12 -3
  392. data/lib/pwn/sdr/decoder.rb +9 -0
  393. data/lib/pwn/sdr/flipper_zero.rb +17 -10
  394. data/lib/pwn/sdr/frequency_allocation.rb +4 -1
  395. data/lib/pwn/sdr/gqrx.rb +178 -119
  396. data/lib/pwn/sdr/rfidler.rb +4 -1
  397. data/lib/pwn/sdr/son_micro_rfid.rb +37 -24
  398. data/lib/pwn/sdr.rb +14 -0
  399. data/lib/pwn/sessions.rb +86 -16
  400. data/lib/pwn/setup.rb +106 -37
  401. data/lib/pwn/version.rb +1 -1
  402. data/lib/pwn/www/app_cobalt_io.rb +11 -5
  403. data/lib/pwn/www/bing.rb +10 -5
  404. data/lib/pwn/www/bug_crowd.rb +11 -5
  405. data/lib/pwn/www/checkip.rb +8 -4
  406. data/lib/pwn/www/coinbase_pro.rb +11 -5
  407. data/lib/pwn/www/duckduckgo.rb +12 -6
  408. data/lib/pwn/www/facebook.rb +11 -5
  409. data/lib/pwn/www/github.rb +11 -5
  410. data/lib/pwn/www/google.rb +11 -5
  411. data/lib/pwn/www/hacker_one.rb +20 -9
  412. data/lib/pwn/www/linkedin.rb +11 -5
  413. data/lib/pwn/www/pandora.rb +11 -5
  414. data/lib/pwn/www/pastebin.rb +9 -4
  415. data/lib/pwn/www/paypal.rb +19 -11
  416. data/lib/pwn/www/synack.rb +11 -5
  417. data/lib/pwn/www/torch.rb +13 -8
  418. data/lib/pwn/www/trading_view.rb +11 -5
  419. data/lib/pwn/www/twitter.rb +11 -5
  420. data/lib/pwn/www/uber.rb +11 -5
  421. data/lib/pwn/www/upwork.rb +11 -5
  422. data/lib/pwn/www/wayback_machine.rb +12 -6
  423. data/lib/pwn/www/youtube.rb +10 -5
  424. data/lib/pwn/www.rb +4 -0
  425. data/spec/conventions_spec.rb +118 -2
  426. data/spec/integration/help_contract_spec.rb +2 -0
  427. data/spec/lib/pwn/ai/agent/reward_spec.rb +9 -0
  428. data/spec/lib/pwn/plugins/aflplusplus_spec.rb +13 -0
  429. data/spec/lib/pwn/plugins/artifact_registry_spec.rb +13 -0
  430. data/spec/lib/pwn/plugins/binary_parser_spec.rb +21 -0
  431. data/spec/lib/pwn/plugins/credential_attack_spec.rb +13 -0
  432. data/spec/lib/pwn/plugins/exploit_db_spec.rb +13 -0
  433. data/spec/lib/pwn/plugins/exploit_dev_spec.rb +23 -0
  434. data/spec/lib/pwn/plugins/frida_spec.rb +13 -0
  435. data/spec/lib/pwn/plugins/gdb_spec.rb +13 -0
  436. data/spec/lib/pwn/plugins/jobs_spec.rb +13 -0
  437. data/spec/lib/pwn/plugins/k8s_spec.rb +13 -0
  438. data/spec/lib/pwn/plugins/nuclei_spec.rb +13 -0
  439. data/spec/lib/pwn/plugins/preflight_checker_spec.rb +23 -0
  440. data/spec/lib/pwn/plugins/process_tube_spec.rb +13 -0
  441. data/spec/lib/pwn/plugins/radare2_spec.rb +13 -0
  442. data/spec/lib/pwn/plugins/recon_spec.rb +26 -0
  443. data/spec/lib/pwn/plugins/semgrep_spec.rb +13 -0
  444. data/spec/lib/pwn/plugins/sqlmap_spec.rb +13 -0
  445. data/spec/lib/pwn/plugins/volatility_spec.rb +13 -0
  446. data/spec/lib/pwn/req_queue_spec.rb +168 -0
  447. data/third_party/pwn_rdoc.jsonl +160 -5
  448. metadata +63 -7
  449. data/etc/default_skills/pwn/memory_index/references/urls.md +0 -4
  450. data/etc/default_skills/pwn/plugins/transparent_browser/references/urls.md +0 -3
@@ -95,6 +95,7 @@ module PWN
95
95
  # start_addr: 'required - start address to evaluate',
96
96
  # target_addr: 'required - memory address to set breakpoint'
97
97
  # )
98
+ # Run calc addr offset and return its result
98
99
  # ^^^ Instructions for #{self}.calc_addr_offset:
99
100
  # This is useful for calculating address offsets of known functions in debuggers
100
101
  # to set breakpoints of instructions that are not known at runtime.
@@ -247,75 +248,43 @@ module PWN
247
248
 
248
249
  public_class_method def self.help
249
250
  puts "USAGE:
250
- hexdump = #{self}.dump(
251
+ # Run dump and return its result
252
+ #{self}.dump(
251
253
  file: 'required - path to binary file to dump',
252
254
  hashed: 'optional - return hexdump as hash instead of string (default: false)'
253
255
  )
254
256
 
255
- hexdump = #{self}.fill_range_w_byte(
257
+ # Run fill range w byte and return its result
258
+ #{self}.fill_range_w_byte(
256
259
  hexdump: 'required - hexdump returned from #dump method',
257
260
  start_addr: 'required - start address to fill with byte',
258
261
  end_addr: 'required - end address to fill with byte',
259
262
  byte: 'required - byte to fill range with'
260
263
  )
261
264
 
262
- hex_offset = #{self}.calc_addr_offset(
265
+ # Run calc addr offset and return its result
266
+ #{self}.calc_addr_offset(
263
267
  start_addr: 'required - start address to evaluate',
264
268
  target_addr: 'required - memory address to set breakpoint'
265
269
  )
266
270
 
267
- # ^^^ Instructions for #{self}.calc_addr_offset:
268
- # This is useful for calculating address offsets of known functions in debuggers
269
- # to set breakpoints of instructions that are not known at runtime.
270
- # 1. Set a breakpoint at main and record its address - this is the start_addr.
271
- # For example in r2:
272
- # ```
273
- # [0x00001050]> db main
274
- # [0x00001050]> ood
275
- # [0x7fd16122b360]> dc
276
- # INFO: hit breakpoint at: 0x562e8547d139
277
- # [0x562e8547d139]> db
278
- # ```
279
- # 2. Populate start_addr w/ address (i.e. '0x562e8547d139') of a known function (i.e. main)
280
- # 3. Step down to the instruction where you want to set a breakpoint. Record its address...
281
- # this is the target_addr.
282
- # ```
283
- # [0x562e8547d139]> v
284
- # <step through to the target instruction via F7/F8>
285
- # ```
286
- # 4. Get the hex offset value by calling #{self}.calc_addr_offset method
287
- # 5. Future breakpoints can be calculated by adding the hex offset to the
288
- # updated start_addr (which changes every time the binary is executed).
289
- # If the offset returned is `0x00000ec2`, a breakpoint for the target
290
- # instruction can be set in r2 via:
291
- # ```
292
- # [0x00001050]> ood
293
- # [0x7f1a45bea360]> db main
294
- # [0x7f1a45bea360]> db (main)+0x00000ec2
295
- # [0x7f1a45bea360]> db
296
- # 0x558eebd75139 - 0x558eebd7513a 1 --x sw break enabled valid ...
297
- # 0x558eebd75ffb - 0x558eebd75ffc 1 --x sw break enabled valid ...
298
- # [0x7f1a45bea360]> dc
299
- # INFO: hit breakpoint at: 0x55ee0a0e5139
300
- # [0x55ee0a0e5139]> dc
301
- # INFO: hit breakpoint at: 0x5558c3101ffb
302
- # [0x5558c3101ffb]> v
303
- # <step through via F7, F8, F9, etc. to get to desired instruction>
304
- # ```
305
-
271
+ # Run reverse hex string and return its result
306
272
  #{self}.reverse_hex_string(
307
- string: 'required - continuous hex string to reverse (i.e. \"68656c6f\")',
273
+ string: 'required - continuous hex string to reverse (i.e. 68656c6c6f)',
308
274
  file: 'required - path to binary file to dump'
309
275
  )
310
276
 
277
+ # Run reverse dump and return its result
311
278
  #{self}.reverse_dump(
312
279
  hexdump: 'required - hexdump returned from #dump method',
313
280
  file: 'required - path to binary file to dump',
314
281
  byte_chunks: 'optional - if set, will write n byte chunks of hexdump to multiple files'
315
282
  )
316
283
 
284
+ # Print the AUTHOR(S) string for this module.
317
285
  #{self}.authors
318
286
  "
287
+ constants.sort
319
288
  end
320
289
  end
321
290
  end
@@ -749,18 +749,18 @@ module PWN
749
749
 
750
750
  public_class_method def self.help
751
751
  puts "USAGE:
752
- zap_obj = #{self}.start(
752
+ # Run start and return its result
753
+ #{self}.start(
753
754
  api_key: 'required - api key for API authorization',
754
755
  zap_bin_path: 'optional - path to zap.sh file',
755
- headless: 'optional - run zap headless if set to true',
756
- proxy: 'optional - change local zap proxy listener (defaults to http://127.0.0.1:<Random 1024-65535>)'
757
- )
758
-
759
- #{self}.spider(
760
- zap_obj: 'required - zap_obj returned from #open method',
761
- target_url: 'required - url to spider'
756
+ headless: 'optional - run zap headless if set to true (defaults to false)',
757
+ browser_type: 'optional - defaults to :firefox. See PWN::Plugins::TransparentBrowser.help for a list of types',
758
+ proxy: 'optional - change local zap proxy listener (defaults to http://127.0.0.1:<Random 1024-65535>)',
759
+ zap_ip: 'optional - zap ip value consumed by #start',
760
+ zap_port: 'optional - zap port value consumed by #start'
762
761
  )
763
762
 
763
+ # Run import openapi to sitemap and return its result
764
764
  #{self}.import_openapi_to_sitemap(
765
765
  zap_obj: 'required - zap_obj returned from #open method',
766
766
  openapi_spec: 'required - path to OpenAPI JSON or YAML spec file',
@@ -768,52 +768,62 @@ module PWN
768
768
  target_regex: 'optional - url regex to inject additional_http_headers into (e.g. https://test.domain.local.*)'
769
769
  )
770
770
 
771
+ # Run get sitemap and return its result
771
772
  #{self}.get_sitemap(
772
773
  zap_obj: 'required - zap_obj returned from #open method',
773
774
  keyword: 'optional - string to search for in the sitemap entries (defaults to nil)',
774
775
  return_as: 'optional - :base64 or :har (defaults to :base64)'
775
776
  )
776
777
 
778
+ # Run add to scope and return its result
777
779
  #{self}.add_to_scope(
778
780
  zap_obj: 'required - zap_obj returned from #open method',
779
781
  target_regex: 'required - url regex to add to scope (e.g. https://test.domain.local.*)',
780
782
  context_name: 'optional - context name to add target_regex to (defaults to Default Context)'
781
783
  )
782
784
 
785
+ # Run requester and return its result
783
786
  #{self}.requester(
784
787
  zap_obj: 'required - zap_obj returned from #open method',
785
788
  har_entry: 'required - har entry (e.g. from #get_sitemap method method)',
786
- redirect: 'optional - follow redirects if set to true (defaults to true)'
789
+ redirect: 'optional - follow redirects if set to true (defaults to false)'
787
790
  )
788
791
 
789
- json_sitemap = #{self}.spider(
790
- zap_obj: 'required - zap_obj returned from #open method'
792
+ # Run spider and return its result
793
+ #{self}.spider(
794
+ zap_obj: 'required - zap_obj returned from #open method',
795
+ target_url: 'required - url to spider'
791
796
  )
792
797
 
798
+ # Run inject additional http headers and return its result
793
799
  #{self}.inject_additional_http_headers(
794
800
  zap_obj: 'required - zap_obj returned from #open method',
795
801
  target_regex: 'required - url regex to inject headers into (e.g. https://test.domain.local.*)',
796
802
  headers: 'required - hash of additional headers to inject into each request'
797
803
  )
798
804
 
805
+ # Run active scan and return its result
799
806
  #{self}.active_scan(
800
- zap_obj: 'required - zap_obj returned from #open method'
807
+ zap_obj: 'required - zap_obj returned from #open method',
801
808
  target_url: 'required - url to scan',
802
809
  exclude_paths: 'optional - array of paths to exclude from scan (default: [])',
803
810
  scan_policy: 'optional - scan policy to use (defaults to Default Policy)'
804
811
  )
805
812
 
806
- json_alerts = #{self}.get_alerts(
807
- zap_obj: 'required - zap_obj returned from #open method'
813
+ # Run get alerts and return its result
814
+ #{self}.get_alerts(
815
+ zap_obj: 'required - zap_obj returned from #open method',
808
816
  target_url: 'required - base url to return alerts'
809
817
  )
810
818
 
811
- report_path = #{self}.generate_scan_report(
819
+ # Run generate scan report and return its result
820
+ #{self}.generate_scan_report(
812
821
  zap_obj: 'required - zap_obj returned from #open method',
813
822
  output_dir: 'required - directory to save report',
814
823
  report_type: 'required - <:html|:markdown|:xml>'
815
824
  )
816
825
 
826
+ # Run breakpoint and return its result
817
827
  #{self}.breakpoint(
818
828
  zap_obj: 'required - zap_obj returned from #open method',
819
829
  regex_type: 'required - :url, :request_header, :request_body, :response_header or :response_body',
@@ -821,18 +831,22 @@ module PWN
821
831
  enabled: 'optional - boolean (defaults to true)'
822
832
  )
823
833
 
834
+ # Run tamper and return its result
824
835
  #{self}.tamper(
825
836
  zap_obj: 'required - zap_obj returned from #open method',
826
837
  domain: 'required - FQDN to tamper (e.g. test.domain.local)',
827
838
  enabled: 'optional - boolean (defaults to true)'
828
839
  )
829
840
 
841
+ # Run stop and return its result
830
842
  #{self}.stop(
831
- zap_obj: 'required - zap_obj returned from #start method'
843
+ zap_obj: 'required - zap_obj returned from #open method'
832
844
  )
833
845
 
846
+ # Print the AUTHOR(S) string for this module.
834
847
  #{self}.authors
835
848
  "
849
+ constants.sort
836
850
  end
837
851
  end
838
852
  end
data/lib/pwn/plugins.rb CHANGED
@@ -6,7 +6,10 @@ module PWN
6
6
  # http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html
7
7
  module Plugins
8
8
  autoload :Android, 'pwn/plugins/android'
9
+ autoload :AFLplusplus, 'pwn/plugins/aflplusplus'
10
+ autoload :ArtifactRegistry, 'pwn/plugins/artifact_registry'
9
11
  autoload :Assembly, 'pwn/plugins/assembly'
12
+ autoload :BinaryParser, 'pwn/plugins/binary_parser'
10
13
  autoload :AuthenticationHelper, 'pwn/plugins/authentication_helper'
11
14
  autoload :BareSIP, 'pwn/plugins/baresip'
12
15
  autoload :BasicAuth, 'pwn/plugins/basic_auth'
@@ -16,6 +19,8 @@ module PWN
16
19
  autoload :BusPirate, 'pwn/plugins/bus_pirate'
17
20
  autoload :Char, 'pwn/plugins/char'
18
21
  autoload :CreditCard, 'pwn/plugins/credit_card'
22
+ autoload :CredentialAttack, 'pwn/plugins/credential_attack'
23
+ autoload :PreflightChecker, 'pwn/plugins/preflight_checker'
19
24
  autoload :PWNLogger, 'pwn/plugins/pwn_logger'
20
25
  autoload :DAOLDAP, 'pwn/plugins/dao_ldap'
21
26
  autoload :DAOMongo, 'pwn/plugins/dao_mongo'
@@ -24,9 +29,13 @@ module PWN
24
29
  autoload :DefectDojo, 'pwn/plugins/defect_dojo'
25
30
  autoload :DetectOS, 'pwn/plugins/detect_os'
26
31
  autoload :EIN, 'pwn/plugins/ein'
32
+ autoload :ExploitDB, 'pwn/plugins/exploit_db'
27
33
  autoload :FileFu, 'pwn/plugins/file_fu'
28
34
  autoload :Fuzz, 'pwn/plugins/fuzz'
35
+ autoload :Frida, 'pwn/plugins/frida'
36
+ autoload :ExploitDev, 'pwn/plugins/exploit_dev'
29
37
  autoload :Git, 'pwn/plugins/git'
38
+ autoload :GDB, 'pwn/plugins/gdb'
30
39
  autoload :Github, 'pwn/plugins/github'
31
40
  autoload :GoogleWorkspace, 'pwn/plugins/google_workspace'
32
41
  autoload :HackerOne, 'pwn/plugins/hacker_one'
@@ -34,7 +43,9 @@ module PWN
34
43
  autoload :IPInfo, 'pwn/plugins/ip_info'
35
44
  autoload :IRC, 'pwn/plugins/irc'
36
45
  autoload :Jenkins, 'pwn/plugins/jenkins'
46
+ autoload :K8s, 'pwn/plugins/k8s'
37
47
  autoload :JiraDataCenter, 'pwn/plugins/jira_data_center'
48
+ autoload :Jobs, 'pwn/plugins/jobs'
38
49
  autoload :JSONPathify, 'pwn/plugins/json_pathify'
39
50
  autoload :Log, 'pwn/plugins/log'
40
51
  autoload :MailAgent, 'pwn/plugins/mail_agent'
@@ -44,6 +55,7 @@ module PWN
44
55
  autoload :NessusCloud, 'pwn/plugins/nessus_cloud'
45
56
  autoload :NexposeVulnScan, 'pwn/plugins/nexpose_vuln_scan'
46
57
  autoload :NmapIt, 'pwn/plugins/nmap_it'
58
+ autoload :Nuclei, 'pwn/plugins/nuclei'
47
59
  autoload :OAuth2, 'pwn/plugins/oauth2'
48
60
  autoload :OCR, 'pwn/plugins/ocr'
49
61
  autoload :OpenAPI, 'pwn/plugins/open_api'
@@ -52,15 +64,20 @@ module PWN
52
64
  autoload :PDFParse, 'pwn/plugins/pdf_parse'
53
65
  autoload :Pony, 'pwn/plugins/pony'
54
66
  autoload :PS, 'pwn/plugins/ps'
67
+ autoload :ProcessTube, 'pwn/plugins/process_tube'
55
68
  autoload :RabbitMQ, 'pwn/plugins/rabbit_mq'
69
+ autoload :Radare2, 'pwn/plugins/radare2'
70
+ autoload :Recon, 'pwn/plugins/recon'
56
71
  autoload :REPL, 'pwn/plugins/repl'
57
72
  autoload :ScannableCodes, 'pwn/plugins/scannable_codes'
73
+ autoload :Semgrep, 'pwn/plugins/semgrep'
58
74
  autoload :Serial, 'pwn/plugins/serial'
59
75
  autoload :Shodan, 'pwn/plugins/shodan'
60
76
  autoload :SlackClient, 'pwn/plugins/slack_client'
61
77
  autoload :Sock, 'pwn/plugins/sock'
62
78
  autoload :Spider, 'pwn/plugins/spider'
63
79
  autoload :SSN, 'pwn/plugins/ssn'
80
+ autoload :Sqlmap, 'pwn/plugins/sqlmap'
64
81
  autoload :ThreadPool, 'pwn/plugins/thread_pool'
65
82
  autoload :Tor, 'pwn/plugins/tor'
66
83
  autoload :TransparentBrowser, 'pwn/plugins/transparent_browser'
@@ -70,6 +87,7 @@ module PWN
70
87
  autoload :Vault, 'pwn/plugins/vault'
71
88
  autoload :VIN, 'pwn/plugins/vin'
72
89
  autoload :Voice, 'pwn/plugins/voice'
90
+ autoload :Volatility, 'pwn/plugins/volatility'
73
91
  autoload :Vsphere, 'pwn/plugins/vsphere'
74
92
  autoload :XXD, 'pwn/plugins/xxd'
75
93
  autoload :Zaproxy, 'pwn/plugins/zaproxy'
@@ -83,6 +101,10 @@ module PWN
83
101
  end
84
102
 
85
103
  public_class_method def self.help
104
+ puts "USAGE:
105
+ # Display a List of Every PWN::Plugins Module
106
+ #{self}.authors
107
+ "
86
108
  constants.sort
87
109
  end
88
110
  end
@@ -415,13 +415,17 @@ module PWN
415
415
 
416
416
  public_class_method def self.help
417
417
  puts "USAGE:
418
+ # Run generate and return its result
418
419
  #{self}.generate(
419
- dir_path: dir_path,
420
- results_hash: results_hash
420
+ dir_path: 'optional - Directory path to save the report (defaults to .)',
421
+ results_hash: 'optional - Hash containing the results of the AI RedTeam analysis (defaults to empty hash structure)',
422
+ report_name: 'optional - Name of the report file (defaults to current directory name)'
421
423
  )
422
424
 
425
+ # Print the AUTHOR(S) string for this module.
423
426
  #{self}.authors
424
427
  "
428
+ constants.sort
425
429
  end
426
430
  end
427
431
  end
@@ -31,7 +31,14 @@ module PWN
31
31
  end
32
32
 
33
33
  public_class_method def self.help
34
- puts "USAGE:\n #{self}.generate(\n path: '/tmp/report.csv',\n results_hash: {}\n )\n\n #{self}.authors\n"
34
+ puts "USAGE:
35
+ # Run generate and return its result
36
+ #{self}.generate
37
+
38
+ # Print the AUTHOR(S) string for this module.
39
+ #{self}.authors
40
+ "
41
+ constants.sort
35
42
  end
36
43
  end
37
44
  end
@@ -314,14 +314,17 @@ module PWN
314
314
 
315
315
  public_class_method def self.help
316
316
  puts "USAGE:
317
+ # Run generate and return its result
317
318
  #{self}.generate(
318
- dir_path: dir_path,
319
- results_hash: results_hash,
319
+ dir_path: 'required - dir path value consumed by #generate',
320
+ results_hash: 'optional - results hash value consumed by #generate',
320
321
  char_encoding: 'optional - character encoding returned by PWN::Plugins::Char.list_encoders (defaults to UTF-8)'
321
322
  )
322
323
 
324
+ # Print the AUTHOR(S) string for this module.
323
325
  #{self}.authors
324
326
  "
327
+ constants.sort
325
328
  end
326
329
  end
327
330
  end
@@ -51,7 +51,14 @@ module PWN
51
51
  end
52
52
 
53
53
  public_class_method def self.help
54
- puts "USAGE:\n #{self}.generate(\n path: '/tmp/report.html',\n results_hash: {}\n )\n\n #{self}.authors\n"
54
+ puts "USAGE:
55
+ # Run generate and return its result
56
+ #{self}.generate
57
+
58
+ # Print the AUTHOR(S) string for this module.
59
+ #{self}.authors
60
+ "
61
+ constants.sort
55
62
  end
56
63
  end
57
64
  end
@@ -148,12 +148,13 @@ module PWN
148
148
 
149
149
  public_class_method def self.help
150
150
  puts "USAGE:
151
- #{self}.generate(
152
- column_names: 'Array of Column Names to use in the report table',
153
- driver_src_uri: 're
151
+ # Run generate and return its result
152
+ #{self}.generate
154
153
 
154
+ # Print the AUTHOR(S) string for this module.
155
155
  #{self}.authors
156
156
  "
157
+ constants.sort
157
158
  end
158
159
  end
159
160
  end
@@ -259,12 +259,16 @@ module PWN
259
259
 
260
260
  public_class_method def self.help
261
261
  puts "USAGE:
262
+ # Run generate and return its result
262
263
  #{self}.generate(
263
- column_names: 'Array of Column Names to use in the report table',
264
- driver_src_uri: 're
264
+ column_names: 'required - array of column names to use in the report table (defaults to [])',
265
+ driver_src_uri: 'required - pwn driver source code uri'
266
+ )
265
267
 
268
+ # Print the AUTHOR(S) string for this module.
266
269
  #{self}.authors
267
270
  "
271
+ constants.sort
268
272
  end
269
273
  end
270
274
  end
@@ -25,7 +25,14 @@ module PWN
25
25
  end
26
26
 
27
27
  public_class_method def self.help
28
- puts "USAGE:\n #{self}.generate(\n path: '/tmp/report.json',\n results_hash: {}\n )\n\n #{self}.authors\n"
28
+ puts "USAGE:
29
+ # Run generate and return its result
30
+ #{self}.generate
31
+
32
+ # Print the AUTHOR(S) string for this module.
33
+ #{self}.authors
34
+ "
35
+ constants.sort
29
36
  end
30
37
  end
31
38
  end
@@ -33,7 +33,14 @@ module PWN
33
33
  end
34
34
 
35
35
  public_class_method def self.help
36
- puts "USAGE:\n #{self}.generate(\n path: '/tmp/report.md',\n results_hash: {}\n )\n\n #{self}.authors\n"
36
+ puts "USAGE:
37
+ # Run generate and return its result
38
+ #{self}.generate
39
+
40
+ # Print the AUTHOR(S) string for this module.
41
+ #{self}.authors
42
+ "
43
+ constants.sort
37
44
  end
38
45
  end
39
46
  end
@@ -86,7 +86,14 @@ module PWN
86
86
  end
87
87
 
88
88
  public_class_method def self.help
89
- puts "USAGE:\n #{self}.generate(\n path: '/tmp/report.pdf',\n results_hash: {}\n )\n\n #{self}.authors\n"
89
+ puts "USAGE:
90
+ # Run generate and return its result
91
+ #{self}.generate
92
+
93
+ # Print the AUTHOR(S) string for this module.
94
+ #{self}.authors
95
+ "
96
+ constants.sort
90
97
  end
91
98
  end
92
99
  end
@@ -371,13 +371,16 @@ module PWN
371
371
 
372
372
  public_class_method def self.help
373
373
  puts "USAGE:
374
+ # Run generate and return its result
374
375
  #{self}.generate(
375
- dir_path: dir_path,
376
- results_hash: results_hash
376
+ dir_path: 'required - dir path value consumed by #generate',
377
+ results_hash: 'optional - results hash value consumed by #generate'
377
378
  )
378
379
 
380
+ # Print the AUTHOR(S) string for this module.
379
381
  #{self}.authors
380
382
  "
383
+ constants.sort
381
384
  end
382
385
  end
383
386
  end
@@ -422,13 +422,17 @@ module PWN
422
422
 
423
423
  public_class_method def self.help
424
424
  puts "USAGE:
425
+ # Run generate and return its result
425
426
  #{self}.generate(
426
- dir_path: dir_path,
427
- results_hash: results_hash
427
+ dir_path: 'optional - Directory path to save the report (defaults to .)',
428
+ results_hash: 'optional - Hash containing the results of the SAST analysis (defaults to empty hash structure)',
429
+ report_name: 'optional - Name of the report file (defaults to current directory name)'
428
430
  )
429
431
 
432
+ # Print the AUTHOR(S) string for this module.
430
433
  #{self}.authors
431
434
  "
435
+ constants.sort
432
436
  end
433
437
  end
434
438
  end
@@ -322,13 +322,16 @@ module PWN
322
322
 
323
323
  public_class_method def self.help
324
324
  puts "USAGE:
325
+ # Run generate and return its result
325
326
  #{self}.generate(
326
- dir_path: dir_path,
327
- results_hash: results_hash
327
+ dir_path: 'required - dir path value consumed by #generate',
328
+ results_hash: 'optional - results hash value consumed by #generate'
328
329
  )
329
330
 
331
+ # Print the AUTHOR(S) string for this module.
330
332
  #{self}.authors
331
333
  "
334
+ constants.sort
332
335
  end
333
336
  end
334
337
  end
@@ -37,7 +37,14 @@ module PWN
37
37
  end
38
38
 
39
39
  public_class_method def self.help
40
- puts "USAGE:\n #{self}.generate(\n path: '/tmp/report.xml',\n results_hash: {}\n )\n\n #{self}.authors\n"
40
+ puts "USAGE:
41
+ # Run generate and return its result
42
+ #{self}.generate
43
+
44
+ # Print the AUTHOR(S) string for this module.
45
+ #{self}.authors
46
+ "
47
+ constants.sort
41
48
  end
42
49
  end
43
50
  end
data/lib/pwn/reports.rb CHANGED
@@ -74,6 +74,25 @@ module PWN
74
74
  end
75
75
 
76
76
  public_class_method def self.help
77
+ puts "USAGE:
78
+ # Run resolve path and return its result
79
+ #{self}.resolve_path(
80
+ path: 'required - filesystem path to read or write',
81
+ ext: 'optional - ext value consumed by #resolve_path',
82
+ dir_path: 'optional - dir path value consumed by #resolve_path',
83
+ report_name: 'optional - report name value consumed by #resolve_path'
84
+ )
85
+
86
+ # Run report payload and return its result
87
+ #{self}.report_payload(
88
+ results_hash: 'optional - results hash value consumed by #report_payload',
89
+ title: 'optional - title value consumed by #report_payload',
90
+ executive_summary: 'optional - executive summary value consumed by #report_payload'
91
+ )
92
+
93
+ # Print the AUTHOR(S) string for this module.
94
+ #{self}.authors
95
+ "
77
96
  constants.sort
78
97
  end
79
98
  end
@@ -65,13 +65,19 @@ module PWN
65
65
 
66
66
  public_class_method def self.help
67
67
  puts "USAGE:
68
- sast_arr = #{self}.scan(
69
- dir_path: 'optional path to dir defaults to .',
70
- git_repo_root_uri: 'optional http uri of git repo scanned'
68
+ # Run scan and return its result
69
+ #{self}.scan(
70
+ dir_path: 'optional - optional path to dir defaults to .',
71
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
71
72
  )
72
73
 
74
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
75
+ #{self}.security_references
76
+
77
+ # Print the AUTHOR(S) string for this module.
73
78
  #{self}.authors
74
79
  "
80
+ constants.sort
75
81
  end
76
82
  end
77
83
  end
@@ -63,13 +63,19 @@ module PWN
63
63
 
64
64
  public_class_method def self.help
65
65
  puts "USAGE:
66
- sast_arr = #{self}.scan(
67
- :dir_path => 'optional path to dir defaults to .',
68
- :git_repo_root_uri => 'optional http uri of git repo scanned'
66
+ # :dir_path => optional path to dir defaults to .
67
+ #{self}.scan(
68
+ dir_path: 'optional - dir path value consumed by #scan',
69
+ git_repo_root_uri: 'optional - git repo root uri value consumed by #scan'
69
70
  )
70
71
 
72
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
73
+ #{self}.security_references
74
+
75
+ # Print the AUTHOR(S) string for this module.
71
76
  #{self}.authors
72
77
  "
78
+ constants.sort
73
79
  end
74
80
  end
75
81
  end
data/lib/pwn/sast/aws.rb CHANGED
@@ -64,13 +64,19 @@ module PWN
64
64
 
65
65
  public_class_method def self.help
66
66
  puts "USAGE:
67
- sast_arr = #{self}.scan(
68
- dir_path: 'optional path to dir defaults to .',
69
- git_repo_root_uri: 'optional http uri of git repo scanned'
67
+ # Run scan and return its result
68
+ #{self}.scan(
69
+ dir_path: 'optional - optional path to dir defaults to .',
70
+ git_repo_root_uri: 'optional - optional http uri of git repo scanned'
70
71
  )
71
72
 
73
+ # Used primarily to map NIST 800-53 Revision 4 Security Controls
74
+ #{self}.security_references
75
+
76
+ # Print the AUTHOR(S) string for this module.
72
77
  #{self}.authors
73
78
  "
79
+ constants.sort
74
80
  end
75
81
  end
76
82
  end