pwn 0.5.708 → 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 (434) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/Installation.md +1 -0
  3. data/etc/default_skills/pwn/ai/agent/extrospection/osint/bridges/SKILL.md +30 -8
  4. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/SKILL.md +30 -8
  5. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/references/urls.md +1 -1
  6. data/etc/default_skills/pwn/ai/agent/extrospection/references/urls.md +0 -1
  7. data/etc/default_skills/pwn/memory_index/SKILL.md +0 -4
  8. data/etc/default_skills/pwn/plugins/aflplusplus/SKILL.md +48 -0
  9. data/etc/default_skills/pwn/plugins/android/SKILL.md +1 -0
  10. data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +49 -0
  11. data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +54 -0
  12. data/etc/default_skills/pwn/plugins/credential_attack/SKILL.md +51 -0
  13. data/etc/default_skills/pwn/plugins/doctor/SKILL.md +57 -0
  14. data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +61 -0
  15. data/etc/default_skills/pwn/plugins/frida/SKILL.md +49 -0
  16. data/etc/default_skills/pwn/plugins/gdb/SKILL.md +52 -0
  17. data/etc/default_skills/pwn/plugins/jobs/SKILL.md +51 -0
  18. data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +48 -0
  19. data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +52 -0
  20. data/etc/default_skills/pwn/plugins/radare2/SKILL.md +59 -0
  21. data/etc/default_skills/pwn/plugins/recon/SKILL.md +55 -0
  22. data/etc/default_skills/pwn/plugins/recon/references/urls.md +5 -0
  23. data/etc/default_skills/pwn/plugins/sqlmap/SKILL.md +48 -0
  24. data/etc/default_skills/pwn/plugins/transparent_browser/SKILL.md +0 -4
  25. data/etc/default_skills/pwn/plugins/volatility/SKILL.md +48 -0
  26. data/lib/pwn/ai/agent/assembly.rb +4 -1
  27. data/lib/pwn/ai/agent/btc.rb +4 -1
  28. data/lib/pwn/ai/agent/burp_suite.rb +5 -2
  29. data/lib/pwn/ai/agent/curriculum.rb +89 -30
  30. data/lib/pwn/ai/agent/dispatch.rb +27 -16
  31. data/lib/pwn/ai/agent/extrospection/osint/bridges.rb +9 -18
  32. data/lib/pwn/ai/agent/extrospection/osint/social.rb +9 -18
  33. data/lib/pwn/ai/agent/extrospection.rb +185 -60
  34. data/lib/pwn/ai/agent/gqrx.rb +4 -1
  35. data/lib/pwn/ai/agent/hacker_one.rb +5 -2
  36. data/lib/pwn/ai/agent/learning.rb +142 -25
  37. data/lib/pwn/ai/agent/loop.rb +53 -46
  38. data/lib/pwn/ai/agent/metrics.rb +133 -23
  39. data/lib/pwn/ai/agent/mistakes.rb +126 -17
  40. data/lib/pwn/ai/agent/open_goal.rb +25 -9
  41. data/lib/pwn/ai/agent/policy.rb +158 -18
  42. data/lib/pwn/ai/agent/prompt_builder.rb +21 -11
  43. data/lib/pwn/ai/agent/prompt_cache.rb +44 -13
  44. data/lib/pwn/ai/agent/reflect.rb +9 -5
  45. data/lib/pwn/ai/agent/registry.rb +65 -12
  46. data/lib/pwn/ai/agent/result.rb +19 -10
  47. data/lib/pwn/ai/agent/reward.rb +150 -32
  48. data/lib/pwn/ai/agent/sast.rb +4 -1
  49. data/lib/pwn/ai/agent/swarm.rb +72 -36
  50. data/lib/pwn/ai/agent/task_summarizer.rb +165 -36
  51. data/lib/pwn/ai/agent/tool_guard.rb +105 -6
  52. data/lib/pwn/ai/agent/transparent_browser.rb +4 -1
  53. data/lib/pwn/ai/agent/turn_finalizer.rb +41 -21
  54. data/lib/pwn/ai/agent/vuln_gen.rb +6 -3
  55. data/lib/pwn/ai/agent.rb +4 -0
  56. data/lib/pwn/ai/anthropic.rb +41 -7
  57. data/lib/pwn/ai/gemini.rb +21 -11
  58. data/lib/pwn/ai/grok.rb +44 -6
  59. data/lib/pwn/ai/http_retry.rb +40 -12
  60. data/lib/pwn/ai/ollama.rb +19 -10
  61. data/lib/pwn/ai/open_ai.rb +81 -30
  62. data/lib/pwn/ai/open_web_ui.rb +20 -14
  63. data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +7 -1
  64. data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +7 -1
  65. data/lib/pwn/ai/red_team/excessive_agency.rb +7 -1
  66. data/lib/pwn/ai/red_team/hidden_context_exposure.rb +7 -1
  67. data/lib/pwn/ai/red_team/insecure_output_handling.rb +7 -1
  68. data/lib/pwn/ai/red_team/jailbreak.rb +7 -1
  69. data/lib/pwn/ai/red_team/memory_poisoning.rb +7 -1
  70. data/lib/pwn/ai/red_team/multimodal_injection.rb +7 -1
  71. data/lib/pwn/ai/red_team/overreliance.rb +7 -1
  72. data/lib/pwn/ai/red_team/payload_splitting.rb +7 -1
  73. data/lib/pwn/ai/red_team/prompt_injection.rb +7 -1
  74. data/lib/pwn/ai/red_team/rag_poisoning.rb +7 -1
  75. data/lib/pwn/ai/red_team/sensitive_information_disclosure.rb +7 -1
  76. data/lib/pwn/ai/red_team/supply_chain.rb +7 -1
  77. data/lib/pwn/ai/red_team/system_prompt_extraction.rb +7 -1
  78. data/lib/pwn/ai/red_team/test_case_engine.rb +12 -9
  79. data/lib/pwn/ai/red_team/token_smuggling.rb +7 -1
  80. data/lib/pwn/ai/red_team/unbounded_consumption.rb +7 -1
  81. data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +7 -1
  82. data/lib/pwn/ai/red_team.rb +4 -0
  83. data/lib/pwn/ai.rb +4 -0
  84. data/lib/pwn/aws/acm.rb +5 -2
  85. data/lib/pwn/aws/api_gateway.rb +10 -7
  86. data/lib/pwn/aws/app_stream.rb +5 -2
  87. data/lib/pwn/aws/application_auto_scaling.rb +5 -2
  88. data/lib/pwn/aws/application_discovery_service.rb +5 -2
  89. data/lib/pwn/aws/auto_scaling.rb +5 -2
  90. data/lib/pwn/aws/batch.rb +5 -2
  91. data/lib/pwn/aws/budgets.rb +5 -2
  92. data/lib/pwn/aws/cloud_formation.rb +5 -2
  93. data/lib/pwn/aws/cloud_front.rb +7 -4
  94. data/lib/pwn/aws/cloud_hsm.rb +5 -2
  95. data/lib/pwn/aws/cloud_search.rb +5 -2
  96. data/lib/pwn/aws/cloud_search_domain.rb +5 -2
  97. data/lib/pwn/aws/cloud_trail.rb +5 -2
  98. data/lib/pwn/aws/cloud_watch.rb +5 -2
  99. data/lib/pwn/aws/cloud_watch_events.rb +5 -2
  100. data/lib/pwn/aws/cloud_watch_logs.rb +5 -2
  101. data/lib/pwn/aws/code_build.rb +5 -2
  102. data/lib/pwn/aws/code_commit.rb +5 -2
  103. data/lib/pwn/aws/code_deploy.rb +5 -2
  104. data/lib/pwn/aws/code_pipeline.rb +5 -2
  105. data/lib/pwn/aws/cognito_identity.rb +5 -2
  106. data/lib/pwn/aws/cognito_identity_provider.rb +5 -2
  107. data/lib/pwn/aws/cognito_sync.rb +5 -2
  108. data/lib/pwn/aws/config_service.rb +5 -2
  109. data/lib/pwn/aws/data_pipleline.rb +5 -2
  110. data/lib/pwn/aws/database_migration_service.rb +5 -2
  111. data/lib/pwn/aws/device_farm.rb +5 -2
  112. data/lib/pwn/aws/direct_connect.rb +5 -2
  113. data/lib/pwn/aws/directory_service.rb +5 -2
  114. data/lib/pwn/aws/dynamo_db.rb +5 -2
  115. data/lib/pwn/aws/dynamo_db_streams.rb +5 -2
  116. data/lib/pwn/aws/ec2.rb +5 -2
  117. data/lib/pwn/aws/ecr.rb +5 -2
  118. data/lib/pwn/aws/ecs.rb +5 -2
  119. data/lib/pwn/aws/efs.rb +5 -2
  120. data/lib/pwn/aws/elasti_cache.rb +5 -2
  121. data/lib/pwn/aws/elastic_beanstalk.rb +8 -5
  122. data/lib/pwn/aws/elastic_load_balancing.rb +5 -2
  123. data/lib/pwn/aws/elastic_load_balancing_v2.rb +6 -3
  124. data/lib/pwn/aws/elastic_transcoder.rb +5 -2
  125. data/lib/pwn/aws/elasticsearch_service.rb +5 -2
  126. data/lib/pwn/aws/emr.rb +5 -2
  127. data/lib/pwn/aws/firehose.rb +5 -2
  128. data/lib/pwn/aws/game_lift.rb +5 -2
  129. data/lib/pwn/aws/glacier.rb +6 -3
  130. data/lib/pwn/aws/health.rb +5 -2
  131. data/lib/pwn/aws/iam.rb +10 -4
  132. data/lib/pwn/aws/import_export.rb +5 -2
  133. data/lib/pwn/aws/inspector.rb +5 -2
  134. data/lib/pwn/aws/iot.rb +5 -2
  135. data/lib/pwn/aws/iot_data_plane.rb +5 -2
  136. data/lib/pwn/aws/kinesis.rb +5 -2
  137. data/lib/pwn/aws/kinesis_analytics.rb +5 -2
  138. data/lib/pwn/aws/kms.rb +5 -2
  139. data/lib/pwn/aws/lambda.rb +5 -2
  140. data/lib/pwn/aws/lambda_preview.rb +5 -2
  141. data/lib/pwn/aws/lex.rb +5 -2
  142. data/lib/pwn/aws/lightsail.rb +5 -2
  143. data/lib/pwn/aws/machine_learning.rb +5 -2
  144. data/lib/pwn/aws/marketplace_commerce_analytics.rb +5 -2
  145. data/lib/pwn/aws/marketplace_metering.rb +5 -2
  146. data/lib/pwn/aws/ops_works.rb +5 -2
  147. data/lib/pwn/aws/ops_works_cm.rb +5 -2
  148. data/lib/pwn/aws/pinpoint.rb +5 -2
  149. data/lib/pwn/aws/polly.rb +5 -2
  150. data/lib/pwn/aws/rds.rb +5 -2
  151. data/lib/pwn/aws/redshift.rb +5 -2
  152. data/lib/pwn/aws/rekognition.rb +5 -2
  153. data/lib/pwn/aws/route53.rb +5 -2
  154. data/lib/pwn/aws/route53_domains.rb +5 -2
  155. data/lib/pwn/aws/s3.rb +5 -2
  156. data/lib/pwn/aws/service_catalog.rb +5 -2
  157. data/lib/pwn/aws/ses.rb +5 -2
  158. data/lib/pwn/aws/shield.rb +5 -2
  159. data/lib/pwn/aws/simple_db.rb +5 -2
  160. data/lib/pwn/aws/sms.rb +5 -2
  161. data/lib/pwn/aws/snowball.rb +5 -2
  162. data/lib/pwn/aws/sns.rb +5 -2
  163. data/lib/pwn/aws/sqs.rb +5 -2
  164. data/lib/pwn/aws/ssm.rb +5 -2
  165. data/lib/pwn/aws/states.rb +5 -2
  166. data/lib/pwn/aws/storage_gateway.rb +5 -2
  167. data/lib/pwn/aws/sts.rb +4 -1
  168. data/lib/pwn/aws/support.rb +5 -2
  169. data/lib/pwn/aws/swf.rb +5 -2
  170. data/lib/pwn/aws/waf.rb +5 -2
  171. data/lib/pwn/aws/waf_regional.rb +5 -2
  172. data/lib/pwn/aws/workspaces.rb +5 -2
  173. data/lib/pwn/aws/x_ray.rb +5 -2
  174. data/lib/pwn/aws.rb +4 -0
  175. data/lib/pwn/banner/anon.rb +3 -0
  176. data/lib/pwn/banner/bubble.rb +3 -0
  177. data/lib/pwn/banner/cheshire.rb +3 -0
  178. data/lib/pwn/banner/code_cave.rb +3 -0
  179. data/lib/pwn/banner/dont_panic.rb +3 -0
  180. data/lib/pwn/banner/f_society.rb +3 -0
  181. data/lib/pwn/banner/fork_bomb.rb +3 -0
  182. data/lib/pwn/banner/jmp_esp.rb +3 -0
  183. data/lib/pwn/banner/matrix.rb +5 -1
  184. data/lib/pwn/banner/ninja.rb +3 -0
  185. data/lib/pwn/banner/off_the_air.rb +3 -0
  186. data/lib/pwn/banner/pirate.rb +3 -0
  187. data/lib/pwn/banner/radare2.rb +3 -0
  188. data/lib/pwn/banner/radare2_ai.rb +3 -0
  189. data/lib/pwn/banner/white_rabbit.rb +3 -0
  190. data/lib/pwn/banner.rb +6 -2
  191. data/lib/pwn/blockchain/btc.rb +8 -3
  192. data/lib/pwn/blockchain/eth.rb +10 -3
  193. data/lib/pwn/blockchain.rb +4 -0
  194. data/lib/pwn/bounty/lifecycle_authz_replay.rb +46 -27
  195. data/lib/pwn/bounty.rb +4 -0
  196. data/lib/pwn/config.rb +79 -13
  197. data/lib/pwn/cron.rb +297 -20
  198. data/lib/pwn/driver.rb +2 -18
  199. data/lib/pwn/ffi/adalm_pluto.rb +65 -11
  200. data/lib/pwn/ffi/fftw.rb +31 -6
  201. data/lib/pwn/ffi/hack_rf.rb +59 -8
  202. data/lib/pwn/ffi/liquid.rb +63 -10
  203. data/lib/pwn/ffi/rtl_sdr.rb +35 -5
  204. data/lib/pwn/ffi/soapy_sdr.rb +60 -10
  205. data/lib/pwn/ffi/stdio.rb +5 -8
  206. data/lib/pwn/ffi/volk.rb +36 -7
  207. data/lib/pwn/ffi.rb +12 -0
  208. data/lib/pwn/memory.rb +136 -16
  209. data/lib/pwn/memory_index.rb +34 -19
  210. data/lib/pwn/migrate.rb +34 -24
  211. data/lib/pwn/module_skills.rb +39 -8
  212. data/lib/pwn/plugins/aflplusplus.rb +52 -0
  213. data/lib/pwn/plugins/android.rb +65 -245
  214. data/lib/pwn/plugins/artifact_registry.rb +71 -0
  215. data/lib/pwn/plugins/assembly.rb +9 -4
  216. data/lib/pwn/plugins/authentication_helper.rb +8 -5
  217. data/lib/pwn/plugins/baresip.rb +59 -12
  218. data/lib/pwn/plugins/basic_auth.rb +9 -3
  219. data/lib/pwn/plugins/beef.rb +28 -18
  220. data/lib/pwn/plugins/binary_parser.rb +133 -0
  221. data/lib/pwn/plugins/black_duck_binary_analysis.rb +63 -39
  222. data/lib/pwn/plugins/burp_suite.rb +98 -68
  223. data/lib/pwn/plugins/bus_pirate.rb +15 -8
  224. data/lib/pwn/plugins/char.rb +33 -3
  225. data/lib/pwn/plugins/credential_attack.rb +99 -0
  226. data/lib/pwn/plugins/credit_card.rb +6 -1
  227. data/lib/pwn/plugins/dao_ldap.rb +19 -13
  228. data/lib/pwn/plugins/dao_mongo.rb +11 -5
  229. data/lib/pwn/plugins/dao_postgres.rb +28 -19
  230. data/lib/pwn/plugins/dao_sqlite3.rb +15 -6
  231. data/lib/pwn/plugins/defect_dojo.rb +38 -22
  232. data/lib/pwn/plugins/detect_os.rb +5 -0
  233. data/lib/pwn/plugins/doctor.rb +149 -0
  234. data/lib/pwn/plugins/ein.rb +3 -0
  235. data/lib/pwn/plugins/exploit_dev.rb +264 -0
  236. data/lib/pwn/plugins/file_fu.rb +11 -8
  237. data/lib/pwn/plugins/frida.rb +61 -0
  238. data/lib/pwn/plugins/fuzz.rb +9 -6
  239. data/lib/pwn/plugins/gdb.rb +95 -0
  240. data/lib/pwn/plugins/git.rb +19 -14
  241. data/lib/pwn/plugins/github.rb +38 -15
  242. data/lib/pwn/plugins/google_workspace.rb +188 -45
  243. data/lib/pwn/plugins/hacker_one.rb +159 -35
  244. data/lib/pwn/plugins/hunter.rb +6 -3
  245. data/lib/pwn/plugins/ip_info.rb +9 -4
  246. data/lib/pwn/plugins/irc.rb +28 -15
  247. data/lib/pwn/plugins/jenkins.rb +65 -57
  248. data/lib/pwn/plugins/jira_data_center.rb +30 -22
  249. data/lib/pwn/plugins/jobs.rb +109 -0
  250. data/lib/pwn/plugins/json_pathify.rb +9 -5
  251. data/lib/pwn/plugins/log.rb +113 -13
  252. data/lib/pwn/plugins/mail_agent.rb +87 -79
  253. data/lib/pwn/plugins/metasploit.rb +11 -6
  254. data/lib/pwn/plugins/monkey_patch.rb +3 -0
  255. data/lib/pwn/plugins/msr206.rb +42 -28
  256. data/lib/pwn/plugins/nessus_cloud.rb +44 -4
  257. data/lib/pwn/plugins/nexpose_vuln_scan.rb +40 -24
  258. data/lib/pwn/plugins/nmap_it.rb +14 -34
  259. data/lib/pwn/plugins/nuclei.rb +57 -0
  260. data/lib/pwn/plugins/oauth2.rb +11 -5
  261. data/lib/pwn/plugins/ocr.rb +3 -0
  262. data/lib/pwn/plugins/open_api.rb +5 -2
  263. data/lib/pwn/plugins/openvas.rb +33 -25
  264. data/lib/pwn/plugins/packet.rb +152 -31
  265. data/lib/pwn/plugins/pdf_parse.rb +5 -2
  266. data/lib/pwn/plugins/pony.rb +86 -1
  267. data/lib/pwn/plugins/process_tube.rb +120 -0
  268. data/lib/pwn/plugins/ps.rb +7 -1
  269. data/lib/pwn/plugins/pwn_logger.rb +6 -2
  270. data/lib/pwn/plugins/rabbit_mq.rb +12 -7
  271. data/lib/pwn/plugins/radare2.rb +253 -0
  272. data/lib/pwn/plugins/recon.rb +161 -0
  273. data/lib/pwn/plugins/repl.rb +122 -1
  274. data/lib/pwn/plugins/scannable_codes.rb +5 -1
  275. data/lib/pwn/plugins/serial.rb +24 -14
  276. data/lib/pwn/plugins/shodan.rb +54 -35
  277. data/lib/pwn/plugins/slack_client.rb +11 -6
  278. data/lib/pwn/plugins/sock.rb +16 -8
  279. data/lib/pwn/plugins/spider.rb +5 -2
  280. data/lib/pwn/plugins/sqlmap.rb +49 -0
  281. data/lib/pwn/plugins/ssn.rb +3 -0
  282. data/lib/pwn/plugins/thread_pool.rb +6 -9
  283. data/lib/pwn/plugins/tor.rb +9 -4
  284. data/lib/pwn/plugins/transparent_browser.rb +62 -107
  285. data/lib/pwn/plugins/tty_spinner.rb +16 -2
  286. data/lib/pwn/plugins/twitter_api.rb +6 -2
  287. data/lib/pwn/plugins/uri_scheme.rb +4 -1
  288. data/lib/pwn/plugins/vault.rb +12 -3
  289. data/lib/pwn/plugins/vin.rb +24 -12
  290. data/lib/pwn/plugins/voice.rb +7 -2
  291. data/lib/pwn/plugins/volatility.rb +48 -0
  292. data/lib/pwn/plugins/vsphere.rb +9 -5
  293. data/lib/pwn/plugins/xxd.rb +12 -43
  294. data/lib/pwn/plugins/zaproxy.rb +30 -16
  295. data/lib/pwn/plugins.rb +19 -0
  296. data/lib/pwn/reports/ai_red_team.rb +6 -2
  297. data/lib/pwn/reports/csv.rb +8 -1
  298. data/lib/pwn/reports/fuzz.rb +5 -2
  299. data/lib/pwn/reports/html.rb +8 -1
  300. data/lib/pwn/reports/html_footer.rb +4 -3
  301. data/lib/pwn/reports/html_header.rb +6 -2
  302. data/lib/pwn/reports/json.rb +8 -1
  303. data/lib/pwn/reports/markdown.rb +8 -1
  304. data/lib/pwn/reports/pdf.rb +8 -1
  305. data/lib/pwn/reports/phone.rb +5 -2
  306. data/lib/pwn/reports/sast.rb +6 -2
  307. data/lib/pwn/reports/uri_buster.rb +5 -2
  308. data/lib/pwn/reports/xml.rb +8 -1
  309. data/lib/pwn/reports.rb +19 -0
  310. data/lib/pwn/sast/amqp_connect_as_guest.rb +9 -3
  311. data/lib/pwn/sast/apache_file_system_util_api.rb +9 -3
  312. data/lib/pwn/sast/aws.rb +9 -3
  313. data/lib/pwn/sast/banned_function_calls_c.rb +9 -3
  314. data/lib/pwn/sast/base64.rb +9 -3
  315. data/lib/pwn/sast/beef_hook.rb +9 -3
  316. data/lib/pwn/sast/cmd_execution_go_lang.rb +9 -3
  317. data/lib/pwn/sast/cmd_execution_java.rb +9 -3
  318. data/lib/pwn/sast/cmd_execution_python.rb +9 -3
  319. data/lib/pwn/sast/cmd_execution_ruby.rb +9 -3
  320. data/lib/pwn/sast/cmd_execution_scala.rb +9 -3
  321. data/lib/pwn/sast/csrf.rb +9 -3
  322. data/lib/pwn/sast/deserial_java.rb +9 -3
  323. data/lib/pwn/sast/emoticon.rb +9 -3
  324. data/lib/pwn/sast/eval.rb +9 -3
  325. data/lib/pwn/sast/factory.rb +9 -3
  326. data/lib/pwn/sast/http_authorization_header.rb +9 -3
  327. data/lib/pwn/sast/inner_html.rb +9 -3
  328. data/lib/pwn/sast/keystore.rb +9 -3
  329. data/lib/pwn/sast/local_storage.rb +9 -3
  330. data/lib/pwn/sast/location_hash.rb +9 -3
  331. data/lib/pwn/sast/log4j.rb +9 -3
  332. data/lib/pwn/sast/logger.rb +9 -3
  333. data/lib/pwn/sast/md5.rb +9 -3
  334. data/lib/pwn/sast/outer_html.rb +9 -3
  335. data/lib/pwn/sast/padding_oracle.rb +9 -3
  336. data/lib/pwn/sast/password.rb +9 -3
  337. data/lib/pwn/sast/php_input_mechanisms.rb +9 -3
  338. data/lib/pwn/sast/php_type_juggling.rb +9 -3
  339. data/lib/pwn/sast/pom_version.rb +9 -3
  340. data/lib/pwn/sast/port.rb +9 -3
  341. data/lib/pwn/sast/post_message.rb +9 -3
  342. data/lib/pwn/sast/private_key.rb +9 -3
  343. data/lib/pwn/sast/redirect.rb +9 -3
  344. data/lib/pwn/sast/redos.rb +9 -3
  345. data/lib/pwn/sast/shell.rb +9 -3
  346. data/lib/pwn/sast/signature.rb +9 -3
  347. data/lib/pwn/sast/sql.rb +9 -3
  348. data/lib/pwn/sast/ssl.rb +9 -3
  349. data/lib/pwn/sast/sudo.rb +9 -3
  350. data/lib/pwn/sast/task_tag.rb +9 -3
  351. data/lib/pwn/sast/test_case_engine.rb +11 -7
  352. data/lib/pwn/sast/throw_errors.rb +9 -3
  353. data/lib/pwn/sast/token.rb +9 -3
  354. data/lib/pwn/sast/type_script_type_juggling.rb +9 -3
  355. data/lib/pwn/sast/use_after_free.rb +9 -3
  356. data/lib/pwn/sast/version.rb +9 -3
  357. data/lib/pwn/sast/window_location_hash.rb +9 -3
  358. data/lib/pwn/sast.rb +4 -0
  359. data/lib/pwn/sdr/decoder/adsb.rb +36 -5
  360. data/lib/pwn/sdr/decoder/apt.rb +9 -6
  361. data/lib/pwn/sdr/decoder/base.rb +74 -22
  362. data/lib/pwn/sdr/decoder/bluetooth.rb +17 -5
  363. data/lib/pwn/sdr/decoder/dect.rb +12 -3
  364. data/lib/pwn/sdr/decoder/dsp.rb +229 -39
  365. data/lib/pwn/sdr/decoder/flex.rb +59 -11
  366. data/lib/pwn/sdr/decoder/gps.rb +12 -3
  367. data/lib/pwn/sdr/decoder/gsm.rb +24 -4
  368. data/lib/pwn/sdr/decoder/iridium.rb +12 -3
  369. data/lib/pwn/sdr/decoder/lora.rb +13 -4
  370. data/lib/pwn/sdr/decoder/lte.rb +27 -3
  371. data/lib/pwn/sdr/decoder/morse.rb +12 -3
  372. data/lib/pwn/sdr/decoder/p25.rb +12 -3
  373. data/lib/pwn/sdr/decoder/pager.rb +8 -5
  374. data/lib/pwn/sdr/decoder/pocsag.rb +29 -9
  375. data/lib/pwn/sdr/decoder/rds.rb +14 -8
  376. data/lib/pwn/sdr/decoder/rfid.rb +12 -3
  377. data/lib/pwn/sdr/decoder/rtl433.rb +12 -3
  378. data/lib/pwn/sdr/decoder/rtty.rb +8 -5
  379. data/lib/pwn/sdr/decoder/wifi.rb +12 -3
  380. data/lib/pwn/sdr/decoder/zigbee.rb +12 -3
  381. data/lib/pwn/sdr/decoder.rb +9 -0
  382. data/lib/pwn/sdr/flipper_zero.rb +17 -10
  383. data/lib/pwn/sdr/frequency_allocation.rb +4 -1
  384. data/lib/pwn/sdr/gqrx.rb +178 -119
  385. data/lib/pwn/sdr/rfidler.rb +4 -1
  386. data/lib/pwn/sdr/son_micro_rfid.rb +37 -24
  387. data/lib/pwn/sdr.rb +14 -0
  388. data/lib/pwn/sessions.rb +86 -16
  389. data/lib/pwn/setup.rb +94 -37
  390. data/lib/pwn/version.rb +1 -1
  391. data/lib/pwn/www/app_cobalt_io.rb +11 -5
  392. data/lib/pwn/www/bing.rb +10 -5
  393. data/lib/pwn/www/bug_crowd.rb +11 -5
  394. data/lib/pwn/www/checkip.rb +8 -4
  395. data/lib/pwn/www/coinbase_pro.rb +11 -5
  396. data/lib/pwn/www/duckduckgo.rb +12 -6
  397. data/lib/pwn/www/facebook.rb +11 -5
  398. data/lib/pwn/www/github.rb +11 -5
  399. data/lib/pwn/www/google.rb +11 -5
  400. data/lib/pwn/www/hacker_one.rb +20 -9
  401. data/lib/pwn/www/linkedin.rb +11 -5
  402. data/lib/pwn/www/pandora.rb +11 -5
  403. data/lib/pwn/www/pastebin.rb +9 -4
  404. data/lib/pwn/www/paypal.rb +19 -11
  405. data/lib/pwn/www/synack.rb +11 -5
  406. data/lib/pwn/www/torch.rb +13 -8
  407. data/lib/pwn/www/trading_view.rb +11 -5
  408. data/lib/pwn/www/twitter.rb +11 -5
  409. data/lib/pwn/www/uber.rb +11 -5
  410. data/lib/pwn/www/upwork.rb +11 -5
  411. data/lib/pwn/www/wayback_machine.rb +12 -6
  412. data/lib/pwn/www/youtube.rb +10 -5
  413. data/lib/pwn/www.rb +4 -0
  414. data/spec/conventions_spec.rb +118 -2
  415. data/spec/lib/pwn/ai/agent/reward_spec.rb +9 -0
  416. data/spec/lib/pwn/plugins/aflplusplus_spec.rb +13 -0
  417. data/spec/lib/pwn/plugins/artifact_registry_spec.rb +13 -0
  418. data/spec/lib/pwn/plugins/binary_parser_spec.rb +21 -0
  419. data/spec/lib/pwn/plugins/credential_attack_spec.rb +13 -0
  420. data/spec/lib/pwn/plugins/doctor_spec.rb +23 -0
  421. data/spec/lib/pwn/plugins/exploit_dev_spec.rb +23 -0
  422. data/spec/lib/pwn/plugins/frida_spec.rb +13 -0
  423. data/spec/lib/pwn/plugins/gdb_spec.rb +13 -0
  424. data/spec/lib/pwn/plugins/jobs_spec.rb +13 -0
  425. data/spec/lib/pwn/plugins/nuclei_spec.rb +13 -0
  426. data/spec/lib/pwn/plugins/process_tube_spec.rb +13 -0
  427. data/spec/lib/pwn/plugins/radare2_spec.rb +13 -0
  428. data/spec/lib/pwn/plugins/recon_spec.rb +26 -0
  429. data/spec/lib/pwn/plugins/sqlmap_spec.rb +13 -0
  430. data/spec/lib/pwn/plugins/volatility_spec.rb +13 -0
  431. data/third_party/pwn_rdoc.jsonl +126 -5
  432. metadata +47 -3
  433. data/etc/default_skills/pwn/memory_index/references/urls.md +0 -4
  434. data/etc/default_skills/pwn/plugins/transparent_browser/references/urls.md +0 -3
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'yaml'
4
+ require 'fileutils'
5
+ require 'tmpdir'
4
6
  module PWN
