pwn 0.5.508 → 0.5.509

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