pwn 0.4.808 → 0.4.809

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4846c7ceb80b744dc61e124b07ccc35b887146ce49acb51ad5b4c87500f73d5
4
- data.tar.gz: 4fe769081c0bb747d4429e545748f4df1b6f0fe8de08cbfabb87b116f1bdd348
3
+ metadata.gz: f3a66f4dc0df7d68e1b6e2c1514aff4642802973b5e0e9e7d082206befd69f07
4
+ data.tar.gz: f9944df718d590c7a1c1b591c9f7dd2eb3fdfc1d2014905fdb8ce2e7791f48de
5
5
  SHA512:
6
- metadata.gz: cf4cdcf05d0302ce367463173bfb9cbe402026d70bdcdf36ce4ab97ea034a86186c4d73cdb678fe7a28eb157592dcb2e8f3647365ae310c3b08b3a0f9a2d4079
7
- data.tar.gz: 0b1d06b8372eded16041b70e3f06f78fc7c6283dba26820c271ae6dd3f5990b68fb5f3cdfe0423345c02b291f42c391afe527aac70e74bf62b52b0bfeaa6e8be
6
+ metadata.gz: 7c05afa8cc33f4f03b289dd5f871a27070a5f24ecb6415aa393f21edd39fc57e4b1bd4baef368984944c39c648827e5ac9cb44186f120ec4198385eb303e4789
7
+ data.tar.gz: 4d426e821fc40814c897be419ac3ea575121aa6cd4f52606382ed7254d17324145c87cdb7adee89dbb3f8f422d75389c1114cf1340b0cd75cb7a325727f947e0
data/Gemfile CHANGED
@@ -11,7 +11,7 @@ gemspec
11
11
  # In some circumstances custom flags are passed to gems in order
12
12
  # to build appropriately. Defer to ./reinstall_pwn_gemset.sh
13
13
  # to review these custom flags (e.g. pg, serialport, etc).
14
- gem 'activesupport', '7.0.6'
14
+ gem 'activesupport', '7.0.7'
15
15
  gem 'anemone', '0.7.2'
16
16
  gem 'authy', '3.0.1'
17
17
  gem 'aws-sdk', '3.1.0'
@@ -67,9 +67,9 @@ gem 'rex', '2.0.13'
67
67
  gem 'rmagick', '5.3.0'
68
68
  gem 'rspec', '3.12.0'
69
69
  gem 'rtesseract', '3.1.2'
70
- gem 'rubocop', '1.55.1'
70
+ gem 'rubocop', '1.56.0'
71
71
  gem 'rubocop-rake', '0.6.0'
72
- gem 'rubocop-rspec', '2.23.0'
72
+ gem 'rubocop-rspec', '2.23.2'
73
73
  gem 'ruby-audio', '1.6.1'
74
74
  gem 'ruby-nmap', '1.0.1'
75
75
  gem 'ruby-saml', '1.15.0'
@@ -77,7 +77,7 @@ gem 'rvm', '1.11.3.9'
77
77
  gem 'savon', '2.14.0'
78
78
  gem 'selenium-devtools', '0.115.0'
79
79
  gem 'serialport', '1.3.2'
80
- gem 'sinatra', '3.0.6'
80
+ gem 'sinatra', '3.1.0'
81
81
  gem 'slack-ruby-client', '2.1.0'
82
82
  gem 'socksify', '1.7.1'
83
83
  gem 'spreadsheet', '1.3.0'
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.808]:001 >>> PWN.help
40
+ pwn[v0.4.809]: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.808]:001 >>> PWN.help
55
+ pwn[v0.4.809]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -12,7 +12,11 @@ OptionParser.new do |options|
12
12
  #{$PROGRAM_NAME} [opts]
13
13
  "
14
14
 
15
- options.on('-tRANGE', '--target-range=RANGE', '<Required - nmap supported host || ip range e.g. foo.bar, 192.168.1.1-20, 192.168.1.0/24, etc>') do |t|
15
+ options.on('-fFILE', '--target-file=FILE', '<Required if --target-range excluded - File containing one supported nmap target / line e.g. foo.bar, 10.1.1.1, 192.168.1.1-20, 192.168.1.0/24, etc>') do |f|
16
+ opts[:target_file] = f
17
+ end
18
+
19
+ options.on('-tRANGE', '--target-range=RANGE', '<Required if --target-file excluded - nmap supported host || ip range e.g. foo.bar, 10.1.1.1, 192.168.1.1-20, 192.168.1.0/24, etc>') do |t|
16
20
  opts[:target_range] = t
17
21
  end
18
22
 
@@ -49,7 +53,12 @@ banner = '-' * 64
49
53
  puts "\n\n\n#{banner}"
50
54
  puts "- STARTED: #{started_at} "
51
55
 
56
+ target_file = opts[:target_file]
52
57
  target_range = opts[:target_range]
58
+ if (target_file && target_range) || (!target_file && !target_range)
59
+ puts 'ERROR: Must specify --target-file OR --target-range'
60
+ exit 1
61
+ end
53
62
 
54
63
  results_root = opts[:results_root]
55
64
  results_root ||= '/tmp'
@@ -144,7 +153,7 @@ discovery_sctp_ports = {
144
153
  sicc: 38_412
145
154
  }
146
155
 
147
- target_file = "#{results_root}/nmap_targets.txt"
156
+ discovered_targets_file = "#{results_root}/nmap_discovery_results.txt"
148
157
  latest_discovery_results = "#{results_root}/nmap_discovery_results.xml"
149
158
  latest_tcp_results = "#{results_root}/nmap_tcp_results"