5
7
  module Plugins
6
8
  # PWN module used to interact w/ Android Devices
@@ -1275,6 +1277,27 @@ module PWN
1275
1277
  raise e
1276
1278
  end
1277
1279
 
1280
+ public_class_method def self.apk_pipeline(opts = {})
1281
+ apk = opts[:apk].to_s
1282
+ raise 'ERROR: apk is required' if apk.empty?
1283
+
1284
+ out = opts[:out_dir] || File.join(Dir.tmpdir, "pwn-apk-#{Process.pid}")
1285
+ FileUtils.mkdir_p(out)
1286
+ decoded = File.join(out, 'apktool')
1287
+ jadx_out = File.join(out, 'jadx')
1288
+ steps = []
1289
+ if PWN::Plugins::Doctor.bin?(name: 'apktool')
1290
+ system('apktool', 'd', '-f', '-o', decoded, apk)
1291
+ steps << :apktool
1292
+ end
1293
+ if PWN::Plugins::Doctor.bin?(name: 'jadx')
1294
+ FileUtils.mkdir_p(jadx_out)
1295
+ system('jadx', '-d', jadx_out, apk)
1296
+ steps << :jadx
1297
+ end
1298
+ { out_dir: out, steps: steps, apk: apk }
1299
+ end
1300
+
1278
1301
  # Author(s):: 0day Inc. <support@0dayinc.com>
