pwn 0.5.164 → 0.5.166

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/README.md +3 -3
  4. data/bin/pwn +1 -1
  5. data/bin/pwn_android_war_dialer +2 -2
  6. data/bin/pwn_aws_describe_resources +2 -2
  7. data/bin/pwn_bdba_groups +2 -2
  8. data/bin/pwn_bdba_scan +2 -2
  9. data/bin/pwn_burp_suite_pro_active_scan +2 -2
  10. data/bin/pwn_char_base64_encoding +2 -2
  11. data/bin/pwn_char_dec_encoding +2 -2
  12. data/bin/pwn_char_hex_escaped_encoding +2 -2
  13. data/bin/pwn_char_html_entity_encoding +2 -2
  14. data/bin/pwn_char_unicode_escaped_encoding +2 -2
  15. data/bin/pwn_char_url_encoding +2 -2
  16. data/bin/pwn_crt_sh +83 -0
  17. data/bin/pwn_defectdojo_engagement_create +2 -2
  18. data/bin/pwn_defectdojo_importscan +2 -2
  19. data/bin/pwn_defectdojo_reimportscan +2 -2
  20. data/bin/pwn_diff_csv_files_w_column_exclude +4 -4
  21. data/bin/pwn_domain_reversewhois +2 -2
  22. data/bin/pwn_fuzz_net_app_proto +3 -3
  23. data/bin/pwn_gqrx_scanner +2 -2
  24. data/bin/pwn_jenkins_create_job +2 -2
  25. data/bin/pwn_jenkins_create_view +2 -2
  26. data/bin/pwn_jenkins_install_plugin +2 -2
  27. data/bin/pwn_jenkins_thinBackup_aws_s3 +2 -2
  28. data/bin/pwn_jenkins_update_plugins +2 -2
  29. data/bin/pwn_jenkins_useradd +2 -2
  30. data/bin/pwn_mail_agent +2 -2
  31. data/bin/pwn_nessus_cloud_scan_crud +2 -2
  32. data/bin/pwn_nessus_cloud_vulnscan +2 -2
  33. data/bin/pwn_nexpose +2 -2
  34. data/bin/pwn_nmap_discover_tcp_udp +2 -2
  35. data/bin/pwn_openvas_vulnscan +2 -2
  36. data/bin/pwn_owasp_zap_active_scan +2 -2
  37. data/bin/pwn_pastebin_sample_filter +2 -2
  38. data/bin/pwn_phone +3 -3
  39. data/bin/pwn_sast +3 -3
  40. data/bin/pwn_serial_check_voicemail +2 -2
  41. data/bin/pwn_serial_msr206 +2 -2
  42. data/bin/pwn_serial_son_micro_sm132_rfid +2 -2
  43. data/bin/pwn_shodan_graphql_introspection +1 -1
  44. data/bin/pwn_shodan_search +2 -2
  45. data/bin/pwn_simple_http_server +1 -1
  46. data/bin/pwn_web_cache_deception +4 -4
  47. data/bin/pwn_www_checkip +3 -1
  48. data/bin/pwn_www_uri_buster +141 -57
  49. data/bin/pwn_xss_dom_vectors +2 -2
  50. data/lib/pwn/plugins/authentication_helper.rb +2 -2
  51. data/lib/pwn/plugins/ip_info.rb +2 -0
  52. data/lib/pwn/plugins/log.rb +3 -1
  53. data/lib/pwn/plugins/repl.rb +3 -1
  54. data/lib/pwn/plugins/thread_pool.rb +12 -42
  55. data/lib/pwn/plugins/tor.rb +51 -12
  56. data/lib/pwn/plugins/transparent_browser.rb +3 -0
  57. data/lib/pwn/plugins/voice.rb +3 -3
  58. data/lib/pwn/reports/uri_buster.rb +18 -6
  59. data/lib/pwn/version.rb +1 -1
  60. metadata +8 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f78ea5b6f4385d8d1958510be2beea8dbf58c86b1c13da7d500f098dcaaad45
4
- data.tar.gz: f216cdba12537f7888f0847e31d2783e8f9be38431e69698647b349415e53ef7
3
+ metadata.gz: cf7ab54a1b59e7a1c07512329e58212e1045961dc7106e6b21c62f81039bfead
4
+ data.tar.gz: 107f8c305849e0db635d32992fac3480413713bb9ef3d360481d1cf27845faf6
5
5
  SHA512:
