pwn 0.4.636 → 0.4.637
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/README.md +2 -2
- data/lib/pwn/plugins/baresip.rb +7 -6
- data/lib/pwn/plugins/burp_suite.rb +6 -3
- data/lib/pwn/plugins/owasp_zap.rb +4 -3
- data/lib/pwn/plugins/sock.rb +38 -3
- data/lib/pwn/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed890d64be30032f92cd57c59abfe52a7b568816945c9196fcc46adb1ccdeb7e
|
4
|
+
data.tar.gz: 9e5f0acbfeaea73f98b1dc14e4ec3e54dc8bb71c654ffcf4d0ca14a7ee2e344d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26a50246edaa50f39dba47018111e7803891daea153f9ed2bf5b2dd916613eac40d30f66fbb6c6f5a5e3f0a2aa5b470715d2848b9a68219d59afc23533800fb7
|
7
|
+
data.tar.gz: 63dd51a285d26aa58d4a5de34000c2d28bbdee18333841ea3d09a2b003052141c094fe4c94d89d03da2030c74a4f2802487b8d1255c735ea846d422f49bb1e48
|
data/README.md
CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.2.2@pwn
|
|
37
37
|
$ rvm list gemsets
|
38
38
|
$ gem install --verbose pwn
|
39
39
|
$ pwn
|
40
|
-
pwn[v0.4.
|
40
|
+
pwn[v0.4.637]:001 >>> PWN.help
|
41
41
|
```
|
42
42
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
@@ -52,7 +52,7 @@ $ rvm use ruby-3.2.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.637]:001 >>> PWN.help
|
56
56
|
```
|
57
57
|
|
58
58
|
|
data/lib/pwn/plugins/baresip.rb
CHANGED
@@ -84,12 +84,13 @@ module PWN
|
|
84
84
|
raise "no http_listen value found in #{config}." if http_list_entry.empty?
|
85
85
|
|
86
86
|
# Update http_listen value in respective config with random available port
|
87
|
-
random_port = -1
|
88
|
-
port_in_use = true
|
89
|
-
while port_in_use
|
90
|
-
|
91
|
-
|
92
|
-
end
|
87
|
+
# random_port = -1
|
88
|
+
# port_in_use = true
|
89
|
+
# while port_in_use
|
90
|
+
# random_port = Random.rand(1024..65_535)
|
91
|
+
# port_in_use = PWN::Plugins::Sock.check_port_in_use(port: random_port)
|
92
|
+
# end
|
93
|
+
random_port = PWN::Plugins::Sock.get_random_unused_port
|
93
94
|
http_listen_ip_port = "127.0.0.1:#{random_port}"
|
94
95
|
|
95
96
|
updated_config_content = ''
|
@@ -40,8 +40,11 @@ module PWN
|
|
40
40
|
burp_obj = {}
|
41
41
|
burp_obj[:pid] = Process.spawn(burp_cmd_string)
|
42
42
|
rest_browser = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
|
43
|
-
|
44
|
-
|
43
|
+
random_mitm_port = PWN::Plugins::Sock.get_random_unused_port
|
44
|
+
random_bb_port = random_mitm_port
|
45
|
+
random_bb_port = PWN::Plugins::Sock.get_random_unused_port while random_bb_port == random_mitm_port
|
46
|
+
burp_obj[:mitm_proxy] = "127.0.0.1:#{random_mitm_port}"
|
47
|
+
burp_obj[:burpbuddy_api] = "127.0.0.1:#{random_bb_port}"
|
45
48
|
burp_obj[:rest_browser] = rest_browser
|
46
49
|
|
47
50
|
# Proxy always listens on localhost...use SSH tunneling if remote access is required
|
@@ -54,7 +57,7 @@ module PWN
|
|
54
57
|
|
55
58
|
# Wait for TCP 8001 to open prior to returning burp_obj
|
56
59
|
loop do
|
57
|
-
s = TCPSocket.new('127.0.0.1',
|
60
|
+
s = TCPSocket.new('127.0.0.1', random_bb_port)
|
58
61
|
s.close
|
59
62
|
break
|
60
63
|
rescue Errno::ECONNREFUSED
|
@@ -75,7 +75,7 @@ module PWN
|
|
75
75
|
# api_key: 'required - api key for API authorization',
|
76
76
|
# zap_bin_path: 'optional - path to zap.sh file'
|
77
77
|
# headless: 'optional - run zap headless if set to true',
|
78
|
-
# proxy: 'optional - change local zap proxy listener (defaults to http://127.0.0.1
|
78
|
+
# proxy: 'optional - change local zap proxy listener (defaults to http://127.0.0.1:<Random 1024-65535>)',
|
79
79
|
# )
|
80
80
|
|
81
81
|
public_class_method def self.start(opts = {})
|
@@ -118,7 +118,8 @@ module PWN
|
|
118
118
|
proxy_uri = URI.parse(proxy)
|
119
119
|
owasp_zap_cmd = "#{owasp_zap_cmd} -host #{proxy_uri.host} -port #{proxy_uri.port}"
|
120
120
|
else
|
121
|
-
|
121
|
+
random_port = PWN::Plugins::Sock.get_random_unused_port
|
122
|
+
proxy = "http://127.0.0.1:#{random_port}"
|
122
123
|
proxy_uri = URI.parse(proxy)
|
123
124
|
end
|
124
125
|
zap_obj[:host] = proxy_uri.host.to_s.scrub
|
@@ -499,7 +500,7 @@ module PWN
|
|
499
500
|
api_key: 'required - api key for API authorization',
|
500
501
|
zap_bin_path: 'optional - path to zap.sh file',
|
501
502
|
headless: 'optional - run zap headless if set to true',
|
502
|
-
proxy: 'optional - change local zap proxy listener (defaults to http://127.0.0.1
|
503
|
+
proxy: 'optional - change local zap proxy listener (defaults to http://127.0.0.1:<Random 1024-65535>)'
|
503
504
|
)
|
504
505
|
puts zap_obj.public_methods
|
505
506
|
|
data/lib/pwn/plugins/sock.rb
CHANGED
@@ -47,10 +47,40 @@ module PWN
|
|
47
47
|
raise e
|
48
48
|
end
|
49
49
|
|
50
|
+
# Supported Method Parameters::
|
51
|
+
# PWN::Plugins::Sock.get_random_unused_port(
|
52
|
+
# server_ip: 'optional - target host or ip to check (Defaults to 127.0.0.1)',
|
53
|
+
# protocol: 'optional - :tcp || :udp (defaults to tcp)'
|
54
|
+
# )
|
55
|
+
|
56
|
+
public_class_method def self.get_random_unused_port(opts = {})
|
57
|
+
server_ip = opts[:server_ip]
|
58
|
+
server_ip ||= '127.0.0.1'
|
59
|
+
port = -1
|
60
|
+
protocol = opts[:protocol]
|
61
|
+
protocol ||= :tcp
|
62
|
+
|
63
|
+
port_in_use = true
|
64
|
+
while port_in_use
|
65
|
+
port = Random.rand(1024..65_535)
|
66
|
+
port_in_use = check_port_in_use(
|
67
|
+
server_ip: server_ip,
|
68
|
+
port: port,
|
69
|
+
protocol: protocol
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
port
|
74
|
+
rescue Errno::ECONNREFUSED,
|
75
|
+
Errno::EHOSTUNREACH,
|
76
|
+
Errno::ETIMEDOUT
|
77
|
+
false
|
78
|
+
end
|
79
|
+
|
50
80
|
# Supported Method Parameters::
|
51
81
|
# PWN::Plugins::Sock.check_port_in_use(
|
52
|
-
# port: 'required - target port',
|
53
82
|
# server_ip: 'optional - target host or ip to check (Defaults to 127.0.0.1)',
|
83
|
+
# port: 'required - target port',
|
54
84
|
# protocol: 'optional - :tcp || :udp (defaults to tcp)'
|
55
85
|
# )
|
56
86
|
|
@@ -163,9 +193,14 @@ module PWN
|
|
163
193
|
tls: 'optional - boolean connect to target socket using TLS (defaults to false)'
|
164
194
|
)
|
165
195
|
|
166
|
-
#{self}.
|
167
|
-
|
196
|
+
port = #{self}.get_random_unused_port(
|
197
|
+
server_ip: 'optional - target host or ip to check (Defaults to 127.0.0.1)',
|
198
|
+
protocol: 'optional - :tcp || :udp (defaults to tcp)'
|
199
|
+
)
|
200
|
+
|
201
|
+
#{self}.check_port_in_use(
|
168
202
|
server_ip: 'optional - target host or ip to check (Defaults to 127.0.0.1)',
|
203
|
+
port: 'required - target port',
|
169
204
|
protocol: 'optional - :tcp || :udp (defaults to tcp)'
|
170
205
|
)
|
171
206
|
|
data/lib/pwn/version.rb
CHANGED