1279
1302
 
1280
1303
  public_class_method def self.authors
@@ -1287,330 +1310,127 @@ module PWN
1287
1310
 
1288
1311
  public_class_method def self.help
1289
1312
  puts "USAGE:
1290
-
1313
+ # Run adb net connect and return its result
1291
1314
  #{self}.adb_net_connect(
1292
1315
  adb_path: 'required - path to adb binary',
1293
1316
  target: 'required - target host or IP to connect',
1294
1317
  port: 'optional - defaults to tcp 5555'
1295
1318
  )
1296
1319
 
1297
- adb_response = #{self}.adb_sh(
1320
+ # Run adb sh and return its result
1321
+ #{self}.adb_sh(
1298
1322
  adb_path: 'required - path to adb binary',
1299
- command: 'adb command to execute'
1300
- as_root: 'optional - boolean (defaults to false)',
1323
+ command: 'required - adb command to execute',
1324
+ as_root: 'optional - boolean (defaults to false)'
1301
1325
  )
1302
1326
 
1327
+ # Run adb push and return its result
1303
1328
  #{self}.adb_push(
1304
1329
  adb_path: 'required - path to adb binary',
1305
1330
  file: 'required - source file to push',
1306
- dest: 'required - destination path to push file',
1307
- as_root: 'optional - boolean (defaults to false)',
1331
+ dest: 'required - destination path to save pushed file',
1332
+ as_root: 'optional - boolean (defaults to false)'
1308
1333
  )