6
- metadata.gz: '08cbd80147f31a23b2ad0f379aba358afe96290658447a2060adcb7a58b4e1e19f73aef265e0a1b9627b7394d443bcb59bdf510bc2998eec16f23d281ede83a8'
7
- data.tar.gz: 90e4389b63a5869249995a543b89563fedb28b2529f4efce3b163f628341fefb33fb130487f522ddf4bcb112d7eba2dcd15318e56e157f6ae9e26db87b19e892
6
+ metadata.gz: cf16a64537bba5fcc43b3b078e40da52c2b780e592c8ca48e4cc37b7436f80dbb677232fce6b6d7c1ad2bc6b9450d8d52a2c0295c2f9e6789cb7ab5e12866ab5
7
+ data.tar.gz: 66869416a4b462fea13338075694f6bdc465712c3f17506ca0e3e33c0f8643ba5ea7c5e58931be40862c466ff7e07d6bc3b7170e5609890777b9974ac8611ecf
data/Gemfile CHANGED
@@ -46,7 +46,7 @@ gem 'jwt', '2.8.1'
46
46
  gem 'libusb', '0.7.1'
47
47
  gem 'luhn', '1.0.2'
48
48
  gem 'mail', '2.8.1'
49
- gem 'meshtastic', '0.0.68'
49
+ gem 'meshtastic', '0.0.69'
50
50
  gem 'metasm', '1.0.5'
51
51
  gem 'mongo', '2.20.0'
52
52
  gem 'msfrpc-client', '1.1.2'
@@ -78,7 +78,7 @@ gem 'rspec', '3.13.0'
78
78
  gem 'rtesseract', '3.1.3'
79
79
  gem 'rubocop', '1.64.1'
80
80
  gem 'rubocop-rake', '0.6.0'
81
- gem 'rubocop-rspec', '2.30.0'
81
+ gem 'rubocop-rspec', '2.31.0'
82
82
  gem 'ruby-audio', '1.6.1'
83
83
  gem 'ruby-nmap', '1.0.3'
84
84
  gem 'ruby-saml', '1.16.0'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
37
37
  $ ./install.sh
38
38
  $ ./install.sh ruby-gem
39
39
  $ pwn
40
- pwn[v0.5.164]:001 >>> PWN.help
40
+ pwn[v0.5.166]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.3.1@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.164]:001 >>> PWN.help
55
+ pwn[v0.5.166]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
  If you're using a multi-user install of RVM do:
@@ -62,7 +62,7 @@ $ rvm use ruby-3.3.1@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.164]:001 >>> PWN.help
65
+ pwn[v0.5.166]:001 >>> PWN.help
66
66
  ```
67
67
 
68
68
  PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
data/bin/pwn CHANGED
@@ -7,7 +7,7 @@ require 'pwn'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-cPATH', '--yaml-config=PATH', '<Optional - PWN YAML File>') do |p|
@@ -8,7 +8,7 @@ require 'waveform'
8
8
  opts = {}
9
9
  OptionParser.new do |options|
10
10
  options.banner = "USAGE:
11
- #{$PROGRAM_NAME} [opts]
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
12
  "
13
13
 
14
14
  options.on('-fFROM', '--from=FROM', '<Required - Dial Range from (Beginning Number)>') do |f|
@@ -45,7 +45,7 @@ OptionParser.new do |options|
45
45
  end.parse!
46
46
 
47
47
  if opts.empty?
48
- puts `#{$PROGRAM_NAME} --help`
48
+ puts `#{File.basename($PROGRAM_NAME)} --help`
49
49
  exit 1
50
50
  end
51
51
 
@@ -9,7 +9,7 @@ require 'yaml'
9
9
  opts = {}
10
10
  OptionParser.new do |options|
11
11
  options.banner = "USAGE:
12
- #{$PROGRAM_NAME} [opts]
12
+ #{File.basename($PROGRAM_NAME)} [opts]
13
13
  "
14
14
 
15
15
  options.on('-rREGION', '--region=REGION', '<Required - Region to Describe>') do |region|
