pwn 0.4.908 → 0.4.910

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: 3e63eb5c8a0f8b7b01519e0beff8d9e00b0d79b2b95d9e0c3b09bfb64e43714c
4
- data.tar.gz: d04c5a1dfbbce051e64a78d1bf7231d27e76b2360b802fb1f7da24b56224fa61
3
+ metadata.gz: 0e5b5fcff5cfcc3cd255ad4002d83e380cddcbad9a292f6f49f6b661b9c99042
4
+ data.tar.gz: b2b9f09b64164da56b798af7ab4d11d0fb5874ad35295cf32d5aacbdcd3f683a
5
5
  SHA512:
6
- metadata.gz: d7a34cb20ada0617c270dff08d9f0f419acb456e61b30c3b2b6da7aa8176b451578271f5268e757099df3316b32517b7b4898cc55e3035e6d07a921bd358a368
7
- data.tar.gz: 5617cc8139c7906d897a72a838e8b87499765ebddcc4987e6990618c006fffc559d0b88253ea81002a6a87e7f9e8b201b77b47f3a84bca91e9626034fe4cd1bc
6
+ metadata.gz: 68afcd359bf5660e29902575849e58239717d4116e2673828592c2b39135a780197e059405effd1b752b52c0f621095a269b413d82f789f8a0d992629f794b70
7
+ data.tar.gz: 3402edfa4ad389f09753638959884d99055ccb4b0465f09e01684da69185e6125e985aa74c33a1aa7ad28a5d45fe2702d67b1b03e56b8f124143c181277f42ad
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.908]:001 >>> PWN.help
40
+ pwn[v0.4.910]: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.908]:001 >>> PWN.help
55
+ pwn[v0.4.910]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
data/bin/pwn_www_checkip CHANGED
@@ -14,6 +14,10 @@ OptionParser.new do |options|
14
14
  opts[:target] = t
15
15
  end
16
16
 
17
+ options.on('-PPORT', '--tls-port=PORT', '<Optional - TLS Port to Check (Default - 443). Will not execute if --proxy parameter is set.>') do |p|
18
+ opts[:tls_port] = p
19
+ end
20
+
17
21
  options.on('-i', '--[no-]ipinfo', '<Optional - Return Details about Public IP Returned from CheckIP>') do |i|
18
22
  opts[:ipinfo] = i
19
23
  end
@@ -24,40 +28,39 @@ OptionParser.new do |options|
24
28
  end.parse!
25
29
 
26
30
  target = opts[:target]
31
+ tls_port = opts[:tls_port]
27
32
  ipinfo = opts[:ipinfo]
28
33
  proxy = opts[:proxy].to_s.scrub.strip.chomp unless opts[:proxy].nil?
29
34
 
30
35
  begin
31
- if proxy
36
+ if proxy && opts[:target].nil?
32
37
  browser_obj = PWN::Plugins::TransparentBrowser.open(
33
38
  browser_type: :rest,
34
39
  proxy: proxy
35
40
  )
36
- else
37
- browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
38
- end
39
- browser = browser_obj[:browser]::Request
40
-
41
- if proxy && opts[:target].nil?
41
+ browser = browser_obj[:browser]::Request
42
42
  target = browser.execute(
43
43
  method: :get,
44
44
  url: 'https://checkip.amazonaws.com',
45
45
  verify_ssl: false
46
46
  ).to_s.chomp
47
47
  elsif opts[:target].nil?
48
+ browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
49
+ browser = browser_obj[:browser]::Request
48
50
  target = browser.execute(
49
51
  method: :get,
50
52
  url: 'https://checkip.amazonaws.com'
51
53
  ).to_s.chomp
52
54
  end
53
55
 
54
- puts "[ { \"public_ip\": \"#{target}\" } ]" if ipinfo.nil? && opts[:target].nil?
56
+ puts "[ { \"query\": \"#{target}\" } ]" if ipinfo.nil? && opts[:target].nil?
55
57
 
56
58
  ipinfo = true if ipinfo.nil? && opts[:target]
57
59
  if ipinfo
58
60
  ip_info_obj = PWN::Plugins::IPInfo.get(
59
61
  target: target,
60
- proxy: proxy
62
+ proxy: proxy,
63
+ tls_port: tls_port
61
64
  )
62
65
  puts JSON.pretty_generate(ip_info_obj)
63
66
  end
@@ -81,18 +81,18 @@ module PWN
81
81
  )
