pwn 0.4.602 → 0.4.604

Sign up to get free protection for your applications and to get access to all the features.
Files changed (945) hide show
  1. checksums.yaml +4 -4
  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 +14 -0
  6. data/.rubocop_todo.yml +115 -0
  7. data/.ruby-gemset +1 -0
  8. data/.ruby-version +1 -0
  9. data/.travis.yml +24 -0
  10. data/CHANGELOG_BETWEEN_TAGS.txt +108 -0
  11. data/CODE_OF_CONDUCT.md +46 -0
  12. data/CONTRIBUTING.md +10 -0
  13. data/Gemfile +88 -0
  14. data/LICENSE.txt +22 -0
  15. data/README.md +84 -0
  16. data/Rakefile +20 -0
  17. data/Vagrantfile +250 -0
  18. data/bin/pwn +101 -0
  19. data/bin/pwn_android_war_dialer +161 -0
  20. data/bin/pwn_arachni +157 -0
  21. data/bin/pwn_arachni_rest +174 -0
  22. data/bin/pwn_autoinc_version +58 -0
  23. data/bin/pwn_aws_describe_resources +728 -0
  24. data/bin/pwn_burp_suite_pro_active_scan +113 -0
  25. data/bin/pwn_char_base64_encoding +24 -0
  26. data/bin/pwn_char_dec_encoding +23 -0
  27. data/bin/pwn_char_hex_escaped_encoding +26 -0
  28. data/bin/pwn_char_html_entity_encoding +24 -0
  29. data/bin/pwn_char_unicode_escaped_encoding +23 -0
  30. data/bin/pwn_char_url_encoding +24 -0
  31. data/bin/pwn_defectdojo_engagement_create +158 -0
  32. data/bin/pwn_defectdojo_importscan +104 -0
  33. data/bin/pwn_defectdojo_reimportscan +104 -0
  34. data/bin/pwn_domain_reversewhois +89 -0
  35. data/bin/pwn_fuzz_net_app_proto +160 -0
  36. data/bin/pwn_ibm_appscan_enterprise +112 -0
  37. data/bin/pwn_jenkins_create_job +68 -0
  38. data/bin/pwn_jenkins_create_view +68 -0
  39. data/bin/pwn_jenkins_install_plugin +91 -0
  40. data/bin/pwn_jenkins_thinBackup_aws_s3 +123 -0
  41. data/bin/pwn_jenkins_update_plugins +87 -0
  42. data/bin/pwn_jenkins_useradd +86 -0
  43. data/bin/pwn_mail_agent +127 -0
  44. data/bin/pwn_msf_postgres_login +28 -0
  45. data/bin/pwn_nessus_cloud_scan_crud +345 -0
  46. data/bin/pwn_nessus_cloud_vulnscan +99 -0
  47. data/bin/pwn_nexpose +52 -0
  48. data/bin/pwn_openvas_vulnscan +102 -0
  49. data/bin/pwn_owasp_zap_active_scan +134 -0
  50. data/bin/pwn_pastebin_sample_filter +61 -0
  51. data/bin/pwn_perimeter_recon +326 -0
  52. data/bin/pwn_phone +131 -0
  53. data/bin/pwn_sast +183 -0
  54. data/bin/pwn_serial_check_voicemail +66 -0
  55. data/bin/pwn_serial_msr206 +175 -0
  56. data/bin/pwn_serial_qualcomm_commands +16 -0
  57. data/bin/pwn_serial_son_micro_sm132_rfid +132 -0
  58. data/bin/pwn_shodan_search +79 -0
  59. data/bin/pwn_simple_http_server +57 -0
  60. data/bin/pwn_web_cache_deception +233 -0
  61. data/bin/pwn_www_checkip +62 -0
  62. data/bin/pwn_www_uri_buster +237 -0
  63. data/bin/pwn_xss_dom_vectors +169 -0
  64. data/build_pwn_gem.sh +30 -0
  65. data/documentation/PWN.png +0 -0
  66. data/documentation/PWN_Contributors_and_Users.png +0 -0
  67. data/documentation/fax-spectrogram.png +0 -0
  68. data/documentation/fax-waveform.png +0 -0
  69. data/documentation/pwn_android_war_dialer_session.png +0 -0
  70. data/documentation/pwn_install.png +0 -0
  71. data/documentation/pwn_wallpaper.jpg +0 -0
  72. data/documentation/ringing-spectrogram.png +0 -0
  73. data/documentation/ringing-waveform.png +0 -0
  74. data/etc/systemd/msfrpcd.service +12 -0
  75. data/etc/systemd/openvas.service +14 -0
  76. data/etc/userland/aws/apache2/jenkins_443.conf +90 -0
  77. data/etc/userland/aws/apache2/jenkins_80.conf +7 -0
  78. data/etc/userland/aws/apache2/openvas_443.conf +87 -0
  79. data/etc/userland/aws/apache2/openvas_80.conf +7 -0
  80. data/etc/userland/aws/apache2/sast_443.conf +87 -0
  81. data/etc/userland/aws/apache2/sast_80.conf +9 -0
  82. data/etc/userland/aws/apache2/vagrant.yaml.EXAMPLE +9 -0
  83. data/etc/userland/aws/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  84. data/etc/userland/aws/arachni/navigation.instruct.EXAMPLE +3 -0
  85. data/etc/userland/aws/burpsuite/navigation.instruct.EXAMPLE +3 -0
  86. data/etc/userland/aws/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  87. data/etc/userland/aws/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  88. data/etc/userland/aws/jenkins/inject_build_envs.sh +15 -0
  89. data/etc/userland/aws/jenkins/jenkins +81 -0
  90. data/etc/userland/aws/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  91. data/etc/userland/aws/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  92. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  93. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  94. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  95. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  96. data/etc/userland/aws/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  97. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  98. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  99. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  100. data/etc/userland/aws/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  101. data/etc/userland/aws/jenkins/jobs/selfupdate-gem.xml +42 -0
  102. data/etc/userland/aws/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  103. data/etc/userland/aws/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  104. data/etc/userland/aws/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  105. data/etc/userland/aws/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  106. data/etc/userland/aws/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  107. data/etc/userland/aws/jenkins/jobs/selfupdate-os.xml +42 -0
  108. data/etc/userland/aws/jenkins/jobs/selfupdate-pwn.xml +42 -0
  109. data/etc/userland/aws/jenkins/jobs/selfupdate-rvm.xml +42 -0
  110. data/etc/userland/aws/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  111. data/etc/userland/aws/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  112. data/etc/userland/aws/jenkins/jobs_userland/.gitkeep +0 -0
  113. data/etc/userland/aws/jenkins/log_parser_rules/arachni.rules +5 -0
  114. data/etc/userland/aws/jenkins/log_parser_rules/sast.rules +2 -0
  115. data/etc/userland/aws/jenkins/log_parser_rules/self_update.rules +14 -0
  116. data/etc/userland/aws/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  117. data/etc/userland/aws/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  118. data/etc/userland/aws/jenkins/log_parser_rules/wpscan.rules +2 -0
  119. data/etc/userland/aws/jenkins/vagrant.yaml.EXAMPLE +8 -0
  120. data/etc/userland/aws/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  121. data/etc/userland/aws/metasploit/vagrant.yaml.EXAMPLE +4 -0
  122. data/etc/userland/aws/nessus/vagrant.yaml.EXAMPLE +15 -0
  123. data/etc/userland/aws/openvas/vagrant.yaml.EXAMPLE +2 -0
  124. data/etc/userland/aws/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  125. data/etc/userland/aws/postgres/vagrant.yaml.EXAMPLE +2 -0
  126. data/etc/userland/aws/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  127. data/etc/userland/aws/vagrant.yaml.EXAMPLE +35 -0
  128. data/etc/userland/docker/apache2/jenkins_443.conf +90 -0
  129. data/etc/userland/docker/apache2/jenkins_80.conf +7 -0
  130. data/etc/userland/docker/apache2/openvas_443.conf +87 -0
  131. data/etc/userland/docker/apache2/openvas_80.conf +7 -0
  132. data/etc/userland/docker/apache2/sast_443.conf +87 -0
  133. data/etc/userland/docker/apache2/sast_80.conf +9 -0
  134. data/etc/userland/docker/apache2/vagrant.yaml.EXAMPLE +9 -0
  135. data/etc/userland/docker/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  136. data/etc/userland/docker/arachni/navigation.instruct.EXAMPLE +3 -0
  137. data/etc/userland/docker/burpsuite/navigation.instruct.EXAMPLE +3 -0
  138. data/etc/userland/docker/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  139. data/etc/userland/docker/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  140. data/etc/userland/docker/jenkins/inject_build_envs.sh +15 -0
  141. data/etc/userland/docker/jenkins/jenkins +81 -0
  142. data/etc/userland/docker/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  143. data/etc/userland/docker/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  144. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  145. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  146. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  147. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  148. data/etc/userland/docker/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  149. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  150. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  151. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  152. data/etc/userland/docker/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  153. data/etc/userland/docker/jenkins/jobs/selfupdate-gem.xml +42 -0
  154. data/etc/userland/docker/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  155. data/etc/userland/docker/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  156. data/etc/userland/docker/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  157. data/etc/userland/docker/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  158. data/etc/userland/docker/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  159. data/etc/userland/docker/jenkins/jobs/selfupdate-os.xml +42 -0
  160. data/etc/userland/docker/jenkins/jobs/selfupdate-pwn.xml +42 -0
  161. data/etc/userland/docker/jenkins/jobs/selfupdate-rvm.xml +42 -0
  162. data/etc/userland/docker/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  163. data/etc/userland/docker/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  164. data/etc/userland/docker/jenkins/jobs_userland/.gitkeep +0 -0
  165. data/etc/userland/docker/jenkins/log_parser_rules/arachni.rules +5 -0
  166. data/etc/userland/docker/jenkins/log_parser_rules/sast.rules +2 -0
  167. data/etc/userland/docker/jenkins/log_parser_rules/self_update.rules +14 -0
  168. data/etc/userland/docker/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  169. data/etc/userland/docker/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  170. data/etc/userland/docker/jenkins/log_parser_rules/wpscan.rules +2 -0
  171. data/etc/userland/docker/jenkins/vagrant.yaml.EXAMPLE +8 -0
  172. data/etc/userland/docker/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  173. data/etc/userland/docker/metasploit/vagrant.yaml.EXAMPLE +4 -0
  174. data/etc/userland/docker/nessus/vagrant.yaml.EXAMPLE +15 -0
  175. data/etc/userland/docker/openvas/vagrant.yaml.EXAMPLE +2 -0
  176. data/etc/userland/docker/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  177. data/etc/userland/docker/postgres/vagrant.yaml.EXAMPLE +2 -0
  178. data/etc/userland/docker/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  179. data/etc/userland/qemu/apache2/jenkins_443.conf +90 -0
  180. data/etc/userland/qemu/apache2/jenkins_80.conf +7 -0
  181. data/etc/userland/qemu/apache2/openvas_443.conf +87 -0
  182. data/etc/userland/qemu/apache2/openvas_80.conf +7 -0
  183. data/etc/userland/qemu/apache2/sast_443.conf +87 -0
  184. data/etc/userland/qemu/apache2/sast_80.conf +9 -0
  185. data/etc/userland/qemu/apache2/vagrant.yaml.EXAMPLE +9 -0
  186. data/etc/userland/qemu/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  187. data/etc/userland/qemu/arachni/navigation.instruct.EXAMPLE +3 -0
  188. data/etc/userland/qemu/burpsuite/navigation.instruct.EXAMPLE +3 -0
  189. data/etc/userland/qemu/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  190. data/etc/userland/qemu/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  191. data/etc/userland/qemu/jenkins/inject_build_envs.sh +15 -0
  192. data/etc/userland/qemu/jenkins/jenkins +81 -0
  193. data/etc/userland/qemu/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  194. data/etc/userland/qemu/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  195. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  196. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  197. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  198. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  199. data/etc/userland/qemu/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  200. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  201. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  202. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  203. data/etc/userland/qemu/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  204. data/etc/userland/qemu/jenkins/jobs/selfupdate-gem.xml +42 -0
  205. data/etc/userland/qemu/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  206. data/etc/userland/qemu/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  207. data/etc/userland/qemu/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  208. data/etc/userland/qemu/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  209. data/etc/userland/qemu/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  210. data/etc/userland/qemu/jenkins/jobs/selfupdate-os.xml +42 -0
  211. data/etc/userland/qemu/jenkins/jobs/selfupdate-pwn.xml +42 -0
  212. data/etc/userland/qemu/jenkins/jobs/selfupdate-rvm.xml +42 -0
  213. data/etc/userland/qemu/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  214. data/etc/userland/qemu/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  215. data/etc/userland/qemu/jenkins/jobs_userland/.gitkeep +0 -0
  216. data/etc/userland/qemu/jenkins/log_parser_rules/arachni.rules +5 -0
  217. data/etc/userland/qemu/jenkins/log_parser_rules/sast.rules +2 -0
  218. data/etc/userland/qemu/jenkins/log_parser_rules/self_update.rules +14 -0
  219. data/etc/userland/qemu/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  220. data/etc/userland/qemu/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  221. data/etc/userland/qemu/jenkins/log_parser_rules/wpscan.rules +2 -0
  222. data/etc/userland/qemu/jenkins/vagrant.yaml.EXAMPLE +8 -0
  223. data/etc/userland/qemu/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  224. data/etc/userland/qemu/metasploit/vagrant.yaml.EXAMPLE +4 -0
  225. data/etc/userland/qemu/nessus/vagrant.yaml.EXAMPLE +15 -0
  226. data/etc/userland/qemu/openvas/vagrant.yaml.EXAMPLE +2 -0
  227. data/etc/userland/qemu/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  228. data/etc/userland/qemu/postgres/vagrant.yaml.EXAMPLE +2 -0
  229. data/etc/userland/qemu/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  230. data/etc/userland/ruby-gem/apache2/jenkins_443.conf +90 -0
  231. data/etc/userland/ruby-gem/apache2/jenkins_80.conf +7 -0
  232. data/etc/userland/ruby-gem/apache2/openvas_443.conf +87 -0
  233. data/etc/userland/ruby-gem/apache2/openvas_80.conf +7 -0
  234. data/etc/userland/ruby-gem/apache2/sast_443.conf +87 -0
  235. data/etc/userland/ruby-gem/apache2/sast_80.conf +9 -0
  236. data/etc/userland/ruby-gem/apache2/vagrant.yaml.EXAMPLE +9 -0
  237. data/etc/userland/ruby-gem/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  238. data/etc/userland/ruby-gem/arachni/navigation.instruct.EXAMPLE +3 -0
  239. data/etc/userland/ruby-gem/burpsuite/navigation.instruct.EXAMPLE +3 -0
  240. data/etc/userland/ruby-gem/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  241. data/etc/userland/ruby-gem/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  242. data/etc/userland/ruby-gem/jenkins/inject_build_envs.sh +15 -0
  243. data/etc/userland/ruby-gem/jenkins/jenkins +81 -0
  244. data/etc/userland/ruby-gem/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  245. data/etc/userland/ruby-gem/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  246. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  247. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  248. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  249. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  250. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  251. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  252. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  253. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  254. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  255. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-gem.xml +42 -0
  256. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  257. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  258. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  259. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  260. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  261. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-os.xml +42 -0
  262. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-pwn.xml +42 -0
  263. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-rvm.xml +42 -0
  264. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  265. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  266. data/etc/userland/ruby-gem/jenkins/jobs_userland/.gitkeep +0 -0
  267. data/etc/userland/ruby-gem/jenkins/log_parser_rules/arachni.rules +5 -0
  268. data/etc/userland/ruby-gem/jenkins/log_parser_rules/sast.rules +2 -0
  269. data/etc/userland/ruby-gem/jenkins/log_parser_rules/self_update.rules +14 -0
  270. data/etc/userland/ruby-gem/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  271. data/etc/userland/ruby-gem/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  272. data/etc/userland/ruby-gem/jenkins/log_parser_rules/wpscan.rules +2 -0
  273. data/etc/userland/ruby-gem/jenkins/vagrant.yaml.EXAMPLE +8 -0
  274. data/etc/userland/ruby-gem/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  275. data/etc/userland/ruby-gem/metasploit/vagrant.yaml.EXAMPLE +4 -0
  276. data/etc/userland/ruby-gem/nessus/vagrant.yaml.EXAMPLE +15 -0
  277. data/etc/userland/ruby-gem/openvas/vagrant.yaml.EXAMPLE +2 -0
  278. data/etc/userland/ruby-gem/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  279. data/etc/userland/ruby-gem/postgres/vagrant.yaml.EXAMPLE +2 -0
  280. data/etc/userland/ruby-gem/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  281. data/etc/userland/virtualbox/apache2/jenkins_443.conf +90 -0
  282. data/etc/userland/virtualbox/apache2/jenkins_80.conf +7 -0
  283. data/etc/userland/virtualbox/apache2/openvas_443.conf +87 -0
  284. data/etc/userland/virtualbox/apache2/openvas_80.conf +7 -0
  285. data/etc/userland/virtualbox/apache2/sast_443.conf +87 -0
  286. data/etc/userland/virtualbox/apache2/sast_80.conf +9 -0
  287. data/etc/userland/virtualbox/apache2/vagrant.yaml.EXAMPLE +9 -0
  288. data/etc/userland/virtualbox/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  289. data/etc/userland/virtualbox/arachni/navigation.instruct.EXAMPLE +3 -0
  290. data/etc/userland/virtualbox/burpsuite/navigation.instruct.EXAMPLE +3 -0
  291. data/etc/userland/virtualbox/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  292. data/etc/userland/virtualbox/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  293. data/etc/userland/virtualbox/jenkins/inject_build_envs.sh +15 -0
  294. data/etc/userland/virtualbox/jenkins/jenkins +81 -0
  295. data/etc/userland/virtualbox/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  296. data/etc/userland/virtualbox/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  297. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  298. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  299. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  300. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  301. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  302. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  303. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  304. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  305. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  306. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-gem.xml +42 -0
  307. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  308. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  309. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  310. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  311. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  312. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-os.xml +42 -0
  313. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-pwn.xml +42 -0
  314. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-rvm.xml +42 -0
  315. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  316. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  317. data/etc/userland/virtualbox/jenkins/jobs_userland/.gitkeep +0 -0
  318. data/etc/userland/virtualbox/jenkins/log_parser_rules/arachni.rules +5 -0
  319. data/etc/userland/virtualbox/jenkins/log_parser_rules/sast.rules +2 -0
  320. data/etc/userland/virtualbox/jenkins/log_parser_rules/self_update.rules +14 -0
  321. data/etc/userland/virtualbox/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  322. data/etc/userland/virtualbox/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  323. data/etc/userland/virtualbox/jenkins/log_parser_rules/wpscan.rules +2 -0
  324. data/etc/userland/virtualbox/jenkins/vagrant.yaml.EXAMPLE +8 -0
  325. data/etc/userland/virtualbox/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  326. data/etc/userland/virtualbox/metasploit/vagrant.yaml.EXAMPLE +4 -0
  327. data/etc/userland/virtualbox/nessus/vagrant.yaml.EXAMPLE +15 -0
  328. data/etc/userland/virtualbox/openvas/vagrant.yaml.EXAMPLE +2 -0
  329. data/etc/userland/virtualbox/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  330. data/etc/userland/virtualbox/postgres/vagrant.yaml.EXAMPLE +2 -0
  331. data/etc/userland/virtualbox/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  332. data/etc/userland/virtualbox/vagrant.yaml.EXAMPLE +4 -0
  333. data/etc/userland/vmware/apache2/jenkins_443.conf +90 -0
  334. data/etc/userland/vmware/apache2/jenkins_80.conf +7 -0
  335. data/etc/userland/vmware/apache2/openvas_443.conf +87 -0
  336. data/etc/userland/vmware/apache2/openvas_80.conf +7 -0
  337. data/etc/userland/vmware/apache2/sast_443.conf +87 -0
  338. data/etc/userland/vmware/apache2/sast_80.conf +9 -0
  339. data/etc/userland/vmware/apache2/vagrant.yaml.EXAMPLE +9 -0
  340. data/etc/userland/vmware/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  341. data/etc/userland/vmware/arachni/navigation.instruct.EXAMPLE +3 -0
  342. data/etc/userland/vmware/burpsuite/navigation.instruct.EXAMPLE +3 -0
  343. data/etc/userland/vmware/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  344. data/etc/userland/vmware/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  345. data/etc/userland/vmware/jenkins/inject_build_envs.sh +15 -0
  346. data/etc/userland/vmware/jenkins/jenkins +81 -0
  347. data/etc/userland/vmware/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  348. data/etc/userland/vmware/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  349. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  350. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  351. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  352. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  353. data/etc/userland/vmware/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  354. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  355. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  356. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  357. data/etc/userland/vmware/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  358. data/etc/userland/vmware/jenkins/jobs/selfupdate-gem.xml +42 -0
  359. data/etc/userland/vmware/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  360. data/etc/userland/vmware/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  361. data/etc/userland/vmware/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  362. data/etc/userland/vmware/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  363. data/etc/userland/vmware/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  364. data/etc/userland/vmware/jenkins/jobs/selfupdate-os.xml +42 -0
  365. data/etc/userland/vmware/jenkins/jobs/selfupdate-pwn.xml +42 -0
  366. data/etc/userland/vmware/jenkins/jobs/selfupdate-rvm.xml +42 -0
  367. data/etc/userland/vmware/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  368. data/etc/userland/vmware/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  369. data/etc/userland/vmware/jenkins/jobs_userland/.gitkeep +0 -0
  370. data/etc/userland/vmware/jenkins/log_parser_rules/arachni.rules +5 -0
  371. data/etc/userland/vmware/jenkins/log_parser_rules/sast.rules +2 -0
  372. data/etc/userland/vmware/jenkins/log_parser_rules/self_update.rules +14 -0
  373. data/etc/userland/vmware/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  374. data/etc/userland/vmware/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  375. data/etc/userland/vmware/jenkins/log_parser_rules/wpscan.rules +2 -0
  376. data/etc/userland/vmware/jenkins/vagrant.yaml.EXAMPLE +8 -0
  377. data/etc/userland/vmware/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  378. data/etc/userland/vmware/metasploit/vagrant.yaml.EXAMPLE +4 -0
  379. data/etc/userland/vmware/nessus/vagrant.yaml.EXAMPLE +15 -0
  380. data/etc/userland/vmware/openvas/vagrant.yaml.EXAMPLE +2 -0
  381. data/etc/userland/vmware/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  382. data/etc/userland/vmware/postgres/vagrant.yaml.EXAMPLE +2 -0
  383. data/etc/userland/vmware/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  384. data/etc/userland/vmware/vagrant.yaml.EXAMPLE +5 -0
  385. data/find_latest_gem_versions_per_Gemfile.sh +11 -0
  386. data/git_commit_test_reinit_gem.sh +37 -0
  387. data/install.sh +176 -0
  388. data/lib/pwn/aws/acm.rb +92 -0
  389. data/lib/pwn/aws/api_gateway.rb +92 -0
  390. data/lib/pwn/aws/app_stream.rb +92 -0
  391. data/lib/pwn/aws/application_auto_scaling.rb +92 -0
  392. data/lib/pwn/aws/application_discovery_service.rb +92 -0
  393. data/lib/pwn/aws/auto_scaling.rb +92 -0
  394. data/lib/pwn/aws/batch.rb +92 -0
  395. data/lib/pwn/aws/budgets.rb +92 -0
  396. data/lib/pwn/aws/cloud_formation.rb +92 -0
  397. data/lib/pwn/aws/cloud_front.rb +92 -0
  398. data/lib/pwn/aws/cloud_hsm.rb +92 -0
  399. data/lib/pwn/aws/cloud_search.rb +92 -0
  400. data/lib/pwn/aws/cloud_search_domain.rb +92 -0
  401. data/lib/pwn/aws/cloud_trail.rb +92 -0
  402. data/lib/pwn/aws/cloud_watch.rb +92 -0
  403. data/lib/pwn/aws/cloud_watch_events.rb +92 -0
  404. data/lib/pwn/aws/cloud_watch_logs.rb +92 -0
  405. data/lib/pwn/aws/code_build.rb +92 -0
  406. data/lib/pwn/aws/code_commit.rb +92 -0
  407. data/lib/pwn/aws/code_deploy.rb +92 -0
  408. data/lib/pwn/aws/code_pipeline.rb +92 -0
  409. data/lib/pwn/aws/cognito_identity.rb +92 -0
  410. data/lib/pwn/aws/cognito_identity_provider.rb +92 -0
  411. data/lib/pwn/aws/cognito_sync.rb +92 -0
  412. data/lib/pwn/aws/config_service.rb +92 -0
  413. data/lib/pwn/aws/data_pipleline.rb +92 -0
  414. data/lib/pwn/aws/database_migration_service.rb +92 -0
  415. data/lib/pwn/aws/device_farm.rb +92 -0
  416. data/lib/pwn/aws/direct_connect.rb +92 -0
  417. data/lib/pwn/aws/directory_service.rb +92 -0
  418. data/lib/pwn/aws/dynamo_db.rb +92 -0
  419. data/lib/pwn/aws/dynamo_db_streams.rb +92 -0
  420. data/lib/pwn/aws/ec2.rb +92 -0
  421. data/lib/pwn/aws/ecr.rb +92 -0
  422. data/lib/pwn/aws/ecs.rb +92 -0
  423. data/lib/pwn/aws/efs.rb +92 -0
  424. data/lib/pwn/aws/elasti_cache.rb +92 -0
  425. data/lib/pwn/aws/elastic_beanstalk.rb +89 -0
  426. data/lib/pwn/aws/elastic_load_balancing.rb +92 -0
  427. data/lib/pwn/aws/elastic_load_balancing_v2.rb +92 -0
  428. data/lib/pwn/aws/elastic_transcoder.rb +92 -0
  429. data/lib/pwn/aws/elasticsearch_service.rb +92 -0
  430. data/lib/pwn/aws/emr.rb +92 -0
  431. data/lib/pwn/aws/firehose.rb +92 -0
  432. data/lib/pwn/aws/game_lift.rb +92 -0
  433. data/lib/pwn/aws/glacier.rb +92 -0
  434. data/lib/pwn/aws/health.rb +92 -0
  435. data/lib/pwn/aws/iam.rb +92 -0
  436. data/lib/pwn/aws/import_export.rb +92 -0
  437. data/lib/pwn/aws/inspector.rb +92 -0
  438. data/lib/pwn/aws/iot.rb +92 -0
  439. data/lib/pwn/aws/iot_data_plane.rb +92 -0
  440. data/lib/pwn/aws/kinesis.rb +92 -0
  441. data/lib/pwn/aws/kinesis_analytics.rb +92 -0
  442. data/lib/pwn/aws/kms.rb +92 -0
  443. data/lib/pwn/aws/lambda.rb +92 -0
  444. data/lib/pwn/aws/lambda_preview.rb +92 -0
  445. data/lib/pwn/aws/lex.rb +92 -0
  446. data/lib/pwn/aws/lightsail.rb +92 -0
  447. data/lib/pwn/aws/machine_learning.rb +92 -0
  448. data/lib/pwn/aws/marketplace_commerce_analytics.rb +92 -0
  449. data/lib/pwn/aws/marketplace_metering.rb +92 -0
  450. data/lib/pwn/aws/ops_works.rb +92 -0
  451. data/lib/pwn/aws/ops_works_cm.rb +92 -0
  452. data/lib/pwn/aws/pinpoint.rb +92 -0
  453. data/lib/pwn/aws/polly.rb +92 -0
  454. data/lib/pwn/aws/rds.rb +92 -0
  455. data/lib/pwn/aws/redshift.rb +92 -0
  456. data/lib/pwn/aws/rekognition.rb +92 -0
  457. data/lib/pwn/aws/route53.rb +92 -0
  458. data/lib/pwn/aws/route53_domains.rb +92 -0
  459. data/lib/pwn/aws/s3.rb +92 -0
  460. data/lib/pwn/aws/service_catalog.rb +92 -0
  461. data/lib/pwn/aws/ses.rb +92 -0
  462. data/lib/pwn/aws/shield.rb +92 -0
  463. data/lib/pwn/aws/simple_db.rb +92 -0
  464. data/lib/pwn/aws/sms.rb +92 -0
  465. data/lib/pwn/aws/snowball.rb +92 -0
  466. data/lib/pwn/aws/sns.rb +92 -0
  467. data/lib/pwn/aws/sqs.rb +92 -0
  468. data/lib/pwn/aws/ssm.rb +92 -0
  469. data/lib/pwn/aws/states.rb +92 -0
  470. data/lib/pwn/aws/storage_gateway.rb +92 -0
  471. data/lib/pwn/aws/sts.rb +63 -0
  472. data/lib/pwn/aws/support.rb +92 -0
  473. data/lib/pwn/aws/swf.rb +92 -0
  474. data/lib/pwn/aws/waf.rb +92 -0
  475. data/lib/pwn/aws/waf_regional.rb +92 -0
  476. data/lib/pwn/aws/workspaces.rb +92 -0
  477. data/lib/pwn/aws/x_ray.rb +92 -0
  478. data/lib/pwn/aws.rb +105 -0
  479. data/lib/pwn/banner/bubble.rb +42 -0
  480. data/lib/pwn/banner/matrix.rb +199 -0
  481. data/lib/pwn/banner/ninja.rb +54 -0
  482. data/lib/pwn/banner/off_the_air.rb +73 -0
  483. data/lib/pwn/banner/pirate.rb +62 -0
  484. data/lib/pwn/banner.rb +78 -0
  485. data/lib/pwn/ffi.rb +16 -0
  486. data/lib/pwn/plugins/android.rb +1616 -0
  487. data/lib/pwn/plugins/ansible_vault.rb +75 -0
  488. data/lib/pwn/plugins/authentication_helper.rb +79 -0
  489. data/lib/pwn/plugins/baresip.rb +704 -0
  490. data/lib/pwn/plugins/basic_auth.rb +63 -0
  491. data/lib/pwn/plugins/beef.rb +309 -0
  492. data/lib/pwn/plugins/burp_suite.rb +344 -0
  493. data/lib/pwn/plugins/bus_pirate.rb +148 -0
  494. data/lib/pwn/plugins/char.rb +459 -0
  495. data/lib/pwn/plugins/credit_card.rb +68 -0
  496. data/lib/pwn/plugins/dao_ldap.rb +131 -0
  497. data/lib/pwn/plugins/dao_mongo.rb +96 -0
  498. data/lib/pwn/plugins/dao_postgres.rb +224 -0
  499. data/lib/pwn/plugins/dao_sqlite3.rb +125 -0
  500. data/lib/pwn/plugins/defect_dojo.rb +759 -0
  501. data/lib/pwn/plugins/detect_os.rb +40 -0
  502. data/lib/pwn/plugins/ein.rb +141 -0
  503. data/lib/pwn/plugins/file_fu.rb +73 -0
  504. data/lib/pwn/plugins/fuzz.rb +206 -0
  505. data/lib/pwn/plugins/git.rb +166 -0
  506. data/lib/pwn/plugins/github.rb +136 -0
  507. data/lib/pwn/plugins/hacker_one.rb +152 -0
  508. data/lib/pwn/plugins/http_intercept_helper.rb +122 -0
  509. data/lib/pwn/plugins/ibm_appscan.rb +927 -0
  510. data/lib/pwn/plugins/ip_info.rb +100 -0
  511. data/lib/pwn/plugins/jenkins.rb +545 -0
  512. data/lib/pwn/plugins/json_pathify.rb +46 -0
  513. data/lib/pwn/plugins/mail_agent.rb +344 -0
  514. data/lib/pwn/plugins/metasploit.rb +151 -0
  515. data/lib/pwn/plugins/msr206.rb +1193 -0
  516. data/lib/pwn/plugins/nessus_cloud.rb +840 -0
  517. data/lib/pwn/plugins/nexpose_vuln_scan.rb +356 -0
  518. data/lib/pwn/plugins/nmap_it.rb +100 -0
  519. data/lib/pwn/plugins/oauth2.rb +67 -0
  520. data/lib/pwn/plugins/ocr.rb +43 -0
  521. data/lib/pwn/plugins/open_ai.rb +201 -0
  522. data/lib/pwn/plugins/openvas.rb +308 -0
  523. data/lib/pwn/plugins/owasp_zap.rb +550 -0
  524. data/lib/pwn/plugins/packet.rb +1313 -0
  525. data/lib/pwn/plugins/pdf_parse.rb +53 -0
  526. data/lib/pwn/plugins/pony.rb +282 -0
  527. data/lib/pwn/plugins/pwn_logger.rb +46 -0
  528. data/lib/pwn/plugins/rabbit_mq.rb +70 -0
  529. data/lib/pwn/plugins/rfidler.rb +56 -0
  530. data/lib/pwn/plugins/serial.rb +315 -0
  531. data/lib/pwn/plugins/shodan.rb +566 -0
  532. data/lib/pwn/plugins/slack_client.rb +104 -0
  533. data/lib/pwn/plugins/sock.rb +188 -0
  534. data/lib/pwn/plugins/son_micro_rfid.rb +504 -0
  535. data/lib/pwn/plugins/spider.rb +80 -0
  536. data/lib/pwn/plugins/ssn.rb +52 -0
  537. data/lib/pwn/plugins/thread_pool.rb +88 -0
  538. data/lib/pwn/plugins/transparent_browser.rb +423 -0
  539. data/lib/pwn/plugins/twitter_api.rb +148 -0
  540. data/lib/pwn/plugins/uri_scheme.rb +328 -0
  541. data/lib/pwn/plugins/voice.rb +145 -0
  542. data/lib/pwn/plugins/vsphere.rb +82 -0
  543. data/lib/pwn/plugins.rb +71 -0
  544. data/lib/pwn/reports/fuzz.rb +272 -0
  545. data/lib/pwn/reports/phone.rb +312 -0
  546. data/lib/pwn/reports/sast.rb +311 -0
  547. data/lib/pwn/reports/uri_buster.rb +248 -0
  548. data/lib/pwn/reports.rb +23 -0
  549. data/lib/pwn/sast/amqp_connect_as_guest.rb +143 -0
  550. data/lib/pwn/sast/apache_file_system_util_api.rb +144 -0
  551. data/lib/pwn/sast/aws.rb +145 -0
  552. data/lib/pwn/sast/banned_function_calls_c.rb +272 -0
  553. data/lib/pwn/sast/base64.rb +143 -0
  554. data/lib/pwn/sast/beef_hook.rb +143 -0
  555. data/lib/pwn/sast/cmd_execution_java.rb +145 -0
  556. data/lib/pwn/sast/cmd_execution_python.rb +147 -0
  557. data/lib/pwn/sast/cmd_execution_ruby.rb +155 -0
  558. data/lib/pwn/sast/cmd_execution_scala.rb +145 -0
  559. data/lib/pwn/sast/csrf.rb +142 -0
  560. data/lib/pwn/sast/deserial_java.rb +150 -0
  561. data/lib/pwn/sast/emoticon.rb +151 -0
  562. data/lib/pwn/sast/eval.rb +144 -0
  563. data/lib/pwn/sast/factory.rb +145 -0
  564. data/lib/pwn/sast/http_authorization_header.rb +148 -0
  565. data/lib/pwn/sast/inner_html.rb +144 -0
  566. data/lib/pwn/sast/keystore.rb +143 -0
  567. data/lib/pwn/sast/location_hash.rb +144 -0
  568. data/lib/pwn/sast/log4j.rb +143 -0
  569. data/lib/pwn/sast/logger.rb +158 -0
  570. data/lib/pwn/sast/outer_html.rb +144 -0
  571. data/lib/pwn/sast/password.rb +143 -0
  572. data/lib/pwn/sast/php_input_mechanisms.rb +149 -0
  573. data/lib/pwn/sast/php_type_juggling.rb +144 -0
  574. data/lib/pwn/sast/pom_version.rb +152 -0
  575. data/lib/pwn/sast/port.rb +150 -0
  576. data/lib/pwn/sast/private_key.rb +143 -0
  577. data/lib/pwn/sast/redirect.rb +145 -0
  578. data/lib/pwn/sast/redos.rb +150 -0
  579. data/lib/pwn/sast/shell.rb +151 -0
  580. data/lib/pwn/sast/signature.rb +143 -0
  581. data/lib/pwn/sast/sql.rb +147 -0
  582. data/lib/pwn/sast/ssl.rb +147 -0
  583. data/lib/pwn/sast/sudo.rb +143 -0
  584. data/lib/pwn/sast/task_tag.rb +157 -0
  585. data/lib/pwn/sast/throw_errors.rb +143 -0
  586. data/lib/pwn/sast/token.rb +145 -0
  587. data/lib/pwn/sast/version.rb +144 -0
  588. data/lib/pwn/sast/window_location_hash.rb +143 -0
  589. data/lib/pwn/sast.rb +56 -0
  590. data/lib/pwn/version.rb +5 -0
  591. data/lib/pwn/www/app_cobalt_io.rb +137 -0
  592. data/lib/pwn/www/bing.rb +89 -0
  593. data/lib/pwn/www/bug_crowd.rb +134 -0
  594. data/lib/pwn/www/checkip.rb +71 -0
  595. data/lib/pwn/www/coinbase_pro.rb +134 -0
  596. data/lib/pwn/www/duckduckgo.rb +111 -0
  597. data/lib/pwn/www/facebook.rb +122 -0
  598. data/lib/pwn/www/google.rb +114 -0
  599. data/lib/pwn/www/hacker_one.rb +122 -0
  600. data/lib/pwn/www/linkedin.rb +122 -0
  601. data/lib/pwn/www/pandora.rb +122 -0
  602. data/lib/pwn/www/pastebin.rb +84 -0
  603. data/lib/pwn/www/paypal.rb +204 -0
  604. data/lib/pwn/www/synack.rb +134 -0
  605. data/lib/pwn/www/torch.rb +106 -0
  606. data/lib/pwn/www/trading_view.rb +125 -0
  607. data/lib/pwn/www/twitter.rb +134 -0
  608. data/lib/pwn/www/uber.rb +122 -0
  609. data/lib/pwn/www/upwork.rb +122 -0
  610. data/lib/pwn/www/youtube.rb +89 -0
  611. data/lib/pwn/www.rb +35 -0
  612. data/lib/pwn.rb +25 -0
  613. data/packer/daemons/msfrpcd.rb +64 -0
  614. data/packer/daemons/openvas.rb +51 -0
  615. data/packer/deploy_docker_containers.sh +9 -0
  616. data/packer/deploy_packer_box.sh +87 -0
  617. data/packer/docker/kali_rolling_docker_pwn_fuzz_net_app_proto.json +44 -0
  618. data/packer/docker/kali_rolling_docker_pwn_prototyper.json +48 -0
  619. data/packer/docker/kali_rolling_docker_pwn_sast.json +44 -0
  620. data/packer/docker/kali_rolling_docker_pwn_transparent_browser.json +46 -0
  621. data/packer/docker/kali_rolling_docker_pwn_www_checkip.json +34 -0
  622. data/packer/http/kali_rolling_preseed.cfg +81 -0
  623. data/packer/kali_rolling_aws_ami.json +137 -0
  624. data/packer/kali_rolling_qemu_kvm.json +157 -0
  625. data/packer/kali_rolling_virtualbox.json +184 -0
  626. data/packer/kali_rolling_vmware.json +165 -0
  627. data/packer/packer_secrets.json.EXAMPLE +9 -0
  628. data/packer/provisioners/PayloadsAllTheThings.sh +5 -0
  629. data/packer/provisioners/SecLists.sh +5 -0
  630. data/packer/provisioners/afl.sh +28 -0
  631. data/packer/provisioners/aliases.rb +18 -0
  632. data/packer/provisioners/amass.sh +5 -0
  633. data/packer/provisioners/android.sh +18 -0
  634. data/packer/provisioners/ansible.sh +5 -0
  635. data/packer/provisioners/apache2.sh +24 -0
  636. data/packer/provisioners/arachni.sh +28 -0
  637. data/packer/provisioners/awscli.sh +5 -0
  638. data/packer/provisioners/bashrc.sh +13 -0
  639. data/packer/provisioners/beef.rb +23 -0
  640. data/packer/provisioners/burpsuite.sh +23 -0
  641. data/packer/provisioners/chrome.sh +11 -0
  642. data/packer/provisioners/coreutils.sh +6 -0
  643. data/packer/provisioners/curl.sh +6 -0
  644. data/packer/provisioners/docker.sh +43 -0
  645. data/packer/provisioners/docker_bashrc.sh +2 -0
  646. data/packer/provisioners/docker_rvm.sh +22 -0
  647. data/packer/provisioners/eyewitness.sh +5 -0
  648. data/packer/provisioners/ffmpeg.sh +6 -0
  649. data/packer/provisioners/firefox.sh +7 -0
  650. data/packer/provisioners/fuzzdb.sh +5 -0
  651. data/packer/provisioners/gdb.sh +5 -0
  652. data/packer/provisioners/geckodriver.sh +9 -0
  653. data/packer/provisioners/ghidra.sh +5 -0
  654. data/packer/provisioners/git.sh +6 -0
  655. data/packer/provisioners/init_image.sh +103 -0
  656. data/packer/provisioners/install_vagrant_ssh_key.sh +15 -0
  657. data/packer/provisioners/jenkins.sh +62 -0
  658. data/packer/provisioners/metasploit.rb +59 -0
  659. data/packer/provisioners/nmap_all_live_hosts.sh +8 -0
  660. data/packer/provisioners/openvas.sh +23 -0
  661. data/packer/provisioners/openvas_wrappers.sh +4 -0
  662. data/packer/provisioners/openvpn.sh +7 -0
  663. data/packer/provisioners/peda.sh +4 -0
  664. data/packer/provisioners/phantomjs.rb +28 -0
  665. data/packer/provisioners/phantomjs_wrapper.sh +22 -0
  666. data/packer/provisioners/post_install.sh +41 -0
  667. data/packer/provisioners/postgresql.sh +49 -0
  668. data/packer/provisioners/preeny.sh +8 -0
  669. data/packer/provisioners/pwn.sh +100 -0
  670. data/packer/provisioners/pwntools.sh +13 -0
  671. data/packer/provisioners/radamsa.sh +7 -0
  672. data/packer/provisioners/rc.local.sh +16 -0
  673. data/packer/provisioners/reboot_os.sh +7 -0
  674. data/packer/provisioners/ruby.sh +35 -0
  675. data/packer/provisioners/rvm.sh +31 -0
  676. data/packer/provisioners/scapy.sh +5 -0
  677. data/packer/provisioners/scout2.sh +5 -0
  678. data/packer/provisioners/sox.sh +5 -0
  679. data/packer/provisioners/ssllabs-scan.sh +9 -0
  680. data/packer/provisioners/strace.sh +5 -0
  681. data/packer/provisioners/sublist3r.sh +5 -0
  682. data/packer/provisioners/terminator.sh +5 -0
  683. data/packer/provisioners/toggle_tor.sh +2 -0
  684. data/packer/provisioners/tor.sh +5 -0
  685. data/packer/provisioners/twinkle.sh +6 -0
  686. data/packer/provisioners/update_os.sh +108 -0
  687. data/packer/provisioners/upload_globals.sh +63 -0
  688. data/packer/provisioners/vim.sh +19 -0
  689. data/packer/provisioners/virtualbox_guest_additions.sh +20 -0
  690. data/packer/provisioners/vmware_tools.sh +8 -0
  691. data/packer/provisioners/wpscan.rb +23 -0
  692. data/packer/provisioners/xrdp.sh +22 -0
  693. data/packer/provisioners/zzuf.sh +5 -0
  694. data/pwn.gemspec +55 -0
  695. data/reinstall_pwn_gemset.sh +27 -0
  696. data/spec/lib/pwn/aws/acm_spec.rb +15 -0
  697. data/spec/lib/pwn/aws/api_gateway_spec.rb +15 -0
  698. data/spec/lib/pwn/aws/app_stream_spec.rb +15 -0
  699. data/spec/lib/pwn/aws/application_auto_scaling_spec.rb +15 -0
  700. data/spec/lib/pwn/aws/application_discovery_service_spec.rb +15 -0
  701. data/spec/lib/pwn/aws/auto_scaling_spec.rb +15 -0
  702. data/spec/lib/pwn/aws/batch_spec.rb +15 -0
  703. data/spec/lib/pwn/aws/budgets_spec.rb +15 -0
  704. data/spec/lib/pwn/aws/cloud_formation_spec.rb +15 -0
  705. data/spec/lib/pwn/aws/cloud_front_spec.rb +15 -0
  706. data/spec/lib/pwn/aws/cloud_hsm_spec.rb +15 -0
  707. data/spec/lib/pwn/aws/cloud_search_domain_spec.rb +15 -0
  708. data/spec/lib/pwn/aws/cloud_search_spec.rb +15 -0
  709. data/spec/lib/pwn/aws/cloud_trail_spec.rb +15 -0
  710. data/spec/lib/pwn/aws/cloud_watch_events_spec.rb +15 -0
  711. data/spec/lib/pwn/aws/cloud_watch_logs_spec.rb +15 -0
  712. data/spec/lib/pwn/aws/cloud_watch_spec.rb +15 -0
  713. data/spec/lib/pwn/aws/code_build_spec.rb +15 -0
  714. data/spec/lib/pwn/aws/code_commit_spec.rb +15 -0
  715. data/spec/lib/pwn/aws/code_deploy_spec.rb +15 -0
  716. data/spec/lib/pwn/aws/code_pipeline_spec.rb +15 -0
  717. data/spec/lib/pwn/aws/cognito_identity_provider_spec.rb +15 -0
  718. data/spec/lib/pwn/aws/cognito_identity_spec.rb +15 -0
  719. data/spec/lib/pwn/aws/cognito_sync_spec.rb +15 -0
  720. data/spec/lib/pwn/aws/config_service_spec.rb +15 -0
  721. data/spec/lib/pwn/aws/data_pipleline_spec.rb +15 -0
  722. data/spec/lib/pwn/aws/database_migration_service_spec.rb +15 -0
  723. data/spec/lib/pwn/aws/device_farm_spec.rb +15 -0
  724. data/spec/lib/pwn/aws/direct_connect_spec.rb +15 -0
  725. data/spec/lib/pwn/aws/directory_service_spec.rb +15 -0
  726. data/spec/lib/pwn/aws/dynamo_db_spec.rb +15 -0
  727. data/spec/lib/pwn/aws/dynamo_db_streams_spec.rb +15 -0
  728. data/spec/lib/pwn/aws/ec2_spec.rb +15 -0
  729. data/spec/lib/pwn/aws/ecr_spec.rb +15 -0
  730. data/spec/lib/pwn/aws/ecs_spec.rb +15 -0
  731. data/spec/lib/pwn/aws/efs_spec.rb +15 -0
  732. data/spec/lib/pwn/aws/elasti_cache_spec.rb +15 -0
  733. data/spec/lib/pwn/aws/elastic_beanstalk_spec.rb +15 -0
  734. data/spec/lib/pwn/aws/elastic_load_balancing_spec.rb +15 -0
  735. data/spec/lib/pwn/aws/elastic_load_balancing_v2_spec.rb +15 -0
  736. data/spec/lib/pwn/aws/elastic_transcoder_spec.rb +15 -0
  737. data/spec/lib/pwn/aws/elasticsearch_service_spec.rb +15 -0
  738. data/spec/lib/pwn/aws/emr_spec.rb +15 -0
  739. data/spec/lib/pwn/aws/firehose_spec.rb +15 -0
  740. data/spec/lib/pwn/aws/game_lift_spec.rb +15 -0
  741. data/spec/lib/pwn/aws/glacier_spec.rb +15 -0
  742. data/spec/lib/pwn/aws/health_spec.rb +15 -0
  743. data/spec/lib/pwn/aws/iam_spec.rb +15 -0
  744. data/spec/lib/pwn/aws/import_export_spec.rb +15 -0
  745. data/spec/lib/pwn/aws/inspector_spec.rb +15 -0
  746. data/spec/lib/pwn/aws/iot_data_plane_spec.rb +15 -0
  747. data/spec/lib/pwn/aws/iot_spec.rb +15 -0
  748. data/spec/lib/pwn/aws/kinesis_analytics_spec.rb +15 -0
  749. data/spec/lib/pwn/aws/kinesis_spec.rb +15 -0
  750. data/spec/lib/pwn/aws/kms_spec.rb +15 -0
  751. data/spec/lib/pwn/aws/lambda_preview_spec.rb +15 -0
  752. data/spec/lib/pwn/aws/lambda_spec.rb +15 -0
  753. data/spec/lib/pwn/aws/lex_spec.rb +15 -0
  754. data/spec/lib/pwn/aws/lightsail_spec.rb +15 -0
  755. data/spec/lib/pwn/aws/machine_learning_spec.rb +15 -0
  756. data/spec/lib/pwn/aws/marketplace_commerce_analytics_spec.rb +15 -0
  757. data/spec/lib/pwn/aws/marketplace_metering_spec.rb +15 -0
  758. data/spec/lib/pwn/aws/ops_works_cm_spec.rb +15 -0
  759. data/spec/lib/pwn/aws/ops_works_spec.rb +15 -0
  760. data/spec/lib/pwn/aws/pinpoint_spec.rb +15 -0
  761. data/spec/lib/pwn/aws/polly_spec.rb +15 -0
  762. data/spec/lib/pwn/aws/rds_spec.rb +15 -0
  763. data/spec/lib/pwn/aws/redshift_spec.rb +15 -0
  764. data/spec/lib/pwn/aws/rekognition_spec.rb +15 -0
  765. data/spec/lib/pwn/aws/route53_domains_spec.rb +15 -0
  766. data/spec/lib/pwn/aws/route53_spec.rb +15 -0
  767. data/spec/lib/pwn/aws/s3_spec.rb +15 -0
  768. data/spec/lib/pwn/aws/service_catalog_spec.rb +15 -0
  769. data/spec/lib/pwn/aws/ses_spec.rb +15 -0
  770. data/spec/lib/pwn/aws/shield_spec.rb +15 -0
  771. data/spec/lib/pwn/aws/simple_db_spec.rb +15 -0
  772. data/spec/lib/pwn/aws/sms_spec.rb +15 -0
  773. data/spec/lib/pwn/aws/snowball_spec.rb +15 -0
  774. data/spec/lib/pwn/aws/sns_spec.rb +15 -0
  775. data/spec/lib/pwn/aws/sqs_spec.rb +15 -0
  776. data/spec/lib/pwn/aws/ssm_spec.rb +15 -0
  777. data/spec/lib/pwn/aws/states_spec.rb +15 -0
  778. data/spec/lib/pwn/aws/storage_gateway_spec.rb +15 -0
  779. data/spec/lib/pwn/aws/sts_spec.rb +15 -0
  780. data/spec/lib/pwn/aws/support_spec.rb +15 -0
  781. data/spec/lib/pwn/aws/swf_spec.rb +15 -0
  782. data/spec/lib/pwn/aws/waf_regional_spec.rb +15 -0
  783. data/spec/lib/pwn/aws/waf_spec.rb +15 -0
  784. data/spec/lib/pwn/aws/workspaces_spec.rb +15 -0
  785. data/spec/lib/pwn/aws/x_ray_spec.rb +15 -0
  786. data/spec/lib/pwn/aws_spec.rb +10 -0
  787. data/spec/lib/pwn/banner/bubble_spec.rb +20 -0
  788. data/spec/lib/pwn/banner/matrix_spec.rb +20 -0
  789. data/spec/lib/pwn/banner/ninja_spec.rb +20 -0
  790. data/spec/lib/pwn/banner/off_the_air_spec.rb +20 -0
  791. data/spec/lib/pwn/banner/pirate_spec.rb +20 -0
  792. data/spec/lib/pwn/banner_spec.rb +15 -0
  793. data/spec/lib/pwn/ffi_spec.rb +10 -0
  794. data/spec/lib/pwn/plugins/android_spec.rb +15 -0
  795. data/spec/lib/pwn/plugins/authentication_helper_spec.rb +15 -0
  796. data/spec/lib/pwn/plugins/basic_auth_spec.rb +15 -0
  797. data/spec/lib/pwn/plugins/beef_spec.rb +15 -0
  798. data/spec/lib/pwn/plugins/burp_suite_spec.rb +15 -0
  799. data/spec/lib/pwn/plugins/bus_pirate_spec.rb +15 -0
  800. data/spec/lib/pwn/plugins/char_spec.rb +15 -0
  801. data/spec/lib/pwn/plugins/credit_card_spec.rb +15 -0
  802. data/spec/lib/pwn/plugins/dao_ldap_spec.rb +15 -0
  803. data/spec/lib/pwn/plugins/dao_mongo_spec.rb +15 -0
  804. data/spec/lib/pwn/plugins/dao_postgres_spec.rb +15 -0
  805. data/spec/lib/pwn/plugins/dao_sqlite3_spec.rb +15 -0
  806. data/spec/lib/pwn/plugins/defect_dojo_spec.rb +15 -0
  807. data/spec/lib/pwn/plugins/detect_os_spec.rb +15 -0
  808. data/spec/lib/pwn/plugins/ein_spec.rb +15 -0
  809. data/spec/lib/pwn/plugins/file_fu_spec.rb +15 -0
  810. data/spec/lib/pwn/plugins/fuzz_spec.rb +15 -0
  811. data/spec/lib/pwn/plugins/git_spec.rb +15 -0
  812. data/spec/lib/pwn/plugins/github_spec.rb +15 -0
  813. data/spec/lib/pwn/plugins/hacker_one_spec.rb +15 -0
  814. data/spec/lib/pwn/plugins/ibm_appscan_spec.rb +15 -0
  815. data/spec/lib/pwn/plugins/ip_info_spec.rb +15 -0
  816. data/spec/lib/pwn/plugins/jenkins_spec.rb +15 -0
  817. data/spec/lib/pwn/plugins/json_pathify_spec.rb +15 -0
  818. data/spec/lib/pwn/plugins/mail_agent_spec.rb +15 -0
  819. data/spec/lib/pwn/plugins/metasploit_spec.rb +15 -0
  820. data/spec/lib/pwn/plugins/msr206_spec.rb +15 -0
  821. data/spec/lib/pwn/plugins/nessus_cloud_spec.rb +15 -0
  822. data/spec/lib/pwn/plugins/nexpose_vuln_scan_spec.rb +15 -0
  823. data/spec/lib/pwn/plugins/nmap_it_spec.rb +15 -0
  824. data/spec/lib/pwn/plugins/oauth2_spec.rb +15 -0
  825. data/spec/lib/pwn/plugins/ocr_spec.rb +15 -0
  826. data/spec/lib/pwn/plugins/openvas_spec.rb +15 -0
  827. data/spec/lib/pwn/plugins/owasp_zap_spec.rb +15 -0
  828. data/spec/lib/pwn/plugins/packet_spec.rb +15 -0
  829. data/spec/lib/pwn/plugins/pdf_parse_spec.rb +15 -0
  830. data/spec/lib/pwn/plugins/pony_spec.rb +15 -0
  831. data/spec/lib/pwn/plugins/rabbit_mq_spec.rb +15 -0
  832. data/spec/lib/pwn/plugins/rfidler_spec.rb +15 -0
  833. data/spec/lib/pwn/plugins/serial_spec.rb +15 -0
  834. data/spec/lib/pwn/plugins/shodan_spec.rb +15 -0
  835. data/spec/lib/pwn/plugins/slack_client_spec.rb +15 -0
  836. data/spec/lib/pwn/plugins/sock_spec.rb +15 -0
  837. data/spec/lib/pwn/plugins/son_micro_rfid_spec.rb +15 -0
  838. data/spec/lib/pwn/plugins/spider_spec.rb +15 -0
  839. data/spec/lib/pwn/plugins/ssn_spec.rb +15 -0
  840. data/spec/lib/pwn/plugins/thread_pool_spec.rb +15 -0
  841. data/spec/lib/pwn/plugins/transparent_browser_spec.rb +15 -0
  842. data/spec/lib/pwn/plugins/twitter_api_spec.rb +15 -0
  843. data/spec/lib/pwn/plugins/uri_scheme_spec.rb +15 -0
  844. data/spec/lib/pwn/plugins/vsphere_spec.rb +15 -0
  845. data/spec/lib/pwn/plugins_spec.rb +10 -0
  846. data/spec/lib/pwn/reports/fuzz_spec.rb +15 -0
  847. data/spec/lib/pwn/reports/phone_spec.rb +15 -0
  848. data/spec/lib/pwn/reports/sast_spec.rb +15 -0
  849. data/spec/lib/pwn/reports/uri_buster_spec.rb +15 -0
  850. data/spec/lib/pwn/reports_spec.rb +10 -0
  851. data/spec/lib/pwn/sast/amqp_connect_as_guest_spec.rb +25 -0
  852. data/spec/lib/pwn/sast/apache_file_system_util_api_spec.rb +25 -0
  853. data/spec/lib/pwn/sast/aws_spec.rb +25 -0
  854. data/spec/lib/pwn/sast/banned_function_calls_c_spec.rb +25 -0
  855. data/spec/lib/pwn/sast/base64_spec.rb +25 -0
  856. data/spec/lib/pwn/sast/beef_hook_spec.rb +25 -0
  857. data/spec/lib/pwn/sast/cmd_execution_java_spec.rb +25 -0
  858. data/spec/lib/pwn/sast/cmd_execution_python_spec.rb +25 -0
  859. data/spec/lib/pwn/sast/cmd_execution_ruby_spec.rb +25 -0
  860. data/spec/lib/pwn/sast/cmd_execution_scala_spec.rb +25 -0
  861. data/spec/lib/pwn/sast/csrf_spec.rb +25 -0
  862. data/spec/lib/pwn/sast/deserial_java_spec.rb +25 -0
  863. data/spec/lib/pwn/sast/emoticon_spec.rb +25 -0
  864. data/spec/lib/pwn/sast/eval_spec.rb +25 -0
  865. data/spec/lib/pwn/sast/factory_spec.rb +25 -0
  866. data/spec/lib/pwn/sast/http_authorization_header_spec.rb +25 -0
  867. data/spec/lib/pwn/sast/inner_html_spec.rb +25 -0
  868. data/spec/lib/pwn/sast/keystore_spec.rb +25 -0
  869. data/spec/lib/pwn/sast/location_hash_spec.rb +25 -0
  870. data/spec/lib/pwn/sast/log4j_spec.rb +25 -0
  871. data/spec/lib/pwn/sast/logger_spec.rb +25 -0
  872. data/spec/lib/pwn/sast/password_spec.rb +25 -0
  873. data/spec/lib/pwn/sast/php_input_mechanisms_spec.rb +25 -0
  874. data/spec/lib/pwn/sast/php_type_juggling_spec.rb +25 -0
  875. data/spec/lib/pwn/sast/pom_version_spec.rb +25 -0
  876. data/spec/lib/pwn/sast/port_spec.rb +25 -0
  877. data/spec/lib/pwn/sast/private_key_spec.rb +25 -0
  878. data/spec/lib/pwn/sast/redirect_spec.rb +25 -0
  879. data/spec/lib/pwn/sast/redos_spec.rb +25 -0
  880. data/spec/lib/pwn/sast/shell_spec.rb +25 -0
  881. data/spec/lib/pwn/sast/signature_spec.rb +25 -0
  882. data/spec/lib/pwn/sast/sql_spec.rb +25 -0
  883. data/spec/lib/pwn/sast/ssl_spec.rb +25 -0
  884. data/spec/lib/pwn/sast/sudo_spec.rb +25 -0
  885. data/spec/lib/pwn/sast/task_tag_spec.rb +25 -0
  886. data/spec/lib/pwn/sast/throw_errors_spec.rb +25 -0
  887. data/spec/lib/pwn/sast/token_spec.rb +25 -0
  888. data/spec/lib/pwn/sast/version_spec.rb +25 -0
  889. data/spec/lib/pwn/sast/window_location_hash_spec.rb +25 -0
  890. data/spec/lib/pwn/sast_spec.rb +10 -0
  891. data/spec/lib/pwn/www/app_cobalt_io_spec.rb +15 -0
  892. data/spec/lib/pwn/www/bing_spec.rb +15 -0
  893. data/spec/lib/pwn/www/bug_crowd.rb +15 -0
  894. data/spec/lib/pwn/www/checkip_spec.rb +15 -0
  895. data/spec/lib/pwn/www/coinbase_pro_spec.rb +15 -0
  896. data/spec/lib/pwn/www/duckduckgo_spec.rb +15 -0
  897. data/spec/lib/pwn/www/facebook_spec.rb +15 -0
  898. data/spec/lib/pwn/www/google_spec.rb +15 -0
  899. data/spec/lib/pwn/www/hacker_one_spec.rb +15 -0
  900. data/spec/lib/pwn/www/linkedin_spec.rb +15 -0
  901. data/spec/lib/pwn/www/pandora_spec.rb +15 -0
  902. data/spec/lib/pwn/www/pastebin_spec.rb +15 -0
  903. data/spec/lib/pwn/www/paypal_spec.rb +15 -0
  904. data/spec/lib/pwn/www/synack_spec.rb +15 -0
  905. data/spec/lib/pwn/www/torch_spec.rb +15 -0
  906. data/spec/lib/pwn/www/trading_view_spec.rb +15 -0
  907. data/spec/lib/pwn/www/twitter_spec.rb +15 -0
  908. data/spec/lib/pwn/www/uber_spec.rb +15 -0
  909. data/spec/lib/pwn/www/upwork_spec.rb +15 -0
  910. data/spec/lib/pwn/www/youtube_spec.rb +15 -0
  911. data/spec/lib/pwn/www_spec.rb +10 -0
  912. data/spec/lib/pwn_spec.rb +10 -0
  913. data/spec/spec_helper.rb +3 -0
  914. data/third_party/.gitkeep +0 -0
  915. data/update_pwn.sh +9 -0
  916. data/upgrade_ruby.sh +42 -0
  917. data/vagrant/provisioners/apache2.sh +76 -0
  918. data/vagrant/provisioners/beef.rb +30 -0
  919. data/vagrant/provisioners/burpsuite_pro.rb +37 -0
  920. data/vagrant/provisioners/exploit-db.sh +2 -0
  921. data/vagrant/provisioners/gem.sh +4 -0
  922. data/vagrant/provisioners/init_env.sh +22 -0
  923. data/vagrant/provisioners/jenkins.sh +87 -0
  924. data/vagrant/provisioners/jenkins_ssh-keygen.rb +86 -0
  925. data/vagrant/provisioners/kali_customize.rb +130 -0
  926. data/vagrant/provisioners/letsencrypt.rb +35 -0
  927. data/vagrant/provisioners/metasploit.rb +25 -0
  928. data/vagrant/provisioners/nmap_all_live_hosts.sh +2 -0
  929. data/vagrant/provisioners/openvas.sh +23 -0
  930. data/vagrant/provisioners/openvas_wrappers.sh +2 -0
  931. data/vagrant/provisioners/post_install.sh +14 -0
  932. data/vagrant/provisioners/postgres.sh +22 -0
  933. data/vagrant/provisioners/pwn.sh +15 -0
  934. data/vagrant/provisioners/rvm.sh +18 -0
  935. data/vagrant/provisioners/ssllabs-scan.sh +10 -0
  936. data/vagrant/provisioners/toggle_tor.sh +2 -0
  937. data/vagrant/provisioners/update_jenkins_plugins.rb +30 -0
  938. data/vagrant/provisioners/update_os.sh +108 -0
  939. data/vagrant/provisioners/upload_globals.sh +63 -0
  940. data/vagrant/provisioners/userland_fdisk.sh +22 -0
  941. data/vagrant/provisioners/userland_lvm.sh +5 -0
  942. data/vagrant/provisioners/wpscan.rb +25 -0
  943. data/vagrant_rsync_third_party.lst +1 -0
  944. data/vagrant_rsync_userland_template.lst +8 -0
  945. metadata +993 -4
