pwn 0.4.333

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 (904) hide show
  1. checksums.yaml +7 -0
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  4. data/.gitignore +62 -0
  5. data/.rubocop.yml +12 -0
  6. data/.rubocop_todo.yml +76 -0
  7. data/.ruby-gemset +1 -0
  8. data/.ruby-version +1 -0
  9. data/.travis.yml +24 -0
  10. data/CODE_OF_CONDUCT.md +46 -0
  11. data/CONTRIBUTING.md +10 -0
  12. data/Gemfile +75 -0
  13. data/LICENSE.txt +22 -0
  14. data/README.md +125 -0
  15. data/Rakefile +20 -0
  16. data/Vagrantfile +250 -0
  17. data/bin/pwn +74 -0
  18. data/bin/pwn_android_war_dialer +137 -0
  19. data/bin/pwn_arachni +132 -0
  20. data/bin/pwn_arachni_rest +174 -0
  21. data/bin/pwn_autoinc_version +50 -0
  22. data/bin/pwn_aws_describe_resources +728 -0
  23. data/bin/pwn_burp_suite_pro_active_scan +113 -0
  24. data/bin/pwn_char_base64_encoding +24 -0
  25. data/bin/pwn_char_dec_encoding +23 -0
  26. data/bin/pwn_char_hex_escaped_encoding +26 -0
  27. data/bin/pwn_char_html_entity_encoding +24 -0
  28. data/bin/pwn_char_unicode_escaped_encoding +23 -0
  29. data/bin/pwn_char_url_encoding +24 -0
  30. data/bin/pwn_defectdojo_engagement_create +158 -0
  31. data/bin/pwn_defectdojo_importscan +104 -0
  32. data/bin/pwn_defectdojo_reimportscan +104 -0
  33. data/bin/pwn_domain_reversewhois +89 -0
  34. data/bin/pwn_fuzz_net_app_proto +149 -0
  35. data/bin/pwn_ibm_appscan_enterprise +112 -0
  36. data/bin/pwn_jenkins_create_job +68 -0
  37. data/bin/pwn_jenkins_create_view +68 -0
  38. data/bin/pwn_jenkins_install_plugin +91 -0
  39. data/bin/pwn_jenkins_thinBackup_aws_s3 +123 -0
  40. data/bin/pwn_jenkins_update_plugins +87 -0
  41. data/bin/pwn_jenkins_useradd +86 -0
  42. data/bin/pwn_mail_agent +127 -0
  43. data/bin/pwn_msf_postgres_login +28 -0
  44. data/bin/pwn_nessus_cloud_vulnscan +103 -0
  45. data/bin/pwn_nexpose +52 -0
  46. data/bin/pwn_openvas_vulnscan +102 -0
  47. data/bin/pwn_owasp_zap_active_scan +134 -0
  48. data/bin/pwn_pastebin_sample_filter +61 -0
  49. data/bin/pwn_perimeter_recon +318 -0
  50. data/bin/pwn_sast +161 -0
  51. data/bin/pwn_serial_check_voicemail +66 -0
  52. data/bin/pwn_serial_qualcomm_commands +16 -0
  53. data/bin/pwn_simple_http_server +46 -0
  54. data/bin/pwn_web_cache_deception +233 -0
  55. data/bin/pwn_www_checkip +62 -0
  56. data/bin/pwn_xss_dom_vectors +169 -0
  57. data/build_pwn_gem.sh +33 -0
  58. data/documentation/CSI_Contributors_and_Users.png +0 -0
  59. data/documentation/CSI_Driver_Arch.png +0 -0
  60. data/documentation/fax-spectrogram.png +0 -0
  61. data/documentation/fax-waveform.png +0 -0
  62. data/documentation/pwn_android_war_dialer_session.png +0 -0
  63. data/documentation/pwn_wallpaper.jpg +0 -0
  64. data/documentation/ringing-spectrogram.png +0 -0
  65. data/documentation/ringing-waveform.png +0 -0
  66. data/etc/systemd/msfrpcd.service +12 -0
  67. data/etc/systemd/openvas.service +14 -0
  68. data/etc/userland/aws/apache2/jenkins_443.conf +90 -0
  69. data/etc/userland/aws/apache2/jenkins_80.conf +7 -0
  70. data/etc/userland/aws/apache2/openvas_443.conf +87 -0
  71. data/etc/userland/aws/apache2/openvas_80.conf +7 -0
  72. data/etc/userland/aws/apache2/sast_443.conf +87 -0
  73. data/etc/userland/aws/apache2/sast_80.conf +9 -0
  74. data/etc/userland/aws/apache2/vagrant.yaml.EXAMPLE +9 -0
  75. data/etc/userland/aws/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  76. data/etc/userland/aws/arachni/navigation.instruct.EXAMPLE +3 -0
  77. data/etc/userland/aws/burpsuite/navigation.instruct.EXAMPLE +3 -0
  78. data/etc/userland/aws/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  79. data/etc/userland/aws/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  80. data/etc/userland/aws/jenkins/inject_build_envs.sh +15 -0
  81. data/etc/userland/aws/jenkins/jenkins +81 -0
  82. data/etc/userland/aws/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  83. data/etc/userland/aws/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  84. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  85. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  86. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  87. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  88. data/etc/userland/aws/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  89. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  90. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  91. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  92. data/etc/userland/aws/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  93. data/etc/userland/aws/jenkins/jobs/selfupdate-gem.xml +42 -0
  94. data/etc/userland/aws/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  95. data/etc/userland/aws/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  96. data/etc/userland/aws/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  97. data/etc/userland/aws/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  98. data/etc/userland/aws/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  99. data/etc/userland/aws/jenkins/jobs/selfupdate-os.xml +42 -0
  100. data/etc/userland/aws/jenkins/jobs/selfupdate-pwn.xml +42 -0
  101. data/etc/userland/aws/jenkins/jobs/selfupdate-rvm.xml +42 -0
  102. data/etc/userland/aws/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  103. data/etc/userland/aws/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  104. data/etc/userland/aws/jenkins/jobs_userland/.gitkeep +0 -0
  105. data/etc/userland/aws/jenkins/log_parser_rules/arachni.rules +5 -0
  106. data/etc/userland/aws/jenkins/log_parser_rules/sast.rules +2 -0
  107. data/etc/userland/aws/jenkins/log_parser_rules/self_update.rules +14 -0
  108. data/etc/userland/aws/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  109. data/etc/userland/aws/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  110. data/etc/userland/aws/jenkins/log_parser_rules/wpscan.rules +2 -0
  111. data/etc/userland/aws/jenkins/vagrant.yaml.EXAMPLE +8 -0
  112. data/etc/userland/aws/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  113. data/etc/userland/aws/metasploit/vagrant.yaml.EXAMPLE +4 -0
  114. data/etc/userland/aws/nessus/vagrant.yaml.EXAMPLE +2 -0
  115. data/etc/userland/aws/openvas/vagrant.yaml.EXAMPLE +2 -0
  116. data/etc/userland/aws/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  117. data/etc/userland/aws/postgres/vagrant.yaml.EXAMPLE +2 -0
  118. data/etc/userland/aws/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  119. data/etc/userland/aws/vagrant.yaml.EXAMPLE +35 -0
  120. data/etc/userland/docker/apache2/jenkins_443.conf +90 -0
  121. data/etc/userland/docker/apache2/jenkins_80.conf +7 -0
  122. data/etc/userland/docker/apache2/openvas_443.conf +87 -0
  123. data/etc/userland/docker/apache2/openvas_80.conf +7 -0
  124. data/etc/userland/docker/apache2/sast_443.conf +87 -0
  125. data/etc/userland/docker/apache2/sast_80.conf +9 -0
  126. data/etc/userland/docker/apache2/vagrant.yaml.EXAMPLE +9 -0
  127. data/etc/userland/docker/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  128. data/etc/userland/docker/arachni/navigation.instruct.EXAMPLE +3 -0
  129. data/etc/userland/docker/burpsuite/navigation.instruct.EXAMPLE +3 -0
  130. data/etc/userland/docker/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  131. data/etc/userland/docker/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  132. data/etc/userland/docker/jenkins/inject_build_envs.sh +15 -0
  133. data/etc/userland/docker/jenkins/jenkins +81 -0
  134. data/etc/userland/docker/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  135. data/etc/userland/docker/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  136. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  137. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  138. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  139. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  140. data/etc/userland/docker/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  141. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  142. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  143. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  144. data/etc/userland/docker/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  145. data/etc/userland/docker/jenkins/jobs/selfupdate-gem.xml +42 -0
  146. data/etc/userland/docker/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  147. data/etc/userland/docker/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  148. data/etc/userland/docker/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  149. data/etc/userland/docker/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  150. data/etc/userland/docker/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  151. data/etc/userland/docker/jenkins/jobs/selfupdate-os.xml +42 -0
  152. data/etc/userland/docker/jenkins/jobs/selfupdate-pwn.xml +42 -0
  153. data/etc/userland/docker/jenkins/jobs/selfupdate-rvm.xml +42 -0
  154. data/etc/userland/docker/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  155. data/etc/userland/docker/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  156. data/etc/userland/docker/jenkins/jobs_userland/.gitkeep +0 -0
  157. data/etc/userland/docker/jenkins/log_parser_rules/arachni.rules +5 -0
  158. data/etc/userland/docker/jenkins/log_parser_rules/sast.rules +2 -0
  159. data/etc/userland/docker/jenkins/log_parser_rules/self_update.rules +14 -0
  160. data/etc/userland/docker/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  161. data/etc/userland/docker/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  162. data/etc/userland/docker/jenkins/log_parser_rules/wpscan.rules +2 -0
  163. data/etc/userland/docker/jenkins/vagrant.yaml.EXAMPLE +8 -0
  164. data/etc/userland/docker/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  165. data/etc/userland/docker/metasploit/vagrant.yaml.EXAMPLE +4 -0
  166. data/etc/userland/docker/nessus/vagrant.yaml.EXAMPLE +2 -0
  167. data/etc/userland/docker/openvas/vagrant.yaml.EXAMPLE +2 -0
  168. data/etc/userland/docker/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  169. data/etc/userland/docker/postgres/vagrant.yaml.EXAMPLE +2 -0
  170. data/etc/userland/docker/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  171. data/etc/userland/qemu/apache2/jenkins_443.conf +90 -0
  172. data/etc/userland/qemu/apache2/jenkins_80.conf +7 -0
  173. data/etc/userland/qemu/apache2/openvas_443.conf +87 -0
  174. data/etc/userland/qemu/apache2/openvas_80.conf +7 -0
  175. data/etc/userland/qemu/apache2/sast_443.conf +87 -0
  176. data/etc/userland/qemu/apache2/sast_80.conf +9 -0
  177. data/etc/userland/qemu/apache2/vagrant.yaml.EXAMPLE +9 -0
  178. data/etc/userland/qemu/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  179. data/etc/userland/qemu/arachni/navigation.instruct.EXAMPLE +3 -0
  180. data/etc/userland/qemu/burpsuite/navigation.instruct.EXAMPLE +3 -0
  181. data/etc/userland/qemu/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  182. data/etc/userland/qemu/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  183. data/etc/userland/qemu/jenkins/inject_build_envs.sh +15 -0
  184. data/etc/userland/qemu/jenkins/jenkins +81 -0
  185. data/etc/userland/qemu/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  186. data/etc/userland/qemu/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  187. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  188. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  189. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  190. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  191. data/etc/userland/qemu/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  192. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  193. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  194. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  195. data/etc/userland/qemu/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  196. data/etc/userland/qemu/jenkins/jobs/selfupdate-gem.xml +42 -0
  197. data/etc/userland/qemu/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  198. data/etc/userland/qemu/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  199. data/etc/userland/qemu/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  200. data/etc/userland/qemu/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  201. data/etc/userland/qemu/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  202. data/etc/userland/qemu/jenkins/jobs/selfupdate-os.xml +42 -0
  203. data/etc/userland/qemu/jenkins/jobs/selfupdate-pwn.xml +42 -0
  204. data/etc/userland/qemu/jenkins/jobs/selfupdate-rvm.xml +42 -0
  205. data/etc/userland/qemu/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  206. data/etc/userland/qemu/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  207. data/etc/userland/qemu/jenkins/jobs_userland/.gitkeep +0 -0
  208. data/etc/userland/qemu/jenkins/log_parser_rules/arachni.rules +5 -0
  209. data/etc/userland/qemu/jenkins/log_parser_rules/sast.rules +2 -0
  210. data/etc/userland/qemu/jenkins/log_parser_rules/self_update.rules +14 -0
  211. data/etc/userland/qemu/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  212. data/etc/userland/qemu/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  213. data/etc/userland/qemu/jenkins/log_parser_rules/wpscan.rules +2 -0
  214. data/etc/userland/qemu/jenkins/vagrant.yaml.EXAMPLE +8 -0
  215. data/etc/userland/qemu/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  216. data/etc/userland/qemu/metasploit/vagrant.yaml.EXAMPLE +4 -0
  217. data/etc/userland/qemu/nessus/vagrant.yaml.EXAMPLE +2 -0
  218. data/etc/userland/qemu/openvas/vagrant.yaml.EXAMPLE +2 -0
  219. data/etc/userland/qemu/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  220. data/etc/userland/qemu/postgres/vagrant.yaml.EXAMPLE +2 -0
  221. data/etc/userland/qemu/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  222. data/etc/userland/ruby-gem/apache2/jenkins_443.conf +90 -0
  223. data/etc/userland/ruby-gem/apache2/jenkins_80.conf +7 -0
  224. data/etc/userland/ruby-gem/apache2/openvas_443.conf +87 -0
  225. data/etc/userland/ruby-gem/apache2/openvas_80.conf +7 -0
  226. data/etc/userland/ruby-gem/apache2/sast_443.conf +87 -0
  227. data/etc/userland/ruby-gem/apache2/sast_80.conf +9 -0
  228. data/etc/userland/ruby-gem/apache2/vagrant.yaml.EXAMPLE +9 -0
  229. data/etc/userland/ruby-gem/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  230. data/etc/userland/ruby-gem/arachni/navigation.instruct.EXAMPLE +3 -0
  231. data/etc/userland/ruby-gem/burpsuite/navigation.instruct.EXAMPLE +3 -0
  232. data/etc/userland/ruby-gem/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  233. data/etc/userland/ruby-gem/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  234. data/etc/userland/ruby-gem/jenkins/inject_build_envs.sh +15 -0
  235. data/etc/userland/ruby-gem/jenkins/jenkins +81 -0
  236. data/etc/userland/ruby-gem/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  237. data/etc/userland/ruby-gem/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  238. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  239. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  240. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  241. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  242. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  243. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  244. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  245. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  246. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  247. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-gem.xml +42 -0
  248. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  249. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  250. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  251. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  252. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  253. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-os.xml +42 -0
  254. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-pwn.xml +42 -0
  255. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-rvm.xml +42 -0
  256. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  257. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  258. data/etc/userland/ruby-gem/jenkins/jobs_userland/.gitkeep +0 -0
  259. data/etc/userland/ruby-gem/jenkins/log_parser_rules/arachni.rules +5 -0
  260. data/etc/userland/ruby-gem/jenkins/log_parser_rules/sast.rules +2 -0
  261. data/etc/userland/ruby-gem/jenkins/log_parser_rules/self_update.rules +14 -0
  262. data/etc/userland/ruby-gem/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  263. data/etc/userland/ruby-gem/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  264. data/etc/userland/ruby-gem/jenkins/log_parser_rules/wpscan.rules +2 -0
  265. data/etc/userland/ruby-gem/jenkins/vagrant.yaml.EXAMPLE +8 -0
  266. data/etc/userland/ruby-gem/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  267. data/etc/userland/ruby-gem/metasploit/vagrant.yaml.EXAMPLE +4 -0
  268. data/etc/userland/ruby-gem/nessus/vagrant.yaml.EXAMPLE +2 -0
  269. data/etc/userland/ruby-gem/openvas/vagrant.yaml.EXAMPLE +2 -0
  270. data/etc/userland/ruby-gem/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  271. data/etc/userland/ruby-gem/postgres/vagrant.yaml.EXAMPLE +2 -0
  272. data/etc/userland/ruby-gem/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  273. data/etc/userland/virtualbox/apache2/jenkins_443.conf +90 -0
  274. data/etc/userland/virtualbox/apache2/jenkins_80.conf +7 -0
  275. data/etc/userland/virtualbox/apache2/openvas_443.conf +87 -0
  276. data/etc/userland/virtualbox/apache2/openvas_80.conf +7 -0
  277. data/etc/userland/virtualbox/apache2/sast_443.conf +87 -0
  278. data/etc/userland/virtualbox/apache2/sast_80.conf +9 -0
  279. data/etc/userland/virtualbox/apache2/vagrant.yaml.EXAMPLE +9 -0
  280. data/etc/userland/virtualbox/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  281. data/etc/userland/virtualbox/arachni/navigation.instruct.EXAMPLE +3 -0
  282. data/etc/userland/virtualbox/burpsuite/navigation.instruct.EXAMPLE +3 -0
  283. data/etc/userland/virtualbox/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  284. data/etc/userland/virtualbox/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  285. data/etc/userland/virtualbox/jenkins/inject_build_envs.sh +15 -0
  286. data/etc/userland/virtualbox/jenkins/jenkins +81 -0
  287. data/etc/userland/virtualbox/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  288. data/etc/userland/virtualbox/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  289. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  290. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  291. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  292. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  293. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  294. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  295. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  296. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  297. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  298. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-gem.xml +42 -0
  299. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  300. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  301. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  302. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  303. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  304. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-os.xml +42 -0
  305. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-pwn.xml +42 -0
  306. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-rvm.xml +42 -0
  307. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  308. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  309. data/etc/userland/virtualbox/jenkins/jobs_userland/.gitkeep +0 -0
  310. data/etc/userland/virtualbox/jenkins/log_parser_rules/arachni.rules +5 -0
  311. data/etc/userland/virtualbox/jenkins/log_parser_rules/sast.rules +2 -0
  312. data/etc/userland/virtualbox/jenkins/log_parser_rules/self_update.rules +14 -0
  313. data/etc/userland/virtualbox/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  314. data/etc/userland/virtualbox/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  315. data/etc/userland/virtualbox/jenkins/log_parser_rules/wpscan.rules +2 -0
  316. data/etc/userland/virtualbox/jenkins/vagrant.yaml.EXAMPLE +8 -0
  317. data/etc/userland/virtualbox/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  318. data/etc/userland/virtualbox/metasploit/vagrant.yaml.EXAMPLE +4 -0
  319. data/etc/userland/virtualbox/nessus/vagrant.yaml.EXAMPLE +2 -0
  320. data/etc/userland/virtualbox/openvas/vagrant.yaml.EXAMPLE +2 -0
  321. data/etc/userland/virtualbox/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  322. data/etc/userland/virtualbox/postgres/vagrant.yaml.EXAMPLE +2 -0
  323. data/etc/userland/virtualbox/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  324. data/etc/userland/virtualbox/vagrant.yaml.EXAMPLE +4 -0
  325. data/etc/userland/vmware/apache2/jenkins_443.conf +90 -0
  326. data/etc/userland/vmware/apache2/jenkins_80.conf +7 -0
  327. data/etc/userland/vmware/apache2/openvas_443.conf +87 -0
  328. data/etc/userland/vmware/apache2/openvas_80.conf +7 -0
  329. data/etc/userland/vmware/apache2/sast_443.conf +87 -0
  330. data/etc/userland/vmware/apache2/sast_80.conf +9 -0
  331. data/etc/userland/vmware/apache2/vagrant.yaml.EXAMPLE +9 -0
  332. data/etc/userland/vmware/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  333. data/etc/userland/vmware/arachni/navigation.instruct.EXAMPLE +3 -0
  334. data/etc/userland/vmware/burpsuite/navigation.instruct.EXAMPLE +3 -0
  335. data/etc/userland/vmware/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  336. data/etc/userland/vmware/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  337. data/etc/userland/vmware/jenkins/inject_build_envs.sh +15 -0
  338. data/etc/userland/vmware/jenkins/jenkins +81 -0
  339. data/etc/userland/vmware/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  340. data/etc/userland/vmware/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  341. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  342. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  343. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  344. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  345. data/etc/userland/vmware/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  346. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  347. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  348. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  349. data/etc/userland/vmware/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  350. data/etc/userland/vmware/jenkins/jobs/selfupdate-gem.xml +42 -0
  351. data/etc/userland/vmware/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  352. data/etc/userland/vmware/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  353. data/etc/userland/vmware/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  354. data/etc/userland/vmware/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  355. data/etc/userland/vmware/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  356. data/etc/userland/vmware/jenkins/jobs/selfupdate-os.xml +42 -0
  357. data/etc/userland/vmware/jenkins/jobs/selfupdate-pwn.xml +42 -0
  358. data/etc/userland/vmware/jenkins/jobs/selfupdate-rvm.xml +42 -0
  359. data/etc/userland/vmware/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  360. data/etc/userland/vmware/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  361. data/etc/userland/vmware/jenkins/jobs_userland/.gitkeep +0 -0
  362. data/etc/userland/vmware/jenkins/log_parser_rules/arachni.rules +5 -0
  363. data/etc/userland/vmware/jenkins/log_parser_rules/sast.rules +2 -0
  364. data/etc/userland/vmware/jenkins/log_parser_rules/self_update.rules +14 -0
  365. data/etc/userland/vmware/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  366. data/etc/userland/vmware/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  367. data/etc/userland/vmware/jenkins/log_parser_rules/wpscan.rules +2 -0
  368. data/etc/userland/vmware/jenkins/vagrant.yaml.EXAMPLE +8 -0
  369. data/etc/userland/vmware/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  370. data/etc/userland/vmware/metasploit/vagrant.yaml.EXAMPLE +4 -0
  371. data/etc/userland/vmware/nessus/vagrant.yaml.EXAMPLE +2 -0
  372. data/etc/userland/vmware/openvas/vagrant.yaml.EXAMPLE +2 -0
  373. data/etc/userland/vmware/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  374. data/etc/userland/vmware/postgres/vagrant.yaml.EXAMPLE +2 -0
  375. data/etc/userland/vmware/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  376. data/etc/userland/vmware/vagrant.yaml.EXAMPLE +5 -0
  377. data/find_latest_gem_versions_per_Gemfile.sh +11 -0
  378. data/git_commit_test_reinit_gem.sh +22 -0
  379. data/install.sh +180 -0
  380. data/lib/pwn/aws/acm.rb +92 -0
  381. data/lib/pwn/aws/api_gateway.rb +92 -0
  382. data/lib/pwn/aws/app_stream.rb +92 -0
  383. data/lib/pwn/aws/application_auto_scaling.rb +92 -0
  384. data/lib/pwn/aws/application_discovery_service.rb +92 -0
  385. data/lib/pwn/aws/auto_scaling.rb +92 -0
  386. data/lib/pwn/aws/batch.rb +92 -0
  387. data/lib/pwn/aws/budgets.rb +92 -0
  388. data/lib/pwn/aws/cloud_formation.rb +92 -0
  389. data/lib/pwn/aws/cloud_front.rb +92 -0
  390. data/lib/pwn/aws/cloud_hsm.rb +92 -0
  391. data/lib/pwn/aws/cloud_search.rb +92 -0
  392. data/lib/pwn/aws/cloud_search_domain.rb +92 -0
  393. data/lib/pwn/aws/cloud_trail.rb +92 -0
  394. data/lib/pwn/aws/cloud_watch.rb +92 -0
  395. data/lib/pwn/aws/cloud_watch_events.rb +92 -0
  396. data/lib/pwn/aws/cloud_watch_logs.rb +92 -0
  397. data/lib/pwn/aws/code_build.rb +92 -0
  398. data/lib/pwn/aws/code_commit.rb +92 -0
  399. data/lib/pwn/aws/code_deploy.rb +92 -0
  400. data/lib/pwn/aws/code_pipeline.rb +92 -0
  401. data/lib/pwn/aws/cognito_identity.rb +92 -0
  402. data/lib/pwn/aws/cognito_identity_provider.rb +92 -0
  403. data/lib/pwn/aws/cognito_sync.rb +92 -0
  404. data/lib/pwn/aws/config_service.rb +92 -0
  405. data/lib/pwn/aws/data_pipleline.rb +92 -0
  406. data/lib/pwn/aws/database_migration_service.rb +92 -0
  407. data/lib/pwn/aws/device_farm.rb +92 -0
  408. data/lib/pwn/aws/direct_connect.rb +92 -0
  409. data/lib/pwn/aws/directory_service.rb +92 -0
  410. data/lib/pwn/aws/dynamo_db.rb +92 -0
  411. data/lib/pwn/aws/dynamo_db_streams.rb +92 -0
  412. data/lib/pwn/aws/ec2.rb +92 -0
  413. data/lib/pwn/aws/ecr.rb +92 -0
  414. data/lib/pwn/aws/ecs.rb +92 -0
  415. data/lib/pwn/aws/efs.rb +92 -0
  416. data/lib/pwn/aws/elasti_cache.rb +92 -0
  417. data/lib/pwn/aws/elastic_beanstalk.rb +89 -0
  418. data/lib/pwn/aws/elastic_load_balancing.rb +92 -0
  419. data/lib/pwn/aws/elastic_load_balancing_v2.rb +92 -0
  420. data/lib/pwn/aws/elastic_transcoder.rb +92 -0
  421. data/lib/pwn/aws/elasticsearch_service.rb +92 -0
  422. data/lib/pwn/aws/emr.rb +92 -0
  423. data/lib/pwn/aws/firehose.rb +92 -0
  424. data/lib/pwn/aws/game_lift.rb +92 -0
  425. data/lib/pwn/aws/glacier.rb +92 -0
  426. data/lib/pwn/aws/health.rb +92 -0
  427. data/lib/pwn/aws/iam.rb +92 -0
  428. data/lib/pwn/aws/import_export.rb +92 -0
  429. data/lib/pwn/aws/inspector.rb +92 -0
  430. data/lib/pwn/aws/iot.rb +92 -0
  431. data/lib/pwn/aws/iot_data_plane.rb +92 -0
  432. data/lib/pwn/aws/kinesis.rb +92 -0
  433. data/lib/pwn/aws/kinesis_analytics.rb +92 -0
  434. data/lib/pwn/aws/kms.rb +92 -0
  435. data/lib/pwn/aws/lambda.rb +92 -0
  436. data/lib/pwn/aws/lambda_preview.rb +92 -0
  437. data/lib/pwn/aws/lex.rb +92 -0
  438. data/lib/pwn/aws/lightsail.rb +92 -0
  439. data/lib/pwn/aws/machine_learning.rb +92 -0
  440. data/lib/pwn/aws/marketplace_commerce_analytics.rb +92 -0
  441. data/lib/pwn/aws/marketplace_metering.rb +92 -0
  442. data/lib/pwn/aws/ops_works.rb +92 -0
  443. data/lib/pwn/aws/ops_works_cm.rb +92 -0
  444. data/lib/pwn/aws/pinpoint.rb +92 -0
  445. data/lib/pwn/aws/polly.rb +92 -0
  446. data/lib/pwn/aws/rds.rb +92 -0
  447. data/lib/pwn/aws/redshift.rb +92 -0
  448. data/lib/pwn/aws/rekognition.rb +92 -0
  449. data/lib/pwn/aws/route53.rb +92 -0
  450. data/lib/pwn/aws/route53_domains.rb +92 -0
  451. data/lib/pwn/aws/s3.rb +92 -0
  452. data/lib/pwn/aws/service_catalog.rb +92 -0
  453. data/lib/pwn/aws/ses.rb +92 -0
  454. data/lib/pwn/aws/shield.rb +92 -0
  455. data/lib/pwn/aws/simple_db.rb +92 -0
  456. data/lib/pwn/aws/sms.rb +92 -0
  457. data/lib/pwn/aws/snowball.rb +92 -0
  458. data/lib/pwn/aws/sns.rb +92 -0
  459. data/lib/pwn/aws/sqs.rb +92 -0
  460. data/lib/pwn/aws/ssm.rb +92 -0
  461. data/lib/pwn/aws/states.rb +92 -0
  462. data/lib/pwn/aws/storage_gateway.rb +92 -0
  463. data/lib/pwn/aws/sts.rb +63 -0
  464. data/lib/pwn/aws/support.rb +92 -0
  465. data/lib/pwn/aws/swf.rb +92 -0
  466. data/lib/pwn/aws/waf.rb +92 -0
  467. data/lib/pwn/aws/waf_regional.rb +92 -0
  468. data/lib/pwn/aws/workspaces.rb +92 -0
  469. data/lib/pwn/aws/x_ray.rb +92 -0
  470. data/lib/pwn/aws.rb +105 -0
  471. data/lib/pwn/ffi.rb +16 -0
  472. data/lib/pwn/plugins/android.rb +1616 -0
  473. data/lib/pwn/plugins/ansible_vault.rb +75 -0
  474. data/lib/pwn/plugins/authentication_helper.rb +79 -0
  475. data/lib/pwn/plugins/basic_auth.rb +63 -0
  476. data/lib/pwn/plugins/beef.rb +309 -0
  477. data/lib/pwn/plugins/burp_suite.rb +340 -0
  478. data/lib/pwn/plugins/bus_pirate.rb +150 -0
  479. data/lib/pwn/plugins/char.rb +459 -0
  480. data/lib/pwn/plugins/credit_card.rb +53 -0
  481. data/lib/pwn/plugins/dao_ldap.rb +131 -0
  482. data/lib/pwn/plugins/dao_mongo.rb +96 -0
  483. data/lib/pwn/plugins/dao_postgres.rb +224 -0
  484. data/lib/pwn/plugins/dao_sqlite3.rb +125 -0
  485. data/lib/pwn/plugins/defect_dojo.rb +759 -0
  486. data/lib/pwn/plugins/detect_os.rb +40 -0
  487. data/lib/pwn/plugins/ein.rb +141 -0
  488. data/lib/pwn/plugins/file_fu.rb +73 -0
  489. data/lib/pwn/plugins/fuzz.rb +206 -0
  490. data/lib/pwn/plugins/git.rb +166 -0
  491. data/lib/pwn/plugins/hacker_one.rb +152 -0
  492. data/lib/pwn/plugins/http_intercept_helper.rb +122 -0
  493. data/lib/pwn/plugins/ibm_appscan.rb +927 -0
  494. data/lib/pwn/plugins/ip_info.rb +100 -0
  495. data/lib/pwn/plugins/jenkins.rb +545 -0
  496. data/lib/pwn/plugins/json_pathify.rb +46 -0
  497. data/lib/pwn/plugins/mail_agent.rb +344 -0
  498. data/lib/pwn/plugins/metasploit.rb +151 -0
  499. data/lib/pwn/plugins/nessus_cloud.rb +325 -0
  500. data/lib/pwn/plugins/nexpose_vuln_scan.rb +356 -0
  501. data/lib/pwn/plugins/nmap_it.rb +99 -0
  502. data/lib/pwn/plugins/oauth2.rb +67 -0
  503. data/lib/pwn/plugins/ocr.rb +43 -0
  504. data/lib/pwn/plugins/openvas.rb +308 -0
  505. data/lib/pwn/plugins/owasp_zap.rb +550 -0
  506. data/lib/pwn/plugins/packet.rb +1271 -0
  507. data/lib/pwn/plugins/pdf_parse.rb +53 -0
  508. data/lib/pwn/plugins/pony.rb +282 -0
  509. data/lib/pwn/plugins/pwn_logger.rb +46 -0
  510. data/lib/pwn/plugins/rabbit_mq_hole.rb +66 -0
  511. data/lib/pwn/plugins/rfidler.rb +58 -0
  512. data/lib/pwn/plugins/serial.rb +268 -0
  513. data/lib/pwn/plugins/shodan.rb +566 -0
  514. data/lib/pwn/plugins/slack_client.rb +104 -0
  515. data/lib/pwn/plugins/sock.rb +156 -0
  516. data/lib/pwn/plugins/son_micro_rfid.rb +432 -0
  517. data/lib/pwn/plugins/spider.rb +80 -0
  518. data/lib/pwn/plugins/ssn.rb +52 -0
  519. data/lib/pwn/plugins/thread_pool.rb +71 -0
  520. data/lib/pwn/plugins/transparent_browser.rb +337 -0
  521. data/lib/pwn/plugins/twitter_api.rb +148 -0
  522. data/lib/pwn/plugins/uri_scheme.rb +328 -0
  523. data/lib/pwn/plugins/vsphere.rb +82 -0
  524. data/lib/pwn/plugins.rb +66 -0
  525. data/lib/pwn/reports/fuzz.rb +270 -0
  526. data/lib/pwn/reports/sast.rb +306 -0
  527. data/lib/pwn/reports.rb +21 -0
  528. data/lib/pwn/sast/amqp_connect_as_guest.rb +140 -0
  529. data/lib/pwn/sast/apache_file_system_util_api.rb +137 -0
  530. data/lib/pwn/sast/aws.rb +142 -0
  531. data/lib/pwn/sast/banned_function_calls_c.rb +265 -0
  532. data/lib/pwn/sast/base64.rb +143 -0
  533. data/lib/pwn/sast/beef_hook.rb +137 -0
  534. data/lib/pwn/sast/cmd_execution_java.rb +142 -0
  535. data/lib/pwn/sast/cmd_execution_python.rb +144 -0
  536. data/lib/pwn/sast/cmd_execution_ruby.rb +152 -0
  537. data/lib/pwn/sast/cmd_execution_scala.rb +142 -0
  538. data/lib/pwn/sast/csrf.rb +136 -0
  539. data/lib/pwn/sast/deserial_java.rb +135 -0
  540. data/lib/pwn/sast/emoticon.rb +145 -0
  541. data/lib/pwn/sast/eval.rb +140 -0
  542. data/lib/pwn/sast/factory.rb +135 -0
  543. data/lib/pwn/sast/file_permission.rb +142 -0
  544. data/lib/pwn/sast/inner_html.rb +140 -0
  545. data/lib/pwn/sast/keystore.rb +137 -0
  546. data/lib/pwn/sast/location_hash.rb +140 -0
  547. data/lib/pwn/sast/log4j.rb +140 -0
  548. data/lib/pwn/sast/logger.rb +155 -0
  549. data/lib/pwn/sast/outer_html.rb +140 -0
  550. data/lib/pwn/sast/password.rb +140 -0
  551. data/lib/pwn/sast/pom_version.rb +144 -0
  552. data/lib/pwn/sast/port.rb +147 -0
  553. data/lib/pwn/sast/private_key.rb +140 -0
  554. data/lib/pwn/sast/redirect.rb +142 -0
  555. data/lib/pwn/sast/redos.rb +147 -0
  556. data/lib/pwn/sast/shell.rb +148 -0
  557. data/lib/pwn/sast/sql.rb +144 -0
  558. data/lib/pwn/sast/ssl.rb +137 -0
  559. data/lib/pwn/sast/sudo.rb +140 -0
  560. data/lib/pwn/sast/task_tag.rb +154 -0
  561. data/lib/pwn/sast/throw_errors.rb +139 -0
  562. data/lib/pwn/sast/token.rb +137 -0
  563. data/lib/pwn/sast/version.rb +137 -0
  564. data/lib/pwn/sast/window_location_hash.rb +139 -0
  565. data/lib/pwn/sast.rb +53 -0
  566. data/lib/pwn/version.rb +5 -0
  567. data/lib/pwn/www/app_cobalt_io.rb +168 -0
  568. data/lib/pwn/www/bing.rb +119 -0
  569. data/lib/pwn/www/bug_crowd.rb +165 -0
  570. data/lib/pwn/www/checkip.rb +101 -0
  571. data/lib/pwn/www/duckduckgo.rb +141 -0
  572. data/lib/pwn/www/facebook.rb +153 -0
  573. data/lib/pwn/www/google.rb +145 -0
  574. data/lib/pwn/www/hacker_one.rb +153 -0
  575. data/lib/pwn/www/linkedin.rb +153 -0
  576. data/lib/pwn/www/pandora.rb +153 -0
  577. data/lib/pwn/www/pastebin.rb +114 -0
  578. data/lib/pwn/www/paypal.rb +235 -0
  579. data/lib/pwn/www/synack.rb +165 -0
  580. data/lib/pwn/www/torch.rb +138 -0
  581. data/lib/pwn/www/twitter.rb +165 -0
  582. data/lib/pwn/www/uber.rb +153 -0
  583. data/lib/pwn/www/upwork.rb +153 -0
  584. data/lib/pwn/www/youtube.rb +119 -0
  585. data/lib/pwn/www.rb +33 -0
  586. data/lib/pwn.rb +24 -0
  587. data/packer/daemons/msfrpcd.rb +64 -0
  588. data/packer/daemons/openvas.rb +51 -0
  589. data/packer/deploy_docker_containers.sh +9 -0
  590. data/packer/deploy_packer_box.sh +87 -0
  591. data/packer/docker/kali_rolling_docker_pwn_fuzz_net_app_proto.json +44 -0
  592. data/packer/docker/kali_rolling_docker_pwn_prototyper.json +48 -0
  593. data/packer/docker/kali_rolling_docker_pwn_sast.json +44 -0
  594. data/packer/docker/kali_rolling_docker_pwn_transparent_browser.json +46 -0
  595. data/packer/docker/kali_rolling_docker_pwn_www_checkip.json +34 -0
  596. data/packer/http/kali_rolling_preseed.cfg +81 -0
  597. data/packer/kali_rolling_aws_ami.json +135 -0
  598. data/packer/kali_rolling_qemu_kvm.json +155 -0
  599. data/packer/kali_rolling_virtualbox.json +182 -0
  600. data/packer/kali_rolling_vmware.json +163 -0
  601. data/packer/packer_secrets.json.EXAMPLE +9 -0
  602. data/packer/provisioners/PayloadsAllTheThings.sh +5 -0
  603. data/packer/provisioners/SecLists.sh +5 -0
  604. data/packer/provisioners/afl.sh +28 -0
  605. data/packer/provisioners/aliases.rb +18 -0
  606. data/packer/provisioners/amass.sh +5 -0
  607. data/packer/provisioners/android.sh +18 -0
  608. data/packer/provisioners/ansible.sh +5 -0
  609. data/packer/provisioners/apache2.sh +24 -0
  610. data/packer/provisioners/arachni.sh +28 -0
  611. data/packer/provisioners/awscli.sh +5 -0
  612. data/packer/provisioners/bashrc.sh +13 -0
  613. data/packer/provisioners/beef.rb +23 -0
  614. data/packer/provisioners/burpsuite.sh +23 -0
  615. data/packer/provisioners/chrome.sh +11 -0
  616. data/packer/provisioners/coreutils.sh +6 -0
  617. data/packer/provisioners/curl.sh +6 -0
  618. data/packer/provisioners/docker.sh +43 -0
  619. data/packer/provisioners/docker_bashrc.sh +2 -0
  620. data/packer/provisioners/docker_rvm.sh +22 -0
  621. data/packer/provisioners/eyewitness.sh +5 -0
  622. data/packer/provisioners/ffmpeg.sh +6 -0
  623. data/packer/provisioners/firefox.sh +7 -0
  624. data/packer/provisioners/fuzzdb.sh +5 -0
  625. data/packer/provisioners/gdb.sh +5 -0
  626. data/packer/provisioners/geckodriver.sh +9 -0
  627. data/packer/provisioners/ghidra.sh +5 -0
  628. data/packer/provisioners/git.sh +6 -0
  629. data/packer/provisioners/init_image.sh +103 -0
  630. data/packer/provisioners/install_vagrant_ssh_key.sh +15 -0
  631. data/packer/provisioners/jenkins.sh +62 -0
  632. data/packer/provisioners/metasploit.rb +59 -0
  633. data/packer/provisioners/nmap_all_live_hosts.sh +8 -0
  634. data/packer/provisioners/openvas.sh +23 -0
  635. data/packer/provisioners/openvas_wrappers.sh +4 -0
  636. data/packer/provisioners/openvpn.sh +7 -0
  637. data/packer/provisioners/peda.sh +4 -0
  638. data/packer/provisioners/phantomjs.rb +28 -0
  639. data/packer/provisioners/phantomjs_wrapper.sh +22 -0
  640. data/packer/provisioners/post_install.sh +41 -0
  641. data/packer/provisioners/postgresql.sh +49 -0
  642. data/packer/provisioners/preeny.sh +8 -0
  643. data/packer/provisioners/pwn.sh +89 -0
  644. data/packer/provisioners/pwntools.sh +13 -0
  645. data/packer/provisioners/radamsa.sh +7 -0
  646. data/packer/provisioners/rc.local.sh +16 -0
  647. data/packer/provisioners/reboot_os.sh +7 -0
  648. data/packer/provisioners/ruby.sh +36 -0
  649. data/packer/provisioners/rvm.sh +30 -0
  650. data/packer/provisioners/scapy.sh +5 -0
  651. data/packer/provisioners/scout2.sh +5 -0
  652. data/packer/provisioners/sox.sh +5 -0
  653. data/packer/provisioners/ssllabs-scan.sh +9 -0
  654. data/packer/provisioners/strace.sh +5 -0
  655. data/packer/provisioners/sublist3r.sh +5 -0
  656. data/packer/provisioners/terminator.sh +5 -0
  657. data/packer/provisioners/toggle_tor.sh +2 -0
  658. data/packer/provisioners/tor.sh +5 -0
  659. data/packer/provisioners/twinkle.sh +6 -0
  660. data/packer/provisioners/update_os.sh +108 -0
  661. data/packer/provisioners/upload_globals.sh +55 -0
  662. data/packer/provisioners/vim.sh +19 -0
  663. data/packer/provisioners/virtualbox_guest_additions.sh +20 -0
  664. data/packer/provisioners/vmware_tools.sh +8 -0
  665. data/packer/provisioners/wpscan.rb +23 -0
  666. data/packer/provisioners/xrdp.sh +22 -0
  667. data/packer/provisioners/zzuf.sh +5 -0
  668. data/pwn.gemspec +34 -0
  669. data/reinstall_pwn_gemset.sh +31 -0
  670. data/spec/lib/pwn/aws/acm_spec.rb +15 -0
  671. data/spec/lib/pwn/aws/api_gateway_spec.rb +15 -0
  672. data/spec/lib/pwn/aws/app_stream_spec.rb +15 -0
  673. data/spec/lib/pwn/aws/application_auto_scaling_spec.rb +15 -0
  674. data/spec/lib/pwn/aws/application_discovery_service_spec.rb +15 -0
  675. data/spec/lib/pwn/aws/auto_scaling_spec.rb +15 -0
  676. data/spec/lib/pwn/aws/batch_spec.rb +15 -0
  677. data/spec/lib/pwn/aws/budgets_spec.rb +15 -0
  678. data/spec/lib/pwn/aws/cloud_formation_spec.rb +15 -0
  679. data/spec/lib/pwn/aws/cloud_front_spec.rb +15 -0
  680. data/spec/lib/pwn/aws/cloud_hsm_spec.rb +15 -0
  681. data/spec/lib/pwn/aws/cloud_search_domain_spec.rb +15 -0
  682. data/spec/lib/pwn/aws/cloud_search_spec.rb +15 -0
  683. data/spec/lib/pwn/aws/cloud_trail_spec.rb +15 -0
  684. data/spec/lib/pwn/aws/cloud_watch_events_spec.rb +15 -0
  685. data/spec/lib/pwn/aws/cloud_watch_logs_spec.rb +15 -0
  686. data/spec/lib/pwn/aws/cloud_watch_spec.rb +15 -0
  687. data/spec/lib/pwn/aws/code_build_spec.rb +15 -0
  688. data/spec/lib/pwn/aws/code_commit_spec.rb +15 -0
  689. data/spec/lib/pwn/aws/code_deploy_spec.rb +15 -0
  690. data/spec/lib/pwn/aws/code_pipeline_spec.rb +15 -0
  691. data/spec/lib/pwn/aws/cognito_identity_provider_spec.rb +15 -0
  692. data/spec/lib/pwn/aws/cognito_identity_spec.rb +15 -0
  693. data/spec/lib/pwn/aws/cognito_sync_spec.rb +15 -0
  694. data/spec/lib/pwn/aws/config_service_spec.rb +15 -0
  695. data/spec/lib/pwn/aws/data_pipleline_spec.rb +15 -0
  696. data/spec/lib/pwn/aws/database_migration_service_spec.rb +15 -0
  697. data/spec/lib/pwn/aws/device_farm_spec.rb +15 -0
  698. data/spec/lib/pwn/aws/direct_connect_spec.rb +15 -0
  699. data/spec/lib/pwn/aws/directory_service_spec.rb +15 -0
  700. data/spec/lib/pwn/aws/dynamo_db_spec.rb +15 -0
  701. data/spec/lib/pwn/aws/dynamo_db_streams_spec.rb +15 -0
  702. data/spec/lib/pwn/aws/ec2_spec.rb +15 -0
  703. data/spec/lib/pwn/aws/ecr_spec.rb +15 -0
  704. data/spec/lib/pwn/aws/ecs_spec.rb +15 -0
  705. data/spec/lib/pwn/aws/efs_spec.rb +15 -0
  706. data/spec/lib/pwn/aws/elasti_cache_spec.rb +15 -0
  707. data/spec/lib/pwn/aws/elastic_beanstalk_spec.rb +15 -0
  708. data/spec/lib/pwn/aws/elastic_load_balancing_spec.rb +15 -0
  709. data/spec/lib/pwn/aws/elastic_load_balancing_v2_spec.rb +15 -0
  710. data/spec/lib/pwn/aws/elastic_transcoder_spec.rb +15 -0
  711. data/spec/lib/pwn/aws/elasticsearch_service_spec.rb +15 -0
  712. data/spec/lib/pwn/aws/emr_spec.rb +15 -0
  713. data/spec/lib/pwn/aws/firehose_spec.rb +15 -0
  714. data/spec/lib/pwn/aws/game_lift_spec.rb +15 -0
  715. data/spec/lib/pwn/aws/glacier_spec.rb +15 -0
  716. data/spec/lib/pwn/aws/health_spec.rb +15 -0
  717. data/spec/lib/pwn/aws/iam_spec.rb +15 -0
  718. data/spec/lib/pwn/aws/import_export_spec.rb +15 -0
  719. data/spec/lib/pwn/aws/inspector_spec.rb +15 -0
  720. data/spec/lib/pwn/aws/iot_data_plane_spec.rb +15 -0
  721. data/spec/lib/pwn/aws/iot_spec.rb +15 -0
  722. data/spec/lib/pwn/aws/kinesis_analytics_spec.rb +15 -0
  723. data/spec/lib/pwn/aws/kinesis_spec.rb +15 -0
  724. data/spec/lib/pwn/aws/kms_spec.rb +15 -0
  725. data/spec/lib/pwn/aws/lambda_preview_spec.rb +15 -0
  726. data/spec/lib/pwn/aws/lambda_spec.rb +15 -0
  727. data/spec/lib/pwn/aws/lex_spec.rb +15 -0
  728. data/spec/lib/pwn/aws/lightsail_spec.rb +15 -0
  729. data/spec/lib/pwn/aws/machine_learning_spec.rb +15 -0
  730. data/spec/lib/pwn/aws/marketplace_commerce_analytics_spec.rb +15 -0
  731. data/spec/lib/pwn/aws/marketplace_metering_spec.rb +15 -0
  732. data/spec/lib/pwn/aws/ops_works_cm_spec.rb +15 -0
  733. data/spec/lib/pwn/aws/ops_works_spec.rb +15 -0
  734. data/spec/lib/pwn/aws/pinpoint_spec.rb +15 -0
  735. data/spec/lib/pwn/aws/polly_spec.rb +15 -0
  736. data/spec/lib/pwn/aws/rds_spec.rb +15 -0
  737. data/spec/lib/pwn/aws/redshift_spec.rb +15 -0
  738. data/spec/lib/pwn/aws/rekognition_spec.rb +15 -0
  739. data/spec/lib/pwn/aws/route53_domains_spec.rb +15 -0
  740. data/spec/lib/pwn/aws/route53_spec.rb +15 -0
  741. data/spec/lib/pwn/aws/s3_spec.rb +15 -0
  742. data/spec/lib/pwn/aws/service_catalog_spec.rb +15 -0
  743. data/spec/lib/pwn/aws/ses_spec.rb +15 -0
  744. data/spec/lib/pwn/aws/shield_spec.rb +15 -0
  745. data/spec/lib/pwn/aws/simple_db_spec.rb +15 -0
  746. data/spec/lib/pwn/aws/sms_spec.rb +15 -0
  747. data/spec/lib/pwn/aws/snowball_spec.rb +15 -0
  748. data/spec/lib/pwn/aws/sns_spec.rb +15 -0
  749. data/spec/lib/pwn/aws/sqs_spec.rb +15 -0
  750. data/spec/lib/pwn/aws/ssm_spec.rb +15 -0
  751. data/spec/lib/pwn/aws/states_spec.rb +15 -0
  752. data/spec/lib/pwn/aws/storage_gateway_spec.rb +15 -0
  753. data/spec/lib/pwn/aws/sts_spec.rb +15 -0
  754. data/spec/lib/pwn/aws/support_spec.rb +15 -0
  755. data/spec/lib/pwn/aws/swf_spec.rb +15 -0
  756. data/spec/lib/pwn/aws/waf_regional_spec.rb +15 -0
  757. data/spec/lib/pwn/aws/waf_spec.rb +15 -0
  758. data/spec/lib/pwn/aws/workspaces_spec.rb +15 -0
  759. data/spec/lib/pwn/aws/x_ray_spec.rb +15 -0
  760. data/spec/lib/pwn/aws_spec.rb +10 -0
  761. data/spec/lib/pwn/ffi_spec.rb +10 -0
  762. data/spec/lib/pwn/plugins/android_spec.rb +15 -0
  763. data/spec/lib/pwn/plugins/authentication_helper_spec.rb +15 -0
  764. data/spec/lib/pwn/plugins/basic_auth_spec.rb +15 -0
  765. data/spec/lib/pwn/plugins/beef_spec.rb +15 -0
  766. data/spec/lib/pwn/plugins/burp_suite_spec.rb +15 -0
  767. data/spec/lib/pwn/plugins/bus_pirate_spec.rb +15 -0
  768. data/spec/lib/pwn/plugins/char_spec.rb +15 -0
  769. data/spec/lib/pwn/plugins/credit_card_spec.rb +15 -0
  770. data/spec/lib/pwn/plugins/dao_ldap_spec.rb +15 -0
  771. data/spec/lib/pwn/plugins/dao_mongo_spec.rb +15 -0
  772. data/spec/lib/pwn/plugins/dao_postgres_spec.rb +15 -0
  773. data/spec/lib/pwn/plugins/dao_sqlite3_spec.rb +15 -0
  774. data/spec/lib/pwn/plugins/defect_dojo_spec.rb +15 -0
  775. data/spec/lib/pwn/plugins/detect_os_spec.rb +15 -0
  776. data/spec/lib/pwn/plugins/ein_spec.rb +15 -0
  777. data/spec/lib/pwn/plugins/file_fu_spec.rb +15 -0
  778. data/spec/lib/pwn/plugins/fuzz_spec.rb +15 -0
  779. data/spec/lib/pwn/plugins/git_spec.rb +15 -0
  780. data/spec/lib/pwn/plugins/hacker_one_spec.rb +15 -0
  781. data/spec/lib/pwn/plugins/ibm_appscan_spec.rb +15 -0
  782. data/spec/lib/pwn/plugins/ip_info_spec.rb +15 -0
  783. data/spec/lib/pwn/plugins/jenkins_spec.rb +15 -0
  784. data/spec/lib/pwn/plugins/json_pathify_spec.rb +15 -0
  785. data/spec/lib/pwn/plugins/mail_agent_spec.rb +15 -0
  786. data/spec/lib/pwn/plugins/metasploit_spec.rb +15 -0
  787. data/spec/lib/pwn/plugins/nessus_cloud_spec.rb +15 -0
  788. data/spec/lib/pwn/plugins/nexpose_vuln_scan_spec.rb +15 -0
  789. data/spec/lib/pwn/plugins/nmap_it_spec.rb +15 -0
  790. data/spec/lib/pwn/plugins/oauth2_spec.rb +15 -0
  791. data/spec/lib/pwn/plugins/ocr_spec.rb +15 -0
  792. data/spec/lib/pwn/plugins/openvas_spec.rb +15 -0
  793. data/spec/lib/pwn/plugins/owasp_zap_spec.rb +15 -0
  794. data/spec/lib/pwn/plugins/packet_spec.rb +15 -0
  795. data/spec/lib/pwn/plugins/pdf_parse_spec.rb +15 -0
  796. data/spec/lib/pwn/plugins/pony_spec.rb +15 -0
  797. data/spec/lib/pwn/plugins/rabbit_mq_hole_spec.rb +15 -0
  798. data/spec/lib/pwn/plugins/rfidler_spec.rb +15 -0
  799. data/spec/lib/pwn/plugins/serial_spec.rb +15 -0
  800. data/spec/lib/pwn/plugins/shodan_spec.rb +15 -0
  801. data/spec/lib/pwn/plugins/slack_client_spec.rb +15 -0
  802. data/spec/lib/pwn/plugins/sock_spec.rb +15 -0
  803. data/spec/lib/pwn/plugins/son_micro_rfid_spec.rb +15 -0
  804. data/spec/lib/pwn/plugins/spider_spec.rb +15 -0
  805. data/spec/lib/pwn/plugins/ssn_spec.rb +15 -0
  806. data/spec/lib/pwn/plugins/thread_pool_spec.rb +15 -0
  807. data/spec/lib/pwn/plugins/transparent_browser_spec.rb +15 -0
  808. data/spec/lib/pwn/plugins/twitter_api_spec.rb +15 -0
  809. data/spec/lib/pwn/plugins/uri_scheme_spec.rb +15 -0
  810. data/spec/lib/pwn/plugins/vsphere_spec.rb +15 -0
  811. data/spec/lib/pwn/plugins_spec.rb +10 -0
  812. data/spec/lib/pwn/reports/fuzz_spec.rb +15 -0
  813. data/spec/lib/pwn/reports/sast_spec.rb +15 -0
  814. data/spec/lib/pwn/reports_spec.rb +10 -0
  815. data/spec/lib/pwn/sast/amqp_connect_as_guest_spec.rb +25 -0
  816. data/spec/lib/pwn/sast/apache_file_system_util_api_spec.rb +25 -0
  817. data/spec/lib/pwn/sast/aws_spec.rb +25 -0
  818. data/spec/lib/pwn/sast/banned_function_calls_c_spec.rb +25 -0
  819. data/spec/lib/pwn/sast/base64_spec.rb +25 -0
  820. data/spec/lib/pwn/sast/beef_hook_spec.rb +25 -0
  821. data/spec/lib/pwn/sast/cmd_execution_java_spec.rb +25 -0
  822. data/spec/lib/pwn/sast/cmd_execution_python_spec.rb +25 -0
  823. data/spec/lib/pwn/sast/cmd_execution_ruby_spec.rb +25 -0
  824. data/spec/lib/pwn/sast/cmd_execution_scala_spec.rb +25 -0
  825. data/spec/lib/pwn/sast/csrf_spec.rb +25 -0
  826. data/spec/lib/pwn/sast/deserial_java_spec.rb +25 -0
  827. data/spec/lib/pwn/sast/emoticon_spec.rb +25 -0
  828. data/spec/lib/pwn/sast/eval_spec.rb +25 -0
  829. data/spec/lib/pwn/sast/factory_spec.rb +25 -0
  830. data/spec/lib/pwn/sast/file_permission_spec.rb +25 -0
  831. data/spec/lib/pwn/sast/inner_html_spec.rb +25 -0
  832. data/spec/lib/pwn/sast/keystore_spec.rb +25 -0
  833. data/spec/lib/pwn/sast/location_hash_spec.rb +25 -0
  834. data/spec/lib/pwn/sast/log4j_spec.rb +25 -0
  835. data/spec/lib/pwn/sast/logger_spec.rb +25 -0
  836. data/spec/lib/pwn/sast/password_spec.rb +25 -0
  837. data/spec/lib/pwn/sast/pom_version_spec.rb +25 -0
  838. data/spec/lib/pwn/sast/port_spec.rb +25 -0
  839. data/spec/lib/pwn/sast/private_key_spec.rb +25 -0
  840. data/spec/lib/pwn/sast/redirect_spec.rb +25 -0
  841. data/spec/lib/pwn/sast/redos_spec.rb +25 -0
  842. data/spec/lib/pwn/sast/shell_spec.rb +25 -0
  843. data/spec/lib/pwn/sast/sql_spec.rb +25 -0
  844. data/spec/lib/pwn/sast/ssl_spec.rb +25 -0
  845. data/spec/lib/pwn/sast/sudo_spec.rb +25 -0
  846. data/spec/lib/pwn/sast/task_tag_spec.rb +25 -0
  847. data/spec/lib/pwn/sast/throw_errors_spec.rb +25 -0
  848. data/spec/lib/pwn/sast/token_spec.rb +25 -0
  849. data/spec/lib/pwn/sast/version_spec.rb +25 -0
  850. data/spec/lib/pwn/sast/window_location_hash_spec.rb +25 -0
  851. data/spec/lib/pwn/sast_spec.rb +10 -0
  852. data/spec/lib/pwn/www/app_cobalt_io_spec.rb +15 -0
  853. data/spec/lib/pwn/www/bing_spec.rb +15 -0
  854. data/spec/lib/pwn/www/bug_crowd.rb +15 -0
  855. data/spec/lib/pwn/www/checkip_spec.rb +15 -0
  856. data/spec/lib/pwn/www/duckduckgo_spec.rb +15 -0
  857. data/spec/lib/pwn/www/facebook_spec.rb +15 -0
  858. data/spec/lib/pwn/www/google_spec.rb +15 -0
  859. data/spec/lib/pwn/www/hacker_one_spec.rb +15 -0
  860. data/spec/lib/pwn/www/linkedin_spec.rb +15 -0
  861. data/spec/lib/pwn/www/pandora_spec.rb +15 -0
  862. data/spec/lib/pwn/www/pastebin_spec.rb +15 -0
  863. data/spec/lib/pwn/www/paypal_spec.rb +15 -0
  864. data/spec/lib/pwn/www/synack_spec.rb +15 -0
  865. data/spec/lib/pwn/www/torch_spec.rb +15 -0
  866. data/spec/lib/pwn/www/twitter_spec.rb +15 -0
  867. data/spec/lib/pwn/www/uber_spec.rb +15 -0
  868. data/spec/lib/pwn/www/upwork_spec.rb +15 -0
  869. data/spec/lib/pwn/www/youtube_spec.rb +15 -0
  870. data/spec/lib/pwn/www_spec.rb +10 -0
  871. data/spec/lib/pwn_spec.rb +10 -0
  872. data/spec/spec_helper.rb +3 -0
  873. data/third_party/.gitkeep +0 -0
  874. data/update_pwn.sh +15 -0
  875. data/upgrade_ruby.sh +46 -0
  876. data/vagrant/provisioners/apache2.sh +76 -0
  877. data/vagrant/provisioners/beef.rb +30 -0
  878. data/vagrant/provisioners/burpsuite_pro.rb +37 -0
  879. data/vagrant/provisioners/exploit-db.sh +2 -0
  880. data/vagrant/provisioners/gem.sh +4 -0
  881. data/vagrant/provisioners/init_env.sh +22 -0
  882. data/vagrant/provisioners/jenkins.sh +87 -0
  883. data/vagrant/provisioners/jenkins_ssh-keygen.rb +86 -0
  884. data/vagrant/provisioners/kali_customize.rb +130 -0
  885. data/vagrant/provisioners/letsencrypt.rb +35 -0
  886. data/vagrant/provisioners/metasploit.rb +25 -0
  887. data/vagrant/provisioners/nmap_all_live_hosts.sh +2 -0
  888. data/vagrant/provisioners/openvas.sh +23 -0
  889. data/vagrant/provisioners/openvas_wrappers.sh +2 -0
  890. data/vagrant/provisioners/post_install.sh +14 -0
  891. data/vagrant/provisioners/postgres.sh +22 -0
  892. data/vagrant/provisioners/pwn.sh +15 -0
  893. data/vagrant/provisioners/rvm.sh +18 -0
  894. data/vagrant/provisioners/ssllabs-scan.sh +10 -0
  895. data/vagrant/provisioners/toggle_tor.sh +2 -0
  896. data/vagrant/provisioners/update_jenkins_plugins.rb +30 -0
  897. data/vagrant/provisioners/update_os.sh +108 -0
  898. data/vagrant/provisioners/upload_globals.sh +55 -0
  899. data/vagrant/provisioners/userland_fdisk.sh +22 -0
  900. data/vagrant/provisioners/userland_lvm.sh +5 -0
  901. data/vagrant/provisioners/wpscan.rb +25 -0
  902. data/vagrant_rsync_third_party.lst +1 -0
  903. data/vagrant_rsync_userland_template.lst +8 -0
  904. metadata +1245 -0