@@ -42,7 +42,7 @@ OptionParser.new do |options|
42
42
  end.parse!
43
43
 
44
44
  if opts.empty?
45
- puts `#{$PROGRAM_NAME} --help`
45
+ puts `#{File.basename($PROGRAM_NAME)} --help`
46
46
  exit 1
47
47
  end
48
48
 
data/bin/pwn_bdba_groups CHANGED
@@ -8,7 +8,7 @@ require 'yaml'
8
8
  opts = {}
9
9
  OptionParser.new do |options|
10
10
  options.banner = "USAGE:
11
- #{$PROGRAM_NAME} [opts]
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
12
  "
13
13
 
14
14
  options.on('-cCONFIG', '--config=CONFIG', '<Required - Black Duck Binary Analysis YAML config>') do |c|
@@ -37,7 +37,7 @@ OptionParser.new do |options|
37
37
  end.parse!
38
38
 
39
39
  if opts.empty?
40
- puts `#{$PROGRAM_NAME} --help`
40
+ puts `#{File.basename($PROGRAM_NAME)} --help`
41
41
  exit 1
42
42
  end
43
43
 
data/bin/pwn_bdba_scan CHANGED
@@ -9,7 +9,7 @@ require 'yaml'
9
9
  opts = {}
10
10
  OptionParser.new do |options|
11
11
  options.banner = "USAGE:
12
- #{$PROGRAM_NAME} [opts]
12
+ #{File.basename($PROGRAM_NAME)} [opts]
13
13
  "
14
14
 
15
15
  options.on('-cCONFIG', '--config=CONFG', '<Required - Black Duck Binary Analysis YAML config>') do |g|
@@ -54,7 +54,7 @@ OptionParser.new do |options|
54
54
  end.parse!
55
55
 
56
56
  if opts.empty?
57
- puts `#{$PROGRAM_NAME} --help`
57
+ puts `#{File.basename($PROGRAM_NAME)} --help`
58
58
  exit 1
59
59
  end
60
60
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-bBPATH', '--burp_path=BPATH', '<Required - Path to Burp Suite Pro Jar File>') do |b|
@@ -36,7 +36,7 @@ OptionParser.new do |options|
36
36
  end.parse!
37
37
 
38
38
  if opts.empty?
39
- puts `#{$PROGRAM_NAME} --help`
39
+ puts `#{File.basename($PROGRAM_NAME)} --help`
40
40
  exit 1
41
41
  end
42
42
 
@@ -7,7 +7,7 @@ require 'base64'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-pSTRING', '--payload=STRING', '<Required - String to Encode>') do |p|
@@ -16,7 +16,7 @@ OptionParser.new do |options|
16
16
  end.parse!
17
17
 
18
18
  if opts.empty?
19
- puts `#{$PROGRAM_NAME} --help`
19
+ puts `#{File.basename($PROGRAM_NAME)} --help`
20
20
  exit 1
21
21
  end
22
22
 
@@ -6,7 +6,7 @@ require 'optparse'
6
6
  opts = {}
7
7
  OptionParser.new do |options|
8
8
  options.banner = "USAGE:
9
- #{$PROGRAM_NAME} [opts]
9
+ #{File.basename($PROGRAM_NAME)} [opts]
10
10
  "
11
11
 
12
12
  options.on('-pSTRING', '--payload=STRING', '<Required - String to Encode>') do |p|
@@ -15,7 +15,7 @@ OptionParser.new do |options|
15
15
  end.parse!
16
16
 
17
17
  if opts.empty?
18
- puts `#{$PROGRAM_NAME} --help`
18
+ puts `#{File.basename($PROGRAM_NAME)} --help`
19
19
  exit 1
20
20
  end
21
21
 
@@ -6,7 +6,7 @@ require 'optparse'
6
6
  opts = {}
7
7
  OptionParser.new do |options|
8
8
  options.banner = "USAGE:
9
- #{$PROGRAM_NAME} [opts]
9
+ #{File.basename($PROGRAM_NAME)} [opts]
10
10
  "
11
11
 
12
12
  options.on('-pSTRING', '--payload=STRING', '<Required - String to Encode>') do |p|