150
159
  latest_udp_results = "#{results_root}/nmap_udp_results"
@@ -174,22 +183,23 @@ begin
174
183
  PWN::Plugins::NmapIt.port_scan do |nmap|
175
184
  if with_tor
176
185
  nmap.proxies = proxy
177
- nmap.syn_discovery = discovery_tcp_ports.values
178
186
  nmap.ack_discovery = discovery_tcp_ports.values
179
187
  else
180
- nmap.ping = true
181
- nmap.arp_ping = true
182
- nmap.icmp_echo_discovery = true
183
- nmap.icmp_timestamp_discovery = true
184
188
  nmap.udp_discovery = discovery_udp_ports.values
185
- nmap.sctp_init_ping = discovery_sctp_ports.values
186
189
  end
190
+ nmap.ping = true
191
+ nmap.arp_ping = true
192
+ nmap.icmp_echo_discovery = true
193
+ nmap.icmp_timestamp_discovery = true
194
+ nmap.syn_discovery = discovery_tcp_ports.values
195
+ nmap.sctp_init_ping = discovery_sctp_ports.values
187
196
  nmap.verbose = true
188
197
  nmap.exclude_file = exclude_file
189
198
  nmap.interface = interface
190
199
  nmap.insane_timing = true
191
200
  nmap.output_xml = latest_discovery_results
192
- nmap.targets = target_range
201
+ nmap.targets = target_range if target_range
202
+ nmap.target_file = target_file if target_file
193
203
  nmap.randomize_hosts = true
194
204
  nmap.min_parallelism = 36
195
205
  nmap.max_retries = 3
@@ -198,7 +208,7 @@ begin
198
208
 
199
209
  # Generate targets.txt from discovery above
200
210
  # taking into consideration IPs to skip scans
201
- File.open(target_file, 'w') do |f|
211
+ File.open(discovered_targets_file, 'w') do |f|
202
212
  PWN::Plugins::NmapIt.parse_xml_results(
203
213
  xml_file: latest_discovery_results
204
214
  ) do |xml|
@@ -212,13 +222,13 @@ begin
212
222
  end
213
223
 
214
224
  # Produce a good targets.txt redacting duplicates && sorting by IP
215
- sorted_ips = File.readlines(target_file).uniq.map do |ip|
225
+ sorted_ips = File.readlines(discovered_targets_file).uniq.map do |ip|
216
226
  IPAddr.new(ip.chomp)
217
227
  end
218
228
  sorted_ips = sorted_ips.sort_by(&:hton)
219
229
 
220
230
  # Now Add additional info about the IP as a comment
221
- File.open(target_file, 'w') do |f|
231
+ File.open(discovered_targets_file, 'w') do |f|
222
232
  sorted_ips.each do |ip|
223
233
  PWN::Plugins::NmapIt.parse_xml_results(
224
234
  xml_file: latest_discovery_results
@@ -263,7 +273,7 @@ begin
263
273
  nmap.update_scriptdb = true
264
274
  end
265
275
  nmap.verbose = true
266
- nmap.target_file = target_file
276
+ nmap.target_file = discovered_targets_file
267
277
  nmap.randomize_hosts = true
268
278
  nmap.show_reason = true
269
279
  nmap.exclude_file = exclude_file
@@ -310,7 +320,7 @@ begin
310
320
  nmap.update_scriptdb = true
311
321
  end
312
322
  nmap.verbose = true
313
- nmap.target_file = target_file
323
+ nmap.target_file = discovered_targets_file
314
324
  nmap.fast = true
315
325
  nmap.randomize_hosts = true
316
326
  nmap.show_reason = true
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.808'
4
+ VERSION = '0.4.809'
5
5
  end
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.808
4
+ version: 0.4.809
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-06 00:00:00.000000000 Z
11
+ date: 2023-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 7.0.6
19
+ version: 7.0.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 7.0.6
26
+ version: 7.0.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: anemone
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -786,14 +786,14 @@ dependencies:
786
786
  requirements:
787
787
  - - '='
788
788
  - !ruby/object:Gem::Version
789
- version: 1.55.1
789
+ version: 1.56.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: 1.55.1
796
+ version: 1.56.0
797
797
  - !ruby/object:Gem::Dependency
798
798
  name: rubocop-rake
799
799
  requirement: !ruby/object:Gem::Requirement
@@ -814,14 +814,14 @@ dependencies:
814
814
  requirements:
815
815
  - - '='
816
816
  - !ruby/object:Gem::Version
817
- version: 2.23.0
817
+ version: 2.23.2
818
818
  type: :runtime
819
819
  prerelease: false
820
820
  version_requirements: !ruby/object:Gem::Requirement
821
821
  requirements:
822
822
  - - '='
823
823
  - !ruby/object:Gem::Version
824
- version: 2.23.0
824
+ version: 2.23.2
825
825
  - !ruby/object:Gem::Dependency
826
826
  name: ruby-audio
827
827
  requirement: !ruby/object:Gem::Requirement
@@ -926,14 +926,14 @@ dependencies:
926
926
  requirements:
927
927
  - - '='
928
928
  - !ruby/object:Gem::Version
929
- version: 3.0.6
929
+ version: 3.1.0
930
930
  type: :runtime
931
931
  prerelease: false
932
932
  version_requirements: !ruby/object:Gem::Requirement
933
933
  requirements:
934
934
  - - '='
935
935
  - !ruby/object:Gem::Version
936
- version: 3.0.6
936
+ version: 3.1.0
937
937
  - !ruby/object:Gem::Dependency
938
938
  name: slack-ruby-client
939
939
  requirement: !ruby/object:Gem::Requirement