@@ -0,0 +1,1193 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PWN
4
+ module Plugins
5
+ # This plugin is used for interacting with a three track
6
+ # MSR206 Magnetic Stripe Reader / Writer
7
+ module MSR206
8
+ # Supported Method Parameters::
9
+ # msr206_obj = PWN::Plugins::MSR206.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 - :even|:mark|:odd|:space|:none (defaults to :none),'
15
+ # flow_control: 'optional - :none|:hard|:soft (defaults to :soft)'
16
+ # )
17
+
18
+ public_class_method def self.connect(opts = {})
19
+ # Default Baud Rate for this Device is 19200
20
+ opts[:block_dev] = '/dev/ttyUSB0' unless opts[:block_dev]
21
+ opts[:baud] = 9_600 unless opts[:baud]
22
+ opts[:data_bits] = 8 unless opts[:data_bits]
23
+ opts[:stop_bits] = 1 unless opts[:stop_bits]
24
+ opts[:parity] = :none unless opts[:parity]
25
+ opts[:flow_control] = :soft unless opts[:flow_control]
26
+ msr206_obj = PWN::Plugins::Serial.connect(opts)
27
+ rescue StandardError => e
28
+ disconnect(msr206_obj: msr206_obj) unless msr206_obj.nil?
29
+ raise e
30
+ end
31
+
32
+ # Supported Method Parameters::
33
+ # cmds = PWN::Plugins::MSR206.list_cmds
34
+ public_class_method def self.list_cmds
35
+ # Returns an Array of Symbols
36
+ cmds = %i[
37
+ proto_usi0
38
+ proto_usi1
39
+ version_report
40
+ simulate_power_cycle_warm_reset
41
+ configuration_request
42
+ reproduce_last_command
43
+ resume_transmission_to_host
44
+ pause_transmission_to_host
45
+ abort_command
46
+ red_on
47
+ red_off
48
+ red_flash
49
+ green_on
50
+ green_off
51
+ green_flash
52
+ yellow_on
53
+ yellow_off
54
+ yellow_flash
55
+ arm_to_read
56
+ arm_to_read_w_speed_prompts
57
+ tx_iso_std_data_track1
58
+ tx_iso_std_data_track2
59
+ tx_iso_std_data_track3
60
+ alt_tx_iso_std_data_track1
61
+ alt_tx_iso_std_data_track2
62
+ alt_tx_iso_std_data_track3
63
+ tx_error_data
64
+ tx_custom_data_forward_track1
65
+ tx_custom_data_forward_track2
66
+ tx_custom_data_forward_track3
67
+ tx_passbook_data
68
+ alt_tx_passbook_data
69
+ write_verify
70
+ card_edge_detect
71
+ load_iso_std_data_for_writing_track1
72
+ load_iso_std_data_for_writing_track2
73
+ load_iso_std_data_for_writing_track3
74
+ alt_load_iso_std_data_for_writing_track1
75
+ alt_load_iso_std_data_for_writing_track2
76
+ alt_load_iso_std_data_for_writing_track3
77
+ load_passbook_data_for_writing
78
+ load_custom_data_for_writing_track1
79
+ load_custom_data_for_writing_track2
80
+ load_custom_data_for_writing_track3
81
+ set_write_density
82
+ set_write_density_210_bpi_tracks13
83
+ set_write_density_75_bpi_tracks13
84
+ set_write_density_210_bpi_tracks2
85
+ set_write_density_75_bpi_tracks2
86
+ set_default_write_current
87
+ view_default_write_current
88
+ set_temp_write_current
89
+ view_temp_write_current
90
+ arm_to_write_with_raw
91
+ arm_to_write_no_raw
92
+ arm_to_write_with_raw_speed_prompts
93
+ ]
94
+ rescue StandardError => e
95
+ raise e
96
+ end
97
+
98
+ # Supported Method Parameters::
99
+ # parsed_cmd_resp_arr = decode(
100
+ # raw_byte_arr: 'required - raw_byte_arr produced in #parse_responses'
101
+ # )
102
+
103
+ private_class_method def self.decode(opts = {})
104
+ raw_byte_arr = opts[:raw_byte_arr]
105
+
106
+ decoded_data_str = ''
107
+ if raw_byte_arr
108
+ raw_byte_arr.first.split.each do |byte_str|
109
+ # TODO: Different case statements for each parity
110
+ case byte_str
111
+ when '1B'
112
+ decoded_data_str += ''
113
+ when '20'
114
+ decoded_data_str += ' '
115
+ when '21'
116
+ decoded_data_str += '!'
117
+ when '22'
118
+ decoded_data_str += '"'
119
+ when '23'
120
+ decoded_data_str += '#'
121
+ when '24'
122
+ decoded_data_str += '$'
123
+ when '25'
124
+ decoded_data_str += '%'
125
+ when '26'
126
+ decoded_data_str += '&'
127
+ when '27'
128
+ decoded_data_str += "'"
129
+ when '28'
130
+ decoded_data_str += '('
131
+ when '29'
132
+ decoded_data_str += ')'
133
+ when '2A', 'AA'
134
+ decoded_data_str += '*'
135
+ when '2B', 'AB'
136
+ decoded_data_str += '+'
137
+ when '2C', 'AC'
138
+ decoded_data_str += ','
139
+ when '2D', 'AD'
140
+ decoded_data_str += '-'
141
+ when '2E', 'AE'
142
+ decoded_data_str += '.'
143
+ when '2F', 'AF'
144
+ decoded_data_str += '/'
145
+ when '30', 'B0'
146
+ decoded_data_str += '0'
147
+ when '31', 'B1'
148
+ decoded_data_str += '1'
149
+ when '32', 'B2'
150
+ decoded_data_str += '2'
151
+ when '33', 'B3'
152
+ decoded_data_str += '3'
153
+ when '34', 'B4'
154
+ decoded_data_str += '4'
155
+ when '35', 'B5'
156
+ decoded_data_str += '5'
157
+ when '36', 'B6'
158
+ decoded_data_str += '6'
159
+ when '37', 'B7'
160
+ decoded_data_str += '7'
161
+ when '38', 'B8'
162
+ decoded_data_str += '8'
163
+ when '39', 'B9'
164
+ decoded_data_str += '9'
165
+ when '3A', 'BA'
166
+ decoded_data_str += ':'
167
+ when '3B', 'BB'
168
+ decoded_data_str += ';'
169
+ when '3C', 'BC'
170
+ decoded_data_str += '<'
171
+ when '3D', 'BD'
172
+ decoded_data_str += '='
173
+ when '3E', 'BE'
174
+ decoded_data_str += '>'
175
+ when '3F', 'BF'
176
+ decoded_data_str += '?'
177
+ when '40', 'C0'
178
+ decoded_data_str += '@'
179
+ when '41', 'C1'
180
+ decoded_data_str += 'A'
181
+ when '42', 'C2'
182
+ decoded_data_str += 'B'
183
+ when '43', 'C3'
184
+ decoded_data_str += 'C'
185
+ when '44', 'C4'
186
+ decoded_data_str += 'D'
187
+ when '45', 'C5'
188
+ decoded_data_str += 'E'
189
+ when '46', 'C6'
190
+ decoded_data_str += 'F'
191
+ when '47', 'C7'
192
+ decoded_data_str += 'G'
193
+ when '48', 'C8'
194
+ decoded_data_str += 'H'
195
+ when '49', 'C9'
196
+ decoded_data_str += 'I'
197
+ when '4A', 'CA'
198
+ decoded_data_str += 'J'
199
+ when '4B', 'CB'
200
+ decoded_data_str += 'K'
201
+ when '4C', 'CC'
202
+ decoded_data_str += 'L'
203
+ when '4D', 'CD'
204
+ decoded_data_str += 'M'
205
+ when '4E', 'CE'
206
+ decoded_data_str += 'N'
207
+ when '4F', 'CF'
208
+ decoded_data_str += 'O'
209
+ when '50', 'D0'
210
+ decoded_data_str += 'P'
211
+ when '51', 'D1'
212
+ decoded_data_str += 'Q'
213
+ when '52', 'D2'
214
+ decoded_data_str += 'R'
215
+ when '53', 'D3'
216
+ decoded_data_str += 'S'
217
+ when '54', 'D4'
218
+ decoded_data_str += 'T'
219
+ when '55', 'D5'
220
+ decoded_data_str += 'U'
221
+ when '56', 'D6'
222
+ decoded_data_str += 'V'
223
+ when '57', 'D7'
224
+ decoded_data_str += 'W'
225
+ when '58', 'D8'
226
+ decoded_data_str += 'X'
227
+ when '59', 'D9'
228
+ decoded_data_str += 'Y'
229
+ when '5A', 'DA'
230
+ decoded_data_str += 'Z'
231
+ when '5B', 'DB'
232
+ decoded_data_str += '['
233
+ when '5C', 'DC'
234
+ decoded_data_str += '\\'
235
+ when '5D', 'DD'
236
+ decoded_data_str += ']'
237
+ when '5E', 'DE'
238
+ decoded_data_str += '^'
239
+ when '5F', 'DF'
240
+ decoded_data_str += '_'
241
+ when '60', 'E0'
242
+ decoded_data_str += '`'
243
+ when '61', 'E1'
244
+ decoded_data_str += 'a'
245
+ when '62', 'E2'
246
+ decoded_data_str += 'b'
247
+ when '63', 'E3'
248
+ decoded_data_str += 'c'
249
+ when '64', 'E4'
250
+ decoded_data_str += 'd'
251
+ when '65', 'E5'
252
+ decoded_data_str += 'e'
253
+ when '66', 'E6'
254
+ decoded_data_str += 'f'
255
+ when '67', 'E7'
256
+ decoded_data_str += 'g'
257
+ when '68', 'E8'
258
+ decoded_data_str += 'h'
259
+ when '69', 'E9'
260
+ decoded_data_str += 'i'
261
+ when '6A', 'EA'
262
+ decoded_data_str += 'j'
263
+ when '6B', 'EB'
264
+ decoded_data_str += 'k'
265
+ when '6C', 'EC'
266
+ decoded_data_str += 'l'
267
+ when '6D', 'ED'
268
+ decoded_data_str += 'm'
269
+ when '6E', 'EE'
270
+ decoded_data_str += 'n'
271
+ when '6F', 'EF'
272
+ decoded_data_str += 'o'
273
+ when '70', 'F0'
274
+ decoded_data_str += 'p'
275
+ when '71', 'F1'
276
+ decoded_data_str += 'q'
277
+ when '72', 'F2'
278
+ decoded_data_str += 'r'
279
+ when '73', 'F3'
280
+ decoded_data_str += 's'
281
+ when '74', 'F4'
282
+ decoded_data_str += 't'
283
+ when '75', 'F5'
284
+ decoded_data_str += 'u'
285
+ when '76', 'F6'
286
+ decoded_data_str += 'v'
287
+ when '77', 'F7'
288
+ decoded_data_str += 'w'
289
+ when '78', 'F8'
290
+ decoded_data_str += 'x'
291
+ when '79', 'F9'
292
+ decoded_data_str += 'y'
293
+ when '7A', 'FA'
294
+ decoded_data_str += 'z'
295
+ when '7B', 'FB'
296
+ decoded_data_str += '{'
297
+ when '7C', 'FC'
298
+ decoded_data_str += '|'
299
+ when '7D', 'FD'
300
+ decoded_data_str += '}'
301
+ when '7E', 'FE'
302
+ decoded_data_str += '~'
303
+ else
304
+ decoded_data_str += "\u00BF"
305
+ end
306
+ end
307
+ end
308
+
309
+ decoded_data_str
310
+ rescue StandardError => e
311
+ raise e
312
+ end
313
+
314
+ # Supported Method Parameters::
315
+ # parsed_cmd_resp_arr = binary(
316
+ # raw_byte_arr: 'required - raw_byte_arr produced in #parse_responses'
317
+ # )
318
+
319
+ private_class_method def self.binary(opts = {})
320
+ raw_byte_arr = opts[:raw_byte_arr]
321
+
322
+ binary_byte_arr = []
323
+ if raw_byte_arr
324
+ raw_byte_arr.first.split.each do |byte_str|
325
+ binary_byte_arr.push([byte_str].pack('H*').unpack1('B*'))
326
+ end
327
+ end
328
+
329
+ binary_byte_arr
330
+ rescue StandardError => e
331
+ raise e
332
+ end
333
+
334
+ # Supported Method Parameters::
335
+ # parsed_cmd_resp_arr = parse_responses(
336
+ # cmd_resp: 'required - command response string'
337
+ # )
338
+
339
+ private_class_method def self.parse_responses(opts = {})
340
+ msr206_obj = opts[:msr206_obj]
341
+ cmd = opts[:cmd]
342
+ cmd_bytes = opts[:cmd_bytes]
343
+
344
+ keep_parsing_responses = true
345
+ next_response_detected = false
346
+ response = {}
347
+ response[:cmd] = cmd
348
+ response[:cmd] ||= :na
349
+
350
+ if cmd_bytes.instance_of?(Array)
351
+ response[:cmd_bytes] = opts[:cmd_bytes].map do |base10_int|
352
+ "0x#{base10_int.to_s(16).rjust(2, '0')}"
353
+ end
354
+ end
355
+ response[:cmd_bytes] ||= :na
356
+
357
+ raw_byte_arr = []
358
+ raw_byte_arr_len = 0
359
+ last_raw_byte_arr_len = 0
360
+
361
+ parsed_cmd_resp_arr = []
362
+ cmd_resp = ''
363
+
364
+ while keep_parsing_responses
365
+ until next_response_detected
366
+ last_raw_byte_arr_len = raw_byte_arr_len
367
+ raw_byte_arr = PWN::Plugins::Serial.response(serial_obj: msr206_obj)
368
+ cmd_resp = raw_byte_arr.last
369
+ raw_byte_arr_len = raw_byte_arr.length
370
+
371
+ next_response_detected = true if raw_byte_arr_len > last_raw_byte_arr_len
372
+ end
373
+
374
+ case cmd_resp
375
+ when '21', 'A1'
376
+ response[:msg] = :invalid_command
377
+ when '28', 'A8'
378
+ response[:msg] = :card_speed_measurement_start
379
+ when '29', 'A9'
380
+ response[:msg] = :card_speed_measurement_end
381
+ when '2A', 'AA'
382
+ response[:msg] = :error
383
+ when '2B', 'AB'
384
+ response[:msg] = :no_data_found
385
+ when '2D', 'AD'
386
+ response[:msg] = :insufficient_leading_zeros_for_custom_writing
387
+ when '2F', 'AF'
388
+ response[:msg] = :first_lsb_char_not_one_for_custom_writing
389
+ when '31', 'B1'
390
+ response[:msg] = :unsuccessful_read_after_write_track1
391
+ when '32', 'B2'
392
+ response[:msg] = :unsuccessful_read_after_write_track2
393
+ when '33', 'B3'
394
+ response[:msg] = :unsuccessful_read_after_write_track3
395
+ when '3A', 'BA'
396
+ response[:msg] = :power_on_report
397
+ when '3E', 'BE'
398
+ response[:msg] = :card_edge_detected
399
+ when '3F', 'BF'
400
+ response[:msg] = :communications_error
401
+ when '5E'
402
+ response[:msg] = :ack_command_completed
403
+ when '7E'
404
+ response[:msg] = :command_not_supported_by_hardware
405
+ else
406
+ response[:msg] = :response
407
+ end
408
+
409
+ next_response_detected = false
410
+ last_raw_byte_arr_len = raw_byte_arr_len
411
+ keep_parsing_responses = false
412
+ end
413
+
414
+ response[:hex] = raw_byte_arr
415
+ response[:binary] = binary(raw_byte_arr: raw_byte_arr)
416
+ response[:decoded] = decode(raw_byte_arr: raw_byte_arr)
417
+ response
418
+ rescue StandardError => e
419
+ raise e
420
+ ensure
421
+ # Flush Responses for Next Request
422
+ PWN::Plugins::Serial.flush_session_data
423
+ end
424
+
425
+ # Supported Method Parameters::
426
+ # PWN::Plugins::MSR206.exec(
427
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
428
+ # cmd: 'required - cmd returned from #list_cmds method',
429
+ # params: 'optional - parameters for specific command returned from #list_params method'
430
+ # )
431
+ public_class_method def self.exec(opts = {})
432
+ msr206_obj = opts[:msr206_obj]
433
+ cmd = opts[:cmd].to_s.scrub.strip.chomp
434
+ params = opts[:params]
435
+ raise 'ERROR: params argument must be a byte array (e.g. [0x41]).' if params && !params.instance_of?(Array)
436
+
437
+ params_bytes = []
438
+ case cmd.to_sym
439
+ when :proto_usi0
440
+ cmd_bytes = [0x55, 0x53, 0x49, 0x30]
441
+ when :proto_usi1
442
+ cmd_bytes = [0x55, 0x53, 0x49, 0x31]
443
+ when :resume_transmission_to_host
444
+ cmd_bytes = [0x11]
445
+ when :pause_transmission_to_host
446
+ cmd_bytes = [0x13]
447
+ when :abort_command
448
+ cmd_bytes = [0x1B]
449
+ when :configuration_request
450
+ cmd_bytes = [0x23]
451
+ when :reproduce_last_command
452
+ cmd_bytes = [0x25]
453
+ when :card_edge_detect
454
+ cmd_bytes = [0x26]
455
+ when :green_flash
456
+ cmd_bytes = [0x28]
457
+ when :red_flash
458
+ cmd_bytes = [0x29]
459
+ when :version_report
460
+ cmd_bytes = [0x39]
461
+ when :set_write_density
462
+ cmd_bytes = [0x3B]
463
+ when :set_temp_write_current
464
+ cmd_bytes = [0x3C]
465
+ when :view_temp_write_current
466
+ cmd_bytes = [0x3E]
467
+ when :write_verify
468
+ cmd_bytes = [0x3F]
469
+ when :arm_to_write_with_raw
470
+ cmd_bytes = [0x40]
471
+ when :load_iso_std_data_for_writing_track1
472
+ cmd_bytes = [0x41]
473
+ when :load_iso_std_data_for_writing_track2
474
+ cmd_bytes = [0x42]
475
+ when :load_iso_std_data_for_writing_track3
476
+ cmd_bytes = [0x43]
477
+ when :load_custom_data_for_writing_track1
478
+ cmd_bytes = [0x45]
479
+ when :load_custom_data_for_writing_track2
480
+ cmd_bytes = [0x46]
481
+ when :load_custom_data_for_writing_track3
482
+ cmd_bytes = [0x47]
483
+ when :tx_error_data
484
+ cmd_bytes = [0x49]
485
+ when :yellow_on
486
+ cmd_bytes = [0x4B]
487
+ when :green_on
488
+ cmd_bytes = [0x4C]
489
+ when :red_on
490
+ cmd_bytes = [0x4D]
491
+ when :set_write_density_210_bpi_tracks2
492
+ cmd_bytes = [0x4E]
493
+ when :set_write_density_210_bpi_tracks13
494
+ cmd_bytes = [0x4F]
495
+ when :arm_to_read
496
+ cmd_bytes = [0x50]
497
+ when :tx_iso_std_data_track1
498
+ cmd_bytes = [0x51]
499
+ when :tx_iso_std_data_track2
500
+ cmd_bytes = [0x52]
501
+ when :tx_iso_std_data_track3
502
+ cmd_bytes = [0x53]
503
+ when :tx_custom_data_forward_track1
504
+ cmd_bytes = [0x55]
505
+ when :tx_custom_data_forward_track2
506
+ cmd_bytes = [0x56]
507
+ when :tx_custom_data_forward_track3
508
+ cmd_bytes = [0x57]
509
+ when :tx_passbook_data
510
+ cmd_bytes = [0x58]
511
+ when :arm_to_write_no_raw
512
+ cmd_bytes = [0x5A]
513
+ when :set_default_write_current
514
+ cmd_bytes = [0x5B]
515
+ when :view_default_write_current
516
+ cmd_bytes = [0x5D]
517
+ when :alt_load_iso_std_data_for_writing_track1
518
+ cmd_bytes = [0x61]
519
+ when :alt_load_iso_std_data_for_writing_track2
520
+ cmd_bytes = [0x62]
521
+ when :alt_load_iso_std_data_for_writing_track3
522
+ cmd_bytes = [0x63]
523
+ when :load_passbook_data_for_writing
524
+ cmd_bytes = [0x6A]
525
+ when :yellow_off
526
+ cmd_bytes = [0x6B]
527
+ when :green_off
528
+ cmd_bytes = [0x6C]
529
+ when :red_off
530
+ cmd_bytes = [0x6D]
531
+ when :set_write_density_75_bpi_tracks2
532
+ cmd_bytes = [0x6E]
533
+ when :set_write_density_75_bpi_tracks13
534
+ cmd_bytes = [0x6F]
535
+ when :arm_to_read_w_speed_prompts
536
+ cmd_bytes = [0x70]
537
+ when :alt_tx_iso_std_data_track1
538
+ cmd_bytes = [0x71]
539
+ when :alt_tx_iso_std_data_track2
540
+ cmd_bytes = [0x72]
541
+ when :alt_tx_iso_std_data_track3
542
+ cmd_bytes = [0x73]
543
+ when :alt_tx_passbook_data
544
+ cmd_bytes = [0x78]
545
+ when :arm_to_write_with_raw_speed_prompts
546
+ cmd_bytes = [0x7A]
547
+ when :yellow_flash
548
+ cmd_bytes = [0x7C]
549
+ when :simulate_power_cycle_warm_reset
550
+ cmd_bytes = [0x7F]
551
+ else
552
+ raise "Unsupported Command: #{cmd}. Supported commands are:\n#{list_cmds}\n\n\n"
553
+ end
554
+
555
+ # If parameters to a command are set, append them.
556
+ cmd_bytes += params if params
557
+ # Execute the command.
558
+ PWN::Plugins::Serial.request(
559
+ serial_obj: msr206_obj,
560
+ payload: cmd_bytes
561
+ )
562
+
563
+ # Parse commands response(s).
564
+ # Return an array of hashes.
565
+ parse_responses(
566
+ msr206_obj: msr206_obj,
567
+ cmd: cmd.to_sym,
568
+ cmd_bytes: cmd_bytes
569
+ )
570
+ rescue StandardError => e
571
+ raise e
572
+ ensure
573
+ # Flush Responses for Next Request
574
+ PWN::Plugins::Serial.flush_session_data
575
+ end
576
+
577
+ # Supported Method Parameters::
578
+ # MSR206.wait_for_swipe(
579
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
580
+ # type: 'required - swipe type :arm_to_read || :arm_to_read_w_speed_prompts || :arm_to_write_no_raw || :arm_to_write_with_raw || :arm_to_write_with_raw_speed_prompts',
581
+ # encoding: 'required - :iso || :iso_alt || :raw',
582
+ # track_data: 'optional - track_data to write'
583
+ # )
584
+
585
+ private_class_method def self.wait_for_swipe(opts = {})
586
+ msr206_obj = opts[:msr206_obj]
587
+ type = opts[:type].to_s.scrub.strip.chomp.to_sym
588
+ encoding = opts[:encoding].to_s.scrub.strip.chomp.to_sym
589
+ track_data = opts[:track_data]
590
+
591
+ exec_resp = exec(
592
+ msr206_obj: msr206_obj,
593
+ cmd: :red_off
594
+ )
595
+
596
+ exec_resp = exec(
597
+ msr206_obj: msr206_obj,
598
+ cmd: :yellow_off
599
+ )
600
+
601
+ exec_resp = exec(
602
+ msr206_obj: msr206_obj,
603
+ cmd: :green_on
604
+ )
605
+
606
+ track_data_arr = []
607
+
608
+ case type
609
+ when :arm_to_read,
610
+ :arm_to_read_w_speed_prompts
611
+
612
+ exec_resp = PWN::Plugins::MSR206.exec(
613
+ msr206_obj: msr206_obj,
614
+ cmd: type
615
+ )
616
+ puts exec_resp.inspect
617
+
618
+ print 'Reader Activated. Please Swipe Card...'
619
+ loop do
620
+ exec_resp = parse_responses(
621
+ msr206_obj: msr206_obj,
622
+ cmd: type
623
+ )
624
+
625
+ puts exec_resp[:msg]
626
+ break if exec_resp[:msg] == :ack_command_completed
627
+ end
628
+
629
+ if encoding == :iso
630
+ cmds_arr = %i[
631
+ tx_iso_std_data_track1
632
+ tx_iso_std_data_track2
633
+ tx_iso_std_data_track3
634
+ ]
635
+ cmds_arr.each do |cmd|
636
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
637
+ exec_resp = exec(
638
+ msr206_obj: msr206_obj,
639
+ cmd: cmd
640
+ )
641
+ exec_resp[:encoding] = encoding
642
+ puts exec_resp[:decoded]
643
+ puts exec_resp.inspect
644
+ track_data_arr.push(exec_resp)
645
+ end
646
+ end
647
+
648
+ if encoding == :iso_alt
649
+ cmds_arr = %i[
650
+ alt_tx_iso_std_data_track1
651
+ alt_tx_iso_std_data_track2
652
+ alt_tx_iso_std_data_track3
653
+ ]
654
+
655
+ cmds_arr.each do |cmd|
656
+ params_arr = [0x31, 0x32, 0x33]
657
+ params_arr.each do |param|
658
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
659
+ exec_resp = exec(
660
+ msr206_obj: msr206_obj,
661
+ cmd: cmd,
662
+ params: [param]
663
+ )
664
+ exec_resp[:encoding] = encoding
665
+ exec_resp[:track_format] = [param]
666
+ puts exec_resp[:decoded]
667
+ puts exec_resp.inspect
668
+ track_data_arr.push(exec_resp)
669
+ end
670
+ end
671
+ end
672
+
673
+ if encoding == :raw
674
+ cmds_arr = %i[
675
+ tx_custom_data_forward_track1
676
+ tx_custom_data_forward_track2
677
+ tx_custom_data_forward_track3
678
+ ]
679
+
680
+ cmds_arr.each do |cmd|
681
+ params_arr = [0x33, 0x34, 0x35, 0x36, 0x37]
682
+ params_arr.each do |param|
683
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
684
+ # 2 byte command
685
+ exec_resp = exec(
686
+ msr206_obj: msr206_obj,
687
+ cmd: cmd,
688
+ params: [param]
689
+ )
690
+ exec_resp[:encoding] = encoding
691
+ exec_resp[:track_format] = [param]
692
+ puts exec_resp[:decoded]
693
+ puts exec_resp.inspect
694
+ track_data_arr.push(exec_resp)
695
+
696
+ # 3 byte command
697
+ param = [0x5f] + [param]
698
+ exec_resp = exec(
699
+ msr206_obj: msr206_obj,
700
+ cmd: cmd,
701
+ params: param
702
+ )
703
+ exec_resp[:encoding] = encoding
704
+ exec_resp[:track_format] = param
705
+ puts exec_resp[:decoded]
706
+ puts exec_resp.inspect
707
+ track_data_arr.push(exec_resp)
708
+ end
709
+ end
710
+ end
711
+ when :arm_to_write_no_raw,
712
+ :arm_to_write_with_raw,
713
+ :arm_to_write_with_raw_speed_prompts
714
+
715
+ # TODO: Set Write Density for Tracks Here
716
+ # >>>
717
+
718
+ if encoding == :iso
719
+ cmds_arr = %i[
720
+ load_iso_std_data_for_writing_track1
721
+ load_iso_std_data_for_writing_track2
722
+ load_iso_std_data_for_writing_track3
723
+ ]
724
+
725
+ # TODO: Get Data by cmd (e.g. load_iso_std_data_for_writing_track1)
726
+ cmds_arr.each_with_index do |cmd, track|
727
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
728
+ puts track_data[track][:decoded]
729
+ next if track_data[track][:decoded] == '+'
730
+
731
+ this_track = track_data[track][:decoded].chars.map do |c|
732
+ c.unpack1('H*').to_i(16)
733
+ end
734
+ track_eot = [0x04]
735
+ track_payload = this_track + track_eot
736
+ puts track_payload.inspect
737
+ exec_resp = exec(
738
+ msr206_obj: msr206_obj,
739
+ cmd: cmd,
740
+ params: track_payload
741
+ )
742
+ exec_resp[:encoding] = encoding
743
+ puts exec_resp.inspect
744
+ track_data_arr.push(exec_resp)
745
+ end
746
+ end
747
+
748
+ if encoding == :iso_alt
749
+ cmds_arr = %i[
750
+ alt_load_iso_std_data_for_writing_track1
751
+ alt_load_iso_std_data_for_writing_track2
752
+ alt_load_iso_std_data_for_writing_track3
753
+ ]
754
+
755
+ # TODO: Get Data by cmd (e.g. alt_load_iso_std_data_for_writing_track1)
756
+ cmds_arr.each_with_index do |cmd, track|
757
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
758
+ puts track_data[track][:decoded]
759
+ next if track_data[track][:decoded] == '+'
760
+
761
+ this_track = track_data[track][:decoded].chars.map do |c|
762
+ c.unpack1('H*').to_i(16)
763
+ end
764
+ track_format = track_data[track][:track_format]
765
+ track_eot = [0x04]
766
+ track_payload = track_format + this_track + track_eot
767
+ puts track_payload.inspect
768
+ exec_resp = exec(
769
+ msr206_obj: msr206_obj,
770
+ cmd: cmd,
771
+ params: track_payload
772
+ )
773
+ exec_resp[:encoding] = encoding
774
+ puts exec_resp.inspect
775
+ track_data_arr.push(exec_resp)
776
+ end
777
+ end
778
+
779
+ if encoding == :raw
780
+ cmds_arr = %i[
781
+ load_custom_data_for_writing_track1
782
+ load_custom_data_for_writing_track2
783
+ load_custom_data_for_writing_track3
784
+ ]
785
+
786
+ # TODO: Get Data by cmd (e.g. load_custom_data_for_writing_track1)
787
+ cmds_arr.each_with_index do |cmd, track|
788
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
789
+ puts track_data[track][:decoded]
790
+ next if track_data[track][:decoded] == '+'
791
+
792
+ this_track = track_data[track][:decoded].chars.map do |c|
793
+ c.unpack1('H*').to_i(16)
794
+ end
795
+ track_format = track_data[track][:track_format]
796
+ track_eot = [0x04]
797
+ track_payload = track_format + this_track + track_eot
798
+ puts track_payload.inspect
799
+ exec_resp = exec(
800
+ msr206_obj: msr206_obj,
801
+ cmd: cmd,
802
+ params: track_payload
803
+ )
804
+ exec_resp[:encoding] = encoding
805
+ puts exec_resp.inspect
806
+ track_data_arr.push(exec_resp)
807
+ end
808
+ end
809
+
810
+ exec_resp = PWN::Plugins::MSR206.exec(
811
+ msr206_obj: msr206_obj,
812
+ cmd: type
813
+ )
814
+ puts exec_resp.inspect
815
+
816
+ print 'Writer Activated. Please Swipe Card...'
817
+ loop do
818
+ exec_resp = parse_responses(
819
+ msr206_obj: msr206_obj,
820
+ cmd: type
821
+ )
822
+
823
+ break if exec_resp[:msg] == :ack_command_completed
824
+ end
825
+ else
826
+ raise "ERROR Unsupported type in #wait_for_swipe - #{type}"
827
+ end
828
+
829
+ track_data_arr
830
+ rescue StandardError => e
831
+ raise e
832
+ ensure
833
+ exec_resp = exec(
834
+ msr206_obj: msr206_obj,
835
+ cmd: :green_off
836
+ )
837
+ end
838
+
839
+ # Supported Method Parameters::
840
+ # PWN::Plugins::MSR206.read_card(
841
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
842
+ # )
843
+
844
+ public_class_method def self.read_card(opts = {})
845
+ msr206_obj = opts[:msr206_obj]
846
+ type = opts[:type].to_s.scrub.strip.chomp.to_sym
847
+
848
+ encoding = :waiting_for_selection
849
+ loop do
850
+ puts "\nENCODING OPTIONS:"
851
+ puts '[(I)SO Standard]'
852
+ puts '[(A)LT ISO Standard]'
853
+ puts '[(R)aw]'
854
+ print 'ENCODING TYPE >>> '
855
+ encoding_choice = gets.scrub.chomp.strip.upcase.to_sym
856
+
857
+ case encoding_choice
858
+ when :I
859
+ encoding = :iso
860
+ break
861
+ when :A
862
+ encoding = :iso_alt
863
+ break
864
+ when :R
865
+ encoding = :raw
866
+ break
867
+ end
868
+ end
869
+
870
+ wait_for_swipe(
871
+ msr206_obj: msr206_obj,
872
+ type: :arm_to_read,
873
+ encoding: encoding
874
+ )
875
+ rescue StandardError => e
876
+ raise e
877
+ end
878
+
879
+ # Supported Method Parameters::
880
+ # PWN::Plugins::MSR206.backup_card(
881
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
882
+ # )
883
+
884
+ public_class_method def self.backup_card(opts = {})
885
+ msr206_obj = opts[:msr206_obj]
886
+ type = opts[:type].to_s.scrub.strip.chomp.to_sym
887
+
888
+ # Read Card to Backup
889
+ track_data = read_card(
890
+ msr206_obj: msr206_obj
891
+ )
892
+
893
+ file = ''
894
+ backup_msg = ''
895
+ loop do
896
+ if backup_msg.empty?
897
+ exec_resp = exec(
898
+ msr206_obj: msr206_obj,
899
+ cmd: :green_flash
900
+ )
901
+ end
902
+
903
+ print 'Enter File Name to Save Backup: '
904
+ file = gets.scrub.chomp.strip
905
+ file_dir = File.dirname(file)
906
+ break if Dir.exist?(file_dir)
907
+
908
+ backup_msg = "\n****** ERROR: Directory #{file_dir} for #{file} does not exist ******"
909
+ puts backup_msg
910
+ exec_resp = exec(
911
+ msr206_obj: msr206_obj,
912
+ cmd: :green_off
913
+ )
914
+ exec_resp = exec(
915
+ msr206_obj: msr206_obj,
916
+ cmd: :yellow_flash
917
+ )
918
+ end
919
+
920
+ File.write(file, "#{JSON.pretty_generate(track_data)}\n")
921
+ exec_resp = exec(
922
+ msr206_obj: msr206_obj,
923
+ cmd: :yellow_off
924
+ )
925
+
926
+ puts 'complete.'
927
+
928
+ track_data
929
+ rescue StandardError => e
930
+ raise e
931
+ end
932
+
933
+ # Supported Method Parameters::
934
+ # PWN::Plugins::MSR206.write_card(
935
+ # msr206_obj: 'required - msr206_obj returned from #connect method',
936
+ # encoding: 'required - :iso || :alt_iso || :raw',
937
+ # track_data: 'requred - track data to write (see #backup_card for structure)'
938
+ # )
939
+
940
+ public_class_method def self.write_card(opts = {})
941
+ msr206_obj = opts[:msr206_obj]
942
+ encoding = opts[:encoding].to_s.scrub.strip.chomp.to_sym
943
+ track_data = opts[:track_data]
944
+
945
+ puts 'IN ORDER TO GET BLANK TRACKS, A STRONG MAGNETIC FIELD MUST BE PRESENT TO FIRST WIPE THE CARD TARGETED FOR WRITING.'
946
+ # puts 'Default Write Current:'
947
+ # exec_resp = exec(
948
+ # msr206_obj: msr206_obj,
949
+ # cmd: :view_default_write_current
950
+ # )
951
+ # puts exec_resp.inspect
952
+
953
+ # puts 'Temporary Write Current:'
954
+ # exec_resp = exec(
955
+ # msr206_obj: msr206_obj,
956
+ # cmd: :view_temp_write_current
957
+ # )
958
+ # puts exec_resp.inspect
959
+
960
+ coercivity = :waiting_for_selection
961
+ loop do
962
+ puts "\nCOERCIVITY OPTIONS:"
963
+ puts '[(H)igh (Most Often Black Stripe)]'
964
+ puts '[(L)ow (Most Often Brown Stripe)]'
965
+ print 'COERCIVITY LEVEL >>> '
966
+ coercivity_choice = gets.scrub.chomp.strip.upcase.to_sym
967
+
968
+ # Write Current Settings vs. Media Coercivties
969
+ # Media Coercivity (Oersteds)|Write Current Setting*|Typical Usage
970
+ # 300 |36 |Low coercivity
971
+ # 600 | |
972
+ # 1800 | |
973
+ # 3600+ |255 |Typical high corcivity
974
+
975
+ case coercivity_choice
976
+ when :H
977
+ coercivity = [0x32, 0x35, 0x35]
978
+ break
979
+ when :L
980
+ coercivity = [0x30, 0x33, 0x36]
981
+ break
982
+ end
983
+ end
984
+
985
+ exec_resp = exec(
986
+ msr206_obj: msr206_obj,
987
+ cmd: :set_temp_write_current,
988
+ params: coercivity
989
+ )
990
+
991
+ track_data = wait_for_swipe(
992
+ msr206_obj: msr206_obj,
993
+ type: :arm_to_write_no_raw,
994
+ encoding: encoding,
995
+ track_data: track_data
996
+ )
997
+
998
+ exec_resp = PWN::Plugins::MSR206.exec(
999
+ msr206_obj: msr206_obj,
1000
+ cmd: :simulate_power_cycle_warm_reset
1001
+ )
1002
+
1003
+ track_data
1004
+ rescue StandardError => e
1005
+ raise e
1006
+ end
1007
+
1008
+ # Supported Method Parameters::
1009
+ # PWN::Plugins::MSR206.copy_card(
1010
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
1011
+ # )
1012
+
1013
+ public_class_method def self.copy_card(opts = {})
1014
+ msr206_obj = opts[:msr206_obj]
1015
+
1016
+ # Read Card to Backup
1017
+ track_data = backup_card(
1018
+ msr206_obj: msr206_obj
1019
+ )
1020
+
1021
+ encoding = track_data.first[:encoding] if track_data.length == 3
1022
+ write_card(
1023
+ msr206_obj: msr206_obj,
1024
+ encoding: encoding,
1025
+ track_data: track_data
1026
+ )
1027
+ rescue StandardError => e
1028
+ raise e
1029
+ end
1030
+
1031
+ # Supported Method Parameters::
1032
+ # PWN::Plugins::MSR206.load_card_from_file(
1033
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
1034
+ # )
1035
+
1036
+ public_class_method def self.load_card_from_file(opts = {})
1037
+ msr206_obj = opts[:msr206_obj]
1038
+
1039
+ file = ''
1040
+ restore_msg = ''
1041
+ loop do
1042
+ if restore_msg.empty?
1043
+ exec_resp = exec(
1044
+ msr206_obj: msr206_obj,
1045
+ cmd: :green_flash
1046
+ )
1047
+ end
1048
+
1049
+ print 'Enter File Name to Restore to Card: '
1050
+ file = gets.scrub.chomp.strip
1051
+ break if File.exist?(file)
1052
+
1053
+ restore_msg = "\n****** ERROR: #{file} does not exist ******"
1054
+ puts restore_msg
1055
+ exec_resp = exec(
1056
+ msr206_obj: msr206_obj,
1057
+ cmd: :green_off
1058
+ )
1059
+ exec_resp = exec(
1060
+ msr206_obj: msr206_obj,
1061
+ cmd: :yellow_flash
1062
+ )
1063
+ end
1064
+
1065
+ # Read Card from Backup
1066
+ track_data = JSON.parse(
1067
+ File.read(file),
1068
+ symbolize_names: true
1069
+ )
1070
+
1071
+ exec_resp = exec(
1072
+ msr206_obj: msr206_obj,
1073
+ cmd: :yellow_off
1074
+ )
1075
+
1076
+ encoding = track_data.first[:encoding] if track_data.length == 3
1077
+ write_card(
1078
+ msr206_obj: msr206_obj,
1079
+ encoding: encoding,
1080
+ track_data: track_data
1081
+ )
1082
+ rescue StandardError => e
1083
+ raise e
1084
+ end
1085
+
1086
+ # Supported Method Parameters::
1087
+ # PWN::Plugins::MSR206.get_config(
1088
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
1089
+ # )
1090
+
1091
+ public_class_method def self.get_config(opts = {})
1092
+ msr206_obj = opts[:msr206_obj]
1093
+
1094
+ # --------------------------------------------------
1095
+ # Bit|Bit = 0 |Bit = 1
1096
+ # --------------------------------------------------
1097
+ # 0 |Track 1 Read not present |Track 1 Read present
1098
+ # 1 |Track 2 Read not present |Track 2 Read present
1099
+ # 2 |Track 3 Read not present |Track 3 Read present
1100
+ # 3 |not used – should be 0 |not used
1101
+ # 4 |Track 3 Write not present|Track 3 Write present
1102
+ # 5 |Track 2 Write not present|Track 2 Write present
1103
+ # 6 |Track 1 Write not present|Track 1 Write present
1104
+ # 7 |parity bit** |parity bit**
1105
+ exec_resp = PWN::Plugins::MSR206.exec(
1106
+ msr206_obj: msr206_obj,
1107
+ cmd: :configuration_request
1108
+ )
1109
+
1110
+ config_arr = exec_resp[:binary].first.reverse.chars
1111
+ config_hash = {}
1112
+ config_arr.each_with_index do |bit_str, i|
1113
+ bit = bit_str.to_i
1114
+ config_hash[:track1_read] = false if bit.zero? && i.zero?
1115
+ config_hash[:track1_read] = true if bit == 1 && i.zero?
1116
+
1117
+ config_hash[:track2_read] = false if bit.zero? && i == 1
1118
+ config_hash[:track2_read] = true if bit == 1 && i == 1
1119
+
1120
+ config_hash[:track3_read] = false if bit.zero? && i == 2
1121
+ config_hash[:track3_read] = true if bit == 1 && i == 2
1122
+
1123
+ config_hash[:not_used] if i == 3
1124
+
1125
+ config_hash[:track1_write] = false if bit.zero? && i == 4
1126
+ config_hash[:track1_write] = true if bit == 1 && i == 4
1127
+
1128
+ config_hash[:track2_write] = false if bit.zero? && i == 5
1129
+ config_hash[:track2_write] = true if bit == 1 && i == 5
1130
+
1131
+ config_hash[:track3_write] = false if bit.zero? && i == 6
1132
+ config_hash[:track3_write] = true if bit == 1 && i == 6
1133
+
1134
+ config_hash[:parity] = true if bit == 1 && i == 7
1135
+ end
1136
+
1137
+ config_hash
1138
+ rescue StandardError => e
1139
+ raise e
1140
+ end
1141
+
1142
+ # Supported Method Parameters::
1143
+ # PWN::Plugins::MSR206.disconnect(
1144
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
1145
+ # )
1146
+
1147
+ public_class_method def self.disconnect(opts = {})
1148
+ PWN::Plugins::Serial.disconnect(
1149
+ serial_obj: opts[:msr206_obj]
1150
+ )
1151
+ rescue StandardError => e
1152
+ raise e
1153
+ end
1154
+
1155
+ # Author(s):: 0day Inc. <request.pentest@0dayinc.com>
1156
+
1157
+ public_class_method def self.authors
1158
+ "AUTHOR(S):
1159
+ 0day Inc. <request.pentest@0dayinc.com>
1160
+ "
1161
+ end
1162
+
1163
+ # Display Usage for this Module
1164
+
1165
+ public_class_method def self.help
1166
+ puts "USAGE:
1167
+ msr206_obj = #{self}.connect(
1168
+ block_dev: 'optional serial block device path (defaults to /dev/ttyUSB0)',
1169
+ baud: 'optional (defaults to 9600)',
1170
+ data_bits: 'optional (defaults to 8)',
1171
+ stop_bits: 'optional (defaults to 1)',
1172
+ parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none),'
1173
+ flow_control: 'optional - :none|:hard|:soft (defaults to :none)'
1174
+ )
1175
+
1176
+ cmds = #{self}.list_cmds
1177
+
1178
+ parsed_cmd_resp_arr = #{self}.exec(
1179
+ msr206_obj: 'required msr206_obj returned from #connect method',
1180
+ cmd: 'required - cmd returned from #list_cmds method',
1181
+ params: 'optional - parameters for specific command returned from #list_params method'
1182
+ )
1183
+
1184
+ #{self}.disconnect(
1185
+ msr206_obj: 'required msr206_obj returned from #connect method'
1186
+ )
1187
+
1188
+ #{self}.authors
1189
+ "
1190
+ end
1191
+ end
1192
+ end
1193
+ end