1309
1334
 
1335
+ # Run adb pull and return its result
1310
1336
  #{self}.adb_pull(
1311
1337
  adb_path: 'required - path to adb binary',
1312
1338
  file: 'required - source file to pull',
1313
- dest: 'required - destination path to pull file',
1314
- as_root: 'optional - boolean (defaults to false)',
1339
+ dest: 'required - destination path to save pulled file',
1340
+ as_root: 'optional - boolean (defaults to false)'
1315
1341
  )
1316
1342
 
1343
+ # Run take screenshot and return its result
1317
1344
  #{self}.take_screenshot(
1318
1345
  adb_path: 'required - path to adb binary',
1319
1346
  dest: 'optional - destination path to save screenshot file (defaults to /sdcard/screen.png)',
1320
1347
  as_root: 'optional - boolean (defaults to true)'
1321
1348
  )
1322
1349
 
1350
+ # Run screen record and return its result
1323
1351
  #{self}.screen_record(
1324
1352
  adb_path: 'required - path to adb binary',
1325
1353
  dest: 'optional - destination path to save screen record file (defaults to /sdcard/screen.mp4)',
1326
1354
  as_root: 'optional - boolean (defaults to true)'
1327
1355
  )
1328
1356
 
1329
- installed_apps_arr = #{self}.list_installed_apps(
1357
+ # Run list installed apps and return its result
1358
+ #{self}.list_installed_apps(
1330
1359
  adb_path: 'required - path to adb binary',