@@ -0,0 +1,156 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'socket'
4
+ require 'openssl'
5
+
6
+ module PWN
7
+ module Plugins
8
+ # This plugin was created to support fuzzing various networking protocols
9
+ module Sock
10
+ @@logger = PWN::Plugins::PWNLogger.create
11
+
12
+ # Supported Method Parameters::
13
+ # sock_obj = PWN::Plugins::Sock.connect(
14
+ # target: 'required - target host or ip',
15
+ # port: 'required - target port',
16
+ # protocol: 'optional - :tcp || :udp (defaults to tcp)',
17
+ # tls: 'optional - boolean connect to target socket using TLS (defaults to false)'
18
+ # )
19
+
20
+ public_class_method def self.connect(opts = {})
21
+ target = opts[:target].to_s.scrub
22
+ port = opts[:port].to_i
23
+ opts[:protocol].nil? ? protocol = :tcp : protocol = opts[:protocol].to_s.downcase.to_sym
24
+ opts[:tls].nil? ? tls = false : tls = true
25
+
26
+ case protocol
27
+ when :tcp
28
+ if tls
29
+ sock = TCPSocket.open(target, port)
30
+ tls_context = OpenSSL::SSL::SSLContext.new
31
+ tls_context.set_params(verify_mode: OpenSSL::SSL::VERIFY_NONE)
32
+ tls_sock = OpenSSL::SSL::SSLSocket.new(sock, tls_context)
33
+ sock_obj = tls_sock.connect
34
+ else
35
+ sock_obj = TCPSocket.open(target, port)
36
+ end
37
+ when :udp
38
+ sock_obj = UDPSocket.new
39
+ sock_obj.connect(target, port)
40
+ else
41
+ raise "Unsupported protocol: #{protocol}"
42
+ end
43
+
44
+ sock_obj
45
+ rescue StandardError => e
46
+ sock_obj = disconnect(sock_obj: sock_obj) unless sock_obj.nil?
47
+ raise e
48
+ end
49
+
50
+ # Supported Method Parameters::
51
+ # PWN::Plugins::Sock.listen(
52
+ # server_ip: 'required - target host or ip to listen',
53
+ # port: 'required - target port',
54
+ # protocol: 'optional - :tcp || :udp (defaults to tcp)',
55
+ # tls: 'optional - boolean listen on TLS-enabled socket (defaults to false)'
56
+ # )
57
+
58
+ public_class_method def self.listen(opts = {})
59
+ server_ip = opts[:server_ip].to_s.scrub
60
+ port = opts[:port].to_i
61
+ opts[:protocol].nil? ? protocol = :tcp : protocol = opts[:protocol].to_s.downcase.to_sym
62
+ opts[:tls].nil? ? tls = false : tls = true
63
+
64
+ case protocol
65
+ when :tcp
66
+ if tls
67
+ # Multi-threaded - Not working
68
+ sock = TCPServer.open(server_ip, port)
69
+ tls_context = OpenSSL::SSL::SSLContext.new
70
+ tls_context.set_params(verify_mode: OpenSSL::SSL::VERIFY_NONE)
71
+ listen_obj = OpenSSL::SSL::SSLServer.new(sock, tls_context)
72
+ # loop do
73
+ # Thread.start(listen_obj.accept) do |client_thread|
74
+ # while (client_input = client_thread.gets)
75
+ # puts client_input
76
+ # end
77
+ # client_thread.close
78
+ # end
79
+ # end
80
+ else
81
+ # Multi-threaded
82
+ listen_obj = TCPServer.open(server_ip, port)
83
+ loop do
84
+ Thread.start(listen_obj.accept) do |client_thread|
85
+ while (client_input = client_thread.gets)
86
+ puts client_input
87
+ end
88
+ client_thread.close
89
+ end
90
+ end
91
+ end
92
+ when :udp
93
+ # Single Threaded
94
+ listen_obj = UDPSocket.new
95
+ listen_obj.bind(server_ip, port)
96
+ while (client_input = listen_obj.recvmsg)
97
+ puts client_input[0].to_s
98
+ end
99
+ else
100
+ raise "Unsupported protocol: #{protocol}"
101
+ end
102
+ rescue StandardError => e
103
+ raise e
104
+ ensure
105
+ listen_obj = disconnect(sock_obj: listen_obj) unless listen_obj.nil?
106
+ end
107
+
108
+ # Supported Method Parameters::
109
+ # sock_obj = PWN::Plugins::Sock.disconnect(
110
+ # sock_obj: 'required - sock_obj returned from #connect method'
111
+ # )
112
+
113
+ public_class_method def self.disconnect(opts = {})
114
+ sock_obj = opts[:sock_obj]
115
+ sock_obj.close
116
+ sock_obj = nil
117
+ rescue StandardError => e
118
+ raise e
119
+ end
120
+
121
+ # Author(s):: Jacob Hoopes <jake.hoopes@gmail.com>
122
+
123
+ public_class_method def self.authors
124
+ "AUTHOR(S):
125
+ Jacob Hoopes <jake.hoopes@gmail.com>
126
+ "
127
+ end
128
+
129
+ # Display Usage for this Module
130
+
131
+ public_class_method def self.help
132
+ puts "USAGE:
133
+ sock_obj = #{self}.connect(
134
+ target: 'required - target host or ip',
135
+ port: 'required - target port',
136
+ protocol: 'optional - :tcp || :udp (defaults to tcp)',
137
+ tls: 'optional - boolean connect to target socket using TLS (defaults to false)'
138
+ )
139
+
140
+ #{self}.listen(
141
+ server_ip: 'required - target host or ip to listen',
142
+ port: 'required - target port',
143
+ protocol: 'optional - :tcp || :udp (defaults to tcp)',
144
+ tls: 'optional - boolean listen on TLS-enabled socket (defaults to false)'
145
+ )
146
+
147
+ sock_obj = PWN::Plugins::Sock.disconnect(
148
+ sock_obj: 'required - sock_obj returned from #connect method'
149
+ )
150
+
151
+ #{self}.authors
152
+ "
153
+ end
154
+ end
155
+ end
156
+ end
@@ -0,0 +1,432 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PWN
4
+ module Plugins
5
+ # This plugin is used for interacting with a SonMicro
6
+ # SM132 USB RFID Reader / Writer (PCB v3)
7
+ module SonMicroRFID
8
+ # Supported Method Parameters::
9
+ # son_micro_rfid_obj = PWN::Plugins::SonMicroRFID.connect(
10
+ # block_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)',
11
+ # baud: 'optional - (defaults to 9600)',
12
+ # data_bits: 'optional - (defaults to 8)',
13
+ # stop_bits: 'optional - (defaults to 1)',
14
+ # parity: 'optional - (defaults to SerialPort::NONE)',
15
+ # flow_control: 'optional - (defaults to SerialPort::HARD) SerialPort::NONE|SerialPort::SOFT|SerialPort::HARD'
16
+ # )
17
+
18
+ public_class_method def self.connect(opts = {})
19
+ # Default Baud Rate for this Device is 19200
20
+ opts[:baud] = 19_200 if opts[:baud].nil?
21
+ son_micro_rfid_obj = PWN::Plugins::Serial.connect(opts)
22
+ rescue StandardError => e
23
+ disconnect(son_micro_rfid_obj: son_micro_rfid_obj) unless son_micro_rfid_obj.nil?
24
+ raise e
25
+ end
26
+
27
+ # Supported Method Parameters::
28
+ # cmds = PWN::Plugins::SonMicroRFID.list_cmds
29
+ public_class_method def self.list_cmds
30
+ # Returns an Array of Symbols
31
+ cmds = %i[
32
+ reset
33
+ firmware
34
+ seek_for_tag
35
+ select_tag
36
+ authenticate
37
+ read_block
38
+ write_block
39
+ write_value
40
+ write_four_byte_block
41
+ write_key
42
+ increment
43
+ decrement
44
+ antenna_power
45
+ read_port
46
+ write_port
47
+ halt
48
+ set_baud_rate
49
+ sleep
50
+ poll_buffer
51
+ ]
52
+ rescue StandardError => e
53
+ raise e
54
+ end
55
+
56
+ # Supported Method Parameters::
57
+ # params = PWN::Plugins::SonMicroRFID.list_params(
58
+ # cmd: 'required - cmd returned from #list_cmds method',
59
+ # )
60
+ public_class_method def self.list_params(opts = {})
61
+ cmd = opts[:cmd].to_s.scrub.strip.chomp
62
+
63
+ case cmd.to_sym
64
+ when :reset
65
+ params = %i[reset_not_implemented]
66
+ when :firmware
67
+ params = %i[firmware_not_implemented]
68
+ when :seek_for_tag
69
+ params = %i[seek_for_tag_no_params_required]
70
+ when :select_tag
71
+ params = %i[select_tag_no_params_required]
72
+ when :authenticate
73
+ params = %i[authenticate_not_implemented]
74
+ when :read_block
75
+ params = %i[read_block_not_implemented]
76
+ when :write_block
77
+ params = %i[write_block_not_implemented]
78
+ when :write_value
79
+ params = %i[write_value_not_implemented]
80
+ when :write_four_byte_block
81
+ params = %i[write_four_byte_block_not_implemented]
82
+ when :write_key
83
+ params = %i[write_key_not_implemented]
84
+ when :increment
85
+ params = %i[increment_not_implemented]
86
+ when :decrement
87
+ params = %i[decrement_not_implemented]
88
+ when :antenna_power
89
+ params = %i[off on reset]
90
+ when :read_port
91
+ params = %i[antenna_power_not_implemented]
92
+ when :write_port
93
+ params = %i[write_port_not_implemented]
94
+ when :halt
95
+ params = %i[halt_not_implemented]
96
+ when :set_baud_rate
97
+ params = %i[set_baud_rate_not_implemented]
98
+ when :sleep
99
+ params = %i[sleep_not_implemented]
100
+ when :poll_buffer
101
+ params = %i[poll_buffer_not_implemented]
102
+ else
103
+ raise "Unsupported Command: #{cmd}. Supported commands are:\n#{list_cmds}\n\n\n"
104
+ end
105
+
106
+ params
107
+ rescue StandardError => e
108
+ raise e
109
+ end
110
+
111
+ # Supported Method Parameters::
112
+ # cmd_response_arr = get_cmd_responses(
113
+ # son_micro_rfid_obj: 'required - son_micro_rfid_obj returned from #connect method'
114
+ # )
115
+
116
+ public_class_method def self.get_cmd_responses(opts = {})
117
+ son_micro_rfid_obj = opts[:son_micro_rfid_obj]
118
+
119
+ raw_byte_arr = PWN::Plugins::Serial.dump_session_data(
120
+ serial_obj: son_micro_rfid_obj
121
+ )
122
+
123
+ hex_esc_raw_resp = ''
124
+ raw_byte_arr.each do |byte|
125
+ # this_byte = "\s#{byte.unpack1('H*')}"
126
+ this_byte = byte.unpack1('H*')
127
+ # Needed when #unpack1 returns 2 bytes instead of one
128
+ # e.g."ް" translates to deb0 (that's not a double quote ")
129
+ # instead of de b0
130
+ # this condition is ghetto-hacker-ish.
131
+ if this_byte.length == 4
132
+ byte_one = this_byte[1..2]
133
+ byte_two = this_byte[-2..-1]
134
+ hex_esc_raw_resp = "#{hex_esc_raw_resp}\s#{byte_one}"
135
+ hex_esc_raw_resp = "#{hex_esc_raw_resp}\s#{byte_two}"
136
+ else
137
+ hex_esc_raw_resp = "#{hex_esc_raw_resp}\s#{this_byte}"
138
+ end
139
+ end
140
+
141
+ # Return command response array in space-delimited hex
142
+ cmd_response_arr = hex_esc_raw_resp.upcase.strip.split(/(?=FF)/)
143
+ cmd_response_arr.map(&:strip)
144
+ rescue StandardError => e
145
+ # Flush Responses for Next Request
146
+ PWN::Plugins::Serial.flush_session_data(
147
+ serial_obj: son_micro_rfid_obj
148
+ )
149
+
150
+ raise e
151
+ end
152
+
153
+ # Supported Method Parameters::
154
+ # parsed_cmd_resp_arr = parse_cmd_resp(
155
+ # cmd_resp: 'required - command response string'
156
+ # )
157
+
158
+ private_class_method def self.parse_responses(opts = {})
159
+ son_micro_rfid_obj = opts[:son_micro_rfid_obj]
160
+ cmd = opts[:cmd].to_s.scrub.strip.chomp
161
+
162
+ keep_parsing_responses = true
163
+ next_response_detected = false
164
+ all_cmd_responses = []
165
+ a_cmd_r_len = 0
166
+ last_a_cmd_r_len = 0
167
+
168
+ parsed_cmd_resp_arr = []
169
+ bytes_in_cmd_resp = 0
170
+ cmd_resp = ''
171
+
172
+ # Parse All Responses and add them to parsed_cmd_resp_arr
173
+ while keep_parsing_responses
174
+ until next_response_detected
175
+ print '.'
176
+ all_cmd_responses = get_cmd_responses(
177
+ son_micro_rfid_obj: son_micro_rfid_obj
178
+ )
179
+ cmd_resp = all_cmd_responses.last
180
+ bytes_in_cmd_resp = cmd_resp.split.length if cmd_resp
181
+ a_cmd_r_len = all_cmd_responses.length
182
+
183
+ next_response_detected = true if bytes_in_cmd_resp > 3 &&
184
+ a_cmd_r_len > last_a_cmd_r_len
185
+ end
186
+ next_response_detected = false
187
+ last_a_cmd_r_len = a_cmd_r_len
188
+ print "\n"
189
+
190
+ # Third byte
191
+ expected_cmd_resp_byte_len = cmd_resp.split[2].to_i(16) + 4
192
+
193
+ # Fourth byte
194
+ cmd_hex = cmd_resp.split[3]
195
+
196
+ while bytes_in_cmd_resp < expected_cmd_resp_byte_len
197
+ all_cmd_responses = get_cmd_responses(
198
+ son_micro_rfid_obj: son_micro_rfid_obj
199
+ )
200
+
201
+ cmd_resp = all_cmd_responses.last
202
+ bytes_in_cmd_resp = cmd_resp.split.length
203
+ puts "EXPECTED CMD BYTE LEN: #{expected_cmd_resp_byte_len}"
204
+ puts "LAST CMD BYTE LEN: #{bytes_in_cmd_resp} >>>"
205
+ puts all_cmd_responses
206
+ puts "COMMAND HEX: #{cmd_hex}\n\n\n"
207
+ end
208
+
209
+ puts "\nALL CMD RESPS >>>"
210
+ puts "#{all_cmd_responses}\n\n\n"
211
+
212
+ parsed_cmd_resp_hash = {}
213
+ parsed_cmd_resp_hash[:hex_resp] = cmd_resp
214
+ parsed_cmd_resp_hash[:cmd_hex] = cmd_hex
215
+ parsed_cmd_resp_hash[:cmd_desc] = cmd.to_sym
216
+ resp_code = '?'
217
+
218
+ # TODO: Detect EMV
219
+ case cmd_hex
220
+ when '82', '83'
221
+ resp_code = cmd_resp.split[4]
222
+ parsed_cmd_resp_hash[:resp_code_hex] = resp_code
223
+ case resp_code
224
+ when '01'
225
+ parsed_cmd_resp_hash[:resp_code_desc] = :mifare_ultralight
226
+ parsed_cmd_resp_hash[:tag_id] = cmd_resp.split[5..-2].join(
227
+ ' '
228
+ )
229
+ when '02'
230
+ parsed_cmd_resp_hash[:resp_code_desc] = :mifare_classic_1k
231
+ parsed_cmd_resp_hash[:tag_id] = cmd_resp.split[5..-2].join(
232
+ ' '
233
+ )
234
+ when '03'
235
+ parsed_cmd_resp_hash[:resp_code_desc] = :mifare_classic_4k
236
+ parsed_cmd_resp_hash[:tag_id] = cmd_resp.split[5..-2].join(
237
+ ' '
238
+ )
239
+ when '4C'
240
+ parsed_cmd_resp_hash[:resp_code_desc] = :seeking_tag
241
+ parsed_cmd_resp_hash[:tag_id] = :seeking_tag
242
+ when '4E'
243
+ parsed_cmd_resp_hash[:resp_code_desc] = :no_tag_present
244
+ parsed_cmd_resp_hash[:tag_id] = :not_available
245
+ when '55'
246
+ parsed_cmd_resp_hash[:resp_code_desc] = :antenna_off
247
+ parsed_cmd_resp_hash[:tag_id] = :not_available
248
+ when 'FF'
249
+ parsed_cmd_resp_hash[:resp_code_desc] = :unknown_tag_type
250
+ parsed_cmd_resp_hash[:tag_id] = cmd_resp.split[5..-2].join(
251
+ ' '
252
+ )
253
+ else
254
+ parsed_cmd_resp_hash[:resp_code_desc] = :unknown_resp_code
255
+ parsed_cmd_resp_hash[:tag_id] = :not_available
256
+ end
257
+ else
258
+ parsed_cmd_resp_hash[:cmd_desc] = :not_available
259
+ end
260
+
261
+ keep_parsing_responses = false unless resp_code == '4C'
262
+
263
+ parsed_cmd_resp_arr.push(parsed_cmd_resp_hash)
264
+ end
265
+
266
+ parsed_cmd_resp_arr
267
+ rescue StandardError => e
268
+ raise e
269
+ ensure
270
+ # Flush Responses for Next Request
271
+ PWN::Plugins::Serial.flush_session_data(
272
+ serial_obj: son_micro_rfid_obj
273
+ )
274
+ end
275
+
276
+ # Supported Method Parameters::
277
+ # PWN::Plugins::SonMicroRFID.exec(
278
+ # son_micro_rfid_obj: 'required - son_micro_rfid_obj returned from #connect method'
279
+ # cmd: 'required - cmd returned from #list_cmds method',
280
+ # params: 'optional - parameters for specific command returned from #list_params method'
281
+ # )
282
+ public_class_method def self.exec(opts = {})
283
+ son_micro_rfid_obj = opts[:son_micro_rfid_obj]
284
+ cmd = opts[:cmd].to_s.scrub.strip.chomp
285
+ params = opts[:params].to_s.scrub.strip.chomp
286
+
287
+ params_bytes = []
288
+
289
+ # Use the Mifare Panel Application to reverse enginner commands.
290
+ case cmd.to_sym
291
+ when :reset
292
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x80, 0x81]
293
+ when :firmware
294
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x81, 0x82]
295
+ when :seek_for_tag
296
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x82, 0x83]
297
+ when :select_tag
298
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x83, 0x84]
299
+ when :authenticate
300
+ # Last two bytes not correct
301
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x00]
302
+ when :read_block
303
+ # Last two bytes not correct
304
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x01]
305
+ when :write_block
306
+ # Last two bytes not correct
307
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x02]
308
+ when :write_value
309
+ # Last two bytes not correct
310
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x03]
311
+ when :write_four_byte_block
312
+ # Last two bytes not correct
313
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x04]
314
+ when :write_key
315
+ # Last two bytes not correct
316
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x05]
317
+ when :increment
318
+ # Last two bytes not correct
319
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x06]
320
+ when :decrement
321
+ # Last two bytes not correct
322
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x00, 0x07]
323
+ when :antenna_power
324
+ cmd_bytes = [0xFF, 0x00, 0x02, 0x90]
325
+ case params.to_sym
326
+ when :off
327
+ params_bytes = [0x00, 0x92]
328
+ when :on
329
+ params_bytes = [0x01, 0x93]
330
+ when :reset
331
+ params_bytes = [0x02, 0x94]
332
+ else
333
+ raise "Unsupported Parameters: #{params} for #{cmd}. Supported parameters for #{cmd} are:\n#{list_params(cmd: cmd)}\n\n\n"
334
+ end
335
+ when :read_port
336
+ # Last two bytes not correct
337
+ cmd_bytes = [0xFF, 0x00, 0x01]
338
+ when :write_port
339
+ # Last two bytes not correct
340
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x08]
341
+ when :halt
342
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x93, 0x94]
343
+ when :set_baud_rate
344
+ # Last two bytes not correct
345
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x09]
346
+ when :sleep
347
+ # Last two bytes not correct
348
+ cmd_bytes = [0xFF, 0x00, 0x01, 0x0a]
349
+ when :poll_buffer
350
+ cmd_bytes = [0xFF, 0x00, 0x01, 0xB0, 0xB1]
351
+ else
352
+ raise "Unsupported Command: #{cmd}. Supported commands are:\n#{list_cmds}\n\n\n"
353
+ end
354
+
355
+ # If parameters to a command are set, append them.
356
+ cmd_bytes += params_bytes unless params_bytes.empty?
357
+ # Execute the command.
358
+ cmd_bytes.each do |byte|
359
+ son_micro_rfid_obj[:serial_conn].putc(byte)
360
+ end
361
+
362
+ # Parse commands response(s).
363
+ # Return an array of hashes.
364
+ parse_responses(
365
+ son_micro_rfid_obj: son_micro_rfid_obj,
366
+ cmd: cmd.to_sym
367
+ )
368
+ rescue StandardError => e
369
+ raise e
370
+ ensure
371
+ # Flush Responses for Next Request
372
+ PWN::Plugins::Serial.flush_session_data(
373
+ serial_obj: son_micro_rfid_obj
374
+ )
375
+ end
376
+
377
+ # Supported Method Parameters::
378
+ # PWN::Plugins::SonMicroRFID.disconnect(
379
+ # son_micro_rfid_obj: 'required - son_micro_rfid_obj returned from #connect method'
380
+ # )
381
+
382
+ public_class_method def self.disconnect(opts = {})
383
+ PWN::Plugins::Serial.disconnect(
384
+ serial_obj: opts[:son_micro_rfid_obj]
385
+ )
386
+ rescue StandardError => e
387
+ raise e
388
+ end
389
+
390
+ # Author(s):: Jacob Hoopes <jake.hoopes@gmail.com>
391
+
392
+ public_class_method def self.authors
393
+ "AUTHOR(S):
394
+ Jacob Hoopes <jake.hoopes@gmail.com>
395
+ "
396
+ end
397
+
398
+ # Display Usage for this Module
399
+
400
+ public_class_method def self.help
401
+ puts "USAGE:
402
+ son_micro_rfid_obj = #{self}.connect(
403
+ block_dev: 'optional serial block device path (defaults to /dev/ttyUSB0)',
404
+ baud: 'optional (defaults to 9600)',
405
+ data_bits: 'optional (defaults to 8)',
406
+ stop_bits: 'optional (defaults to 1)',
407
+ parity: 'optional (defaults to SerialPort::NONE)',
408
+ flow_control: 'optional (defaults to SerialPort::NONE)'
409
+ )
410
+
411
+ cmds = #{self}.list_cmds
412
+
413
+ params = #{self}.list_params(
414
+ cmd: 'required - cmd returned from #list_cmds method',
415
+ )
416
+
417
+ parsed_cmd_resp_arr = #{self}.exec(
418
+ son_micro_rfid_obj: 'required son_micro_rfid_obj returned from #connect method',
419
+ cmd: 'required - cmd returned from #list_cmds method',
420
+ params: 'optional - parameters for specific command returned from #list_params method'
421
+ )
422
+
423
+ #{self}.disconnect(
424
+ son_micro_rfid_obj: 'required son_micro_rfid_obj returned from #connect method'
425
+ )
426
+
427
+ #{self}.authors
428
+ "
429
+ end
430
+ end
431
+ end
432
+ end
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'anemone'
4
+
5
+ module PWN
6
+ module Plugins
7
+ # This plugin supports Pastebin actions.
8
+ module Spider
9
+ # Supported Method Parameters::
10
+ # PWN::Plugins::Spider.crawl(
11
+ # target_fqdn: 'required - target fqdn to spider',
12
+ # results_path: 'required - path to save spider results',
13
+ # proxy: 'optional - proxy to spider through e.g. http://127.0.0.1:8080'
14
+ # )
15
+
16
+ @@logger = PWN::Plugins::PWNLogger.create
17
+
18
+ public_class_method def self.crawl(opts = {})
19
+ # TODO: Add AuthN Support
20
+ # FYI: Anemone very well may have a memory leak.
21
+ # Despite saving results to file, Anemone causes
22
+ # memory exhaustion on large sites
23
+ target_fqdn = opts[:target_fqdn].to_s.scrub.strip.chomp
24
+ results_path = opts[:results_path].to_s.scrub.strip.chomp
25
+
26
+ proxy = opts[:proxy].to_s.scrub.strip.chomp unless opts[:proxy].nil?
27
+
28
+ # Colors!
29
+ green = "\e[32m"
30
+ yellow = "\e[33m"
31
+ end_of_color = "\e[0m"
32
+
33
+ puts "#{green}Spidering Target FQDN: #{target_fqdn}#{end_of_color}"
34
+ File.open(results_path, 'w') do |f|
35
+ if proxy
36
+ proxy_uri = URI.parse(proxy)
37
+ proxy_hash = { proxy_host: proxy_uri.host, proxy_port: proxy_uri.port }
38
+ Anemone.crawl(target_fqdn, proxy_hash) do |anemone|
39
+ anemone.on_every_page do |page|
40
+ puts "#{yellow}Discovered: #{page.url}#{end_of_color}"
41
+ f.puts(page.url)
42
+ end
43
+ end
44
+ else
45
+ Anemone.crawl(target_fqdn) do |anemone|
46
+ anemone.on_every_page do |page|
47
+ puts "#{green}Discovered: #{page.url}#{end_of_color}"
48
+ f.puts(page.url)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ rescue StandardError => e
54
+ raise e
55
+ end
56
+
57
+ # Author(s):: Jacob Hoopes <jake.hoopes@gmail.com>
58
+
59
+ public_class_method def self.authors
60
+ "AUTHOR(S):
61
+ Jacob Hoopes <jake.hoopes@gmail.com>
62
+ "
63
+ end
64
+
65
+ # Display Usage for this Module
66
+
67
+ public_class_method def self.help
68
+ puts %{USAGE:
69
+ #{self}.crawl(
70
+ target_fqdn: 'required - target fqdn to spider',
71
+ results_path: 'required - path to save spider results',
72
+ proxy: 'optional - proxy to spider through e.g. http://127.0.0.1:8080'
73
+ )
74
+
75
+ #{self}.authors
76
+ }
77
+ end
78
+ end
79
+ end
80
+ end