pwn 0.4.333

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (904) hide show
  1. checksums.yaml +7 -0
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  4. data/.gitignore +62 -0
  5. data/.rubocop.yml +12 -0
  6. data/.rubocop_todo.yml +76 -0
  7. data/.ruby-gemset +1 -0
  8. data/.ruby-version +1 -0
  9. data/.travis.yml +24 -0
  10. data/CODE_OF_CONDUCT.md +46 -0
  11. data/CONTRIBUTING.md +10 -0
  12. data/Gemfile +75 -0
  13. data/LICENSE.txt +22 -0
  14. data/README.md +125 -0
  15. data/Rakefile +20 -0
  16. data/Vagrantfile +250 -0
  17. data/bin/pwn +74 -0
  18. data/bin/pwn_android_war_dialer +137 -0
  19. data/bin/pwn_arachni +132 -0
  20. data/bin/pwn_arachni_rest +174 -0
  21. data/bin/pwn_autoinc_version +50 -0
  22. data/bin/pwn_aws_describe_resources +728 -0
  23. data/bin/pwn_burp_suite_pro_active_scan +113 -0
  24. data/bin/pwn_char_base64_encoding +24 -0
  25. data/bin/pwn_char_dec_encoding +23 -0
  26. data/bin/pwn_char_hex_escaped_encoding +26 -0
  27. data/bin/pwn_char_html_entity_encoding +24 -0
  28. data/bin/pwn_char_unicode_escaped_encoding +23 -0
  29. data/bin/pwn_char_url_encoding +24 -0
  30. data/bin/pwn_defectdojo_engagement_create +158 -0
  31. data/bin/pwn_defectdojo_importscan +104 -0
  32. data/bin/pwn_defectdojo_reimportscan +104 -0
  33. data/bin/pwn_domain_reversewhois +89 -0
  34. data/bin/pwn_fuzz_net_app_proto +149 -0
  35. data/bin/pwn_ibm_appscan_enterprise +112 -0
  36. data/bin/pwn_jenkins_create_job +68 -0
  37. data/bin/pwn_jenkins_create_view +68 -0
  38. data/bin/pwn_jenkins_install_plugin +91 -0
  39. data/bin/pwn_jenkins_thinBackup_aws_s3 +123 -0
  40. data/bin/pwn_jenkins_update_plugins +87 -0
  41. data/bin/pwn_jenkins_useradd +86 -0
  42. data/bin/pwn_mail_agent +127 -0
  43. data/bin/pwn_msf_postgres_login +28 -0
  44. data/bin/pwn_nessus_cloud_vulnscan +103 -0
  45. data/bin/pwn_nexpose +52 -0
  46. data/bin/pwn_openvas_vulnscan +102 -0
  47. data/bin/pwn_owasp_zap_active_scan +134 -0
  48. data/bin/pwn_pastebin_sample_filter +61 -0
  49. data/bin/pwn_perimeter_recon +318 -0
  50. data/bin/pwn_sast +161 -0
  51. data/bin/pwn_serial_check_voicemail +66 -0
  52. data/bin/pwn_serial_qualcomm_commands +16 -0
  53. data/bin/pwn_simple_http_server +46 -0
  54. data/bin/pwn_web_cache_deception +233 -0
  55. data/bin/pwn_www_checkip +62 -0
  56. data/bin/pwn_xss_dom_vectors +169 -0
  57. data/build_pwn_gem.sh +33 -0
  58. data/documentation/CSI_Contributors_and_Users.png +0 -0
  59. data/documentation/CSI_Driver_Arch.png +0 -0
  60. data/documentation/fax-spectrogram.png +0 -0
  61. data/documentation/fax-waveform.png +0 -0
  62. data/documentation/pwn_android_war_dialer_session.png +0 -0
  63. data/documentation/pwn_wallpaper.jpg +0 -0
  64. data/documentation/ringing-spectrogram.png +0 -0
  65. data/documentation/ringing-waveform.png +0 -0
  66. data/etc/systemd/msfrpcd.service +12 -0
  67. data/etc/systemd/openvas.service +14 -0
  68. data/etc/userland/aws/apache2/jenkins_443.conf +90 -0
  69. data/etc/userland/aws/apache2/jenkins_80.conf +7 -0
  70. data/etc/userland/aws/apache2/openvas_443.conf +87 -0
  71. data/etc/userland/aws/apache2/openvas_80.conf +7 -0
  72. data/etc/userland/aws/apache2/sast_443.conf +87 -0
  73. data/etc/userland/aws/apache2/sast_80.conf +9 -0
  74. data/etc/userland/aws/apache2/vagrant.yaml.EXAMPLE +9 -0
  75. data/etc/userland/aws/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  76. data/etc/userland/aws/arachni/navigation.instruct.EXAMPLE +3 -0
  77. data/etc/userland/aws/burpsuite/navigation.instruct.EXAMPLE +3 -0
  78. data/etc/userland/aws/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  79. data/etc/userland/aws/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  80. data/etc/userland/aws/jenkins/inject_build_envs.sh +15 -0
  81. data/etc/userland/aws/jenkins/jenkins +81 -0
  82. data/etc/userland/aws/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  83. data/etc/userland/aws/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  84. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  85. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  86. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  87. data/etc/userland/aws/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  88. data/etc/userland/aws/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  89. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  90. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  91. data/etc/userland/aws/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  92. data/etc/userland/aws/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  93. data/etc/userland/aws/jenkins/jobs/selfupdate-gem.xml +42 -0
  94. data/etc/userland/aws/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  95. data/etc/userland/aws/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  96. data/etc/userland/aws/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  97. data/etc/userland/aws/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  98. data/etc/userland/aws/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  99. data/etc/userland/aws/jenkins/jobs/selfupdate-os.xml +42 -0
  100. data/etc/userland/aws/jenkins/jobs/selfupdate-pwn.xml +42 -0
  101. data/etc/userland/aws/jenkins/jobs/selfupdate-rvm.xml +42 -0
  102. data/etc/userland/aws/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  103. data/etc/userland/aws/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  104. data/etc/userland/aws/jenkins/jobs_userland/.gitkeep +0 -0
  105. data/etc/userland/aws/jenkins/log_parser_rules/arachni.rules +5 -0
  106. data/etc/userland/aws/jenkins/log_parser_rules/sast.rules +2 -0
  107. data/etc/userland/aws/jenkins/log_parser_rules/self_update.rules +14 -0
  108. data/etc/userland/aws/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  109. data/etc/userland/aws/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  110. data/etc/userland/aws/jenkins/log_parser_rules/wpscan.rules +2 -0
  111. data/etc/userland/aws/jenkins/vagrant.yaml.EXAMPLE +8 -0
  112. data/etc/userland/aws/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  113. data/etc/userland/aws/metasploit/vagrant.yaml.EXAMPLE +4 -0
  114. data/etc/userland/aws/nessus/vagrant.yaml.EXAMPLE +2 -0
  115. data/etc/userland/aws/openvas/vagrant.yaml.EXAMPLE +2 -0
  116. data/etc/userland/aws/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  117. data/etc/userland/aws/postgres/vagrant.yaml.EXAMPLE +2 -0
  118. data/etc/userland/aws/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  119. data/etc/userland/aws/vagrant.yaml.EXAMPLE +35 -0
  120. data/etc/userland/docker/apache2/jenkins_443.conf +90 -0
  121. data/etc/userland/docker/apache2/jenkins_80.conf +7 -0
  122. data/etc/userland/docker/apache2/openvas_443.conf +87 -0
  123. data/etc/userland/docker/apache2/openvas_80.conf +7 -0
  124. data/etc/userland/docker/apache2/sast_443.conf +87 -0
  125. data/etc/userland/docker/apache2/sast_80.conf +9 -0
  126. data/etc/userland/docker/apache2/vagrant.yaml.EXAMPLE +9 -0
  127. data/etc/userland/docker/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  128. data/etc/userland/docker/arachni/navigation.instruct.EXAMPLE +3 -0
  129. data/etc/userland/docker/burpsuite/navigation.instruct.EXAMPLE +3 -0
  130. data/etc/userland/docker/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  131. data/etc/userland/docker/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  132. data/etc/userland/docker/jenkins/inject_build_envs.sh +15 -0
  133. data/etc/userland/docker/jenkins/jenkins +81 -0
  134. data/etc/userland/docker/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  135. data/etc/userland/docker/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  136. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  137. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  138. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  139. data/etc/userland/docker/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  140. data/etc/userland/docker/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  141. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  142. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  143. data/etc/userland/docker/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  144. data/etc/userland/docker/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  145. data/etc/userland/docker/jenkins/jobs/selfupdate-gem.xml +42 -0
  146. data/etc/userland/docker/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  147. data/etc/userland/docker/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  148. data/etc/userland/docker/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  149. data/etc/userland/docker/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  150. data/etc/userland/docker/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  151. data/etc/userland/docker/jenkins/jobs/selfupdate-os.xml +42 -0
  152. data/etc/userland/docker/jenkins/jobs/selfupdate-pwn.xml +42 -0
  153. data/etc/userland/docker/jenkins/jobs/selfupdate-rvm.xml +42 -0
  154. data/etc/userland/docker/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  155. data/etc/userland/docker/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  156. data/etc/userland/docker/jenkins/jobs_userland/.gitkeep +0 -0
  157. data/etc/userland/docker/jenkins/log_parser_rules/arachni.rules +5 -0
  158. data/etc/userland/docker/jenkins/log_parser_rules/sast.rules +2 -0
  159. data/etc/userland/docker/jenkins/log_parser_rules/self_update.rules +14 -0
  160. data/etc/userland/docker/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  161. data/etc/userland/docker/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  162. data/etc/userland/docker/jenkins/log_parser_rules/wpscan.rules +2 -0
  163. data/etc/userland/docker/jenkins/vagrant.yaml.EXAMPLE +8 -0
  164. data/etc/userland/docker/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  165. data/etc/userland/docker/metasploit/vagrant.yaml.EXAMPLE +4 -0
  166. data/etc/userland/docker/nessus/vagrant.yaml.EXAMPLE +2 -0
  167. data/etc/userland/docker/openvas/vagrant.yaml.EXAMPLE +2 -0
  168. data/etc/userland/docker/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  169. data/etc/userland/docker/postgres/vagrant.yaml.EXAMPLE +2 -0
  170. data/etc/userland/docker/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  171. data/etc/userland/qemu/apache2/jenkins_443.conf +90 -0
  172. data/etc/userland/qemu/apache2/jenkins_80.conf +7 -0
  173. data/etc/userland/qemu/apache2/openvas_443.conf +87 -0
  174. data/etc/userland/qemu/apache2/openvas_80.conf +7 -0
  175. data/etc/userland/qemu/apache2/sast_443.conf +87 -0
  176. data/etc/userland/qemu/apache2/sast_80.conf +9 -0
  177. data/etc/userland/qemu/apache2/vagrant.yaml.EXAMPLE +9 -0
  178. data/etc/userland/qemu/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  179. data/etc/userland/qemu/arachni/navigation.instruct.EXAMPLE +3 -0
  180. data/etc/userland/qemu/burpsuite/navigation.instruct.EXAMPLE +3 -0
  181. data/etc/userland/qemu/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  182. data/etc/userland/qemu/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  183. data/etc/userland/qemu/jenkins/inject_build_envs.sh +15 -0
  184. data/etc/userland/qemu/jenkins/jenkins +81 -0
  185. data/etc/userland/qemu/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  186. data/etc/userland/qemu/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  187. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  188. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  189. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  190. data/etc/userland/qemu/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  191. data/etc/userland/qemu/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  192. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  193. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  194. data/etc/userland/qemu/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  195. data/etc/userland/qemu/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  196. data/etc/userland/qemu/jenkins/jobs/selfupdate-gem.xml +42 -0
  197. data/etc/userland/qemu/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  198. data/etc/userland/qemu/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  199. data/etc/userland/qemu/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  200. data/etc/userland/qemu/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  201. data/etc/userland/qemu/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  202. data/etc/userland/qemu/jenkins/jobs/selfupdate-os.xml +42 -0
  203. data/etc/userland/qemu/jenkins/jobs/selfupdate-pwn.xml +42 -0
  204. data/etc/userland/qemu/jenkins/jobs/selfupdate-rvm.xml +42 -0
  205. data/etc/userland/qemu/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  206. data/etc/userland/qemu/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  207. data/etc/userland/qemu/jenkins/jobs_userland/.gitkeep +0 -0
  208. data/etc/userland/qemu/jenkins/log_parser_rules/arachni.rules +5 -0
  209. data/etc/userland/qemu/jenkins/log_parser_rules/sast.rules +2 -0
  210. data/etc/userland/qemu/jenkins/log_parser_rules/self_update.rules +14 -0
  211. data/etc/userland/qemu/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  212. data/etc/userland/qemu/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  213. data/etc/userland/qemu/jenkins/log_parser_rules/wpscan.rules +2 -0
  214. data/etc/userland/qemu/jenkins/vagrant.yaml.EXAMPLE +8 -0
  215. data/etc/userland/qemu/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  216. data/etc/userland/qemu/metasploit/vagrant.yaml.EXAMPLE +4 -0
  217. data/etc/userland/qemu/nessus/vagrant.yaml.EXAMPLE +2 -0
  218. data/etc/userland/qemu/openvas/vagrant.yaml.EXAMPLE +2 -0
  219. data/etc/userland/qemu/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  220. data/etc/userland/qemu/postgres/vagrant.yaml.EXAMPLE +2 -0
  221. data/etc/userland/qemu/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  222. data/etc/userland/ruby-gem/apache2/jenkins_443.conf +90 -0
  223. data/etc/userland/ruby-gem/apache2/jenkins_80.conf +7 -0
  224. data/etc/userland/ruby-gem/apache2/openvas_443.conf +87 -0
  225. data/etc/userland/ruby-gem/apache2/openvas_80.conf +7 -0
  226. data/etc/userland/ruby-gem/apache2/sast_443.conf +87 -0
  227. data/etc/userland/ruby-gem/apache2/sast_80.conf +9 -0
  228. data/etc/userland/ruby-gem/apache2/vagrant.yaml.EXAMPLE +9 -0
  229. data/etc/userland/ruby-gem/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  230. data/etc/userland/ruby-gem/arachni/navigation.instruct.EXAMPLE +3 -0
  231. data/etc/userland/ruby-gem/burpsuite/navigation.instruct.EXAMPLE +3 -0
  232. data/etc/userland/ruby-gem/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  233. data/etc/userland/ruby-gem/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  234. data/etc/userland/ruby-gem/jenkins/inject_build_envs.sh +15 -0
  235. data/etc/userland/ruby-gem/jenkins/jenkins +81 -0
  236. data/etc/userland/ruby-gem/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  237. data/etc/userland/ruby-gem/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  238. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  239. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  240. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  241. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  242. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  243. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  244. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  245. data/etc/userland/ruby-gem/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  246. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  247. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-gem.xml +42 -0
  248. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  249. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  250. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  251. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  252. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  253. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-os.xml +42 -0
  254. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-pwn.xml +42 -0
  255. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-rvm.xml +42 -0
  256. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  257. data/etc/userland/ruby-gem/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  258. data/etc/userland/ruby-gem/jenkins/jobs_userland/.gitkeep +0 -0
  259. data/etc/userland/ruby-gem/jenkins/log_parser_rules/arachni.rules +5 -0
  260. data/etc/userland/ruby-gem/jenkins/log_parser_rules/sast.rules +2 -0
  261. data/etc/userland/ruby-gem/jenkins/log_parser_rules/self_update.rules +14 -0
  262. data/etc/userland/ruby-gem/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  263. data/etc/userland/ruby-gem/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  264. data/etc/userland/ruby-gem/jenkins/log_parser_rules/wpscan.rules +2 -0
  265. data/etc/userland/ruby-gem/jenkins/vagrant.yaml.EXAMPLE +8 -0
  266. data/etc/userland/ruby-gem/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  267. data/etc/userland/ruby-gem/metasploit/vagrant.yaml.EXAMPLE +4 -0
  268. data/etc/userland/ruby-gem/nessus/vagrant.yaml.EXAMPLE +2 -0
  269. data/etc/userland/ruby-gem/openvas/vagrant.yaml.EXAMPLE +2 -0
  270. data/etc/userland/ruby-gem/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  271. data/etc/userland/ruby-gem/postgres/vagrant.yaml.EXAMPLE +2 -0
  272. data/etc/userland/ruby-gem/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  273. data/etc/userland/virtualbox/apache2/jenkins_443.conf +90 -0
  274. data/etc/userland/virtualbox/apache2/jenkins_80.conf +7 -0
  275. data/etc/userland/virtualbox/apache2/openvas_443.conf +87 -0
  276. data/etc/userland/virtualbox/apache2/openvas_80.conf +7 -0
  277. data/etc/userland/virtualbox/apache2/sast_443.conf +87 -0
  278. data/etc/userland/virtualbox/apache2/sast_80.conf +9 -0
  279. data/etc/userland/virtualbox/apache2/vagrant.yaml.EXAMPLE +9 -0
  280. data/etc/userland/virtualbox/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  281. data/etc/userland/virtualbox/arachni/navigation.instruct.EXAMPLE +3 -0
  282. data/etc/userland/virtualbox/burpsuite/navigation.instruct.EXAMPLE +3 -0
  283. data/etc/userland/virtualbox/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  284. data/etc/userland/virtualbox/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  285. data/etc/userland/virtualbox/jenkins/inject_build_envs.sh +15 -0
  286. data/etc/userland/virtualbox/jenkins/jenkins +81 -0
  287. data/etc/userland/virtualbox/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  288. data/etc/userland/virtualbox/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  289. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  290. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  291. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  292. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  293. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  294. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  295. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  296. data/etc/userland/virtualbox/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  297. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  298. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-gem.xml +42 -0
  299. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  300. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  301. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  302. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  303. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  304. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-os.xml +42 -0
  305. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-pwn.xml +42 -0
  306. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-rvm.xml +42 -0
  307. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  308. data/etc/userland/virtualbox/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  309. data/etc/userland/virtualbox/jenkins/jobs_userland/.gitkeep +0 -0
  310. data/etc/userland/virtualbox/jenkins/log_parser_rules/arachni.rules +5 -0
  311. data/etc/userland/virtualbox/jenkins/log_parser_rules/sast.rules +2 -0
  312. data/etc/userland/virtualbox/jenkins/log_parser_rules/self_update.rules +14 -0
  313. data/etc/userland/virtualbox/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  314. data/etc/userland/virtualbox/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  315. data/etc/userland/virtualbox/jenkins/log_parser_rules/wpscan.rules +2 -0
  316. data/etc/userland/virtualbox/jenkins/vagrant.yaml.EXAMPLE +8 -0
  317. data/etc/userland/virtualbox/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  318. data/etc/userland/virtualbox/metasploit/vagrant.yaml.EXAMPLE +4 -0
  319. data/etc/userland/virtualbox/nessus/vagrant.yaml.EXAMPLE +2 -0
  320. data/etc/userland/virtualbox/openvas/vagrant.yaml.EXAMPLE +2 -0
  321. data/etc/userland/virtualbox/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  322. data/etc/userland/virtualbox/postgres/vagrant.yaml.EXAMPLE +2 -0
  323. data/etc/userland/virtualbox/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  324. data/etc/userland/virtualbox/vagrant.yaml.EXAMPLE +4 -0
  325. data/etc/userland/vmware/apache2/jenkins_443.conf +90 -0
  326. data/etc/userland/vmware/apache2/jenkins_80.conf +7 -0
  327. data/etc/userland/vmware/apache2/openvas_443.conf +87 -0
  328. data/etc/userland/vmware/apache2/openvas_80.conf +7 -0
  329. data/etc/userland/vmware/apache2/sast_443.conf +87 -0
  330. data/etc/userland/vmware/apache2/sast_80.conf +9 -0
  331. data/etc/userland/vmware/apache2/vagrant.yaml.EXAMPLE +9 -0
  332. data/etc/userland/vmware/arachni/navigation-REST.instruct.EXAMPLE +29 -0
  333. data/etc/userland/vmware/arachni/navigation.instruct.EXAMPLE +3 -0
  334. data/etc/userland/vmware/burpsuite/navigation.instruct.EXAMPLE +3 -0
  335. data/etc/userland/vmware/burpsuite/vagrant.yaml.EXAMPLE +2 -0
  336. data/etc/userland/vmware/defectdojo/vagrant.yaml.EXAMPLE +3 -0
  337. data/etc/userland/vmware/jenkins/inject_build_envs.sh +15 -0
  338. data/etc/userland/vmware/jenkins/jenkins +81 -0
  339. data/etc/userland/vmware/jenkins/jobs/pipeline-pwntemplate.xml +298 -0
  340. data/etc/userland/vmware/jenkins/jobs/pipeline-selfupdate.xml +462 -0
  341. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-arachni.xml +35 -0
  342. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-burpsuite.xml +44 -0
  343. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-owasp_zap.xml +35 -0
  344. data/etc/userland/vmware/jenkins/jobs/pwntemplate-DOMAIN-ssllabs-scan.xml +45 -0
  345. data/etc/userland/vmware/jenkins/jobs/pwntemplate-GITREPO_BRANCH-sast.xml +71 -0
  346. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_discovery_scan_tcp_udp_65k.xml +56 -0
  347. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-nmap_xml_results_searchsploit.xml +59 -0
  348. data/etc/userland/vmware/jenkins/jobs/pwntemplate-NETWORKRANGE-openvas.xml +45 -0
  349. data/etc/userland/vmware/jenkins/jobs/selfupdate-exploit-db.xml +43 -0
  350. data/etc/userland/vmware/jenkins/jobs/selfupdate-gem.xml +42 -0
  351. data/etc/userland/vmware/jenkins/jobs/selfupdate-jenkins_plugins.xml +42 -0
  352. data/etc/userland/vmware/jenkins/jobs/selfupdate-metasploit.xml +42 -0
  353. data/etc/userland/vmware/jenkins/jobs/selfupdate-nmap_all_live_hosts.xml +42 -0
  354. data/etc/userland/vmware/jenkins/jobs/selfupdate-openvas_sync.xml +42 -0
  355. data/etc/userland/vmware/jenkins/jobs/selfupdate-openvas_wrappers.xml +42 -0
  356. data/etc/userland/vmware/jenkins/jobs/selfupdate-os.xml +42 -0
  357. data/etc/userland/vmware/jenkins/jobs/selfupdate-pwn.xml +42 -0
  358. data/etc/userland/vmware/jenkins/jobs/selfupdate-rvm.xml +42 -0
  359. data/etc/userland/vmware/jenkins/jobs/selfupdate-ssllabs-scan.xml +42 -0
  360. data/etc/userland/vmware/jenkins/jobs/selfupdate-wpscan.xml +42 -0
  361. data/etc/userland/vmware/jenkins/jobs_userland/.gitkeep +0 -0
  362. data/etc/userland/vmware/jenkins/log_parser_rules/arachni.rules +5 -0
  363. data/etc/userland/vmware/jenkins/log_parser_rules/sast.rules +2 -0
  364. data/etc/userland/vmware/jenkins/log_parser_rules/self_update.rules +14 -0
  365. data/etc/userland/vmware/jenkins/log_parser_rules/ssllabs-scan.rules +8 -0
  366. data/etc/userland/vmware/jenkins/log_parser_rules/system_maintenance.rules +9 -0
  367. data/etc/userland/vmware/jenkins/log_parser_rules/wpscan.rules +2 -0
  368. data/etc/userland/vmware/jenkins/vagrant.yaml.EXAMPLE +8 -0
  369. data/etc/userland/vmware/letsencrypt/vagrant.yaml.EXAMPLE +5 -0
  370. data/etc/userland/vmware/metasploit/vagrant.yaml.EXAMPLE +4 -0
  371. data/etc/userland/vmware/nessus/vagrant.yaml.EXAMPLE +2 -0
  372. data/etc/userland/vmware/openvas/vagrant.yaml.EXAMPLE +2 -0
  373. data/etc/userland/vmware/owasp_zap/navigation.instruct.EXAMPLE +3 -0
  374. data/etc/userland/vmware/postgres/vagrant.yaml.EXAMPLE +2 -0
  375. data/etc/userland/vmware/recon-ng/vagrant.yaml.EXAMPLE +52 -0
  376. data/etc/userland/vmware/vagrant.yaml.EXAMPLE +5 -0
  377. data/find_latest_gem_versions_per_Gemfile.sh +11 -0
  378. data/git_commit_test_reinit_gem.sh +22 -0
  379. data/install.sh +180 -0
  380. data/lib/pwn/aws/acm.rb +92 -0
  381. data/lib/pwn/aws/api_gateway.rb +92 -0
  382. data/lib/pwn/aws/app_stream.rb +92 -0
  383. data/lib/pwn/aws/application_auto_scaling.rb +92 -0
  384. data/lib/pwn/aws/application_discovery_service.rb +92 -0
  385. data/lib/pwn/aws/auto_scaling.rb +92 -0
  386. data/lib/pwn/aws/batch.rb +92 -0
  387. data/lib/pwn/aws/budgets.rb +92 -0
  388. data/lib/pwn/aws/cloud_formation.rb +92 -0
  389. data/lib/pwn/aws/cloud_front.rb +92 -0
  390. data/lib/pwn/aws/cloud_hsm.rb +92 -0
  391. data/lib/pwn/aws/cloud_search.rb +92 -0
  392. data/lib/pwn/aws/cloud_search_domain.rb +92 -0
  393. data/lib/pwn/aws/cloud_trail.rb +92 -0
  394. data/lib/pwn/aws/cloud_watch.rb +92 -0
  395. data/lib/pwn/aws/cloud_watch_events.rb +92 -0
  396. data/lib/pwn/aws/cloud_watch_logs.rb +92 -0
  397. data/lib/pwn/aws/code_build.rb +92 -0
  398. data/lib/pwn/aws/code_commit.rb +92 -0
  399. data/lib/pwn/aws/code_deploy.rb +92 -0
  400. data/lib/pwn/aws/code_pipeline.rb +92 -0
  401. data/lib/pwn/aws/cognito_identity.rb +92 -0
  402. data/lib/pwn/aws/cognito_identity_provider.rb +92 -0
  403. data/lib/pwn/aws/cognito_sync.rb +92 -0
  404. data/lib/pwn/aws/config_service.rb +92 -0
  405. data/lib/pwn/aws/data_pipleline.rb +92 -0
  406. data/lib/pwn/aws/database_migration_service.rb +92 -0
  407. data/lib/pwn/aws/device_farm.rb +92 -0
  408. data/lib/pwn/aws/direct_connect.rb +92 -0
  409. data/lib/pwn/aws/directory_service.rb +92 -0
  410. data/lib/pwn/aws/dynamo_db.rb +92 -0
  411. data/lib/pwn/aws/dynamo_db_streams.rb +92 -0
  412. data/lib/pwn/aws/ec2.rb +92 -0
  413. data/lib/pwn/aws/ecr.rb +92 -0
  414. data/lib/pwn/aws/ecs.rb +92 -0
  415. data/lib/pwn/aws/efs.rb +92 -0
  416. data/lib/pwn/aws/elasti_cache.rb +92 -0
  417. data/lib/pwn/aws/elastic_beanstalk.rb +89 -0
  418. data/lib/pwn/aws/elastic_load_balancing.rb +92 -0
  419. data/lib/pwn/aws/elastic_load_balancing_v2.rb +92 -0
  420. data/lib/pwn/aws/elastic_transcoder.rb +92 -0
  421. data/lib/pwn/aws/elasticsearch_service.rb +92 -0
  422. data/lib/pwn/aws/emr.rb +92 -0
  423. data/lib/pwn/aws/firehose.rb +92 -0
  424. data/lib/pwn/aws/game_lift.rb +92 -0
  425. data/lib/pwn/aws/glacier.rb +92 -0
  426. data/lib/pwn/aws/health.rb +92 -0
  427. data/lib/pwn/aws/iam.rb +92 -0
  428. data/lib/pwn/aws/import_export.rb +92 -0
  429. data/lib/pwn/aws/inspector.rb +92 -0
  430. data/lib/pwn/aws/iot.rb +92 -0
  431. data/lib/pwn/aws/iot_data_plane.rb +92 -0
  432. data/lib/pwn/aws/kinesis.rb +92 -0
  433. data/lib/pwn/aws/kinesis_analytics.rb +92 -0
  434. data/lib/pwn/aws/kms.rb +92 -0
  435. data/lib/pwn/aws/lambda.rb +92 -0
  436. data/lib/pwn/aws/lambda_preview.rb +92 -0
  437. data/lib/pwn/aws/lex.rb +92 -0
  438. data/lib/pwn/aws/lightsail.rb +92 -0
  439. data/lib/pwn/aws/machine_learning.rb +92 -0
  440. data/lib/pwn/aws/marketplace_commerce_analytics.rb +92 -0
  441. data/lib/pwn/aws/marketplace_metering.rb +92 -0
  442. data/lib/pwn/aws/ops_works.rb +92 -0
  443. data/lib/pwn/aws/ops_works_cm.rb +92 -0
  444. data/lib/pwn/aws/pinpoint.rb +92 -0
  445. data/lib/pwn/aws/polly.rb +92 -0
  446. data/lib/pwn/aws/rds.rb +92 -0
  447. data/lib/pwn/aws/redshift.rb +92 -0
  448. data/lib/pwn/aws/rekognition.rb +92 -0
  449. data/lib/pwn/aws/route53.rb +92 -0
  450. data/lib/pwn/aws/route53_domains.rb +92 -0
  451. data/lib/pwn/aws/s3.rb +92 -0
  452. data/lib/pwn/aws/service_catalog.rb +92 -0
  453. data/lib/pwn/aws/ses.rb +92 -0
  454. data/lib/pwn/aws/shield.rb +92 -0
  455. data/lib/pwn/aws/simple_db.rb +92 -0
  456. data/lib/pwn/aws/sms.rb +92 -0
  457. data/lib/pwn/aws/snowball.rb +92 -0
  458. data/lib/pwn/aws/sns.rb +92 -0
  459. data/lib/pwn/aws/sqs.rb +92 -0
  460. data/lib/pwn/aws/ssm.rb +92 -0
  461. data/lib/pwn/aws/states.rb +92 -0
  462. data/lib/pwn/aws/storage_gateway.rb +92 -0
  463. data/lib/pwn/aws/sts.rb +63 -0
  464. data/lib/pwn/aws/support.rb +92 -0
  465. data/lib/pwn/aws/swf.rb +92 -0
  466. data/lib/pwn/aws/waf.rb +92 -0
  467. data/lib/pwn/aws/waf_regional.rb +92 -0
  468. data/lib/pwn/aws/workspaces.rb +92 -0
  469. data/lib/pwn/aws/x_ray.rb +92 -0
  470. data/lib/pwn/aws.rb +105 -0
  471. data/lib/pwn/ffi.rb +16 -0
  472. data/lib/pwn/plugins/android.rb +1616 -0
  473. data/lib/pwn/plugins/ansible_vault.rb +75 -0
  474. data/lib/pwn/plugins/authentication_helper.rb +79 -0
  475. data/lib/pwn/plugins/basic_auth.rb +63 -0
  476. data/lib/pwn/plugins/beef.rb +309 -0
  477. data/lib/pwn/plugins/burp_suite.rb +340 -0
  478. data/lib/pwn/plugins/bus_pirate.rb +150 -0
  479. data/lib/pwn/plugins/char.rb +459 -0
  480. data/lib/pwn/plugins/credit_card.rb +53 -0
  481. data/lib/pwn/plugins/dao_ldap.rb +131 -0
  482. data/lib/pwn/plugins/dao_mongo.rb +96 -0
  483. data/lib/pwn/plugins/dao_postgres.rb +224 -0
  484. data/lib/pwn/plugins/dao_sqlite3.rb +125 -0
  485. data/lib/pwn/plugins/defect_dojo.rb +759 -0
  486. data/lib/pwn/plugins/detect_os.rb +40 -0
  487. data/lib/pwn/plugins/ein.rb +141 -0
  488. data/lib/pwn/plugins/file_fu.rb +73 -0
  489. data/lib/pwn/plugins/fuzz.rb +206 -0
  490. data/lib/pwn/plugins/git.rb +166 -0
  491. data/lib/pwn/plugins/hacker_one.rb +152 -0
  492. data/lib/pwn/plugins/http_intercept_helper.rb +122 -0
  493. data/lib/pwn/plugins/ibm_appscan.rb +927 -0
  494. data/lib/pwn/plugins/ip_info.rb +100 -0
  495. data/lib/pwn/plugins/jenkins.rb +545 -0
  496. data/lib/pwn/plugins/json_pathify.rb +46 -0
  497. data/lib/pwn/plugins/mail_agent.rb +344 -0
  498. data/lib/pwn/plugins/metasploit.rb +151 -0
  499. data/lib/pwn/plugins/nessus_cloud.rb +325 -0
  500. data/lib/pwn/plugins/nexpose_vuln_scan.rb +356 -0
  501. data/lib/pwn/plugins/nmap_it.rb +99 -0
  502. data/lib/pwn/plugins/oauth2.rb +67 -0
  503. data/lib/pwn/plugins/ocr.rb +43 -0
  504. data/lib/pwn/plugins/openvas.rb +308 -0
  505. data/lib/pwn/plugins/owasp_zap.rb +550 -0
  506. data/lib/pwn/plugins/packet.rb +1271 -0
  507. data/lib/pwn/plugins/pdf_parse.rb +53 -0
  508. data/lib/pwn/plugins/pony.rb +282 -0
  509. data/lib/pwn/plugins/pwn_logger.rb +46 -0
  510. data/lib/pwn/plugins/rabbit_mq_hole.rb +66 -0
  511. data/lib/pwn/plugins/rfidler.rb +58 -0
  512. data/lib/pwn/plugins/serial.rb +268 -0
  513. data/lib/pwn/plugins/shodan.rb +566 -0
  514. data/lib/pwn/plugins/slack_client.rb +104 -0
  515. data/lib/pwn/plugins/sock.rb +156 -0
  516. data/lib/pwn/plugins/son_micro_rfid.rb +432 -0
  517. data/lib/pwn/plugins/spider.rb +80 -0
  518. data/lib/pwn/plugins/ssn.rb +52 -0
  519. data/lib/pwn/plugins/thread_pool.rb +71 -0
  520. data/lib/pwn/plugins/transparent_browser.rb +337 -0
  521. data/lib/pwn/plugins/twitter_api.rb +148 -0
  522. data/lib/pwn/plugins/uri_scheme.rb +328 -0
  523. data/lib/pwn/plugins/vsphere.rb +82 -0
  524. data/lib/pwn/plugins.rb +66 -0
  525. data/lib/pwn/reports/fuzz.rb +270 -0
  526. data/lib/pwn/reports/sast.rb +306 -0
  527. data/lib/pwn/reports.rb +21 -0
  528. data/lib/pwn/sast/amqp_connect_as_guest.rb +140 -0
  529. data/lib/pwn/sast/apache_file_system_util_api.rb +137 -0
  530. data/lib/pwn/sast/aws.rb +142 -0
  531. data/lib/pwn/sast/banned_function_calls_c.rb +265 -0
  532. data/lib/pwn/sast/base64.rb +143 -0
  533. data/lib/pwn/sast/beef_hook.rb +137 -0
  534. data/lib/pwn/sast/cmd_execution_java.rb +142 -0
  535. data/lib/pwn/sast/cmd_execution_python.rb +144 -0
  536. data/lib/pwn/sast/cmd_execution_ruby.rb +152 -0
  537. data/lib/pwn/sast/cmd_execution_scala.rb +142 -0
  538. data/lib/pwn/sast/csrf.rb +136 -0
  539. data/lib/pwn/sast/deserial_java.rb +135 -0
  540. data/lib/pwn/sast/emoticon.rb +145 -0
  541. data/lib/pwn/sast/eval.rb +140 -0
  542. data/lib/pwn/sast/factory.rb +135 -0
  543. data/lib/pwn/sast/file_permission.rb +142 -0
  544. data/lib/pwn/sast/inner_html.rb +140 -0
  545. data/lib/pwn/sast/keystore.rb +137 -0
  546. data/lib/pwn/sast/location_hash.rb +140 -0
  547. data/lib/pwn/sast/log4j.rb +140 -0
  548. data/lib/pwn/sast/logger.rb +155 -0
  549. data/lib/pwn/sast/outer_html.rb +140 -0
  550. data/lib/pwn/sast/password.rb +140 -0
  551. data/lib/pwn/sast/pom_version.rb +144 -0
  552. data/lib/pwn/sast/port.rb +147 -0
  553. data/lib/pwn/sast/private_key.rb +140 -0
  554. data/lib/pwn/sast/redirect.rb +142 -0
  555. data/lib/pwn/sast/redos.rb +147 -0
  556. data/lib/pwn/sast/shell.rb +148 -0
  557. data/lib/pwn/sast/sql.rb +144 -0
  558. data/lib/pwn/sast/ssl.rb +137 -0
  559. data/lib/pwn/sast/sudo.rb +140 -0
  560. data/lib/pwn/sast/task_tag.rb +154 -0
  561. data/lib/pwn/sast/throw_errors.rb +139 -0
  562. data/lib/pwn/sast/token.rb +137 -0
  563. data/lib/pwn/sast/version.rb +137 -0
  564. data/lib/pwn/sast/window_location_hash.rb +139 -0
  565. data/lib/pwn/sast.rb +53 -0
  566. data/lib/pwn/version.rb +5 -0
  567. data/lib/pwn/www/app_cobalt_io.rb +168 -0
  568. data/lib/pwn/www/bing.rb +119 -0
  569. data/lib/pwn/www/bug_crowd.rb +165 -0
  570. data/lib/pwn/www/checkip.rb +101 -0
  571. data/lib/pwn/www/duckduckgo.rb +141 -0
  572. data/lib/pwn/www/facebook.rb +153 -0
  573. data/lib/pwn/www/google.rb +145 -0
  574. data/lib/pwn/www/hacker_one.rb +153 -0
  575. data/lib/pwn/www/linkedin.rb +153 -0
  576. data/lib/pwn/www/pandora.rb +153 -0
  577. data/lib/pwn/www/pastebin.rb +114 -0
  578. data/lib/pwn/www/paypal.rb +235 -0
  579. data/lib/pwn/www/synack.rb +165 -0
  580. data/lib/pwn/www/torch.rb +138 -0
  581. data/lib/pwn/www/twitter.rb +165 -0
  582. data/lib/pwn/www/uber.rb +153 -0
  583. data/lib/pwn/www/upwork.rb +153 -0
  584. data/lib/pwn/www/youtube.rb +119 -0
  585. data/lib/pwn/www.rb +33 -0
  586. data/lib/pwn.rb +24 -0
  587. data/packer/daemons/msfrpcd.rb +64 -0
  588. data/packer/daemons/openvas.rb +51 -0
  589. data/packer/deploy_docker_containers.sh +9 -0
  590. data/packer/deploy_packer_box.sh +87 -0
  591. data/packer/docker/kali_rolling_docker_pwn_fuzz_net_app_proto.json +44 -0
  592. data/packer/docker/kali_rolling_docker_pwn_prototyper.json +48 -0
  593. data/packer/docker/kali_rolling_docker_pwn_sast.json +44 -0
  594. data/packer/docker/kali_rolling_docker_pwn_transparent_browser.json +46 -0
  595. data/packer/docker/kali_rolling_docker_pwn_www_checkip.json +34 -0
  596. data/packer/http/kali_rolling_preseed.cfg +81 -0
  597. data/packer/kali_rolling_aws_ami.json +135 -0
  598. data/packer/kali_rolling_qemu_kvm.json +155 -0
  599. data/packer/kali_rolling_virtualbox.json +182 -0
  600. data/packer/kali_rolling_vmware.json +163 -0
  601. data/packer/packer_secrets.json.EXAMPLE +9 -0
  602. data/packer/provisioners/PayloadsAllTheThings.sh +5 -0
  603. data/packer/provisioners/SecLists.sh +5 -0
  604. data/packer/provisioners/afl.sh +28 -0
  605. data/packer/provisioners/aliases.rb +18 -0
  606. data/packer/provisioners/amass.sh +5 -0
  607. data/packer/provisioners/android.sh +18 -0
  608. data/packer/provisioners/ansible.sh +5 -0
  609. data/packer/provisioners/apache2.sh +24 -0
  610. data/packer/provisioners/arachni.sh +28 -0
  611. data/packer/provisioners/awscli.sh +5 -0
  612. data/packer/provisioners/bashrc.sh +13 -0
  613. data/packer/provisioners/beef.rb +23 -0
  614. data/packer/provisioners/burpsuite.sh +23 -0
  615. data/packer/provisioners/chrome.sh +11 -0
  616. data/packer/provisioners/coreutils.sh +6 -0
  617. data/packer/provisioners/curl.sh +6 -0
  618. data/packer/provisioners/docker.sh +43 -0
  619. data/packer/provisioners/docker_bashrc.sh +2 -0
  620. data/packer/provisioners/docker_rvm.sh +22 -0
  621. data/packer/provisioners/eyewitness.sh +5 -0
  622. data/packer/provisioners/ffmpeg.sh +6 -0
  623. data/packer/provisioners/firefox.sh +7 -0
  624. data/packer/provisioners/fuzzdb.sh +5 -0
  625. data/packer/provisioners/gdb.sh +5 -0
  626. data/packer/provisioners/geckodriver.sh +9 -0
  627. data/packer/provisioners/ghidra.sh +5 -0
  628. data/packer/provisioners/git.sh +6 -0
  629. data/packer/provisioners/init_image.sh +103 -0
  630. data/packer/provisioners/install_vagrant_ssh_key.sh +15 -0
  631. data/packer/provisioners/jenkins.sh +62 -0
  632. data/packer/provisioners/metasploit.rb +59 -0
  633. data/packer/provisioners/nmap_all_live_hosts.sh +8 -0
  634. data/packer/provisioners/openvas.sh +23 -0
  635. data/packer/provisioners/openvas_wrappers.sh +4 -0
  636. data/packer/provisioners/openvpn.sh +7 -0
  637. data/packer/provisioners/peda.sh +4 -0
  638. data/packer/provisioners/phantomjs.rb +28 -0
  639. data/packer/provisioners/phantomjs_wrapper.sh +22 -0
  640. data/packer/provisioners/post_install.sh +41 -0
  641. data/packer/provisioners/postgresql.sh +49 -0
  642. data/packer/provisioners/preeny.sh +8 -0
  643. data/packer/provisioners/pwn.sh +89 -0
  644. data/packer/provisioners/pwntools.sh +13 -0
  645. data/packer/provisioners/radamsa.sh +7 -0
  646. data/packer/provisioners/rc.local.sh +16 -0
  647. data/packer/provisioners/reboot_os.sh +7 -0
  648. data/packer/provisioners/ruby.sh +36 -0
  649. data/packer/provisioners/rvm.sh +30 -0
  650. data/packer/provisioners/scapy.sh +5 -0
  651. data/packer/provisioners/scout2.sh +5 -0
  652. data/packer/provisioners/sox.sh +5 -0
  653. data/packer/provisioners/ssllabs-scan.sh +9 -0
  654. data/packer/provisioners/strace.sh +5 -0
  655. data/packer/provisioners/sublist3r.sh +5 -0
  656. data/packer/provisioners/terminator.sh +5 -0
  657. data/packer/provisioners/toggle_tor.sh +2 -0
  658. data/packer/provisioners/tor.sh +5 -0
  659. data/packer/provisioners/twinkle.sh +6 -0
  660. data/packer/provisioners/update_os.sh +108 -0
  661. data/packer/provisioners/upload_globals.sh +55 -0
  662. data/packer/provisioners/vim.sh +19 -0
  663. data/packer/provisioners/virtualbox_guest_additions.sh +20 -0
  664. data/packer/provisioners/vmware_tools.sh +8 -0
  665. data/packer/provisioners/wpscan.rb +23 -0
  666. data/packer/provisioners/xrdp.sh +22 -0
  667. data/packer/provisioners/zzuf.sh +5 -0
  668. data/pwn.gemspec +34 -0
  669. data/reinstall_pwn_gemset.sh +31 -0
  670. data/spec/lib/pwn/aws/acm_spec.rb +15 -0
  671. data/spec/lib/pwn/aws/api_gateway_spec.rb +15 -0
  672. data/spec/lib/pwn/aws/app_stream_spec.rb +15 -0
  673. data/spec/lib/pwn/aws/application_auto_scaling_spec.rb +15 -0
  674. data/spec/lib/pwn/aws/application_discovery_service_spec.rb +15 -0
  675. data/spec/lib/pwn/aws/auto_scaling_spec.rb +15 -0
  676. data/spec/lib/pwn/aws/batch_spec.rb +15 -0
  677. data/spec/lib/pwn/aws/budgets_spec.rb +15 -0
  678. data/spec/lib/pwn/aws/cloud_formation_spec.rb +15 -0
  679. data/spec/lib/pwn/aws/cloud_front_spec.rb +15 -0
  680. data/spec/lib/pwn/aws/cloud_hsm_spec.rb +15 -0
  681. data/spec/lib/pwn/aws/cloud_search_domain_spec.rb +15 -0
  682. data/spec/lib/pwn/aws/cloud_search_spec.rb +15 -0
  683. data/spec/lib/pwn/aws/cloud_trail_spec.rb +15 -0
  684. data/spec/lib/pwn/aws/cloud_watch_events_spec.rb +15 -0
  685. data/spec/lib/pwn/aws/cloud_watch_logs_spec.rb +15 -0
  686. data/spec/lib/pwn/aws/cloud_watch_spec.rb +15 -0
  687. data/spec/lib/pwn/aws/code_build_spec.rb +15 -0
  688. data/spec/lib/pwn/aws/code_commit_spec.rb +15 -0
  689. data/spec/lib/pwn/aws/code_deploy_spec.rb +15 -0
  690. data/spec/lib/pwn/aws/code_pipeline_spec.rb +15 -0
  691. data/spec/lib/pwn/aws/cognito_identity_provider_spec.rb +15 -0
  692. data/spec/lib/pwn/aws/cognito_identity_spec.rb +15 -0
  693. data/spec/lib/pwn/aws/cognito_sync_spec.rb +15 -0
  694. data/spec/lib/pwn/aws/config_service_spec.rb +15 -0
  695. data/spec/lib/pwn/aws/data_pipleline_spec.rb +15 -0
  696. data/spec/lib/pwn/aws/database_migration_service_spec.rb +15 -0
  697. data/spec/lib/pwn/aws/device_farm_spec.rb +15 -0
  698. data/spec/lib/pwn/aws/direct_connect_spec.rb +15 -0
  699. data/spec/lib/pwn/aws/directory_service_spec.rb +15 -0
  700. data/spec/lib/pwn/aws/dynamo_db_spec.rb +15 -0
  701. data/spec/lib/pwn/aws/dynamo_db_streams_spec.rb +15 -0
  702. data/spec/lib/pwn/aws/ec2_spec.rb +15 -0
  703. data/spec/lib/pwn/aws/ecr_spec.rb +15 -0
  704. data/spec/lib/pwn/aws/ecs_spec.rb +15 -0
  705. data/spec/lib/pwn/aws/efs_spec.rb +15 -0
  706. data/spec/lib/pwn/aws/elasti_cache_spec.rb +15 -0
  707. data/spec/lib/pwn/aws/elastic_beanstalk_spec.rb +15 -0
  708. data/spec/lib/pwn/aws/elastic_load_balancing_spec.rb +15 -0
  709. data/spec/lib/pwn/aws/elastic_load_balancing_v2_spec.rb +15 -0
  710. data/spec/lib/pwn/aws/elastic_transcoder_spec.rb +15 -0
  711. data/spec/lib/pwn/aws/elasticsearch_service_spec.rb +15 -0
  712. data/spec/lib/pwn/aws/emr_spec.rb +15 -0
  713. data/spec/lib/pwn/aws/firehose_spec.rb +15 -0
  714. data/spec/lib/pwn/aws/game_lift_spec.rb +15 -0
  715. data/spec/lib/pwn/aws/glacier_spec.rb +15 -0
  716. data/spec/lib/pwn/aws/health_spec.rb +15 -0
  717. data/spec/lib/pwn/aws/iam_spec.rb +15 -0
  718. data/spec/lib/pwn/aws/import_export_spec.rb +15 -0
  719. data/spec/lib/pwn/aws/inspector_spec.rb +15 -0
  720. data/spec/lib/pwn/aws/iot_data_plane_spec.rb +15 -0
  721. data/spec/lib/pwn/aws/iot_spec.rb +15 -0
  722. data/spec/lib/pwn/aws/kinesis_analytics_spec.rb +15 -0
  723. data/spec/lib/pwn/aws/kinesis_spec.rb +15 -0
  724. data/spec/lib/pwn/aws/kms_spec.rb +15 -0
  725. data/spec/lib/pwn/aws/lambda_preview_spec.rb +15 -0
  726. data/spec/lib/pwn/aws/lambda_spec.rb +15 -0
  727. data/spec/lib/pwn/aws/lex_spec.rb +15 -0
  728. data/spec/lib/pwn/aws/lightsail_spec.rb +15 -0
  729. data/spec/lib/pwn/aws/machine_learning_spec.rb +15 -0
  730. data/spec/lib/pwn/aws/marketplace_commerce_analytics_spec.rb +15 -0
  731. data/spec/lib/pwn/aws/marketplace_metering_spec.rb +15 -0
  732. data/spec/lib/pwn/aws/ops_works_cm_spec.rb +15 -0
  733. data/spec/lib/pwn/aws/ops_works_spec.rb +15 -0
  734. data/spec/lib/pwn/aws/pinpoint_spec.rb +15 -0
  735. data/spec/lib/pwn/aws/polly_spec.rb +15 -0
  736. data/spec/lib/pwn/aws/rds_spec.rb +15 -0
  737. data/spec/lib/pwn/aws/redshift_spec.rb +15 -0
  738. data/spec/lib/pwn/aws/rekognition_spec.rb +15 -0
  739. data/spec/lib/pwn/aws/route53_domains_spec.rb +15 -0
  740. data/spec/lib/pwn/aws/route53_spec.rb +15 -0
  741. data/spec/lib/pwn/aws/s3_spec.rb +15 -0
  742. data/spec/lib/pwn/aws/service_catalog_spec.rb +15 -0
  743. data/spec/lib/pwn/aws/ses_spec.rb +15 -0
  744. data/spec/lib/pwn/aws/shield_spec.rb +15 -0
  745. data/spec/lib/pwn/aws/simple_db_spec.rb +15 -0
  746. data/spec/lib/pwn/aws/sms_spec.rb +15 -0
  747. data/spec/lib/pwn/aws/snowball_spec.rb +15 -0
  748. data/spec/lib/pwn/aws/sns_spec.rb +15 -0
  749. data/spec/lib/pwn/aws/sqs_spec.rb +15 -0
  750. data/spec/lib/pwn/aws/ssm_spec.rb +15 -0
  751. data/spec/lib/pwn/aws/states_spec.rb +15 -0
  752. data/spec/lib/pwn/aws/storage_gateway_spec.rb +15 -0
  753. data/spec/lib/pwn/aws/sts_spec.rb +15 -0
  754. data/spec/lib/pwn/aws/support_spec.rb +15 -0
  755. data/spec/lib/pwn/aws/swf_spec.rb +15 -0
  756. data/spec/lib/pwn/aws/waf_regional_spec.rb +15 -0
  757. data/spec/lib/pwn/aws/waf_spec.rb +15 -0
  758. data/spec/lib/pwn/aws/workspaces_spec.rb +15 -0
  759. data/spec/lib/pwn/aws/x_ray_spec.rb +15 -0
  760. data/spec/lib/pwn/aws_spec.rb +10 -0
  761. data/spec/lib/pwn/ffi_spec.rb +10 -0
  762. data/spec/lib/pwn/plugins/android_spec.rb +15 -0
  763. data/spec/lib/pwn/plugins/authentication_helper_spec.rb +15 -0
  764. data/spec/lib/pwn/plugins/basic_auth_spec.rb +15 -0
  765. data/spec/lib/pwn/plugins/beef_spec.rb +15 -0
  766. data/spec/lib/pwn/plugins/burp_suite_spec.rb +15 -0
  767. data/spec/lib/pwn/plugins/bus_pirate_spec.rb +15 -0
  768. data/spec/lib/pwn/plugins/char_spec.rb +15 -0
  769. data/spec/lib/pwn/plugins/credit_card_spec.rb +15 -0
  770. data/spec/lib/pwn/plugins/dao_ldap_spec.rb +15 -0
  771. data/spec/lib/pwn/plugins/dao_mongo_spec.rb +15 -0
  772. data/spec/lib/pwn/plugins/dao_postgres_spec.rb +15 -0
  773. data/spec/lib/pwn/plugins/dao_sqlite3_spec.rb +15 -0
  774. data/spec/lib/pwn/plugins/defect_dojo_spec.rb +15 -0
  775. data/spec/lib/pwn/plugins/detect_os_spec.rb +15 -0
  776. data/spec/lib/pwn/plugins/ein_spec.rb +15 -0
  777. data/spec/lib/pwn/plugins/file_fu_spec.rb +15 -0
  778. data/spec/lib/pwn/plugins/fuzz_spec.rb +15 -0
  779. data/spec/lib/pwn/plugins/git_spec.rb +15 -0
  780. data/spec/lib/pwn/plugins/hacker_one_spec.rb +15 -0
  781. data/spec/lib/pwn/plugins/ibm_appscan_spec.rb +15 -0
  782. data/spec/lib/pwn/plugins/ip_info_spec.rb +15 -0
  783. data/spec/lib/pwn/plugins/jenkins_spec.rb +15 -0
  784. data/spec/lib/pwn/plugins/json_pathify_spec.rb +15 -0
  785. data/spec/lib/pwn/plugins/mail_agent_spec.rb +15 -0
  786. data/spec/lib/pwn/plugins/metasploit_spec.rb +15 -0
  787. data/spec/lib/pwn/plugins/nessus_cloud_spec.rb +15 -0
  788. data/spec/lib/pwn/plugins/nexpose_vuln_scan_spec.rb +15 -0
  789. data/spec/lib/pwn/plugins/nmap_it_spec.rb +15 -0
  790. data/spec/lib/pwn/plugins/oauth2_spec.rb +15 -0
  791. data/spec/lib/pwn/plugins/ocr_spec.rb +15 -0
  792. data/spec/lib/pwn/plugins/openvas_spec.rb +15 -0
  793. data/spec/lib/pwn/plugins/owasp_zap_spec.rb +15 -0
  794. data/spec/lib/pwn/plugins/packet_spec.rb +15 -0
  795. data/spec/lib/pwn/plugins/pdf_parse_spec.rb +15 -0
  796. data/spec/lib/pwn/plugins/pony_spec.rb +15 -0
  797. data/spec/lib/pwn/plugins/rabbit_mq_hole_spec.rb +15 -0
  798. data/spec/lib/pwn/plugins/rfidler_spec.rb +15 -0
  799. data/spec/lib/pwn/plugins/serial_spec.rb +15 -0
  800. data/spec/lib/pwn/plugins/shodan_spec.rb +15 -0
  801. data/spec/lib/pwn/plugins/slack_client_spec.rb +15 -0
  802. data/spec/lib/pwn/plugins/sock_spec.rb +15 -0
  803. data/spec/lib/pwn/plugins/son_micro_rfid_spec.rb +15 -0
  804. data/spec/lib/pwn/plugins/spider_spec.rb +15 -0
  805. data/spec/lib/pwn/plugins/ssn_spec.rb +15 -0
  806. data/spec/lib/pwn/plugins/thread_pool_spec.rb +15 -0
  807. data/spec/lib/pwn/plugins/transparent_browser_spec.rb +15 -0
  808. data/spec/lib/pwn/plugins/twitter_api_spec.rb +15 -0
  809. data/spec/lib/pwn/plugins/uri_scheme_spec.rb +15 -0
  810. data/spec/lib/pwn/plugins/vsphere_spec.rb +15 -0
  811. data/spec/lib/pwn/plugins_spec.rb +10 -0
  812. data/spec/lib/pwn/reports/fuzz_spec.rb +15 -0
  813. data/spec/lib/pwn/reports/sast_spec.rb +15 -0
  814. data/spec/lib/pwn/reports_spec.rb +10 -0
  815. data/spec/lib/pwn/sast/amqp_connect_as_guest_spec.rb +25 -0
  816. data/spec/lib/pwn/sast/apache_file_system_util_api_spec.rb +25 -0
  817. data/spec/lib/pwn/sast/aws_spec.rb +25 -0
  818. data/spec/lib/pwn/sast/banned_function_calls_c_spec.rb +25 -0
  819. data/spec/lib/pwn/sast/base64_spec.rb +25 -0
  820. data/spec/lib/pwn/sast/beef_hook_spec.rb +25 -0
  821. data/spec/lib/pwn/sast/cmd_execution_java_spec.rb +25 -0
  822. data/spec/lib/pwn/sast/cmd_execution_python_spec.rb +25 -0
  823. data/spec/lib/pwn/sast/cmd_execution_ruby_spec.rb +25 -0
  824. data/spec/lib/pwn/sast/cmd_execution_scala_spec.rb +25 -0
  825. data/spec/lib/pwn/sast/csrf_spec.rb +25 -0
  826. data/spec/lib/pwn/sast/deserial_java_spec.rb +25 -0
  827. data/spec/lib/pwn/sast/emoticon_spec.rb +25 -0
  828. data/spec/lib/pwn/sast/eval_spec.rb +25 -0
  829. data/spec/lib/pwn/sast/factory_spec.rb +25 -0
  830. data/spec/lib/pwn/sast/file_permission_spec.rb +25 -0
  831. data/spec/lib/pwn/sast/inner_html_spec.rb +25 -0
  832. data/spec/lib/pwn/sast/keystore_spec.rb +25 -0
  833. data/spec/lib/pwn/sast/location_hash_spec.rb +25 -0
  834. data/spec/lib/pwn/sast/log4j_spec.rb +25 -0
  835. data/spec/lib/pwn/sast/logger_spec.rb +25 -0
  836. data/spec/lib/pwn/sast/password_spec.rb +25 -0
  837. data/spec/lib/pwn/sast/pom_version_spec.rb +25 -0
  838. data/spec/lib/pwn/sast/port_spec.rb +25 -0
  839. data/spec/lib/pwn/sast/private_key_spec.rb +25 -0
  840. data/spec/lib/pwn/sast/redirect_spec.rb +25 -0
  841. data/spec/lib/pwn/sast/redos_spec.rb +25 -0
  842. data/spec/lib/pwn/sast/shell_spec.rb +25 -0
  843. data/spec/lib/pwn/sast/sql_spec.rb +25 -0
  844. data/spec/lib/pwn/sast/ssl_spec.rb +25 -0
  845. data/spec/lib/pwn/sast/sudo_spec.rb +25 -0
  846. data/spec/lib/pwn/sast/task_tag_spec.rb +25 -0
  847. data/spec/lib/pwn/sast/throw_errors_spec.rb +25 -0
  848. data/spec/lib/pwn/sast/token_spec.rb +25 -0
  849. data/spec/lib/pwn/sast/version_spec.rb +25 -0
  850. data/spec/lib/pwn/sast/window_location_hash_spec.rb +25 -0
  851. data/spec/lib/pwn/sast_spec.rb +10 -0
  852. data/spec/lib/pwn/www/app_cobalt_io_spec.rb +15 -0
  853. data/spec/lib/pwn/www/bing_spec.rb +15 -0
  854. data/spec/lib/pwn/www/bug_crowd.rb +15 -0
  855. data/spec/lib/pwn/www/checkip_spec.rb +15 -0
  856. data/spec/lib/pwn/www/duckduckgo_spec.rb +15 -0
  857. data/spec/lib/pwn/www/facebook_spec.rb +15 -0
  858. data/spec/lib/pwn/www/google_spec.rb +15 -0
  859. data/spec/lib/pwn/www/hacker_one_spec.rb +15 -0
  860. data/spec/lib/pwn/www/linkedin_spec.rb +15 -0
  861. data/spec/lib/pwn/www/pandora_spec.rb +15 -0
  862. data/spec/lib/pwn/www/pastebin_spec.rb +15 -0
  863. data/spec/lib/pwn/www/paypal_spec.rb +15 -0
  864. data/spec/lib/pwn/www/synack_spec.rb +15 -0
  865. data/spec/lib/pwn/www/torch_spec.rb +15 -0
  866. data/spec/lib/pwn/www/twitter_spec.rb +15 -0
  867. data/spec/lib/pwn/www/uber_spec.rb +15 -0
  868. data/spec/lib/pwn/www/upwork_spec.rb +15 -0
  869. data/spec/lib/pwn/www/youtube_spec.rb +15 -0
  870. data/spec/lib/pwn/www_spec.rb +10 -0
  871. data/spec/lib/pwn_spec.rb +10 -0
  872. data/spec/spec_helper.rb +3 -0
  873. data/third_party/.gitkeep +0 -0
  874. data/update_pwn.sh +15 -0
  875. data/upgrade_ruby.sh +46 -0
  876. data/vagrant/provisioners/apache2.sh +76 -0
  877. data/vagrant/provisioners/beef.rb +30 -0
  878. data/vagrant/provisioners/burpsuite_pro.rb +37 -0
  879. data/vagrant/provisioners/exploit-db.sh +2 -0
  880. data/vagrant/provisioners/gem.sh +4 -0
  881. data/vagrant/provisioners/init_env.sh +22 -0
  882. data/vagrant/provisioners/jenkins.sh +87 -0
  883. data/vagrant/provisioners/jenkins_ssh-keygen.rb +86 -0
  884. data/vagrant/provisioners/kali_customize.rb +130 -0
  885. data/vagrant/provisioners/letsencrypt.rb +35 -0
  886. data/vagrant/provisioners/metasploit.rb +25 -0
  887. data/vagrant/provisioners/nmap_all_live_hosts.sh +2 -0
  888. data/vagrant/provisioners/openvas.sh +23 -0
  889. data/vagrant/provisioners/openvas_wrappers.sh +2 -0
  890. data/vagrant/provisioners/post_install.sh +14 -0
  891. data/vagrant/provisioners/postgres.sh +22 -0
  892. data/vagrant/provisioners/pwn.sh +15 -0
  893. data/vagrant/provisioners/rvm.sh +18 -0
  894. data/vagrant/provisioners/ssllabs-scan.sh +10 -0
  895. data/vagrant/provisioners/toggle_tor.sh +2 -0
  896. data/vagrant/provisioners/update_jenkins_plugins.rb +30 -0
  897. data/vagrant/provisioners/update_os.sh +108 -0
  898. data/vagrant/provisioners/upload_globals.sh +55 -0
  899. data/vagrant/provisioners/userland_fdisk.sh +22 -0
  900. data/vagrant/provisioners/userland_lvm.sh +5 -0
  901. data/vagrant/provisioners/wpscan.rb +25 -0
  902. data/vagrant_rsync_third_party.lst +1 -0
  903. data/vagrant_rsync_userland_template.lst +8 -0
  904. metadata +1245 -0