@@ -15,7 +15,7 @@ OptionParser.new do |options|
15
15
  end.parse!
16
16
 
17
17
  if opts.empty?
18
- puts `#{$PROGRAM_NAME} --help`
18
+ puts `#{File.basename($PROGRAM_NAME)} --help`
19
19
  exit 1
20
20
  end
21
21
 
@@ -7,7 +7,7 @@ require 'cgi'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-pSTRING', '--payload=STRING', '<Required - String to Encode>') do |p|
@@ -16,7 +16,7 @@ OptionParser.new do |options|
16
16
  end.parse!
17
17
 
18
18
  if opts.empty?
19
- puts `#{$PROGRAM_NAME} --help`
19
+ puts `#{File.basename($PROGRAM_NAME)} --help`
20
20
  exit 1
21
21
  end
22
22
 
@@ -6,7 +6,7 @@ require 'optparse'
6
6
  opts = {}
7
7
  OptionParser.new do |options|
8
8
  options.banner = "USAGE:
9
- #{$PROGRAM_NAME} [opts]
9
+ #{File.basename($PROGRAM_NAME)} [opts]
10
10
  "
11
11
 
12
12
  options.on('-pSTRING', '--payload=STRING', '<Required - String to Encode>') do |p|
@@ -15,7 +15,7 @@ OptionParser.new do |options|
15
15
  end.parse!
16
16
 
17
17
  if opts.empty?
18
- puts `#{$PROGRAM_NAME} --help`
18
+ puts `#{File.basename($PROGRAM_NAME)} --help`
19
19
  exit 1
20
20
  end
21
21
 
@@ -7,7 +7,7 @@ require 'cgi'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-pSTRING', '--payload=STRING', '<Required - String to Encode>') do |p|
@@ -16,7 +16,7 @@ OptionParser.new do |options|
16
16
  end.parse!
17
17
 
18
18
  if opts.empty?
19
- puts `#{$PROGRAM_NAME} --help`
19
+ puts `#{File.basename($PROGRAM_NAME)} --help`
20
20
  exit 1
21
21
  end
22
22
 
data/bin/pwn_crt_sh ADDED
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'pwn'
5
+ require 'nokogiri'
6
+ require 'optparse'
7
+
8
+ opts = {}
9
+ OptionParser.new do |options|
10
+ options.banner = "USAGE:
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
+ "
13
+
14
+ options.on('-tDOMAIN', '--target-domain=DOMAIN', '<Required - Target Domain>') do |t|
15
+ opts[:target_domain] = t
16
+ end
17
+
18
+ options.on('-pPROXY', '--proxy=PROXY', '<Optional - HTTP or Socks Proxy || tor>') do |p|
19
+ opts[:proxy] = p
20
+ end
21
+
22
+ options.on('-rPATH', '--report-path=PATH', '<Optional - Path to save report (Default: "/tmp/pwn_crt_sh-TIMESTAMP.json">') do |r|
23
+ opts[:report_path] = r
24
+ end
25
+ end.parse!
26
+
27
+ if opts.empty?
28
+ puts `#{File.basename($PROGRAM_NAME)} --help`
29
+ exit 1
30
+ end
31
+
32
+ begin
33
+ target_domain = opts[:target_domain]
34
+ raise 'No target domain provided' if target_domain.nil?
35
+
36
+ timestamp = Time.now.strftime('%Y-%m-%d_%H:%M:%S.%L')
37
+ report_path = opts[:report_path] ||= "/tmp/pwn_crt_sh-#{target}-#{timestamp}.json"
38
+
39
+ proxy = opts[:proxy]
40
+ if proxy
41
+ browser_obj = PWN::Plugins::TransparentBrowser.open(
42
+ browser_type: :rest,
43
+ proxy: proxy
44
+ )
45
+
46
+ rest_client = browser_obj[:browser]::Request
47
+ rest_resp = rest_client.execute(
48
+ method: :get,
49
+ url: "https://crt.sh/?q=#{target_domain}",
50
+ verify_ssl: false
51
+ )
52
+ else
53
+ browser_obj = PWN::Plugins::TransparentBrowser.open(
54
+ browser_type: :rest
55
+ )
56
+
57
+ rest_client = browser_obj[:browser]::Request
58
+ rest_resp = rest_client.execute(
59
+ method: :get,
60
+ url: "https://crt.sh/?q=#{target_domain}"
61
+ )
62
+ end
63
+
64
+ nokogiri_obj = Nokogiri::HTML.parse(rest_resp.body)
65
+ uniq_subd_arr = nokogiri_obj.xpath('//td[@class="outer"]/table/tr/td[5]/text()').map(&:to_s).uniq.sort
66
+ uniq_subd_arr.each { |subd| puts subd }
67
+
68
+ report = {
69
+ target_domain: target_domain,
70
+ subdomains: uniq_subd_arr
71
+ }
72
+
73
+ File.write(report_path, JSON.pretty_generate(report))
74
+
75
+ puts "Report saved to: #{report_path}"
76
+ rescue Interrupt
77
+ puts "\n#{File.basename($PROGRAM_NAME)} => Goodbye."
78
+ rescue StandardError => e
79
+ puts 'ERROR: Something Happened'
80
+ raise e
81
+ ensure
82
+ browser_obj = PWN::Plugins::TransparentBrowser.close(browser_obj: browser_obj) if browser_obj
83
+ end
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-uURL', '--url=URL', '<Required - DefectDojo URL>') do |u|
@@ -96,7 +96,7 @@ OptionParser.new do |options|
96
96
  end.parse!