1331
- as_root: 'optional - boolean (defaults to false)',
1360
+ as_root: 'optional - boolean (defaults to false)'
1332
1361
  )
1333
1362
 
1334
- app_response = #{self}.dumpsys(
1363
+ # Run dumpsys and return its result
1364
+ #{self}.dumpsys(
1335
1365
  adb_path: 'required - path to adb binary',
1336
1366
  app: 'optional - application app to detail otherwise display all (i.e. display info from an android app returned from #list_install_apps method)',
1337
- as_root: 'optional - boolean (defaults to false)',
1367
+ as_root: 'optional - boolean (defaults to false)'
1338
1368
  )
1339
1369
 
1340
- app_response = #{self}.open_app(
1370
+ # Run open app and return its result
1371
+ #{self}.open_app(
1341
1372
  adb_path: 'required - path to adb binary',
1342
1373
  app: 'required - application app to run (i.e. open an android app returned from #list_install_apps method)',
1343
1374
  as_root: 'optional - boolean (defaults to false)'
1344
1375
  )
1345
1376
 
1377
+ # Run find hidden codes and return its result
1346
1378
  #{self}.find_hidden_codes(
1347
1379
  adb_path: 'required - path to adb binary',
1348
- from: 'required - start at keycode #'
1380
+ from: 'required - start at keycode #',
1349
1381
  to: 'required - end at keycode #',
