pwn 0.5.164 → 0.5.166
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/README.md +3 -3
- data/bin/pwn +1 -1
- data/bin/pwn_android_war_dialer +2 -2
- data/bin/pwn_aws_describe_resources +2 -2
- data/bin/pwn_bdba_groups +2 -2
- data/bin/pwn_bdba_scan +2 -2
- data/bin/pwn_burp_suite_pro_active_scan +2 -2
- data/bin/pwn_char_base64_encoding +2 -2
- data/bin/pwn_char_dec_encoding +2 -2
- data/bin/pwn_char_hex_escaped_encoding +2 -2
- data/bin/pwn_char_html_entity_encoding +2 -2
- data/bin/pwn_char_unicode_escaped_encoding +2 -2
- data/bin/pwn_char_url_encoding +2 -2
- data/bin/pwn_crt_sh +83 -0
- data/bin/pwn_defectdojo_engagement_create +2 -2
- data/bin/pwn_defectdojo_importscan +2 -2
- data/bin/pwn_defectdojo_reimportscan +2 -2
- data/bin/pwn_diff_csv_files_w_column_exclude +4 -4
- data/bin/pwn_domain_reversewhois +2 -2
- data/bin/pwn_fuzz_net_app_proto +3 -3
- data/bin/pwn_gqrx_scanner +2 -2
- data/bin/pwn_jenkins_create_job +2 -2
- data/bin/pwn_jenkins_create_view +2 -2
- data/bin/pwn_jenkins_install_plugin +2 -2
- data/bin/pwn_jenkins_thinBackup_aws_s3 +2 -2
- data/bin/pwn_jenkins_update_plugins +2 -2
- data/bin/pwn_jenkins_useradd +2 -2
- data/bin/pwn_mail_agent +2 -2
- data/bin/pwn_nessus_cloud_scan_crud +2 -2
- data/bin/pwn_nessus_cloud_vulnscan +2 -2
- data/bin/pwn_nexpose +2 -2
- data/bin/pwn_nmap_discover_tcp_udp +2 -2
- data/bin/pwn_openvas_vulnscan +2 -2
- data/bin/pwn_owasp_zap_active_scan +2 -2
- data/bin/pwn_pastebin_sample_filter +2 -2
- data/bin/pwn_phone +3 -3
- data/bin/pwn_sast +3 -3
- data/bin/pwn_serial_check_voicemail +2 -2
- data/bin/pwn_serial_msr206 +2 -2
- data/bin/pwn_serial_son_micro_sm132_rfid +2 -2
- data/bin/pwn_shodan_graphql_introspection +1 -1
- data/bin/pwn_shodan_search +2 -2
- data/bin/pwn_simple_http_server +1 -1
- data/bin/pwn_web_cache_deception +4 -4
- data/bin/pwn_www_checkip +3 -1
- data/bin/pwn_www_uri_buster +141 -57
- data/bin/pwn_xss_dom_vectors +2 -2
- data/lib/pwn/plugins/authentication_helper.rb +2 -2
- data/lib/pwn/plugins/ip_info.rb +2 -0
- data/lib/pwn/plugins/log.rb +3 -1
- data/lib/pwn/plugins/repl.rb +3 -1
- data/lib/pwn/plugins/thread_pool.rb +12 -42
- data/lib/pwn/plugins/tor.rb +51 -12
- data/lib/pwn/plugins/transparent_browser.rb +3 -0
- data/lib/pwn/plugins/voice.rb +3 -3
- data/lib/pwn/reports/uri_buster.rb +18 -6
- data/lib/pwn/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf7ab54a1b59e7a1c07512329e58212e1045961dc7106e6b21c62f81039bfead
|
4
|
+
data.tar.gz: 107f8c305849e0db635d32992fac3480413713bb9ef3d360481d1cf27845faf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
data/bin/pwn_android_war_dialer
CHANGED
@@ -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
|
|
data/bin/pwn_char_dec_encoding
CHANGED
@@ -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
|
|
data/bin/pwn_char_url_encoding
CHANGED
@@ -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
|
|
data/bin/pwn_domain_reversewhois
CHANGED
@@ -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
|
|
data/bin/pwn_fuzz_net_app_proto
CHANGED
@@ -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
|
|
data/bin/pwn_jenkins_create_job
CHANGED
@@ -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
|
|
data/bin/pwn_jenkins_create_view
CHANGED
@@ -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
|
|
data/bin/pwn_jenkins_useradd
CHANGED
@@ -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
|
|