97
97
 
98
98
  if opts.empty?
99
- puts `#{$PROGRAM_NAME} --help`
99
+ puts `#{File.basename($PROGRAM_NAME)} --help`
100
100
  exit 1
101
101
  end
102
102
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-uURL', '--url=URL', '<Required - DefectDojo URL>') do |u|
@@ -84,7 +84,7 @@ OptionParser.new do |options|
84
84
  end.parse!
85
85
 
86
86
  if opts.empty?
87
- puts `#{$PROGRAM_NAME} --help`
87
+ puts `#{File.basename($PROGRAM_NAME)} --help`
88
88
  exit 1
89
89
  end
90
90
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-uURL', '--url=URL', '<Required - DefectDojo URL>') do |u|
@@ -76,7 +76,7 @@ OptionParser.new do |options|
76
76
  end.parse!
77
77
 
78
78
  if opts.empty?
79
- puts `#{$PROGRAM_NAME} --help`
79
+ puts `#{File.basename($PROGRAM_NAME)} --help`
80
80
  exit 1
81
81
  end
82
82
 
@@ -7,16 +7,16 @@ require 'csv'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  EXAMPLE w/ Tenable Nessus Results:
12
- #{$PROGRAM_NAME} \\
12
+ #{File.basename($PROGRAM_NAME)} \\
13
13
  --csv-a vuln_scan1.csv \\
14
14
  --csv-b vuln_scan2.csv \\
15
15
  --csv-diff vuln_scan_diff.csv \\
16
16
  --exclude-column-names 'Synopsis,Description,Solution,See Also,Plugin Output,Asset UUID,Vulnerability State,IP Address,FQDN,NetBios,OS,MAC Address,Plugin Family,CVSS Base Score,CVSS Temporal Score,CVSS Temporal Vector,CVSS Vector,CVSS3 Base Score,CVSS3 Temporal Score,CVSS3 Temporal Vector,CVSS3 Vector,System Type,Host Start,Host End,Vulnerability Priority Rating (VPR),First Found,Last Found,Host Scan Schedule ID,Host Scan ID,Indexed At,Last Authenticated Results Date,Last Unauthenticated Results Date,Tracked,Risk Factor,Severity,Original Severity,Modification,Plugin Family ID,Plugin Type,Plugin Version,Service,Plugin Modification Date,Plugin Publication Date,Checks for Malware,Exploit Available,Exploited by Malware,Exploited by Nessus,CANVAS,D2 Elliot,Metasploit,Core Exploits,ExploitHub,Default Account,Patch Available,In The News,Unsupported By Vendor,Last Fixed'
17
17
 
18
18
  EXAMPLE w/ OpenVAS Results:
19
- #{$PROGRAM_NAME} \\
19
+ #{File.basename($PROGRAM_NAME)} \\
20
20
  --csv-a vuln_scan1.csv \\
21
21
  --csv-b vuln_scan2.csv \\