1350
1382
  interact: 'optional - defaults to false'
1351
1383
  )
1352
1384
 
1385
+ # Run swipe and return its result
1353
1386
  #{self}.swipe(
1354
1387
  adb_path: 'required - path to adb binary',
1355
1388
  direction: 'required - direction to swipe (:up|:down|:left|:right)'
1356
1389
  )
1357
1390
 
1391
+ # Run input and return its result
1358
1392
  #{self}.input(
1359
1393
  adb_path: 'required - path to adb binary',
1360
1394
  string: 'required - string to type'
1361
1395
  )
1362
1396
 
1397
+ # see https://developer.android.com/reference/android/view/KeyEvent.html for more info
1363
1398
  #{self}.input_special(
1364
1399
  adb_path: 'required - path to adb binary',
1365
- event: 'required - special event to invoke (
1366
- :zoom_in|
1367
- :zoom_out|
1368
- :zenkaku_hankaku|
1369
- :yen|
1370
- :window|
1371
- :wakeup|
1372
- :voice_assist|
1373
- :tv_zoom_mode|
1374
- :tv_timer_programming|
1375
- :tv_terrestrial_digital|
1376
- :tv_terrestrial_analog|
1377
- :tv_satellite_teletext|
1378
- :tv_satellite_service|
1379
- :tv_satellite|
1380
- :tv_satellite_bs|
1381
- :tv_satellite_cs|
1382
- :tv_radio_service|
1383
- :tv_power|
1384
- :tv_number_entry|
1385
- :tv_network|
1386
- :tv_media_context_menu|
1387
- :tv_input_vga1|
1388
- :tv_input_hdmi1|
1389
- :tv_input_hdmi2|
1390
- :tv_input_hdmi3|
1391
- :tv_input_hdmi4|
1392
- :tv_input_composite1|
1393
- :tv_input_composite2|
1394
- :tv_input_component1|
1395
- :tv_input_component2|
1396
- :tv_input|
1397
- :tv_data_service|
1398
- :tv_contents_menu|
1399
- :tv_audio_desc|
1400
- :tv_audio_desc_mix_up|
1401
- :tv_audio_desc_mix_down|
1402
- :tv_antenna_cable|
1403
- :tv|
1404
- :sysrq|
1405
- :switch_charset|
1406
- :stem_primary|
1407
- :stem1|
1408
- :stem2|
1409
- :stem3|
1410
- :stb_power|
1411
- :stb_input|
1412
- :sleep|
1413
- :settings|
1414
- :scroll_lock|
1415
- :ro|
1416
- :prog_blue|
1417
- :prog_green|
1418
- :prog_red|
1419
- :prog_yellow|
1420
- :pairing|
1421
- :num_lock|
1422
- :numpad_subtract|
1423
- :numpad_multiply|
1424
- :numpad_left_paren|
1425
- :numpad_right_paren|
1426
- :numpad_equals|
1427
- :numpad_enter|
1428
- :numpad_dot|
1429
- :numpad_comma|
1430
- :numpad_add|
1431
- :numpad0|
1432
- :numpad1|
1433
- :numpad2|
1434
- :numpad3|
1435
- :numpad4|
1436
- :numpad5|
1437
- :numpad6|
1438
- :numpad7|
1439
- :numpad8|
1440
- :numpad9|
1441
- :num|
1442
- :nav_in|
1443
- :nav_next|
1444
- :nav_out|
1445
- :nav_previous|
1446
- :music|
1447
- :muhenkan|
1448
- :meta_left|
1449
- :meta_right|
1450
- :media_top_menu|
1451
- :media_step_forward|
1452
- :media_step_back|
1453
- :media_skip_forward|
1454
- :media_skip_back|
1455
- :media_record|
1456
- :media_play|
1457
- :media_eject|
1458
- :media_close|
1459
- :media_audio_track|
1460
- :manner_mode|
1461
- :last_channel|
1462
- :language_switch|
1463
- :katakana_hiragana|
1464
- :kana|
1465
- :insert|
1466
- :info|
1467
- :henkan|
1468
- :help|
1469
- :guide|
1470
- :del|
1471
- :f1|
1472
- :f2|
1473
- :f3|
1474
- :f4|
1475
- :f5|
1476
- :f6|
1477
- :f7|
1478
- :f8|
1479
- :f9|
1480
- :f10|
1481
- :f11|
1482
- :f12|
1483
- :escape|
1484
- :eisu|
1485
- :dvr|
1486
- :ctrl_left|
1487
- :ctrl_right|
1488
- :cut|
1489
- :copy|
1490
- :paste|
1491
- :contacts|
1492
- :chan_down|
1493
- :chan_up|
1494
- :captions|
1495
- :caps_lock|
1496
- :calendar|
1497
- :calculator|
1498
- :gamepad1|
1499
- :gamepad2|
1500
- :gamepad3|
1501
- :gamepad4|
1502
- :gamepad5|
1503
- :gamepad6|
1504
- :gamepad7|
1505
- :gamepad8|
1506
- :gamepad9|
1507
- :gamepad10|
1508
- :gamepad11|
1509
- :gamepad12|
1510
- :gamepad13|
1511
- :gamepad14|
1512
- :gamepad15|
1513
- :gamepad16|
1514
- :gamepad_a|
1515
- :gamepad_b|
1516
- :gamepad_c|
1517
- :gamepad_l1|
1518
- :gamepad_l2|
1519
- :gamepad_mode|
1520
- :gamepad_r1|
1521
- :gamepad_r2|
1522
- :gamepad_select|
1523
- :gamepad_start|
1524
- :gamepad_thumbl|
1525
- :gamepad_thumbr|
1526
- :gamepad_x|
1527
- :gamepad_y|
1528
- :gamepad_z|
1529
- :brightness_up|
1530
- :brightness_down|
1531
- :break|
1532
- :bookmark|
1533
- :avr_power|
1534
- :avr_input|
1535
- :assist|
1536
- :app_switch|
1537
- :threeDmode|
1538
- :eleven|
1539
- :twelve|
1540
- :unknown|
1541
- :soft_left|
1542
- :soft_right|
1543
- :soft_sleep|
1544
- :home|
1545
- :forward|
1546
- :back|
1547
- :call|
1548
- :endcall|
1549
- :dpad_up|
1550
- :dpad_down|
1551
- :dpad_left|
1552
- :dpad_right|
1553
- :dpad_down_left|
1554
- :dpad_down_right|
1555
- :dpad_up_left|
1556
- :dpad_up_right|
1557
- :dpad_center|
1558
- :volume_up|
1559
- :volume_down|
1560
- :power|
1561
- :camera|
1562
- :clear|
1563
- :alt_left|
1564
- :alt_right|
1565
- :shift_left|
1566
- :shift_right|
1567
- :tab|
1568
- :sym|
1569
- :explorer|
1570
- :envelope|
1571
- :enter|
1572
- :backspace|
1573
- :headsethook|
1574
- :focus|
1575
- :menu|
1576
- :top_menu|
1577
- :notification|
1578
- :search|
1579
- :media_play_pause|
1580
- :media_stop|
1581
- :media_next|
1582
- :media_previous|
1583
- :media_rewind|
1584
- :media_fast_forward|
1585
- :mute|
1586
- :page_up|
1587
- :page_down|
1588
- :pictsymbols|
1589
- :move_home|
1590
- :move_end
1591
- )
1592
- see https://developer.android.com/reference/android/view/KeyEvent.html for more info'
1400
+ event: 'required - special event to invoke ('
1593
1401
  )