82
82
 
83
83
  ip_resp[:tls_avail] = tls_port_avail
84
- ip_resp[:ca_issuer_uris] = false
85
- ip_resp[:cert_subject] = false
86
- ip_resp[:cert_issuer] = false
87
- ip_resp[:cert_serial] = false
88
- ip_resp[:crl_uris] = false
89
- ip_resp[:extensions] = false
90
- ip_resp[:not_before] = false
91
- ip_resp[:not_after] = false
92
- ip_resp[:oscsp_uris] = false
93
- ip_resp[:pem] = false
94
- ip_resp[:signature_algorithm] = false
95
- ip_resp[:version] = false
84
+ ip_resp[:ca_issuer_uris] = nil
85
+ ip_resp[:cert_subject] = nil
86
+ ip_resp[:cert_issuer] = nil
87
+ ip_resp[:cert_serial] = nil
88
+ ip_resp[:crl_uris] = nil
89
+ ip_resp[:extensions] = nil
90
+ ip_resp[:not_before] = nil
91
+ ip_resp[:not_after] = nil
92
+ ip_resp[:oscsp_uris] = nil
93
+ ip_resp[:pem] = nil
94
+ ip_resp[:signature_algorithm] = nil
95
+ ip_resp[:version] = nil
96
96
  next unless tls_port_avail
97
97
 
98
98
  cert_obj = PWN::Plugins::Sock.get_tls_cert(
@@ -102,15 +102,15 @@ module PWN
102
102
 
103
103
  next unless cert_obj.is_a?(OpenSSL::X509::Certificate)
104
104
 
105
- ip_resp[:ca_issuer_uris] = cert_obj.ca_issuer_uris.to_s
105
+ ip_resp[:ca_issuer_uris] = cert_obj.ca_issuer_uris.map(&:to_s) unless cert_obj.ca_issuer_uris.nil?
106
106
  ip_resp[:cert_subject] = cert_obj.subject.to_s
107
107
  ip_resp[:cert_issuer] = cert_obj.issuer.to_s
108
108
  ip_resp[:cert_serial] = cert_obj.serial.to_s
109
- ip_resp[:crl_uris] = cert_obj.crl_uris.to_s
110
- ip_resp[:extensions] = cert_obj.extensions.map&.to_s
109
+ ip_resp[:crl_uris] = cert_obj.crl_uris.map(&:to_s) unless cert_obj.crl_uris.nil?
110
+ ip_resp[:extensions] = cert_obj.extensions.map(&:to_s) unless cert_obj.extensions.nil?
111
111
  ip_resp[:not_before] = cert_obj.not_before.to_s
112
112
  ip_resp[:not_after] = cert_obj.not_after.to_s
113
- ip_resp[:oscsp_uris] = cert_obj.ocsp_uris.to_s
113
+ ip_resp[:oscsp_uris] = cert_obj.ocsp_uris.map(&:to_s) unless cert_obj.ocsp_uris.nil?
114
114
  ip_resp[:pem] = cert_obj.to_pem.to_s
115
115
  ip_resp[:signature_algorithm] = cert_obj.signature_algorithm.to_s
116
116
  ip_resp[:version] = cert_obj.version.to_s
@@ -151,7 +151,8 @@ module PWN
151
151
  server_ip = opts[:server_ip].to_s.scrub
152
152
  port = opts[:port].to_i
153
153
  opts[:protocol].nil? ? protocol = :tcp : protocol = opts[:protocol].to_s.downcase.to_sym
154
- opts[:tls].nil? ? tls = false : tls = true
154
+ tls = true if opts[:tls]
155
+ tls ||= false
155
156
 
156
157
  case protocol
157
158
  when :tcp
@@ -271,7 +272,12 @@ module PWN
271
272
  tls: 'optional - boolean listen on TLS-enabled socket (defaults to false)'
272
273
  )
273
274
 
274
- sock_obj = PWN::Plugins::Sock.disconnect(
275
+ cert_obj = #{self}.get_tls_cert(
276
+ target: 'required - target host or ip',
277
+ port: 'optional - target port (defaults to 443)'
278
+ )
279
+
280
+ sock_obj = #{self}.disconnect(
275
281
  sock_obj: 'required - sock_obj returned from #connect method'
276
282
  )
277
283
 
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.908'
4
+ VERSION = '0.4.910'
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.908
4
+ version: 0.4.910
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.