22
22
  --csv-diff vuln_scan_diff.csv \\
@@ -45,7 +45,7 @@ OptionParser.new do |options|
45
45
  end.parse!
46
46
 
47
47
  if opts.empty?
48
- puts `#{$PROGRAM_NAME} --help`
48
+ puts `#{File.basename($PROGRAM_NAME)} --help`
49
49
  exit 1
50
50
  end
51
51
 
@@ -9,7 +9,7 @@ require 'csv'
9
9
  opts = {}
10
10
  OptionParser.new do |options|
11
11
  options.banner = "USAGE:
12
- #{$PROGRAM_NAME} [opts]
12
+ #{File.basename($PROGRAM_NAME)} [opts]
13
13
  "
14
14
 
15
15
  options.on('-sRFILTER', '--registrant-filter=RFILTER', '<Required - Registrant Name or Email Address>') do |s|
@@ -26,7 +26,7 @@ OptionParser.new do |options|
26
26
  end.parse!
27
27
 
28
28
  if opts.empty?
29
- puts `#{$PROGRAM_NAME} --help`
29
+ puts `#{File.basename($PROGRAM_NAME)} --help`
30
30
  exit 1
31
31
  end
32
32
 
@@ -8,7 +8,7 @@ require 'json'
8
8
  opts = {}
9
9
  OptionParser.new do |options|
10
10
  options.banner = "USAGE:
11
- #{$PROGRAM_NAME} [opts]
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
12
  "
13
13
 
14
14
  options.on('-dDIR', '--dir-path=DIR', '<Required - Report Output Directory>') do |d|
@@ -77,7 +77,7 @@ OptionParser.new do |options|
77
77
  end.parse!
78
78
 
79
79
  if opts.empty?
80
- puts `#{$PROGRAM_NAME} --help`
80
+ puts `#{File.basename($PROGRAM_NAME)} --help`
81
81
  exit 1
82
82
  end
83
83
 
@@ -151,7 +151,7 @@ File.open(fuzz_file, "rb:#{char_encoding}") do |file|
151
151
  end
152
152
 
153
153
  # Generate HTML Report
