pwn 0.4.675 → 0.4.676

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3988112277371e7f9cafefa42d88f325db8c58a97ab35d20c2d65fde2c3bacf
4
- data.tar.gz: b6eb594719ebab68d095d072391ddd9b747f27286cda0e30906083acf3f457ed
3
+ metadata.gz: fa9249af262af0f9d2dbaea4245691d09da20bc452967e60095ff4c28a404eba
4
+ data.tar.gz: 02b24daf26e3107a37e25392e27fd4176a0a7c8af63f41d3f8c38bf2d3207abc
5
5
  SHA512:
6
- metadata.gz: 3d9c197e9286753124276f6a355d16f9edcf0b6ef85a1f2202f102bfdd862dea76f7e7892db911845d2b02622f9fd07dfbd32010b7944b211130273e7035abf5
7
- data.tar.gz: a8a8a5061682887c2e2d5a4661685c731d0c6206691bfa0e483b076db6e0e9d67d324f8a90fee8768fe3e3f6f01f092cd49018352ce48c1f5ea954aefc678b1c
6
+ metadata.gz: c648625f56139d973443eee4ba91478e6b9a6e67db1d38c65a86de2b8cba6b245046616a426d9c8ed865b1a20250744b4d5eaf158022b218e58d3ab9051edfbb
7
+ data.tar.gz: 3955ada6705bfefdc4ec255e60de2b9579dba5407e8ebb36cad2a20ed96ba89cb5285ab540ed0974bab11d381cf7cb2a35da63e81bf39212f388cd4e579bc9c0
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.675]:001 >>> PWN.help
40
+ pwn[v0.4.676]: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.2.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.675]:001 >>> PWN.help
55
+ pwn[v0.4.676]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -35,6 +35,7 @@ end
35
35
 
36
36
  ftimestr = '%Y-%m-%d %H:%M:%S.%N%z'
37
37
  started_at = Time.now.strftime(ftimestr)
38
+ started_at_parse = Time.parse(started_at)
38
39
  banner = '-' * 64
39
40
  puts "\n\n\n#{banner}"
40
41
  puts "- STARTED: #{started_at} "
@@ -153,18 +154,21 @@ begin
153
154
  puts "\n\n\n#{banner}"
154
155
  puts '- PHASE 1: Target Discovery'
155
156
  PWN::Plugins::NmapIt.port_scan do |nmap|
157
+ if with_tor
158
+ nmap.syn_discovery = discovery_tcp_ports.values
159
+ nmap.ack_discovery = discovery_tcp_ports.values
160
+ else
161
+ nmap.ping = true
162
+ nmap.arp_ping = true
163
+ nmap.icmp_echo_discovery = true
164
+ nmap.icmp_timestamp_discovery = true
165
+ nmap.udp_discovery = discovery_udp_ports.values
166
+ nmap.sctp_init_ping = discovery_sctp_ports.values
167
+ end
156
168
  nmap.verbose = true
157
169
  nmap.exclude_file = exclude_file
158
170
  nmap.interface = interface
159
171
  nmap.insane_timing = true
160
- nmap.ping = true
161
- nmap.arp_ping = true
162
- nmap.icmp_echo_discovery = true
163
- nmap.icmp_timestamp_discovery = true
164
- nmap.syn_discovery = discovery_tcp_ports.values
165
- nmap.ack_discovery = discovery_tcp_ports.values
166
- nmap.udp_discovery = discovery_udp_ports.values
167
- nmap.sctp_init_ping = discovery_sctp_ports.values
168
172
  nmap.output_xml = latest_discovery_results
169
173
  nmap.targets = target_range
170
174
  nmap.randomize_hosts = true
@@ -181,7 +185,8 @@ begin
181
185
  xml_file: latest_discovery_results
182
186
  ) do |xml|
183
187
  xml.each_host do |host|
184
- next unless File.read(exclude_file).include?(host.ip)
188
+ next if File.read(exclude_file).include?(host.ip) ||
189
+ host.status.state != :up
185
190
 
186
191
  hosts_arr = host.hostnames.map { |h| h[:name] }
187
192
  f.print host.ip
@@ -194,6 +199,18 @@ begin
194
199
  sorted_targets = File.readlines(target_file).sort.join
195
200
  File.write(target_file, sorted_targets)
196
201
 