@@ -0,0 +1,1616 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+ module PWN
5
+ module Plugins
6
+ # PWN module used to interact w/ Android Devices
7
+ module Android
8
+ @@logger = PWN::Plugins::PWNLogger.create
9
+
10
+ # Supported Method Parameters::
11
+ # PWN::Plugins::Android.adb_net_connect(
12
+ # adb_path: 'required - path to adb binary',
13
+ # target: 'required - target host or IP to connect',
14
+ # port: 'optional - defaults to tcp 5555'
15
+ # )
16
+
17
+ public_class_method def self.adb_net_connect(opts = {})
18
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
19
+ target = opts[:target].to_s.scrub
20
+ port = if opts[:port]
21
+ opts[:port].to_i
22
+ else
23
+ 5555
24
+ end
25
+
26
+ `#{adb_path} connect #{target}:#{port}`
27
+ rescue StandardError => e
28
+ raise e
29
+ end
30
+
31
+ # Supported Method Parameters::
32
+ # PWN::Plugins::Android.adb_sh(
33
+ # adb_path: 'required - path to adb binary',
34
+ # command: 'required - adb command to execute'
35
+ # as_root: 'optional - boolean (defaults to false)',
36
+ # )
37
+
38
+ public_class_method def self.adb_sh(opts = {})
39
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
40
+
41
+ command = opts[:command].to_s.scrub
42
+
43
+ as_root = if opts[:as_root]
44
+ true
45
+ else
46
+ false
47
+ end
48
+
49
+ `#{adb_path} root` if as_root
50
+ `#{adb_path} shell #{command}`
51
+ rescue StandardError => e
52
+ raise e
53
+ end
54
+
55
+ # Supported Method Parameters::
56
+ # PWN::Plugins::Android.adb_push(
57
+ # adb_path: 'required - path to adb binary',
58
+ # file: 'required - source file to push',
59
+ # dest: 'required - destination path to save pushed file',
60
+ # as_root: 'optional - boolean (defaults to false)',
61
+ # )
62
+
63
+ public_class_method def self.adb_push(opts = {})
64
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
65
+ file = opts[:file].to_s.scrub
66
+ dest = opts[:dest].to_s.scrub
67
+
68
+ as_root = if opts[:as_root]
69
+ true
70
+ else
71
+ false
72
+ end
73
+
74
+ `#{adb_path} root` if as_root
75
+ `#{adb_path} push #{file} #{dest}`
76
+ rescue StandardError => e
77
+ raise e
78
+ end
79
+
80
+ # Supported Method Parameters::
81
+ # PWN::Plugins::Android.adb_pull(
82
+ # adb_path: 'required - path to adb binary',
83
+ # file: 'required - source file to pull',
84
+ # dest: 'required - destination path to save pulled file',
85
+ # as_root: 'optional - boolean (defaults to false)',
86
+ # )
87
+
88
+ public_class_method def self.adb_pull(opts = {})
89
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
90
+ file = opts[:file].to_s.scrub
91
+ dest = opts[:dest].to_s.scrub
92
+
93
+ as_root = if opts[:as_root]
94
+ true
95
+ else
96
+ false
97
+ end
98
+
99
+ `#{adb_path} root` if as_root
100
+ `#{adb_path} pull #{file} #{dest}`
101
+ rescue StandardError => e
102
+ raise e
103
+ end
104
+
105
+ # Supported Method Parameters::
106
+ # PWN::Plugins::Android.take_screenshot(
107
+ # adb_path: 'required - path to adb binary',
108
+ # dest: 'optional - destination path to save screenshot file (defaults to /sdcard/screen.png)',
109
+ # as_root: 'optional - boolean (defaults to true)'
110
+ # )
111
+
112
+ public_class_method def self.take_screenshot(opts = {})
113
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
114
+
115
+ dest = if opts[:dest]
116
+ opts[:dest].to_s.scrub
117
+ else
118
+ '/sdcard/screen.png'
119
+ end
120
+
121
+ as_root = if opts[:as_root]
122
+ false
123
+ else
124
+ true
125
+ end
126
+
127
+ `#{adb_path} root` if as_root
128
+ `#{adb_path} shell screencap -p #{dest}`
129
+ rescue StandardError => e
130
+ raise e
131
+ end
132
+
133
+ # Supported Method Parameters::
134
+ # PWN::Plugins::Android.screen_record(
135
+ # adb_path: 'required - path to adb binary',
136
+ # dest: 'optional - destination path to save screen record file (defaults to /sdcard/screen.mp4)',
137
+ # as_root: 'optional - boolean (defaults to true)'
138
+ # )
139
+
140
+ public_class_method def self.screen_record(opts = {})
141
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
142
+
143
+ dest = if opts[:dest]
144
+ opts[:dest].to_s.scrub
145
+ else
146
+ '/sdcard/screen.mp4'
147
+ end
148
+
149
+ as_root = if opts[:as_root]
150
+ false
151
+ else
152
+ true
153
+ end
154
+
155
+ @@logger.info('Press CTRL+C to complete...')
156
+ `#{adb_path} root` if as_root
157
+ `#{adb_path} shell screenrecord #{dest}`
158
+ rescue StandardError => e
159
+ raise e
160
+ end
161
+
162
+ # Supported Method Parameters::
163
+ # PWN::Plugins::Android.list_installed_apps(
164
+ # adb_path: 'required - path to adb binary',
165
+ # as_root: 'optional - boolean (defaults to false)',
166
+ # )
167
+
168
+ public_class_method def self.list_installed_apps(opts = {})
169
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
170
+
171
+ as_root = if opts[:as_root]
172
+ true
173
+ else
174
+ false
175
+ end
176
+
177
+ `#{adb_path} root` if as_root
178
+ app_resp = `#{adb_path} shell pm list packages`
179
+ app_resp.gsub("\npackage:", "\n").split("\n")
180
+ rescue StandardError => e
181
+ raise e
182
+ end
183
+
184
+ # Supported Method Parameters::
185
+ # PWN::Plugins::Android.dumpsys(
186
+ # adb_path: 'required - path to adb binary',
187
+ # app: 'optional - application app to detail otherwise display all (i.e. display info from an android app returned from #list_install_apps method)',
188
+ # as_root: 'optional - boolean (defaults to false)',
189
+ # )
190
+
191
+ public_class_method def self.dumpsys(opts = {})
192
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
193
+ app = opts[:app].to_s.scrub
194
+
195
+ as_root = if opts[:as_root]
196
+ true
197
+ else
198
+ false
199
+ end
200
+
201
+ `#{adb_path} root` if as_root
202
+ if app == ''
203
+ app_response = `#{adb_path} shell dumpsys`
204
+ else
205
+ app_response = `#{adb_path} shell dumpsys package #{app}`
206
+ end
207
+
208
+ app_response
209
+ rescue StandardError => e
210
+ raise e
211
+ end
212
+
213
+ # Supported Method Parameters::
214
+ # PWN::Plugins::Android.open_app(
215
+ # adb_path: 'required - path to adb binary',
216
+ # app: 'required - application app to run (i.e. open an android app returned from #list_install_apps method)',
217
+ # as_root: 'optional - boolean (defaults to false)',
218
+ # )
219
+
220
+ public_class_method def self.open_app(opts = {})
221
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
222
+ app = opts[:app].to_s.scrub
223
+
224
+ as_root = if opts[:as_root]
225
+ true
226
+ else
227
+ false
228
+ end
229
+
230
+ `#{adb_path} root` if as_root
231
+ `#{adb_path} shell monkey -p #{app} -c android.intent.category.LAUNCHER 1`
232
+ rescue StandardError => e
233
+ raise e
234
+ end
235
+
236
+ # Supported Method Parameters::
237
+ # PWN::Plugins::Android.find_hidden_codes(
238
+ # adb_path: 'required - path to adb binary',
239
+ # from: 'required - start at keycode #'
240
+ # to: 'required - end at keycode #',
241
+ # interact: 'optional - defaults to false'
242
+ # )
243
+
244
+ public_class_method def self.find_hidden_codes(opts = {})
245
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
246
+ from = opts[:from].to_i
247
+ to = opts[:to].to_i
248
+ interact = if opts[:interact]
249
+ true
250
+ else
251
+ false
252
+ end
253
+
254
+ (from..to).each do |n|
255
+ @@logger.info("invoking keyevent: #{n}")
256
+ puts `#{adb_path} shell input keyevent #{n}`
257
+ if interact
258
+ print 'press enter to continue...'
259
+ gets
260
+ end
261
+ sleep 0.3
262
+ end
263
+ rescue StandardError => e
264
+ raise e
265
+ end
266
+
267
+ # Supported Method Parameters::
268
+ # PWN::Plugins::Android.swipe(
269
+ # adb_path: 'required - path to adb binary',
270
+ # direction: 'required - direction to swipe (:up|:down|:left|:right)'
271
+ # )
272
+
273
+ public_class_method def self.swipe(opts = {})
274
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
275
+ direction = opts[:direction].to_s.scrub.to_sym
276
+
277
+ case direction
278
+ when :up
279
+ swipe_resp = `#{adb_path} shell input touchscreen swipe 300 1500 300 600 100`
280
+ when :down
281
+ swipe_resp = `#{adb_path} shell input touchscreen swipe 300 600 300 1500 100`
282
+ when :left
283
+ swipe_resp = `#{adb_path} shell input touchscreen swipe 1000 1000 90 1000 100`
284
+ when :right
285
+ swipe_resp = `#{adb_path} shell input touchscreen swipe 90 1000 1000 1000 100`
286
+ else
287
+ raise "ERROR: unknown direction to swipe: #{direction}"
288
+ end
289
+
290
+ swipe_resp.to_s.scrub
291
+ rescue StandardError => e
292
+ raise e
293
+ end
294
+
295
+ # Supported Method Parameters::
296
+ # PWN::Plugins::Android.input(
297
+ # adb_path: 'required - path to adb binary',
298
+ # string: 'required - string to type'
299
+ # )
300
+
301
+ public_class_method def self.input(opts = {})
302
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
303
+ string = opts[:string].to_s.scrub
304
+
305
+ char_resp = ''
306
+ string.each_char do |char|
307
+ case char
308
+ when '0'
309
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_0`
310
+ when '1'
311
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_1`
312
+ when '2'
313
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_2`
314
+ when '3'
315
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_3`
316
+ when '4'
317
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_4`
318
+ when '5'
319
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_5`
320
+ when '6'
321
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_6`
322
+ when '7'
323
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_7`
324
+ when '8'
325
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_8`
326
+ when '9'
327
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_9`
328
+ when '*'
329
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_STAR`
330
+ when '#'
331
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_POUND`
332
+ when '}'
333
+ char_resp << `#{adb_path} shell input text '\\}'`
334
+ when '{'
335
+ char_resp << `#{adb_path} shell input text '\\{'`
336
+ when '"'
337
+ char_resp << `#{adb_path} shell input text '\\"'`
338
+ when '?'
339
+ char_resp << `#{adb_path} shell input text '\\?'`
340
+ when '<'
341
+ char_resp << `#{adb_path} shell input text '\\<'`
342
+ when '>'
343
+ char_resp << `#{adb_path} shell input text '\\>'`
344
+ when '%'
345
+ char_resp << `#{adb_path} shell input text '%'`
346
+ when ':'
347
+ char_resp << `#{adb_path} shell input text ':'`
348
+ when '$'
349
+ char_resp << `#{adb_path} shell input text '$'`
350
+ when '!'
351
+ char_resp << `#{adb_path} shell input text '!'`
352
+ when '~'
353
+ char_resp << `#{adb_path} shell input text '~'`
354
+ when '|'
355
+ char_resp << `#{adb_path} shell input text '\\|'`
356
+ when '&'
357
+ char_resp << `#{adb_path} shell input text '\\&'`
358
+ when '^'
359
+ char_resp << `#{adb_path} shell input text '^'`
360
+ when '_'
361
+ char_resp << `#{adb_path} shell input text '_'`
362
+ when 'A'
363
+ char_resp << `#{adb_path} shell input text 'A'`
364
+ when 'B'
365
+ char_resp << `#{adb_path} shell input text 'B'`
366
+ when 'C'
367
+ char_resp << `#{adb_path} shell input text 'C'`
368
+ when 'D'
369
+ char_resp << `#{adb_path} shell input text 'D'`
370
+ when 'E'
371
+ char_resp << `#{adb_path} shell input text 'E'`
372
+ when 'F'
373
+ char_resp << `#{adb_path} shell input text 'F'`
374
+ when 'G'
375
+ char_resp << `#{adb_path} shell input text 'G'`
376
+ when 'H'
377
+ char_resp << `#{adb_path} shell input text 'H'`
378
+ when 'I'
379
+ char_resp << `#{adb_path} shell input text 'I'`
380
+ when 'J'
381
+ char_resp << `#{adb_path} shell input text 'J'`
382
+ when 'K'
383
+ char_resp << `#{adb_path} shell input text 'K'`
384
+ when 'L'
385
+ char_resp << `#{adb_path} shell input text 'L'`
386
+ when 'M'
387
+ char_resp << `#{adb_path} shell input text 'M'`
388
+ when 'N'
389
+ char_resp << `#{adb_path} shell input text 'N'`
390
+ when 'O'
391
+ char_resp << `#{adb_path} shell input text 'O'`
392
+ when 'P'
393
+ char_resp << `#{adb_path} shell input text 'P'`
394
+ when 'Q'
395
+ char_resp << `#{adb_path} shell input text 'Q'`
396
+ when 'R'
397
+ char_resp << `#{adb_path} shell input text 'R'`
398
+ when 'S'
399
+ char_resp << `#{adb_path} shell input text 'S'`
400
+ when 'T'
401
+ char_resp << `#{adb_path} shell input text 'T'`
402
+ when 'U'
403
+ char_resp << `#{adb_path} shell input text 'U'`
404
+ when 'V'
405
+ char_resp << `#{adb_path} shell input text 'V'`
406
+ when 'W'
407
+ char_resp << `#{adb_path} shell input text 'W'`
408
+ when 'X'
409
+ char_resp << `#{adb_path} shell input text 'X'`
410
+ when 'Y'
411
+ char_resp << `#{adb_path} shell input text 'Y'`
412
+ when 'Z'
413
+ char_resp << `#{adb_path} shell input text 'Z'`
414
+ when 'a'
415
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_A`
416
+ when 'b'
417
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_B`
418
+ when 'c'
419
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_C`
420
+ when 'd'
421
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_D`
422
+ when 'e'
423
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_E`
424
+ when 'f'
425
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_F`
426
+ when 'g'
427
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_G`
428
+ when 'h'
429
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_H`
430
+ when 'i'
431
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_I`
432
+ when 'j'
433
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_J`
434
+ when 'k'
435
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_K`
436
+ when 'l'
437
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_L`
438
+ when 'm'
439
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_M`
440
+ when 'n'
441
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_N`
442
+ when 'o'
443
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_O`
444
+ when 'p'
445
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_P`
446
+ when 'q'
447
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_Q`
448
+ when 'r'
449
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_R`
450
+ when 's'
451
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_S`
452
+ when 't'
453
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_T`
454
+ when 'u'
455
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_U`
456
+ when 'v'
457
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_V`
458
+ when 'w'
459
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_W`
460
+ when 'x'
461
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_X`
462
+ when 'y'
463
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_Y`
464
+ when 'z'
465
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_Z`
466
+ when ','
467
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_COMMA`
468
+ when '.'
469
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_PERIOD`
470
+ when ' '
471
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_SPACE`
472
+ when '`'
473
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_GRAVE`
474
+ when '-'
475
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_MINUS`
476
+ when '='
477
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_EQUALS`
478
+ when '['
479
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_LEFT_BRACKET`
480
+ when ']'
481
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_RIGHT_BRACKET`
482
+ when '\\'
483
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_BACKSLASH`
484
+ when ';'
485
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_SEMICOLON`
486
+ when "'"
487
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_APOSTROPHE`
488
+ when '/'
489
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_SLASH`
490
+ when '@'
491
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_AT`
492
+ when '+'
493
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_PLUS`
494
+ when '('
495
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_LEFT_PAREN`
496
+ when ')'
497
+ char_resp << `#{adb_path} shell input keyevent KEYCODE_RIGHT_PAREN`
498
+ else
499
+ raise "ERROR: unknown char: #{char}"
500
+ end
501
+ end
502
+
503
+ char_resp.to_s.scrub
504
+ rescue StandardError => e
505
+ raise e
506
+ end
507
+
508
+ # Supported Method Parameters::
509
+ # PWN::Plugins::Android.input_special(
510
+ # adb_path: 'required - path to adb binary',
511
+ # event: 'required - special event to invoke (
512
+ # :zoom_in|
513
+ # :zoom_out|
514
+ # :zenkaku_hankaku|
515
+ # :yen|
516
+ # :window|
517
+ # :wakeup|
518
+ # :voice_assist|
519
+ # :tv_zoom_mode|
520
+ # :tv_timer_programming|
521
+ # :tv_terrestrial_digital|
522
+ # :tv_terrestrial_analog|
523
+ # :tv_satellite_teletext|
524
+ # :tv_satellite_service|
525
+ # :tv_satellite|
526
+ # :tv_satellite_bs|
527
+ # :tv_satellite_cs|
528
+ # :tv_radio_service|
529
+ # :tv_power|
530
+ # :tv_number_entry|
531
+ # :tv_network|
532
+ # :tv_media_context_menu|
533
+ # :tv_input_vga1|
534
+ # :tv_input_hdmi1|
535
+ # :tv_input_hdmi2|
536
+ # :tv_input_hdmi3|
537
+ # :tv_input_hdmi4|
538
+ # :tv_input_composite1|
539
+ # :tv_input_composite2|
540
+ # :tv_input_component1|
541
+ # :tv_input_component2|
542
+ # :tv_input|
543
+ # :tv_data_service|
544
+ # :tv_contents_menu|
545
+ # :tv_audio_desc|
546
+ # :tv_audio_desc_mix_up|
547
+ # :tv_audio_desc_mix_down|
548
+ # :tv_antenna_cable|
549
+ # :tv|
550
+ # :sysrq|
551
+ # :switch_charset|
552
+ # :stem_primary|
553
+ # :stem1|
554
+ # :stem2|
555
+ # :stem3|
556
+ # :stb_power|
557
+ # :stb_input|
558
+ # :sleep|
559
+ # :settings|
560
+ # :scroll_lock|
561
+ # :ro|
562
+ # :prog_blue|
563
+ # :prog_green|
564
+ # :prog_red|
565
+ # :prog_yellow|
566
+ # :pairing|
567
+ # :num_lock|
568
+ # :numpad_subtract|
569
+ # :numpad_multiply|
570
+ # :numpad_left_paren|
571
+ # :numpad_right_paren|
572
+ # :numpad_equals|
573
+ # :numpad_enter|
574
+ # :numpad_dot|
575
+ # :numpad_comma|
576
+ # :numpad_add|
577
+ # :numpad0|
578
+ # :numpad1|
579
+ # :numpad2|
580
+ # :numpad3|
581
+ # :numpad4|
582
+ # :numpad5|
583
+ # :numpad6|
584
+ # :numpad7|
585
+ # :numpad8|
586
+ # :numpad9|
587
+ # :num|
588
+ # :nav_in|
589
+ # :nav_next|
590
+ # :nav_out|
591
+ # :nav_previous|
592
+ # :music|
593
+ # :muhenkan|
594
+ # :meta_left|
595
+ # :meta_right|
596
+ # :media_top_menu|
597
+ # :media_step_forward|
598
+ # :media_step_back|
599
+ # :media_skip_forward|
600
+ # :media_skip_back|
601
+ # :media_record|
602
+ # :media_play|
603
+ # :media_eject|
604
+ # :media_close|
605
+ # :media_audio_track|
606
+ # :manner_mode|
607
+ # :last_channel|
608
+ # :language_switch|
609
+ # :katakana_hiragana|
610
+ # :kana|
611
+ # :insert|
612
+ # :info|
613
+ # :henkan|
614
+ # :help|
615
+ # :guide|
616
+ # :del|
617
+ # :f1|
618
+ # :f2|
619
+ # :f3|
620
+ # :f4|
621
+ # :f5|
622
+ # :f6|
623
+ # :f7|
624
+ # :f8|
625
+ # :f9|
626
+ # :f10|
627
+ # :f11|
628
+ # :f12|
629
+ # :escape|
630
+ # :eisu|
631
+ # :dvr|
632
+ # :ctrl_left|
633
+ # :ctrl_right|
634
+ # :cut|
635
+ # :copy|
636
+ # :paste|
637
+ # :contacts|
638
+ # :chan_down|
639
+ # :chan_up|
640
+ # :captions|
641
+ # :caps_lock|
642
+ # :calendar|
643
+ # :calculator|
644
+ # :gamepad1|
645
+ # :gamepad2|
646
+ # :gamepad3|
647
+ # :gamepad4|
648
+ # :gamepad5|
649
+ # :gamepad6|
650
+ # :gamepad7|
651
+ # :gamepad8|
652
+ # :gamepad9|
653
+ # :gamepad10|
654
+ # :gamepad11|
655
+ # :gamepad12|
656
+ # :gamepad13|
657
+ # :gamepad14|
658
+ # :gamepad15|
659
+ # :gamepad16|
660
+ # :gamepad_a|
661
+ # :gamepad_b|
662
+ # :gamepad_c|
663
+ # :gamepad_l1|
664
+ # :gamepad_l2|
665
+ # :gamepad_mode|
666
+ # :gamepad_r1|
667
+ # :gamepad_r2|
668
+ # :gamepad_select|
669
+ # :gamepad_start|
670
+ # :gamepad_thumbl|
671
+ # :gamepad_thumbr|
672
+ # :gamepad_x|
673
+ # :gamepad_y|
674
+ # :gamepad_z|
675
+ # :brightness_up|
676
+ # :brightness_down|
677
+ # :break|
678
+ # :bookmark|
679
+ # :avr_power|
680
+ # :avr_input|
681
+ # :assist|
682
+ # :app_switch|
683
+ # :threeDmode|
684
+ # :eleven|
685
+ # :twelve|
686
+ # :unknown|
687
+ # :soft_left|
688
+ # :soft_right|
689
+ # :soft_sleep|
690
+ # :home|
691
+ # :forward|
692
+ # :back|
693
+ # :call|
694
+ # :endcall|
695
+ # :dpad_up|
696
+ # :dpad_down|
697
+ # :dpad_left|
698
+ # :dpad_right|
699
+ # :dpad_down_left|
700
+ # :dpad_down_right|
701
+ # :dpad_up_left|
702
+ # :dpad_up_right|
703
+ # :dpad_center|
704
+ # :volume_up|
705
+ # :volume_down|
706
+ # :power|
707
+ # :camera|
708
+ # :clear|
709
+ # :alt_left|
710
+ # :alt_right|
711
+ # :shift_left|
712
+ # :shift_right|
713
+ # :tab|
714
+ # :sym|
715
+ # :explorer|
716
+ # :envelope|
717
+ # :enter|
718
+ # :backspace|
719
+ # :headsethook|
720
+ # :focus|
721
+ # :menu|
722
+ # :top_menu|
723
+ # :notification|
724
+ # :search|
725
+ # :media_play_pause|
726
+ # :media_stop|
727
+ # :media_next|
728
+ # :media_previous|
729
+ # :media_rewind|
730
+ # :media_fast_forward|
731
+ # :mute|
732
+ # :page_up|
733
+ # :page_down|
734
+ # :pictsymbols|
735
+ # :move_home|
736
+ # :move_end
737
+ # )
738
+ # see https://developer.android.com/reference/android/view/KeyEvent.html for more info'
739
+ # )
740
+
741
+ public_class_method def self.input_special(opts = {})
742
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
743
+ event = opts[:event].to_s.scrub.to_sym
744
+
745
+ str_resp = ''
746
+ case event
747
+ when :zoom_in
748
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ZOOM_IN`
749
+ when :zoom_out
750
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ZOOM_OUT`
751
+ when :zenkaku_hankaku
752
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ZENKAKU_HANKAKU`
753
+ when :yen
754
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_YEN`
755
+ when :window
756
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_WINDOW`
757
+ when :wakeup
758
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_WAKEUP`
759
+ when :voice_assist
760
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_VOICE_ASSIST`
761
+ when :tv_zoom_mode
762
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_ZOOM_MODE`
763
+ when :tv_timer_programming
764
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_TIMER_PROGRAMMING`
765
+ when :tv_terrestrial_digital
766
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_TERRESTRIAL_DIGITAL`
767
+ when :tv_terrestrial_analog
768
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_TERRESTRIAL_ANALOG`
769
+ when :tv_satellite_teletext
770
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_SATELLITE_TELETEXT`
771
+ when :tv_satellite_service
772
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_SATELLITE_SERVICE`
773
+ when :tv_satellite_bs
774
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_SATELLITE_BS`
775
+ when :tv_satellite_cs
776
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_SATELLITE_CS`
777
+ when :tv_satellite
778
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_SATELLITE`
779
+ when :tv_radio_service
780
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_RADIO_SERVICE`
781
+ when :tv_power
782
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_POWER`
783
+ when :tv_number_entry
784
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_NUMBER_ENTRY`
785
+ when :tv_network
786
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_NETWORK`
787
+ when :tv_media_context_menu
788
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_MEDIA_CONTEXT_MENU`
789
+ when :tv_input_vga1
790
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_VGA_1`
791
+ when :tv_input_hdmi1
792
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_HDMI_1`
793
+ when :tv_input_hdmi2
794
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_HDMI_2`
795
+ when :tv_input_hdmi3
796
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_HDMI_3`
797
+ when :tv_input_hdmi4
798
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_HDMI_4`
799
+ when :tv_input_composite1
800
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_COMPOSITE_1`
801
+ when :tv_input_composite2
802
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_COMPOSITE_2`
803
+ when :tv_input_component1
804
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_COMPONENT_1`
805
+ when :tv_input_component2
806
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT_COMPONENT_2`
807
+ when :tv_input
808
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_INPUT`
809
+ when :tv_data_service
810
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_DATA_SERVICE`
811
+ when :tv_contents_menu
812
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_CONTENTS_MENU`
813
+ when :tv_audio_desc
814
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_AUDIO_DESCRIPTION`
815
+ when :tv_audio_desc_mix_up
816
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP`
817
+ when :tv_audio_desc_mix_down
818
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN`
819
+ when :tv_antenna_cable
820
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV_ANTENNA_CABLE`
821
+ when :tv
822
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TV`
823
+ when :sysrq
824
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SYSRQ`
825
+ when :switch_charset
826
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SWITCH_CHARSET`
827
+ when :stem_primary
828
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_STEM_PRIMARY`
829
+ when :stem1
830
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_STEM_1`
831
+ when :stem2
832
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_STEM_2`
833
+ when :stem3
834
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_STEM_3`
835
+ when :stb_power
836
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_STB_POWER`
837
+ when :stb_input
838
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_STB_INPUT`
839
+ when :sleep
840
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SLEEP`
841
+ when :settings
842
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SETTINGS`
843
+ when :scroll_lock
844
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SCROLL_LOCK`
845
+ when :ro
846
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_RO`
847
+ when :prog_blue
848
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PROG_BLUE`
849
+ when :prog_green
850
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PROG_GREEN`
851
+ when :prog_red
852
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PROG_RED`
853
+ when :prog_yellow
854
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PROG_YELLOW`
855
+ when :pairing
856
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PARING`
857
+ when :num_lock
858
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUM_LOCK`
859
+ when :numpad_subtract
860
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_SUBTRACT`
861
+ when :numpad_multiply
862
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_MULTIPLY`
863
+ when :numpad_left_paren
864
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_LEFT_PAREN`
865
+ when :numpad_right_paren
866
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_RIGHT_PAREN`
867
+ when :numpad_equals
868
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_EQUALS`
869
+ when :numpad_enter
870
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_ENTER`
871
+ when :numpad_dot
872
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_DOT`
873
+ when :numpad_divide
874
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_DIVIDE`
875
+ when :numpad_comma
876
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_COMMA`
877
+ when :numpad_add
878
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_ADD`
879
+ when :numpad0
880
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_0`
881
+ when :numpad1
882
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_1`
883
+ when :numpad2
884
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_2`
885
+ when :numpad3
886
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_3`
887
+ when :numpad4
888
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_4`
889
+ when :numpad5
890
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_5`
891
+ when :numpad6
892
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_6`
893
+ when :numpad7
894
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_7`
895
+ when :numpad8
896
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_8`
897
+ when :numpad9
898
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUMPAD_9`
899
+ when :num
900
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NUM`
901
+ when :nav_in
902
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NAVIGATE_IN`
903
+ when :nav_next
904
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NAVIGATE_NEXT`
905
+ when :nav_out
906
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NAVIGATE_OUT`
907
+ when :nav_previous
908
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NAVIGATE_PREVIOUS`
909
+ when :music
910
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MUSIC`
911
+ when :muhenkan
912
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MUHENKAN`
913
+ when :meta_left
914
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_META_LEFT`
915
+ when :meta_right
916
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_META_RIGHT`
917
+ when :media_top_menu
918
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_TOP_MENU`
919
+ when :media_step_forward
920
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_STEP_FORWARD`
921
+ when :media_step_back
922
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_STEP_BACKWARD`
923
+ when :media_skip_forward
924
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_SKIP_FORWARD`
925
+ when :media_skip_back
926
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_SKIP_BACKWARD`
927
+ when :media_record
928
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_RECORD`
929
+ when :media_play
930
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_PLAY`
931
+ when :media_pause
932
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_PAUSE`
933
+ when :media_eject
934
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_EJECT`
935
+ when :media_close
936
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_CLOSE`
937
+ when :media_audio_track
938
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_AUDIO_TRACK`
939
+ when :manner_mode
940
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MANNER_MODE`
941
+ when :last_channel
942
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_LAST_CHANNEL`
943
+ when :language_switch
944
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_LANGUAGE_SWITCH`
945
+ when :katakana_hiragana
946
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_KATAKANA_HIRAGANA`
947
+ when :kana
948
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_KANA`
949
+ when :insert
950
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_INSERT`
951
+ when :info
952
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_INFO`
953
+ when :henkan
954
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_HENKAN`
955
+ when :help
956
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_HELP`
957
+ when :guide
958
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_GUIDE`
959
+ when :function
960
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_FUNCTION`
961
+ when :del
962
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_FORWARD_DEL`
963
+ when :f1
964
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F1`
965
+ when :f2
966
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F2`
967
+ when :f3
968
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F3`
969
+ when :f4
970
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F4`
971
+ when :f5
972
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F5`
973
+ when :f6
974
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F6`
975
+ when :f7
976
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F7`
977
+ when :f8
978
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F8`
979
+ when :f9
980
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F9`
981
+ when :f10
982
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F10`
983
+ when :f11
984
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F11`
985
+ when :f12
986
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_F12`
987
+ when :escape
988
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ESCAPE`
989
+ when :eisu
990
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_EISU`
991
+ when :dvr
992
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DVR`
993
+ when :ctrl_left
994
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CTRL_LEFT`
995
+ when :ctrl_right
996
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CTRL_RIGHT`
997
+ when :cut
998
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CUT`
999
+ when :copy
1000
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_COPY`
1001
+ when :paste
1002
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PASTE`
1003
+ when :contacts
1004
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CONTACTS`
1005
+ when :chan_down
1006
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CHANNEL_DOWN`
1007
+ when :chan_up
1008
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CHANNEL_UP`
1009
+ when :captions
1010
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CAPTIONS`
1011
+ when :caps_lock
1012
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CAPS_LOCK`
1013
+ when :calendar
1014
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CALENDAR`
1015
+ when :calculator
1016
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CALCULATOR`
1017
+ when :gamepad1
1018
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_1`
1019
+ when :gamepad2
1020
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_2`
1021
+ when :gamepad3
1022
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_3`
1023
+ when :gamepad4
1024
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_4`
1025
+ when :gamepad5
1026
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_5`
1027
+ when :gamepad6
1028
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_6`
1029
+ when :gamepad7
1030
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_7`
1031
+ when :gamepad8
1032
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_8`
1033
+ when :gamepad9
1034
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_9`
1035
+ when :gamepad10
1036
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_10`
1037
+ when :gamepad11
1038
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_11`
1039
+ when :gamepad12
1040
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_12`
1041
+ when :gamepad13
1042
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_13`
1043
+ when :gamepad14
1044
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_14`
1045
+ when :gamepad15
1046
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_15`
1047
+ when :gamepad16
1048
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_16`
1049
+ when :gamepad_a
1050
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_A`
1051
+ when :gamepad_b
1052
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_B`
1053
+ when :gamepad_c
1054
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_C`
1055
+ when :gamepad_l1
1056
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_L1`
1057
+ when :gamepad_l2
1058
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_L2`
1059
+ when :gamepad_mode
1060
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_MODE`
1061
+ when :gamepad_r1
1062
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_R1`
1063
+ when :gamepad_r2
1064
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_R2`
1065
+ when :gamepad_select
1066
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_SELECT`
1067
+ when :gamepad_start
1068
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_START`
1069
+ when :gamepad_thumbl
1070
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_THUMBL`
1071
+ when :gamepad_thumbr
1072
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_THUMBR`
1073
+ when :gamepad_x
1074
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_X`
1075
+ when :gamepad_y
1076
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_Y`
1077
+ when :gamepad_z
1078
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BUTTON_Z`
1079
+ when :brightness_up
1080
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BRIGHTNESS_UP`
1081
+ when :brightness_down
1082
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BRIGHTNESS_DOWN`
1083
+ when :break
1084
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BREAK`
1085
+ when :bookmark
1086
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BOOKMARK`
1087
+ when :avr_power
1088
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_AVR_POWER`
1089
+ when :avr_input
1090
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_AVR_INPUT`
1091
+ when :assist
1092
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ASSIST`
1093
+ when :app_switch
1094
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_APP_SWITCH`
1095
+ when :threeDmode
1096
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_3D_MODE`
1097
+ when :eleven
1098
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_11`
1099
+ when :twelve
1100
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_12`
1101
+ when :unknown
1102
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_UNKNOWN`
1103
+ when :soft_left
1104
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SOFT_LEFT`
1105
+ when :soft_right
1106
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SOFT_RIGHT`
1107
+ when :soft_sleep
1108
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SOFT_SLEEP`
1109
+ when :home
1110
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_HOME`
1111
+ when :forward
1112
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_FORWARD`
1113
+ when :back
1114
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_BACK`
1115
+ when :call
1116
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CALL`
1117
+ when :endcall
1118
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ENDCALL`
1119
+ when :dpad_up
1120
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_UP`
1121
+ when :dpad_down
1122
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_DOWN`
1123
+ when :dpad_left
1124
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_LEFT`
1125
+ when :dpad_right
1126
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_RIGHT`
1127
+ when :dpad_down_left
1128
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_DOWN_LEFT`
1129
+ when :dpad_down_right
1130
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_DOWN_RIGHT`
1131
+ when :dpad_up_left
1132
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_UP_LEFT`
1133
+ when :dpad_up_right
1134
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_UP_RIGHT`
1135
+ when :dpad_center
1136
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DPAD_CENTER`
1137
+ when :volume_up
1138
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_VOLUME_UP`
1139
+ when :volume_down
1140
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_VOLUME_DOWN`
1141
+ when :power
1142
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_POWER`
1143
+ when :camera
1144
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CAMERA`
1145
+ when :clear
1146
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_CLEAR`
1147
+ when :alt_left
1148
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ALT_LEFT`
1149
+ when :alt_right
1150
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ALT_RIGHT`
1151
+ when :shift_left
1152
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SHIFT_LEFT`
1153
+ when :shift_right
1154
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SHIFT_RIGHT`
1155
+ when :tab
1156
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_TAB`
1157
+ when :sym
1158
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SYM`
1159
+ when :explorer
1160
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_EXPLORER`
1161
+ when :envelope
1162
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ENVELOPE`
1163
+ when :enter
1164
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_ENTER`
1165
+ when :backspace
1166
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_DEL`
1167
+ when :headsethook
1168
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_HEADSETHOOK`
1169
+ when :focus
1170
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_FOCUS`
1171
+ when :menu
1172
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MENU`
1173
+ when :top_menu
1174
+ str_resp = `#{adb_path} shell input touchscreen swipe 0 0 0 1500 100`
1175
+ when :notification
1176
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_NOTIFICATION`
1177
+ when :search
1178
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_SEARCH`
1179
+ when :media_play_pause
1180
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_PLAY_PAUSE`
1181
+ when :media_stop
1182
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_STOP`
1183
+ when :media_next
1184
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_NEXT`
1185
+ when :media_previous
1186
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_PREVIOUS`
1187
+ when :media_rewind
1188
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_REWIND`
1189
+ when :media_fast_forward
1190
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MEDIA_FAST_FORWARD`
1191
+ when :mute
1192
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MUTE`
1193
+ when :page_up
1194
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PAGE_UP`
1195
+ when :page_down
1196
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PAGE_DOWN`
1197
+ when :pictsymbols
1198
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_PICTSYMBOLS`
1199
+ when :move_home
1200
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MOVE_HOME`
1201
+ when :move_end
1202
+ str_resp = `#{adb_path} shell input keyevent KEYCODE_MOVE_END`
1203
+ else
1204
+ raise "ERROR: unknown special event: #{event}"
1205
+ end
1206
+ str_resp.to_s.scrub
1207
+ rescue StandardError => e
1208
+ raise e
1209
+ end
1210
+
1211
+ # Supported Method Parameters::
1212
+ # PWN::Plugins::Android.close_app(
1213
+ # adb_path: 'required - path to adb binary',
1214
+ # app: 'required - application app to close (i.e. open an android app returned from #list_install_apps method)',
1215
+ # as_root: 'optional - boolean (defaults to false)',
1216
+ # )
1217
+
1218
+ public_class_method def self.close_app(opts = {})
1219
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
1220
+ app = opts[:app].to_s.scrub
1221
+
1222
+ as_root = if opts[:as_root]
1223
+ true
1224
+ else
1225
+ false
1226
+ end
1227
+
1228
+ `#{adb_path} root` if as_root
1229
+ `#{adb_path} shell am force-stop #{app}`
1230
+ rescue StandardError => e
1231
+ raise e
1232
+ end
1233
+
1234
+ # Supported Method Parameters::
1235
+ # PWN::Plugins::Android.invoke_event_listener(
1236
+ # adb_path: 'required - path to adb binary',
1237
+ # as_root: 'optional - boolean (defaults to false)',
1238
+ # )
1239
+
1240
+ public_class_method def self.invoke_event_listener(opts = {})
1241
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
1242
+ app = opts[:app].to_s.scrub
1243
+
1244
+ as_root = if opts[:as_root]
1245
+ true
1246
+ else
1247
+ false
1248
+ end
1249
+
1250
+ `#{adb_path} root` if as_root
1251
+ `#{adb_path} shell getevent -l`
1252
+ rescue StandardError => e
1253
+ raise e
1254
+ end
1255
+
1256
+ # Supported Method Parameters::
1257
+ # PWN::Plugins::Android.adb_net_disconnect(
1258
+ # adb_path: 'required - path to adb binary',
1259
+ # target: 'required - target host or IP to disconnect',
1260
+ # port: 'optional - defaults to tcp 5555'
1261
+ # )
1262
+
1263
+ public_class_method def self.adb_net_disconnect(opts = {})
1264
+ adb_path = opts[:adb_path].to_s.scrub if File.exist?(opts[:adb_path].to_s.scrub)
1265
+ target = opts[:target].to_s.scrub
1266
+ port = if opts[:port]
1267
+ opts[:port].to_i
1268
+ else
1269
+ 5555
1270
+ end
1271
+
1272
+ `#{adb_path} disconnect #{target}:#{port}`
1273
+ rescue StandardError => e
1274
+ raise e
1275
+ end
1276
+
1277
+ # Author(s):: Jacob Hoopes <jake.hoopes@gmail.com>
1278
+
1279
+ public_class_method def self.authors
1280
+ "AUTHOR(S):
1281
+ Jacob Hoopes <jake.hoopes@gmail.com>
1282
+ "
1283
+ end
1284
+
1285
+ # Display Usage for this Module
1286
+
1287
+ public_class_method def self.help
1288
+ puts "USAGE:
1289
+
1290
+ #{self}.adb_net_connect(
1291
+ adb_path: 'required - path to adb binary',
1292
+ target: 'required - target host or IP to connect',
1293
+ port: 'optional - defaults to tcp 5555'
1294
+ )
1295
+
1296
+ adb_response = #{self}.adb_sh(
1297
+ adb_path: 'required - path to adb binary',
1298
+ command: 'adb command to execute'
1299
+ as_root: 'optional - boolean (defaults to false)',
1300
+ )
1301
+
1302
+ #{self}.adb_push(
1303
+ adb_path: 'required - path to adb binary',
1304
+ file: 'required - source file to push',
1305
+ dest: 'required - destination path to push file',
1306
+ as_root: 'optional - boolean (defaults to false)',
1307
+ )
1308
+
1309
+ #{self}.adb_pull(
1310
+ adb_path: 'required - path to adb binary',
1311
+ file: 'required - source file to pull',
1312
+ dest: 'required - destination path to pull file',
1313
+ as_root: 'optional - boolean (defaults to false)',
1314
+ )
1315
+
1316
+ #{self}.take_screenshot(
1317
+ adb_path: 'required - path to adb binary',
1318
+ dest: 'optional - destination path to save screenshot file (defaults to /sdcard/screen.png)',
1319
+ as_root: 'optional - boolean (defaults to true)'
1320
+ )
1321
+
1322
+ #{self}.screen_record(
1323
+ adb_path: 'required - path to adb binary',
1324
+ dest: 'optional - destination path to save screen record file (defaults to /sdcard/screen.mp4)',
1325
+ as_root: 'optional - boolean (defaults to true)'
1326
+ )
1327
+
1328
+ installed_apps_arr = #{self}.list_installed_apps(
1329
+ adb_path: 'required - path to adb binary',
1330
+ as_root: 'optional - boolean (defaults to false)',
1331
+ )
1332
+
1333
+ app_response = #{self}.dumpsys(
1334
+ adb_path: 'required - path to adb binary',
1335
+ app: 'optional - application app to detail otherwise display all (i.e. display info from an android app returned from #list_install_apps method)',
1336
+ as_root: 'optional - boolean (defaults to false)',
1337
+ )
1338
+
1339
+ app_response = #{self}.open_app(
1340
+ adb_path: 'required - path to adb binary',
1341
+ app: 'required - application app to run (i.e. open an android app returned from #list_install_apps method)',
1342
+ as_root: 'optional - boolean (defaults to false)'
1343
+ )
1344
+
1345
+ #{self}.find_hidden_codes(
1346
+ adb_path: 'required - path to adb binary',
1347
+ from: 'required - start at keycode #'
1348
+ to: 'required - end at keycode #',
1349
+ interact: 'optional - defaults to false'
1350
+ )
1351
+
1352
+ #{self}.swipe(
1353
+ adb_path: 'required - path to adb binary',
1354
+ direction: 'required - direction to swipe (:up|:down|:left|:right)'
1355
+ )
1356
+
1357
+ #{self}.input(
1358
+ adb_path: 'required - path to adb binary',
1359
+ string: 'required - string to type'
1360
+ )
1361
+
1362
+ #{self}.input_special(
1363
+ adb_path: 'required - path to adb binary',
1364
+ event: 'required - special event to invoke (
1365
+ :zoom_in|
1366
+ :zoom_out|
1367
+ :zenkaku_hankaku|
1368
+ :yen|
1369
+ :window|
1370
+ :wakeup|
1371
+ :voice_assist|
1372
+ :tv_zoom_mode|
1373
+ :tv_timer_programming|
1374
+ :tv_terrestrial_digital|
1375
+ :tv_terrestrial_analog|
1376
+ :tv_satellite_teletext|
1377
+ :tv_satellite_service|
1378
+ :tv_satellite|
1379
+ :tv_satellite_bs|
1380
+ :tv_satellite_cs|
1381
+ :tv_radio_service|
1382
+ :tv_power|
1383
+ :tv_number_entry|
1384
+ :tv_network|
1385
+ :tv_media_context_menu|
1386
+ :tv_input_vga1|
1387
+ :tv_input_hdmi1|
1388
+ :tv_input_hdmi2|
1389
+ :tv_input_hdmi3|
1390
+ :tv_input_hdmi4|
1391
+ :tv_input_composite1|
1392
+ :tv_input_composite2|
1393
+ :tv_input_component1|
1394
+ :tv_input_component2|
1395
+ :tv_input|
1396
+ :tv_data_service|
1397
+ :tv_contents_menu|
1398
+ :tv_audio_desc|
1399
+ :tv_audio_desc_mix_up|
1400
+ :tv_audio_desc_mix_down|
1401
+ :tv_antenna_cable|
1402
+ :tv|
1403
+ :sysrq|
1404
+ :switch_charset|
1405
+ :stem_primary|
1406
+ :stem1|
1407
+ :stem2|
1408
+ :stem3|
1409
+ :stb_power|
1410
+ :stb_input|
1411
+ :sleep|
1412
+ :settings|
1413
+ :scroll_lock|
1414
+ :ro|
1415
+ :prog_blue|
1416
+ :prog_green|
1417
+ :prog_red|
1418
+ :prog_yellow|
1419
+ :pairing|
1420
+ :num_lock|
1421
+ :numpad_subtract|
1422
+ :numpad_multiply|
1423
+ :numpad_left_paren|
1424
+ :numpad_right_paren|
1425
+ :numpad_equals|
1426
+ :numpad_enter|
1427
+ :numpad_dot|
1428
+ :numpad_comma|
1429
+ :numpad_add|
1430
+ :numpad0|
1431
+ :numpad1|
1432
+ :numpad2|
1433
+ :numpad3|
1434
+ :numpad4|
1435
+ :numpad5|
1436
+ :numpad6|
1437
+ :numpad7|
1438
+ :numpad8|
1439
+ :numpad9|
1440
+ :num|
1441
+ :nav_in|
1442
+ :nav_next|
1443
+ :nav_out|
1444
+ :nav_previous|
1445
+ :music|
1446
+ :muhenkan|
1447
+ :meta_left|
1448
+ :meta_right|
1449
+ :media_top_menu|
1450
+ :media_step_forward|
1451
+ :media_step_back|
1452
+ :media_skip_forward|
1453
+ :media_skip_back|
1454
+ :media_record|
1455
+ :media_play|
1456
+ :media_eject|
1457
+ :media_close|
1458
+ :media_audio_track|
1459
+ :manner_mode|
1460
+ :last_channel|
1461
+ :language_switch|
1462
+ :katakana_hiragana|
1463
+ :kana|
1464
+ :insert|
1465
+ :info|
1466
+ :henkan|
1467
+ :help|
1468
+ :guide|
1469
+ :del|
1470
+ :f1|
1471
+ :f2|
1472
+ :f3|
1473
+ :f4|
1474
+ :f5|
1475
+ :f6|
1476
+ :f7|
1477
+ :f8|
1478
+ :f9|
1479
+ :f10|
1480
+ :f11|
1481
+ :f12|
1482
+ :escape|
1483
+ :eisu|
1484
+ :dvr|
1485
+ :ctrl_left|
1486
+ :ctrl_right|
1487
+ :cut|
1488
+ :copy|
1489
+ :paste|
1490
+ :contacts|
1491
+ :chan_down|
1492
+ :chan_up|
1493
+ :captions|
1494
+ :caps_lock|
1495
+ :calendar|
1496
+ :calculator|
1497
+ :gamepad1|
1498
+ :gamepad2|
1499
+ :gamepad3|
1500
+ :gamepad4|
1501
+ :gamepad5|
1502
+ :gamepad6|
1503
+ :gamepad7|
1504
+ :gamepad8|
1505
+ :gamepad9|
1506
+ :gamepad10|
1507
+ :gamepad11|
1508
+ :gamepad12|
1509
+ :gamepad13|
1510
+ :gamepad14|
1511
+ :gamepad15|
1512
+ :gamepad16|
1513
+ :gamepad_a|
1514
+ :gamepad_b|
1515
+ :gamepad_c|
1516
+ :gamepad_l1|
1517
+ :gamepad_l2|
1518
+ :gamepad_mode|
1519
+ :gamepad_r1|
1520
+ :gamepad_r2|
1521
+ :gamepad_select|
1522
+ :gamepad_start|
1523
+ :gamepad_thumbl|
1524
+ :gamepad_thumbr|
1525
+ :gamepad_x|
1526
+ :gamepad_y|
1527
+ :gamepad_z|
1528
+ :brightness_up|
1529
+ :brightness_down|
1530
+ :break|
1531
+ :bookmark|
1532
+ :avr_power|
1533
+ :avr_input|
1534
+ :assist|
1535
+ :app_switch|
1536
+ :threeDmode|
1537
+ :eleven|
1538
+ :twelve|
1539
+ :unknown|
1540
+ :soft_left|
1541
+ :soft_right|
1542
+ :soft_sleep|
1543
+ :home|
1544
+ :forward|
1545
+ :back|
1546
+ :call|
1547
+ :endcall|
1548
+ :dpad_up|
1549
+ :dpad_down|
1550
+ :dpad_left|
1551
+ :dpad_right|
1552
+ :dpad_down_left|
1553
+ :dpad_down_right|
1554
+ :dpad_up_left|
1555
+ :dpad_up_right|
1556
+ :dpad_center|
1557
+ :volume_up|
1558
+ :volume_down|
1559
+ :power|
1560
+ :camera|
1561
+ :clear|
1562
+ :alt_left|
1563
+ :alt_right|
1564
+ :shift_left|
1565
+ :shift_right|
1566
+ :tab|
1567
+ :sym|
1568
+ :explorer|
1569
+ :envelope|
1570
+ :enter|
1571
+ :backspace|
1572
+ :headsethook|
1573
+ :focus|
1574
+ :menu|
1575
+ :top_menu|
1576
+ :notification|
1577
+ :search|
1578
+ :media_play_pause|
1579
+ :media_stop|
1580
+ :media_next|
1581
+ :media_previous|
1582
+ :media_rewind|
1583
+ :media_fast_forward|
1584
+ :mute|
1585
+ :page_up|
1586
+ :page_down|
1587
+ :pictsymbols|
1588
+ :move_home|
1589
+ :move_end
1590
+ )
1591
+ see https://developer.android.com/reference/android/view/KeyEvent.html for more info'
1592
+ )
1593
+
1594
+ app_response = #{self}.close_app(
1595
+ adb_path: 'required - path to adb binary',
1596
+ app: 'required - application app to run (i.e. open an android app returned from #list_install_apps method)',
1597
+ as_root: 'optional - boolean (defaults to false)'
1598
+ )
1599
+
1600
+ #{self}.invoke_event_listener(
1601
+ adb_path: 'required - path to adb binary',
1602
+ as_root: 'optional - boolean (defaults to false)',
1603
+ )
1604
+
1605
+ #{self}.adb_net_disconnect(
1606
+ adb_path: 'required - path to adb binary',
1607
+ target: 'required - target host or IP to connect',
1608
+ port: 'optional - defaults to tcp 5555'
1609
+ )
1610
+
1611
+ #{self}.authors
1612
+ "
1613
+ end
1614
+ end
1615
+ end
1616
+ end