pwn 0.4.502 → 0.4.505
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.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +20 -9
- data/Gemfile +5 -5
- data/README.md +2 -2
- data/Vagrantfile +1 -1
- data/bin/pwn_android_war_dialer +29 -6
- data/bin/pwn_arachni +29 -4
- data/bin/pwn_arachni_rest +2 -2
- data/bin/pwn_fuzz_net_app_proto +8 -1
- data/bin/pwn_perimeter_recon +9 -1
- data/bin/pwn_sast +9 -2
- data/bin/pwn_simple_http_server +11 -1
- data/lib/pwn/plugins/bus_pirate.rb +10 -12
- data/lib/pwn/plugins/github.rb +5 -1
- data/lib/pwn/plugins/owasp_zap.rb +3 -3
- data/lib/pwn/plugins/packet.rb +61 -19
- data/lib/pwn/plugins/rfidler.rb +9 -11
- data/lib/pwn/reports/fuzz.rb +5 -1
- data/lib/pwn/reports/sast.rb +7 -3
- data/lib/pwn/version.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1449f3192170ba71f7171eb6ff54470dd276324cbc66de13771533e7ac7a2f2f
|
|
4
|
+
data.tar.gz: bffe598f24a9324a88dc8dd4bc283cca69b5745ed1f72fbafb3ac68920e14082
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 79e245b36a1f8debc684f5d32fe72eea16a4876b0b4abfa43da82fb061c2d595111d7d25358e610bc7b4d22eb65f69ef24c7f8d5b053bf70daf512fec99171eb
|
|
7
|
+
data.tar.gz: fe8b31edbe5fee36dab0943960df7d5df1841a9c3383baf1f8accacca655a1c2d56101c15adbc37b80abf0b306330304b034d2cc72c352b90d90caff77ee2bdb
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on 2022-
|
|
3
|
+
# on 2022-07-08 17:25:42 UTC using RuboCop version 1.31.2.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
|
8
8
|
|
|
9
|
-
# Offense count:
|
|
9
|
+
# Offense count: 5
|
|
10
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
11
|
+
# Configuration parameters: AutoCorrect, EnforcedStyle.
|
|
12
|
+
# SupportedStyles: space, no_space
|
|
13
|
+
Layout/LineContinuationSpacing:
|
|
14
|
+
Exclude:
|
|
15
|
+
- 'packer/provisioners/beef.rb'
|
|
16
|
+
- 'packer/provisioners/metasploit.rb'
|
|
17
|
+
- 'packer/provisioners/wpscan.rb'
|
|
18
|
+
- 'vagrant/provisioners/beef.rb'
|
|
19
|
+
|
|
20
|
+
# Offense count: 258
|
|
10
21
|
Lint/UselessAssignment:
|
|
11
22
|
Enabled: false
|
|
12
23
|
|
|
13
|
-
# Offense count:
|
|
24
|
+
# Offense count: 260
|
|
14
25
|
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
|
15
26
|
Metrics/AbcSize:
|
|
16
27
|
Max: 328
|
|
17
28
|
|
|
18
|
-
# Offense count:
|
|
29
|
+
# Offense count: 64
|
|
19
30
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
|
20
31
|
# IgnoredMethods: refine
|
|
21
32
|
Metrics/BlockLength:
|
|
@@ -26,12 +37,12 @@ Metrics/BlockLength:
|
|
|
26
37
|
Metrics/BlockNesting:
|
|
27
38
|
Max: 5
|
|
28
39
|
|
|
29
|
-
# Offense count:
|
|
40
|
+
# Offense count: 91
|
|
30
41
|
# Configuration parameters: IgnoredMethods.
|
|
31
42
|
Metrics/CyclomaticComplexity:
|
|
32
43
|
Max: 231
|
|
33
44
|
|
|
34
|
-
# Offense count:
|
|
45
|
+
# Offense count: 472
|
|
35
46
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
|
36
47
|
Metrics/MethodLength:
|
|
37
48
|
Max: 466
|
|
@@ -41,16 +52,16 @@ Metrics/MethodLength:
|
|
|
41
52
|
Metrics/ModuleLength:
|
|
42
53
|
Max: 1186
|
|
43
54
|
|
|
44
|
-
# Offense count:
|
|
55
|
+
# Offense count: 83
|
|
45
56
|
# Configuration parameters: IgnoredMethods.
|
|
46
57
|
Metrics/PerceivedComplexity:
|
|
47
58
|
Max: 51
|
|
48
59
|
|
|
49
|
-
# Offense count:
|
|
60
|
+
# Offense count: 162
|
|
50
61
|
Style/ClassVars:
|
|
51
62
|
Enabled: false
|
|
52
63
|
|
|
53
|
-
# Offense count:
|
|
64
|
+
# Offense count: 283
|
|
54
65
|
# This cop supports safe autocorrection (--autocorrect).
|
|
55
66
|
# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
|
|
56
67
|
# SupportedStyles: assign_to_condition, assign_inside_condition
|
data/Gemfile
CHANGED
|
@@ -18,7 +18,7 @@ gem 'aws-sdk', '3.1.0'
|
|
|
18
18
|
gem 'bettercap', '1.6.2'
|
|
19
19
|
gem 'brakeman', '5.2.3'
|
|
20
20
|
gem 'bson', '4.15.0'
|
|
21
|
-
gem 'bundler', '>=2.3.
|
|
21
|
+
gem 'bundler', '>=2.3.17'
|
|
22
22
|
gem 'bundler-audit', '0.9.1'
|
|
23
23
|
gem 'bunny', '2.19.0'
|
|
24
24
|
gem 'colorize', '0.8.1'
|
|
@@ -47,7 +47,7 @@ gem 'oily_png', '1.2.1'
|
|
|
47
47
|
gem 'os', '1.1.4'
|
|
48
48
|
gem 'packetfu', '1.1.13'
|
|
49
49
|
gem 'pdf-reader', '2.10.0'
|
|
50
|
-
gem 'pg', '1.4.
|
|
50
|
+
gem 'pg', '1.4.1'
|
|
51
51
|
gem 'pry', '0.14.1'
|
|
52
52
|
gem 'pry-doc', '1.3.0'
|
|
53
53
|
gem 'rake', '13.0.6'
|
|
@@ -59,15 +59,15 @@ gem 'rex', '2.0.13'
|
|
|
59
59
|
gem 'rmagick', '4.2.5'
|
|
60
60
|
gem 'rspec', '3.11.0'
|
|
61
61
|
gem 'rtesseract', '3.1.2'
|
|
62
|
-
gem 'rubocop', '1.
|
|
62
|
+
gem 'rubocop', '1.31.2'
|
|
63
63
|
gem 'rubocop-rake', '0.6.0'
|
|
64
|
-
gem 'rubocop-rspec', '2.
|
|
64
|
+
gem 'rubocop-rspec', '2.12.1'
|
|
65
65
|
gem 'ruby-audio', '1.6.1'
|
|
66
66
|
gem 'ruby-nmap', '0.10.0'
|
|
67
67
|
gem 'ruby-saml', '1.14.0'
|
|
68
68
|
gem 'rvm', '1.11.3.9'
|
|
69
69
|
gem 'savon', '2.12.1'
|
|
70
|
-
gem 'selenium-devtools', '0.
|
|
70
|
+
gem 'selenium-devtools', '0.103.0'
|
|
71
71
|
gem 'serialport', '1.3.2'
|
|
72
72
|
gem 'sinatra', '2.2.0'
|
|
73
73
|
gem 'slack-ruby-client', '1.1.0'
|
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ $ rvm use ruby-3.1.2@pwn
|
|
|
37
37
|
$ rvm list gemsets
|
|
38
38
|
$ gem install --verbose pwn
|
|
39
39
|
$ pwn
|
|
40
|
-
pwn[v0.4.
|
|
40
|
+
pwn[v0.4.505]:001 >>> PWN.help
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
|
@@ -52,7 +52,7 @@ $ rvm use ruby-3.1.2@pwn
|
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
|
53
53
|
$ gem install --verbose pwn
|
|
54
54
|
$ pwn
|
|
55
|
-
pwn[v0.4.
|
|
55
|
+
pwn[v0.4.505]:001 >>> PWN.help
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
|
data/Vagrantfile
CHANGED
data/bin/pwn_android_war_dialer
CHANGED
|
@@ -91,11 +91,18 @@ begin
|
|
|
91
91
|
# Record Call
|
|
92
92
|
pid_to_kill = 0
|
|
93
93
|
wav_file = "#{wav_archive}/#{target_num}-#{start_timestamp}.wav"
|
|
94
|
-
sox_params = "-d #{wav_file} trim 0 #{seconds_to_record}"
|
|
95
94
|
|
|
96
95
|
puts red
|
|
97
96
|
puts "Recording Duration: #{seconds_to_record}s"
|
|
98
|
-
system(
|
|
97
|
+
system(
|
|
98
|
+
sox_bin,
|
|
99
|
+
'-d',
|
|
100
|
+
wav_file,
|
|
101
|
+
'trim',
|
|
102
|
+
'0',
|
|
103
|
+
seconds_to_record.to_s
|
|
104
|
+
)
|
|
105
|
+
|
|
99
106
|
puts 'Complete.'
|
|
100
107
|
puts end_of_color
|
|
101
108
|
|
|
@@ -109,11 +116,27 @@ begin
|
|
|
109
116
|
|
|
110
117
|
puts cayan
|
|
111
118
|
puts 'Generating Audio Spectrogram...'
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
system(
|
|
120
|
+
sox_bin,
|
|
121
|
+
wav_file,
|
|
122
|
+
'-n',
|
|
123
|
+
'spectrogram',
|
|
124
|
+
'-o',
|
|
125
|
+
"#{wav_file}-spectrogram.png",
|
|
126
|
+
'-d',
|
|
127
|
+
seconds_to_record.to_s
|
|
128
|
+
)
|
|
129
|
+
|
|
114
130
|
puts 'Generating Audio Waveform...'
|
|
115
|
-
|
|
116
|
-
|
|
131
|
+
system(
|
|
132
|
+
waveform_bin,
|
|
133
|
+
'-c',
|
|
134
|
+
'#FF0000',
|
|
135
|
+
'-b',
|
|
136
|
+
'#000000',
|
|
137
|
+
'-F',
|
|
138
|
+
"#{wav_file} #{wav_file}-waveform.png"
|
|
139
|
+
)
|
|
117
140
|
puts 'Complete.'
|
|
118
141
|
puts end_of_color
|
|
119
142
|
|
data/bin/pwn_arachni
CHANGED
|
@@ -117,14 +117,39 @@ begin
|
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
# Kick off scan as defined by pwn_arachni flags
|
|
120
|
-
system(
|
|
120
|
+
system(
|
|
121
|
+
'sudo',
|
|
122
|
+
'/bin/bash',
|
|
123
|
+
'--login',
|
|
124
|
+
'-c',
|
|
125
|
+
arachni_cmd_str
|
|
126
|
+
)
|
|
121
127
|
|
|
122
128
|
# Report Scan Results
|
|
123
|
-
system(
|
|
124
|
-
|
|
129
|
+
system(
|
|
130
|
+
'sudo',
|
|
131
|
+
'/bin/bash',
|
|
132
|
+
'--login',
|
|
133
|
+
'-c',
|
|
134
|
+
"arachni_reporter #{output_dir}/arachni_results.afr --reporter=html:outfile=#{output_dir}/arachni_results.html.zip"
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
system(
|
|
138
|
+
'sudo',
|
|
139
|
+
'/bin/bash',
|
|
140
|
+
'--login',
|
|
141
|
+
'-c',
|
|
142
|
+
"arachni_reporter #{output_dir}/arachni_results.afr --reporter=json:outfile=#{output_dir}/arachni_results.json"
|
|
143
|
+
)
|
|
125
144
|
|
|
126
145
|
# Unzip Results in Output Dir
|
|
127
|
-
system(
|
|
146
|
+
system(
|
|
147
|
+
'sudo',
|
|
148
|
+
'/bin/bash',
|
|
149
|
+
'--login',
|
|
150
|
+
'-c',
|
|
151
|
+
"cd #{output_dir} && unzip -o arachni_results.html.zip"
|
|
152
|
+
)
|
|
128
153
|
rescue StandardError, SystemExit, Interrupt => e
|
|
129
154
|
raise e
|
|
130
155
|
ensure
|
data/bin/pwn_arachni_rest
CHANGED
|
@@ -105,8 +105,8 @@ rescue Interrupt
|
|
|
105
105
|
exit 1
|
|
106
106
|
ensure
|
|
107
107
|
Process.kill('TERM', fork_pid) if fork_pid
|
|
108
|
-
File.unlink(arachni_stdout_log_path)
|
|
109
|
-
File.unlink(trained_attack_vectors_yaml)
|
|
108
|
+
File.unlink(arachni_stdout_log_path)
|
|
109
|
+
File.unlink(trained_attack_vectors_yaml)
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
# Watch for Arachni proxy plugin to intialize prior to invoking navigation-REST.instruct
|
data/bin/pwn_fuzz_net_app_proto
CHANGED
|
@@ -145,5 +145,12 @@ if start_reporting_server
|
|
|
145
145
|
end
|
|
146
146
|
puts "For Scan Results Navigate to: http://127.0.0.1:#{listen_port}/pwn_fuzz_net_app_proto.html"
|
|
147
147
|
simple_http_server_params = "-i #{listen_ip} -p #{listen_port}"
|
|
148
|
-
|
|
148
|
+
Dir.chdir(dir_path)
|
|
149
|
+
system(
|
|
150
|
+
'pwn_simple_http_server',
|
|
151
|
+
'-i',
|
|
152
|
+
listen_ip,
|
|
153
|
+
'-p',
|
|
154
|
+
listen_port.to_s
|
|
155
|
+
)
|
|
149
156
|
end
|
data/bin/pwn_perimeter_recon
CHANGED
|
@@ -218,7 +218,15 @@ unless nmap_path == ''
|
|
|
218
218
|
# Eyewitness Nmap XML Results
|
|
219
219
|
unless eyewitness_path == ''
|
|
220
220
|
print "#{@green}Eyewitness Nmap XML Results...#{@end_of_color}"
|
|
221
|
-
system(
|
|
221
|
+
system(
|
|
222
|
+
eyewitness_path,
|
|
223
|
+
'-x',
|
|
224
|
+
nmap_xml_results,
|
|
225
|
+
'-d',
|
|
226
|
+
"#{output_dir}/#{nmap_target}-#{@runtime_timestamp}",
|
|
227
|
+
'--no-prompt',
|
|
228
|
+
'--all-protocols'
|
|
229
|
+
)
|
|
222
230
|
end
|
|
223
231
|
|
|
224
232
|
PWN::Plugins::NmapIt.parse_xml_results(xml_file: nmap_xml_results) do |xml|
|
data/bin/pwn_sast
CHANGED
|
@@ -147,7 +147,7 @@ begin
|
|
|
147
147
|
|
|
148
148
|
# Start Simple HTTP Server (If Requested)
|
|
149
149
|
if start_reporting_server
|
|
150
|
-
listen_port = Random.rand(1_025..65_535)
|
|
150
|
+
listen_port = Random.rand(1_025..65_535).to_s
|
|
151
151
|
|
|
152
152
|
if pwn_provider == 'docker'
|
|
153
153
|
listen_ip = '0.0.0.0'
|
|
@@ -156,7 +156,14 @@ begin
|
|
|
156
156
|
end
|
|
157
157
|
|
|
158
158
|
puts "For Scan Results Navigate to: http://127.0.0.1:#{listen_port}/pwn_scan_git_source.html"
|
|
159
|
-
|
|
159
|
+
Dir.chdir(dir_path)
|
|
160
|
+
system(
|
|
161
|
+
'pwn_simple_http_server',
|
|
162
|
+
'-i',
|
|
163
|
+
listen_ip,
|
|
164
|
+
'-p',
|
|
165
|
+
listen_port
|
|
166
|
+
)
|
|
160
167
|
end
|
|
161
168
|
rescue SystemExit, Interrupt
|
|
162
169
|
puts "\nGoodbye."
|
data/bin/pwn_simple_http_server
CHANGED
|
@@ -35,7 +35,17 @@ else
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
begin
|
|
38
|
-
system(
|
|
38
|
+
system(
|
|
39
|
+
'thin',
|
|
40
|
+
'start',
|
|
41
|
+
'--adapter file',
|
|
42
|
+
'--address',
|
|
43
|
+
bind_ip,
|
|
44
|
+
'--port',
|
|
45
|
+
port.to_s,
|
|
46
|
+
'--threaded',
|
|
47
|
+
'--debug'
|
|
48
|
+
)
|
|
39
49
|
rescue RuntimeError
|
|
40
50
|
puts "WARNING: Service Already Listening on TCP #{port}..."
|
|
41
51
|
port = Random.rand(1_025..65_535)
|
|
@@ -8,7 +8,6 @@ module PWN
|
|
|
8
8
|
module BusPirate
|
|
9
9
|
# Supported Method Parameters::
|
|
10
10
|
# PWN::Plugins::BusPirate.connect_via_screen(
|
|
11
|
-
# screen_bin: 'optional - defaults to /usr/bin/screen'
|
|
12
11
|
# block_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)'
|
|
13
12
|
# )
|
|
14
13
|
|
|
@@ -17,19 +16,19 @@ module PWN
|
|
|
17
16
|
opts[:block_dev].to_s
|
|
18
17
|
)
|
|
19
18
|
|
|
20
|
-
block_dev
|
|
21
|
-
|
|
22
|
-
if opts[:screen_bin].nil?
|
|
23
|
-
screen_bin = '/usr/bin/screen'
|
|
24
|
-
else
|
|
25
|
-
screen_bin = opts[:screen_bin].to_s.strip.chomp.scrub
|
|
26
|
-
end
|
|
19
|
+
block_dev ||= '/dev/ttyUSB0'
|
|
27
20
|
|
|
21
|
+
screen_bin = '/usr/bin/screen'
|
|
28
22
|
raise "ERROR: #{screen_bin} not found." unless File.exist?(screen_bin)
|
|
29
23
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
system(
|
|
25
|
+
screen_bin,
|
|
26
|
+
block_dev,
|
|
27
|
+
'115200',
|
|
28
|
+
'8',
|
|
29
|
+
'N',
|
|
30
|
+
'1'
|
|
31
|
+
)
|
|
33
32
|
rescue StandardError => e
|
|
34
33
|
raise e
|
|
35
34
|
end
|
|
@@ -120,7 +119,6 @@ module PWN
|
|
|
120
119
|
public_class_method def self.help
|
|
121
120
|
puts "USAGE:
|
|
122
121
|
#{self}.connect_via_screen(
|
|
123
|
-
screen_bin: 'optional - defaults to /usr/bin/screen'
|
|
124
122
|
block_dev: 'optional serial block device path (defaults to /dev/ttyUSB0)'
|
|
125
123
|
)
|
|
126
124
|
|
data/lib/pwn/plugins/github.rb
CHANGED
|
@@ -139,10 +139,10 @@ module PWN
|
|
|
139
139
|
end
|
|
140
140
|
rescue PTY::ChildExited, SystemExit, Interrupt, Errno::EIO
|
|
141
141
|
puts 'Spawned OWASP Zap PTY exiting...'
|
|
142
|
-
File.unlink(pwn_stdout_log_path)
|
|
142
|
+
File.unlink(pwn_stdout_log_path)
|
|
143
143
|
rescue StandardError => e
|
|
144
144
|
puts 'Spawned process exiting...'
|
|
145
|
-
File.unlink(pwn_stdout_log_path)
|
|
145
|
+
File.unlink(pwn_stdout_log_path)
|
|
146
146
|
raise e
|
|
147
147
|
end
|
|
148
148
|
Process.detach(fork_pid)
|
|
@@ -475,7 +475,7 @@ module PWN
|
|
|
475
475
|
zap_obj = opts[:zap_obj]
|
|
476
476
|
unless zap_obj.nil?
|
|
477
477
|
pid = zap_obj[:pid]
|
|
478
|
-
File.unlink(zap_obj[:stdout_log])
|
|
478
|
+
File.unlink(zap_obj[:stdout_log])
|
|
479
479
|
|
|
480
480
|
Process.kill('TERM', pid)
|
|
481
481
|
end
|
data/lib/pwn/plugins/packet.rb
CHANGED
|
@@ -1107,31 +1107,73 @@ module PWN
|
|
|
1107
1107
|
my_os = PWN::Plugins::DetectOS.type
|
|
1108
1108
|
case my_os
|
|
1109
1109
|
when :linux
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1110
|
+
system_resp = system(
|
|
1111
|
+
'sudo',
|
|
1112
|
+
'iptables',
|
|
1113
|
+
'-C',
|
|
1114
|
+
'OUTPUT',
|
|
1115
|
+
'--protocol',
|
|
1116
|
+
'tcp',
|
|
1117
|
+
'--source',
|
|
1118
|
+
pkt.ip_saddr,
|
|
1119
|
+
'--destination',
|
|
1120
|
+
pkt.ip_daddr,
|
|
1121
|
+
'--destination-port',
|
|
1122
|
+
pkt.tcp_dst.to_s,
|
|
1123
|
+
'--tcp-flags',
|
|
1124
|
+
'RST',
|
|
1125
|
+
'RST',
|
|
1126
|
+
'-j',
|
|
1127
|
+
'DROP',
|
|
1128
|
+
out: File::NULL,
|
|
1129
|
+
err: File::NULL
|
|
1130
|
+
)
|
|
1131
|
+
|
|
1132
|
+
unless system_resp
|
|
1120
1133
|
puts 'Preventing kernel from misbehaving when manipulating packets.'
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1134
|
+
system(
|
|
1135
|
+
'sudo',
|
|
1136
|
+
'iptables',
|
|
1137
|
+
'-A',
|
|
1138
|
+
'OUTPUT',
|
|
1139
|
+
'--protocol',
|
|
1140
|
+
'tcp',
|
|
1141
|
+
'--source',
|
|
1142
|
+
pkt.ip_saddr,
|
|
1143
|
+
'--destination',
|
|
1144
|
+
pkt.ip_daddr,
|
|
1145
|
+
'--destination-port',
|
|
1146
|
+
pkt.tcp_dst.to_s,
|
|
1147
|
+
'--tcp-flags',
|
|
1148
|
+
'RST',
|
|
1149
|
+
'RST',
|
|
1150
|
+
'-j',
|
|
1151
|
+
'DROP'
|
|
1152
|
+
)
|
|
1129
1153
|
end
|
|
1130
1154
|
|
|
1131
1155
|
pkt.recalc
|
|
1132
1156
|
pkt.to_w(iface)
|
|
1133
1157
|
|
|
1134
|
-
system(
|
|
1158
|
+
system(
|
|
1159
|
+
'sudo',
|
|
1160
|
+
'iptables',
|
|
1161
|
+
'-D',
|
|
1162
|
+
'OUTPUT',
|
|
1163
|
+
'--protocol',
|
|
1164
|
+
'tcp',
|
|
1165
|
+
'--source',
|
|
1166
|
+
pkt.ip_saddr,
|
|
1167
|
+
'--destination',
|
|
1168
|
+
pkt.ip_daddr,
|
|
1169
|
+
'--destination-port',
|
|
1170
|
+
pkt.tcp_dst.to_s,
|
|
1171
|
+
'--tcp-flags',
|
|
1172
|
+
'RST',
|
|
1173
|
+
'RST',
|
|
1174
|
+
'-j',
|
|
1175
|
+
'DROP'
|
|
1176
|
+
)
|
|
1135
1177
|
# when :osx
|
|
1136
1178
|
# ipfilter = 'pfctl'
|
|
1137
1179
|
# ipfilter_rule = "block out proto tcp from #{pkt.ip_saddr} to #{pkt.ip_daddr} port #{pkt.tcp_dst} flags R"
|
data/lib/pwn/plugins/rfidler.rb
CHANGED
|
@@ -7,7 +7,6 @@ module PWN
|
|
|
7
7
|
module RFIDler
|
|
8
8
|
# Supported Method Parameters::
|
|
9
9
|
# PWN::Plugins::RFIDler.connect_via_screen(
|
|
10
|
-
# screen_bin: 'optional - defaults to /usr/bin/screen'
|
|
11
10
|
# block_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)'
|
|
12
11
|
# )
|
|
13
12
|
|
|
@@ -17,18 +16,18 @@ module PWN
|
|
|
17
16
|
)
|
|
18
17
|
|
|
19
18
|
block_dev = '/dev/ttyUSB0' if opts[:block_dev].nil?
|
|
20
|
-
|
|
21
|
-
if opts[:screen_bin].nil?
|
|
22
|
-
screen_bin = '/usr/bin/screen'
|
|
23
|
-
else
|
|
24
|
-
screen_bin = opts[:screen_bin].to_s.strip.chomp.scrub
|
|
25
|
-
end
|
|
19
|
+
screen_bin = '/usr/bin/screen'
|
|
26
20
|
|
|
27
21
|
raise "ERROR: #{screen_bin} not found." unless File.exist?(screen_bin)
|
|
28
22
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
system(
|
|
24
|
+
screen_bin,
|
|
25
|
+
block_dev,
|
|
26
|
+
'9600',
|
|
27
|
+
'8',
|
|
28
|
+
'N',
|
|
29
|
+
'1'
|
|
30
|
+
)
|
|
32
31
|
rescue StandardError => e
|
|
33
32
|
raise e
|
|
34
33
|
end
|
|
@@ -46,7 +45,6 @@ module PWN
|
|
|
46
45
|
public_class_method def self.help
|
|
47
46
|
puts "USAGE:
|
|
48
47
|
#{self}.connect_via_screen(
|
|
49
|
-
screen_bin: 'optional - defaults to /usr/bin/screen'
|
|
50
48
|
block_dev: 'optional serial block device path (defaults to /dev/ttyUSB0)'
|
|
51
49
|
)
|
|
52
50
|
|
data/lib/pwn/reports/fuzz.rb
CHANGED
|
@@ -25,7 +25,11 @@ module PWN
|
|
|
25
25
|
|
|
26
26
|
# JSON object Completion
|
|
27
27
|
File.open("#{dir_path}/pwn_fuzz_net_app_proto.json", "w:#{char_encoding}") do |f|
|
|
28
|
-
f.print(
|
|
28
|
+
f.print(
|
|
29
|
+
JSON.pretty_generate(
|
|
30
|
+
results_hash.to_json.force_encoding(char_encoding)
|
|
31
|
+
)
|
|
32
|
+
)
|
|
29
33
|
end
|
|
30
34
|
|
|
31
35
|
# Report All the Bugs!!! \o/
|
data/lib/pwn/reports/sast.rb
CHANGED
|
@@ -22,9 +22,13 @@ module PWN
|
|
|
22
22
|
results_hash = opts[:results_hash]
|
|
23
23
|
|
|
24
24
|
# JSON object Completion
|
|
25
|
-
File.open("#{dir_path}/pwn_scan_git_source.json", 'w') do |f|
|
|
26
|
-
|
|
27
|
-
end
|
|
25
|
+
# File.open("#{dir_path}/pwn_scan_git_source.json", 'w') do |f|
|
|
26
|
+
# f.print(results_hash.to_json)
|
|
27
|
+
# end
|
|
28
|
+
File.write(
|
|
29
|
+
"#{dir_path}/pwn_scan_git_source.json",
|
|
30
|
+
JSON.pretty_generate(results_hash.to_json)
|
|
31
|
+
)
|
|
28
32
|
|
|
29
33
|
html_report = %q{<!DOCTYPE HTML>
|
|
30
34
|
<html>
|
data/lib/pwn/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pwn
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.505
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-07-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -114,14 +114,14 @@ dependencies:
|
|
|
114
114
|
requirements:
|
|
115
115
|
- - ">="
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 2.3.
|
|
117
|
+
version: 2.3.17
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: 2.3.
|
|
124
|
+
version: 2.3.17
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: bundler-audit
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -506,14 +506,14 @@ dependencies:
|
|
|
506
506
|
requirements:
|
|
507
507
|
- - '='
|
|
508
508
|
- !ruby/object:Gem::Version
|
|
509
|
-
version: 1.4.
|
|
509
|
+
version: 1.4.1
|
|
510
510
|
type: :runtime
|
|
511
511
|
prerelease: false
|
|
512
512
|
version_requirements: !ruby/object:Gem::Requirement
|
|
513
513
|
requirements:
|
|
514
514
|
- - '='
|
|
515
515
|
- !ruby/object:Gem::Version
|
|
516
|
-
version: 1.4.
|
|
516
|
+
version: 1.4.1
|
|
517
517
|
- !ruby/object:Gem::Dependency
|
|
518
518
|
name: pry
|
|
519
519
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -674,14 +674,14 @@ dependencies:
|
|
|
674
674
|
requirements:
|
|
675
675
|
- - '='
|
|
676
676
|
- !ruby/object:Gem::Version
|
|
677
|
-
version: 1.
|
|
677
|
+
version: 1.31.2
|
|
678
678
|
type: :runtime
|
|
679
679
|
prerelease: false
|
|
680
680
|
version_requirements: !ruby/object:Gem::Requirement
|
|
681
681
|
requirements:
|
|
682
682
|
- - '='
|
|
683
683
|
- !ruby/object:Gem::Version
|
|
684
|
-
version: 1.
|
|
684
|
+
version: 1.31.2
|
|
685
685
|
- !ruby/object:Gem::Dependency
|
|
686
686
|
name: rubocop-rake
|
|
687
687
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -702,14 +702,14 @@ dependencies:
|
|
|
702
702
|
requirements:
|
|
703
703
|
- - '='
|
|
704
704
|
- !ruby/object:Gem::Version
|
|
705
|
-
version: 2.
|
|
705
|
+
version: 2.12.1
|
|
706
706
|
type: :runtime
|
|
707
707
|
prerelease: false
|
|
708
708
|
version_requirements: !ruby/object:Gem::Requirement
|
|
709
709
|
requirements:
|
|
710
710
|
- - '='
|
|
711
711
|
- !ruby/object:Gem::Version
|
|
712
|
-
version: 2.
|
|
712
|
+
version: 2.12.1
|
|
713
713
|
- !ruby/object:Gem::Dependency
|
|
714
714
|
name: ruby-audio
|
|
715
715
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -786,14 +786,14 @@ dependencies:
|
|
|
786
786
|
requirements:
|
|
787
787
|
- - '='
|
|
788
788
|
- !ruby/object:Gem::Version
|
|
789
|
-
version: 0.
|
|
789
|
+
version: 0.103.0
|
|
790
790
|
type: :runtime
|
|
791
791
|
prerelease: false
|
|
792
792
|
version_requirements: !ruby/object:Gem::Requirement
|
|
793
793
|
requirements:
|
|
794
794
|
- - '='
|
|
795
795
|
- !ruby/object:Gem::Version
|
|
796
|
-
version: 0.
|
|
796
|
+
version: 0.103.0
|
|
797
797
|
- !ruby/object:Gem::Dependency
|
|
798
798
|
name: serialport
|
|
799
799
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -2007,7 +2007,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
2007
2007
|
- !ruby/object:Gem::Version
|
|
2008
2008
|
version: '0'
|
|
2009
2009
|
requirements: []
|
|
2010
|
-
rubygems_version: 3.3.
|
|
2010
|
+
rubygems_version: 3.3.17
|
|
2011
2011
|
signing_key:
|
|
2012
2012
|
specification_version: 4
|
|
2013
2013
|
summary: Automated Security Testing for CI/CD Pipelines & Beyond
|