202
+ phase1_ended_at = Time.now.strftime(ftimestr)
203
+ phase1_ended_at_parse = Time.parse(phase1_ended_at)
204
+ elapsed_in_seconds = (phase1_ended_at_parse - started_at_parse).to_f
205
+ fmt_elapsed_in_seconds = format('%0.2f', elapsed_in_seconds)
206
+ puts "\n\n\n#{banner}"
207
+ puts "- DISCOVERY COMPLETE! DURATION: #{fmt_elapsed_in_seconds} seconds"
208
+
209
+ puts "\n\n\n#{banner}"
210
+ puts '- PHASE 2: TCP Port Scanning'
211
+ phase2_started_at = Time.now.strftime(ftimestr)
212
+ phase2_started_at_parse = Time.parse(phase2_started_at)
213
+
197
214
  # Switch Tor Exit Node if with_tor
198
215
  if with_tor
199
216
  puts "\n\n\n#{banner}"
@@ -204,8 +221,6 @@ begin
204
221
  # TCP Scan
205
222
  # Using -T5 template to reduce number of
206
223
  # retransmission attempts on filtered ports.
207
- puts "\n\n\n#{banner}"
208
- puts '- PHASE 2: TCP Port Scanning'
209
224
  PWN::Plugins::NmapIt.port_scan do |nmap|
210
225
  nmap.verbose = true
211
226
  nmap.target_file = target_file
@@ -228,6 +243,17 @@ begin
228
243
  nmap.proxies = proxy if with_tor
229
244
  end
230
245
  FileUtils.cp("#{latest_tcp_results}.nmap", "#{latest_tcp_results}.txt")
246
+ phase2_ended_at = Time.now.strftime(ftimestr)
247
+ phase2_ended_at_parse = Time.parse(phase2_ended_at)
248
+ elapsed_in_seconds = (phase2_ended_at_parse - phase2_started_at).to_f
249
+ fmt_elapsed_in_seconds = format('%0.2f', elapsed_in_seconds)
250
+ puts "\n\n\n#{banner}"
251
+ puts "- TCP SCAN COMPLETE! DURATION: #{fmt_elapsed_in_seconds} seconds"
252
+
253
+ puts "\n\n\n#{banner}"
254
+ puts '- PHASE 3: UDP Port Scanning'
255
+ phase3_started_at = Time.now.strftime(ftimestr)
256
+ phase3_started_at_parse = Time.parse(phase3_started_at)
231
257
 
232
258
  # Switch Tor Exit Node if with_tor
233
259
  if with_tor
@@ -239,9 +265,11 @@ begin
239
265
  # UDP Scan
240
266
  # Using -T5 template to reduce number of
241
267
  # retransmission attempts on filtered ports.
242
- puts "\n\n\n#{banner}"
243
- puts '- PHASE 3: UDP Port Scanning'
244
268
  PWN::Plugins::NmapIt.port_scan do |nmap|
269
+ unless with_tor
270
+ nmap.default_script = true
271
+ nmap.update_scriptdb = true
272
+ end
245
273
  nmap.verbose = true
246
274
  nmap.target_file = target_file
247
275
  nmap.fast = true
@@ -254,8 +282,6 @@ begin
254
282
  nmap.insane_timing = true
255
283
  nmap.skip_discovery = true
256
284
  nmap.udp_scan = true
257
- nmap.default_script = true unless with_tor
258
- nmap.update_scriptdb = true unless with_tor
259
285
  nmap.output_all = latest_udp_results
260
286
  nmap.min_parallelism = 36
261
287
  nmap.max_retries = 0
@@ -264,6 +290,12 @@ begin
264
290
  nmap.proxies = proxy if with_tor
265
291
  end
266
292
  FileUtils.cp("#{latest_udp_results}.nmap", "#{latest_udp_results}.txt")
293
+ phase3_ended_at = Time.now.strftime(ftimestr)
294
+ phase3_ended_at_parse = Time.parse(phase3_ended_at)
295
+ elapsed_in_seconds = (phase3_ended_at_parse - phase3_started_at).to_f
296
+ fmt_elapsed_in_seconds = format('%0.2f', elapsed_in_seconds)
297
+ puts "\n\n\n#{banner}"
298
+ puts "- UDP SCAN COMPLETE! DURATION: #{fmt_elapsed_in_seconds} seconds"
267
299
  rescue SystemExit, Interrupt
268
300
  puts "\nGoodbye."
269
301
  rescue StandardError => e
@@ -274,7 +306,6 @@ ensure
274
306
  puts "\n\n\n#{banner}"
275
307
  puts "- ENDED: #{ended_at}"
276
308
 
277
- started_at_parse = Time.parse(started_at)
278
309
  ended_at_parse = Time.parse(ended_at)
279
310
  elapsed_in_seconds = (ended_at_parse - started_at_parse).to_f
280
311
  fmt_elapsed_in_seconds = format('%0.2f', elapsed_in_seconds)
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.4.675'
4
+ VERSION = '0.4.676'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.675
4
+ version: 0.4.676
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.