154
- print "#{$PROGRAM_NAME} Generating Report..."
154
+ print "#{File.basename($PROGRAM_NAME)} Generating Report..."
155
155
  PWN::Reports::Fuzz.generate(
156
156
  dir_path: dir_path,
157
157
  results_hash: results_hash,
data/bin/pwn_gqrx_scanner CHANGED
@@ -8,7 +8,7 @@ require 'optparse'
8
8
  opts = {}
9
9
  OptionParser.new do |options|
10
10
  options.banner = "USAGE:
11
- #{$PROGRAM_NAME} [opts]
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
12
  "
13
13
 
14
14
  options.on('-aPROFILE', '--assume-profile=PROFILE', '<Required if "--target-freq" is Nil - Profile to assume for common radio protocols. Use "--list-profiles" to display supported protocols (Defaults to nil)') do |p|
@@ -77,7 +77,7 @@ OptionParser.new do |options|
77
77
  end.parse!
78
78
 
79
79
  if opts.empty?
80
- puts `#{$PROGRAM_NAME} --help`
80
+ puts `#{File.basename($PROGRAM_NAME)} --help`
81
81
  exit 1
82
82
  end
83
83
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-sIP', '--ip=IP', '<Required - Jenkins Server IP>') { |s| opts[:ip] = s }
@@ -34,7 +34,7 @@ OptionParser.new do |options|
34
34
  end.parse!
35
35
 
36
36
  if opts.empty?
37
- puts `#{$PROGRAM_NAME} --help`
37
+ puts `#{File.basename($PROGRAM_NAME)} --help`
38
38
  exit 1
39
39
  end
40
40
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-sIP', '--ip=IP', '<Required - Jenkins Server IP>') { |s| opts[:ip] = s }
@@ -34,7 +34,7 @@ OptionParser.new do |options|
34
34
  end.parse!
35
35
 
36
36
  if opts.empty?
37
- puts `#{$PROGRAM_NAME} --help`
37
+ puts `#{File.basename($PROGRAM_NAME)} --help`
38
38
  exit 1
39
39
  end
40
40
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-sIP', '--ip=IP', '<Required - Jenkins Server IP>') { |s| opts[:ip] = s }
@@ -38,7 +38,7 @@ OptionParser.new do |options|
38
38
  end.parse!
39
39
 
40
40
  if opts.empty?
41
- puts `#{$PROGRAM_NAME} --help`
41
+ puts `#{File.basename($PROGRAM_NAME)} --help`
42
42
  exit 1
43
43
  end
44
44
 
@@ -8,7 +8,7 @@ require 'aws-sdk'
8
8
  opts = {}
9
9
  OptionParser.new do |options|
10
10
  options.banner = "USAGE:
11
- #{$PROGRAM_NAME} [opts]
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
12
  "
13
13
 
14
14
  options.on('-rREGION', '--region=REGION', "<Optional - AWS STS Region (Defaults to 'us-west-1')>") do |sts_region|
@@ -39,7 +39,7 @@ OptionParser.new do |options|
39
39
  end.parse!
40
40
 
41
41
  if opts.empty?
42
- puts `#{$PROGRAM_NAME} --help`
42
+ puts `#{File.basename($PROGRAM_NAME)} --help`
43
43
  exit 1
44
44
  end
45
45
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-sIP', '--ip=IP', '<Required - Jenkins Server IP>') { |s| opts[:ip] = s }
@@ -38,7 +38,7 @@ OptionParser.new do |options|
38
38
  end.parse!
39
39
 
40
40
  if opts.empty?
41
- puts `#{$PROGRAM_NAME} --help`
41
+ puts `#{File.basename($PROGRAM_NAME)} --help`
42
42
  exit 1
43
43
  end
44
44
 
@@ -7,7 +7,7 @@ require 'optparse'
7
7
  opts = {}
8
8
  OptionParser.new do |options|
9
9
  options.banner = "USAGE:
10
- #{$PROGRAM_NAME} [opts]
10
+ #{File.basename($PROGRAM_NAME)} [opts]
11
11
  "
12
12
 
13
13
  options.on('-sIP', '--ip=IP', '<Required - Jenkins Server IP>') { |s| opts[:ip] = s }
@@ -42,7 +42,7 @@ OptionParser.new do |options|
42
42
  end.parse!
43
43
 
44
44
  if opts.empty?
45
- puts `#{$PROGRAM_NAME} --help`
45
+ puts `#{File.basename($PROGRAM_NAME)} --help`
46
46
  exit 1
47
47
  end
48
48
 
data/bin/pwn_mail_agent CHANGED
@@ -8,7 +8,7 @@ require 'yaml'
8
8
  opts = {}
9
9
  OptionParser.new do |options|
10
10
  options.banner = "USAGE:
11
- #{$PROGRAM_NAME} [opts]
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
12
  "
13
13
 
14
14
  options.on('-aTYPE', '--agent-type=TYPE', '<Required - Mail Agent Type office365|gmail|hotmail_n_live|yahoo|manual>') do |a|
@@ -25,7 +25,7 @@ OptionParser.new do |options|
25
25
  end.parse!
26
26
 
27
27
  if opts.empty?
28
- puts `#{$PROGRAM_NAME} --help`
28
+ puts `#{File.basename($PROGRAM_NAME)} --help`
29
29
  exit 1
30
30
  end
31
31
 
@@ -8,7 +8,7 @@ require 'yaml'
8
8
  opts = {}
9
9
  OptionParser.new do |options|
10
10
  options.banner = "USAGE:
11
- #{$PROGRAM_NAME} [opts]
11
+ #{File.basename($PROGRAM_NAME)} [opts]
12
12
  "
13
13
 
14
14
  options.on('-cYPATH', '--yaml-config=YPATH', '<Required - YAML Config Containing Access & Secret Keys for Authentication, Including Credential Information for Scan Creation (https://developer.tenable.com/docs/determine-settings-for-credential-type)>') do |c|
@@ -89,7 +89,7 @@ OptionParser.new do |options|
89
89
  end.parse!
90
90
 
91
91
  if opts.empty?
92
- puts `#{$PROGRAM_NAME} --help`
92
+ puts `#{File.basename($PROGRAM_NAME)} --help`
93
93
  exit 1
94
94
  end
95
95