1594
1402
 
1595
- app_response = #{self}.close_app(
1403
+ # Run close app and return its result
1404
+ #{self}.close_app(
1596
1405
  adb_path: 'required - path to adb binary',
1597
- app: 'required - application app to run (i.e. open an android app returned from #list_install_apps method)',
1406
+ app: 'required - application app to close (i.e. open an android app returned from #list_install_apps method)',
1598
1407
  as_root: 'optional - boolean (defaults to false)'
1599
1408
  )
1600
1409
 
1410
+ # Run invoke event listener and return its result
1601
1411
  #{self}.invoke_event_listener(
1602
1412
  adb_path: 'required - path to adb binary',
1603
1413
  as_root: 'optional - boolean (defaults to false)',
1414
+ app: 'optional - app value consumed by #invoke_event_listener'
1604
1415
  )
1605
1416
 
1417
+ # Run adb net disconnect and return its result
1606
1418
  #{self}.adb_net_disconnect(
1607
1419
  adb_path: 'required - path to adb binary',
1608
- target: 'required - target host or IP to connect',
1420
+ target: 'required - target host or IP to disconnect',
1609
1421
  port: 'optional - defaults to tcp 5555'
1610
1422
  )
1611
1423
 
1424
+ # Run apk pipeline and return its result
1425
+ #{self}.apk_pipeline(
1426
+ apk: 'required - apk value consumed by #apk_pipeline',
1427
+ out_dir: 'optional - out dir value consumed by #apk_pipeline'
1428
+ )
1429
+
1430
+ # Print the AUTHOR(S) string for this module.
1612
1431
  #{self}.authors
1613
1432
  "
1433
+ constants.sort
1614
1434
  end
1615
1435
  end
1616
1436
  end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+ require 'json'
5
+
6
+ module PWN
7
+ module Plugins
8
+ # ~/.pwn/artifacts/<session>/ loot index for session_recall.
9
+ module ArtifactRegistry
10
+ ROOT = File.join(Dir.home, '.pwn', 'artifacts')
11
+
12
+ public_class_method def self.required_bins
13
+ []
14
+ end
15
+
16
+ public_class_method def self.register(opts = {})
17
+ sid = (opts[:session_id] || 'default').to_s
18
+ src = opts[:path].to_s
19
+ raise 'ERROR: path is required' if src.empty?
20
+ raise "ERROR: file not found: #{src}" unless File.file?(src)
21
+
22
+ dir = File.join(ROOT, sid)
23
+ FileUtils.mkdir_p(dir)
24
+ dest = File.join(dir, File.basename(src))
25
+ FileUtils.cp(src, dest)
26
+ meta = File.join(dir, 'index.jsonl')
27
+ File.open(meta, 'a') { |f| f.puts(JSON.generate(path: dest, kind: opts[:kind], src: src, at: Time.now.utc.iso8601)) }
28
+ dest
29
+ end
30
+
31
+ public_class_method def self.list(opts = {})
32
+ sid = (opts[:session_id] || 'default').to_s
33
+ meta = File.join(ROOT, sid, 'index.jsonl')
34
+ return [] unless File.file?(meta)
35
+
36
+ File.readlines(meta).filter_map do |ln|
37
+ JSON.parse(ln, symbolize_names: true)
38
+ rescue JSON::ParserError
39
+ nil
40
+ end
41
+ end
42
+
43
+ public_class_method def self.authors
44
+ "AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n"
45
+ end
46
+
47
+ public_class_method def self.help
48
+ puts "USAGE:
49
+ # List host binaries this module expects to be installed.
50
+ #{self}.required_bins
51
+
52
+ # Run register and return its result
53
+ #{self}.register(
54
+ session_id: 'optional - session id value consumed by #register',
55
+ path: 'required - filesystem path to read or write',
56
+ kind: 'optional - kind value consumed by #register'
57
+ )
58
+
59
+ # Run list and return its result
60
+ #{self}.list(
61
+ session_id: 'optional - session id value consumed by #list'
62
+ )
63
+
64
+ # Print the AUTHOR(S) string for this module.
65
+ #{self}.authors
66
+ "
67
+ constants.sort
68
+ end
69
+ end
70
+ end
71
+ end
@@ -252,23 +252,28 @@ module PWN
252
252
 
253
253
  public_class_method def self.help
254
254
  puts "USAGE:
255
+ # Run opcodes to asm and return its result
255
256
  #{self}.opcodes_to_asm(
256
- opcodes: 'required - hex escaped opcode(s) (e.g. \"\\x90\\x90\\x90\")',
257
+ opcodes: 'required - hex escaped opcode(s) (e.g. \\x90\\x90\\x90)',
257
258
  opcodes_always_string_obj: 'optional - always interpret opcodes passed in as a string object (defaults to false)',
258
259
  arch: 'optional - architecture returned from objdump --info (defaults to PWN::Plugins::DetectOS.arch)',
259
- endian: 'optional - endianess :big|:little (defaults to system endianess)'
260
+ endian: 'optional - endianess :big|:little (defaults to current system endianess)'
260
261
  )
261
262
 
263
+ # Run asm to opcodes and return its result
262
264
  #{self}.asm_to_opcodes(
263
- asm: 'required - assembly instruction(s) (e.g. 'nop\nnop\nnop\njmp rsp\n)',
265
+ asm: 'required - assembly instruction(s) (e.g. nop\\nnop\\nnop\\njmp rsp\\n)',
264
266
  arch: 'optional - architecture returned from objdump --info (defaults to PWN::Plugins::DetectOS.arch)',
265
- endian: 'optional - endianess :big|:little (defaults to system endianess)'
267
+ endian: 'optional - endianess :big|:little (defaults to current system endianess)'
266
268
  )
267
269
 
270
+ # Run list supported archs and return its result
268
271
  #{self}.list_supported_archs
269
272
 
273
+ # Print the AUTHOR(S) string for this module.
270
274
  #{self}.authors
271
275
  "
276
+ constants.sort
272
277
  end
273
278
  end
274
279
  end
@@ -66,20 +66,23 @@ module PWN
66
66
 
67
67
  public_class_method def self.help
68
68
  puts "USAGE:
69
- #{self}.username(
70
- prompt: 'optional - string to display at prompt'
71
- )
69
+ # Run username and return its result
70
+ #{self}.username
72
71
 
72
+ # Run mask password and return its result
73
73
  #{self}.mask_password(
74
- prompt: 'optional - string to display at prompt'
74
+ prompt: 'optional - string to display at prompt (Default: Password)'
75
75
  )
76
76
 
77
+ # Run mfa and return its result
77
78
  #{self}.mfa(
78
- prompt: 'optional - string to display at prompt'
79
+ prompt: 'optional - string to display at prompt (Default: MFA Token)'
79
80
  )
80
81
 
82
+ # Print the AUTHOR(S) string for this module.
81
83
  #{self}.authors
82
84
  "
85
+ constants.sort
83
86
  end
84
87
  end
85
88
  end
@@ -682,26 +682,73 @@ module PWN
682
682
 
683
683
  public_class_method def self.help
684
684
  puts "USAGE:
685
- baresip_obj = #{self}.start(
686
- src_num: 'Optional source phone number displayed',
687
- baresip_bin: 'Optional path of baresip binary (Defaults to /usr/bin/baresip)',
688
- config_root: 'Optional dir of baresip config (Defaults to ~/.baresip)',
689
- session_root: 'Optional dir of baresip session (Defaults to Dir.pwd)',
690
- screenlog_path: 'Optional path of screenlog file (Defaults to screenlog.txt)',
691
- screen_session: 'Optional name of screen session (Defaults baresip)'
685
+ # Run start and return its result
686
+ #{self}.start(
687
+ src_num: 'optional - Optional source phone number displayed',
688
+ baresip_bin: 'optional - Optional path of baresip binary (Defaults to /usr/bin/baresip)',
689
+ config_root: 'optional - Optional dir of baresip config (Defaults to ~/.baresip)',
690
+ session_root: 'optional - Optional dir of baresip session (Defaults to Dir.pwd)',
691
+ screenlog_path: 'optional - Optional path of screenlog file (Defaults to screenlog.txt)',
692
+ screen_session: 'optional - Optional name of screen session (Defaults baresip)'
692
693
  )
693
694
 
694
- cmd_resp = #{self}.baresip_exec(
695
- baresip_obj: 'Required - baresip obj returned from #start method',
696
- cmd: 'Required - command to send to baresip HTTP daemon'
695
+ # Run baresip exec and return its result
696
+ #{self}.baresip_exec(
697
+ baresip_obj: 'required - baresip obj returned from #start method',
698
+ cmd: 'required - command to send to baresip HTTP daemon'
697
699
  )
698
700
 
699
- stopped_bool = #{self}.stop(
700
- screen_session: 'Required - screen session to stop'
701
+ # Run stop and return its result
702
+ #{self}.stop(
703
+ screen_session: 'required - screen session to stop',
704
+ baresip_obj: 'optional - baresip obj value consumed by #stop'
701
705
  )
702
706
 
707
+ # Run parse target file and return its result
708
+ #{self}.parse_target_file(
709
+ target_file: 'required - txt file containing phone numbers to dial',
710
+ randomize: 'optional - randomize list of phone numbers to dial (Defaults to false)'
711
+ )
712
+
713
+ # Run apply src num rules and return its result
714
+ #{self}.apply_src_num_rules(
715
+ target_num: 'required - destination number to derive source number',
716
+ src_num_rules: 'optional - Comma-delimited list of rules for src_num format (i.e. XXXXXXXXXX, self, same_country, same_area, and/or same_prefix [Defaults to random src_num w/ same length as target_num])',
717
+ config_root: 'optional - config root value consumed by #apply_src_num_rules'
718
+ )
719
+
720
+ # Run dial target in list and return its result
721
+ #{self}.dial_target_in_list(
722
+ baresip_bin: 'optional - baresip bin value consumed by #dial_target_in_list',
723
+ target_num: 'optional - target num value consumed by #dial_target_in_list',
724
+ config_root: 'optional - config root value consumed by #dial_target_in_list',
725
+ session_root: 'optional - session root value consumed by #dial_target_in_list',
726
+ randomize: 'optional - randomize value consumed by #dial_target_in_list',
727
+ src_num_rules: 'optional - src num rules value consumed by #dial_target_in_list',
728
+ seconds_to_record: 'optional - seconds to record value consumed by #dial_target_in_list',
729
+ sox_bin: 'optional - sox bin value consumed by #dial_target_in_list',
730
+ speech_to_text: 'optional - speech to text value consumed by #dial_target_in_list'
731
+ )
732
+
733
+ # Run recon and return its result
734
+ #{self}.recon(
735
+ baresip_bin: 'optional - baresip bin value consumed by #recon',
736
+ config_root: 'optional - config root value consumed by #recon',
737
+ session_root: 'optional - session root value consumed by #recon',
738
+ target_file: 'optional - target file value consumed by #recon',
739
+ randomize: 'optional - randomize value consumed by #recon',
740
+ src_num_rules: 'optional - src num rules value consumed by #recon',
741
+ max_threads: 'optional - max threads value consumed by #recon',
742
+ seconds_to_record: 'optional - seconds to record value consumed by #recon',
743
+ sox_bin: 'optional - sox bin value consumed by #recon',
744
+ speech_to_text: 'optional - speech to text value consumed by #recon',
745
+ report_name: 'optional - report name value consumed by #recon'
746
+ )
747
+
748
+ # Print the AUTHOR(S) string for this module.
703
749
  #{self}.authors
704
750
  "
751
+ constants.sort
705
752
  end
706
753
  end
707
754
  end
@@ -48,15 +48,21 @@ module PWN
48
48
 
49
49
  public_class_method def self.help
50
50
  puts "USAGE:
51
+ # Run encode and return its result
51
52
  #{self}.encode(
52
- username: 'optional username',
53
- password: 'optional password'
53
+ username: 'optional - optional username',
54
+ password: 'optional - optional password'
54
55
  )
55
56
 
56
- #{self}.decode(base64_str: 'base64 encoded string')
57
+ # Run decode and return its result
58
+ #{self}.decode(
59
+ base64_str: 'required - required base64 encoded string'
60
+ )
57
61
 
62
+ # Print the AUTHOR(S) string for this module.
58
63
  #{self}.authors
59
64
  "
65
+ constants.sort
60
66
  end
61
67
  end
62
68
  end