pwn 0.4.700 → 0.4.702

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG_BETWEEN_TAGS.txt +492 -108
  3. data/README.md +2 -2
  4. data/bin/pwn_burp_suite_pro_active_scan +2 -1
  5. data/bin/pwn_domain_reversewhois +8 -7
  6. data/bin/pwn_owasp_zap_active_scan +3 -2
  7. data/bin/pwn_pastebin_sample_filter +6 -4
  8. data/bin/pwn_web_cache_deception +11 -8
  9. data/bin/pwn_www_checkip +6 -5
  10. data/bin/pwn_www_uri_buster +5 -4
  11. data/bin/pwn_xss_dom_vectors +12 -9
  12. data/lib/pwn/plugins/baresip.rb +3 -2
  13. data/lib/pwn/plugins/beef.rb +5 -2
  14. data/lib/pwn/plugins/burp_suite.rb +7 -5
  15. data/lib/pwn/plugins/defect_dojo.rb +5 -3
  16. data/lib/pwn/plugins/github.rb +2 -1
  17. data/lib/pwn/plugins/hacker_one.rb +4 -2
  18. data/lib/pwn/plugins/ibm_appscan.rb +13 -6
  19. data/lib/pwn/plugins/ip_info.rb +4 -2
  20. data/lib/pwn/plugins/jira_server.rb +2 -1
  21. data/lib/pwn/plugins/nessus_cloud.rb +2 -1
  22. data/lib/pwn/plugins/open_ai.rb +3 -1
  23. data/lib/pwn/plugins/owasp_zap.rb +2 -1
  24. data/lib/pwn/plugins/shodan.rb +2 -1
  25. data/lib/pwn/plugins/transparent_browser.rb +26 -36
  26. data/lib/pwn/plugins/twitter_api.rb +5 -2
  27. data/lib/pwn/plugins/vsphere.rb +1 -2
  28. data/lib/pwn/version.rb +1 -1
  29. data/lib/pwn/www/app_cobalt_io.rb +19 -13
  30. data/lib/pwn/www/bing.rb +9 -6
  31. data/lib/pwn/www/bug_crowd.rb +19 -13
  32. data/lib/pwn/www/checkip.rb +7 -5
  33. data/lib/pwn/www/coinbase_pro.rb +18 -12
  34. data/lib/pwn/www/duckduckgo.rb +15 -8
  35. data/lib/pwn/www/facebook.rb +16 -10
  36. data/lib/pwn/www/google.rb +12 -8
  37. data/lib/pwn/www/hacker_one.rb +16 -10
  38. data/lib/pwn/www/linkedin.rb +16 -10
  39. data/lib/pwn/www/pandora.rb +16 -10
  40. data/lib/pwn/www/pastebin.rb +9 -5
  41. data/lib/pwn/www/paypal.rb +36 -28
  42. data/lib/pwn/www/synack.rb +19 -13
  43. data/lib/pwn/www/torch.rb +12 -7
  44. data/lib/pwn/www/trading_view.rb +19 -13
  45. data/lib/pwn/www/twitter.rb +20 -12
  46. data/lib/pwn/www/uber.rb +16 -10
  47. data/lib/pwn/www/upwork.rb +16 -10
  48. data/lib/pwn/www/youtube.rb +9 -6
  49. metadata +2 -6
  50. data/bin/pwn_arachni +0 -157
  51. data/bin/pwn_arachni_rest +0 -174
@@ -7,13 +7,14 @@ module PWN
7
7
  # Supported Method Parameters::
8
8
  # browser_obj = PWN::WWW::Google.open(
9
9
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
10
- # proxy: 'optional - scheme://proxy_host:port || :tor'
10
+ # proxy: 'optional - scheme://proxy_host:port || tor'
11
11
  # )
12
12
 
13
13
  public_class_method def self.open(opts = {})
14
14
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
15
15
 
16
- browser_obj.goto('https://www.google.com')
16
+ browser = browser_obj[:browser]
17
+ browser.goto('https://www.google.com')
17
18
 
18
19
  browser_obj
19
20
  rescue StandardError => e
@@ -30,8 +31,9 @@ module PWN
30
31
  browser_obj = opts[:browser_obj]
31
32
  q = opts[:q].to_s
32
33
 
33
- browser_obj.text_field(name: 'q').wait_until(&:present?).set(q)
34
- browser_obj.button(text: 'Google Search').click!
34
+ browser = browser_obj[:browser]
35
+ browser.text_field(name: 'q').wait_until(&:present?).set(q)
36
+ browser.button(text: 'Google Search').click!
35
37
 
36
38
  browser_obj
37
39
  rescue StandardError => e
@@ -49,8 +51,9 @@ module PWN
49
51
  company = opts[:company].to_s.scrub
50
52
  q = "site:linkedin.com inurl:in intext:\"#{company}\""
51
53
 
52
- browser_obj.text_field(name: 'q').wait_until(&:present?).set(q)
53
- browser_obj.button(text: 'Google Search').click!
54
+ browser = browser_obj[:browser]
55
+ browser.text_field(name: 'q').wait_until(&:present?).set(q)
56
+ browser.button(text: 'Google Search').click!
54
57
  sleep 3 # Cough: <hack>
55
58
 
56
59
  browser_obj
@@ -86,9 +89,10 @@ module PWN
86
89
  puts "USAGE:
87
90
  browser_obj = #{self}.open(
88
91
  browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
89
- proxy: 'optional - scheme://proxy_host:port || :tor'
92
+ proxy: 'optional - scheme://proxy_host:port || tor'
90
93
  )
91
- puts browser_obj.public_methods
94
+ browser = browser_obj[:browser]
95
+ puts browser.public_methods
92
96
 
93
97
  browser_obj = #{self}.search(
94
98
  browser_obj: 'required - browser_obj returned from #open method',
@@ -9,13 +9,14 @@ module PWN
9
9
  # Supported Method Parameters::
10
10
  # browser_obj = PWN::WWW::HackerOne.open(
11
11
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
12
- # proxy: 'optional - scheme://proxy_host:port || :tor'
12
+ # proxy: 'optional - scheme://proxy_host:port || tor'
13
13
  # )
14
14
 
15
15
  public_class_method def self.open(opts = {})
16
16
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
17
17
 
18
- browser_obj.goto('https://www.hackerone.com')
18
+ browser = browser_obj[:browser]
19
+ browser.goto('https://www.hackerone.com')
19
20
 
20
21
  browser_obj
21
22
  rescue StandardError => e
@@ -34,17 +35,19 @@ module PWN
34
35
  username = opts[:username].to_s.scrub.strip.chomp
35
36
  password = opts[:password]
36
37
 
38
+ browser = browser_obj[:browser]
39
+
37
40
  if password.nil?
38
41
  password = PWN::Plugins::AuthenticationHelper.mask_password
39
42
  else
40
43
  password = opts[:password].to_s.scrub.strip.chomp
41
44
  end
42
45
 
43
- browser_obj.goto('https://hackerone.com/users/sign_in')
46
+ browser.goto('https://hackerone.com/users/sign_in')
44
47
 
45
- browser_obj.text_field(name: 'user[email]').wait_until(&:present?).set(username)
46
- browser_obj.text_field(name: 'user[password]').wait_until(&:present?).set(password)
47
- browser_obj.button(name: 'commit').click!
48
+ browser.text_field(name: 'user[email]').wait_until(&:present?).set(username)
49
+ browser.text_field(name: 'user[password]').wait_until(&:present?).set(password)
50
+ browser.button(name: 'commit').click!
48
51
 
49
52
  browser_obj
50
53
  rescue StandardError => e
@@ -58,8 +61,10 @@ module PWN
58
61
 
59
62
  public_class_method def self.logout(opts = {})
60
63
  browser_obj = opts[:browser_obj]
61
- browser_obj.i(class: 'icon-arrow-closure').click!
62
- browser_obj.link(index: 16).click!
64
+
65
+ browser = browser_obj[:browser]
66
+ browser.i(class: 'icon-arrow-closure').click!
67
+ browser.link(index: 16).click!
63
68
 
64
69
  browser_obj
65
70
  rescue StandardError => e
@@ -94,9 +99,10 @@ module PWN
94
99
  puts "USAGE:
95
100
  browser_obj = #{self}.open(
96
101
  browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
97
- proxy: 'optional - scheme://proxy_host:port || :tor'
102
+ proxy: 'optional - scheme://proxy_host:port || tor'
98
103
  )
99
- puts browser_obj.public_methods
104
+ browser = browser_obj[:browser]
105
+ puts browser.public_methods
100
106
 
101
107
  browser_obj = #{self}.login(
102
108
  browser_obj: 'required - browser_obj returned from #open method',
@@ -9,13 +9,14 @@ module PWN
9
9
  # Supported Method Parameters::
10
10
  # browser_obj = PWN::WWW::Linkedin.open(
11
11
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
12
- # proxy: 'optional - scheme://proxy_host:port || :tor'
12
+ # proxy: 'optional - scheme://proxy_host:port || tor'
13
13
  # )
14
14
 
15
15
  public_class_method def self.open(opts = {})
16
16
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
17
17
 
18
- browser_obj.goto('https://www.linkedin.com')
18
+ browser = browser_obj[:browser]
19
+ browser.goto('https://www.linkedin.com')
19
20
 
20
21
  browser_obj
21
22
  rescue StandardError => e
@@ -34,17 +35,19 @@ module PWN
34
35
  username = opts[:username].to_s.scrub.strip.chomp
35
36
  password = opts[:password]
36
37
 
38
+ browser = browser_obj[:browser]
39
+
37
40
  if password.nil?
38
41
  password = PWN::Plugins::AuthenticationHelper.mask_password
39
42
  else
40
43
  password = opts[:password].to_s.scrub.strip.chomp
41
44
  end
42
45
 
43
- browser_obj.goto('https://www.linkedin.com/uas/login')
46
+ browser.goto('https://www.linkedin.com/uas/login')
44
47
 
45
- browser_obj.text_field(name: 'session_key').wait_until(&:present?).set(username)
46
- browser_obj.text_field(name: 'session_password').wait_until(&:present?).set(password)
47
- browser_obj.button(name: 'signin').click!
48
+ browser.text_field(name: 'session_key').wait_until(&:present?).set(username)
49
+ browser.text_field(name: 'session_password').wait_until(&:present?).set(password)
50
+ browser.button(name: 'signin').click!
48
51
 
49
52
  browser_obj
50
53
  rescue StandardError => e
@@ -58,8 +61,10 @@ module PWN
58
61
 
59
62
  public_class_method def self.logout(opts = {})
60
63
  browser_obj = opts[:browser_obj]
61
- browser_obj.button(id: 'nav-settings__dropdown-trigger').wait_until(&:present?).click!
62
- browser_obj.link(index: 14).wait_until(&:present?).click!
64
+
65
+ browser = browser_obj[:browser]
66
+ browser.button(id: 'nav-settings__dropdown-trigger').wait_until(&:present?).click!
67
+ browser.link(index: 14).wait_until(&:present?).click!
63
68
 
64
69
  browser_obj
65
70
  rescue StandardError => e
@@ -94,9 +99,10 @@ module PWN
94
99
  puts "USAGE:
95
100
  browser_obj = #{self}.open(
96
101
  browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
97
- proxy: 'optional - scheme://proxy_host:port || :tor'
102
+ proxy: 'optional - scheme://proxy_host:port || tor'
98
103
  )
99
- puts browser_obj.public_methods
104
+ browser = browser_obj[:browser]
105
+ puts browser.public_methods
100
106
 
101
107
  browser_obj = #{self}.login(
102
108
  browser_obj: 'required - browser_obj returned from #open method',
@@ -9,13 +9,14 @@ module PWN
9
9
  # Supported Method Parameters::
10
10
  # browser_obj = PWN::WWW::Pandora.open(
11
11
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
12
- # proxy: 'optional - scheme://proxy_host:port || :tor'
12
+ # proxy: 'optional - scheme://proxy_host:port || tor'
13
13
  # )
14
14
 
15
15
  public_class_method def self.open(opts = {})
16
16
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
17
17
 
18
- browser_obj.goto('https://www.pandora.com')
18
+ browser = browser_obj[:browser]
19
+ browser.goto('https://www.pandora.com')
19
20
 
20
21
  browser_obj
21
22
  rescue StandardError => e
@@ -34,17 +35,19 @@ module PWN
34
35
  username = opts[:username].to_s.scrub.strip.chomp
35
36
  password = opts[:password]
36
37
 
38
+ browser = browser_obj[:browser]
39
+
37
40
  if password.nil?
38
41
  password = PWN::Plugins::AuthenticationHelper.mask_password
39
42
  else
40
43
  password = opts[:password].to_s.scrub.strip.chomp
41
44
  end
42
45
 
43
- browser_obj.goto('https://www.pandora.com/account/sign-in')
46
+ browser.goto('https://www.pandora.com/account/sign-in')
44
47
 
45
- browser_obj.text_field(id: 'login_username').wait_until(&:present?).set(username)
46
- browser_obj.text_field(id: 'login_password').wait_until(&:present?).set(password)
47
- browser_obj.button(text: 'Log In').click!
48
+ browser.text_field(id: 'login_username').wait_until(&:present?).set(username)
49
+ browser.text_field(id: 'login_password').wait_until(&:present?).set(password)
50
+ browser.button(text: 'Log In').click!
48
51
 
49
52
  browser_obj
50
53
  rescue StandardError => e
@@ -58,8 +61,10 @@ module PWN
58
61
 
59
62
  public_class_method def self.logout(opts = {})
60
63
  browser_obj = opts[:browser_obj]
61
- browser_obj.img(alt: 'Account Menu').wait_until(&:present?).click!
62
- browser_obj.span(text: 'Sign Out').wait_until(&:present?).click!
64
+
65
+ browser = browser_obj[:browser]
66
+ browser.img(alt: 'Account Menu').wait_until(&:present?).click!
67
+ browser.span(text: 'Sign Out').wait_until(&:present?).click!
63
68
 
64
69
  browser_obj
65
70
  rescue StandardError => e
@@ -94,9 +99,10 @@ module PWN
94
99
  puts "USAGE:
95
100
  browser_obj = #{self}.open(
96
101
  browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
97
- proxy: 'optional - scheme://proxy_host:port || :tor'
102
+ proxy: 'optional - scheme://proxy_host:port || tor'
98
103
  )
99
- puts browser_obj.public_methods
104
+ browser = browser_obj[:browser]
105
+ puts browser.public_methods
100
106
 
101
107
  browser_obj = #{self}.login(
102
108
  browser_obj: 'required - browser_obj returned from #open method',
@@ -7,13 +7,14 @@ module PWN
7
7
  # Supported Method Parameters::
8
8
  # browser_obj = PWN::WWW::Pastebin.open(
9
9
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
10
- # proxy: 'optional - scheme://proxy_host:port || :tor'
10
+ # proxy: 'optional - scheme://proxy_host:port || tor'
11
11
  # )
12
12
 
13
13
  public_class_method def self.open(opts = {})
14
14
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
15
15
 
16
- browser_obj.goto('https://pastebin.com')
16
+ browser = browser_obj[:browser]
17
+ browser.goto('https://pastebin.com')
17
18
 
18
19
  browser_obj
19
20
  rescue StandardError => e
@@ -27,7 +28,9 @@ module PWN
27
28
 
28
29
  public_class_method def self.onion(opts = {})
29
30
  browser_obj = opts[:browser_obj]
30
- browser_obj.goto('http://lw4ipk5choakk5ze.onion')
31
+
32
+ browser = browser_obj[:browser]
33
+ browser.goto('http://lw4ipk5choakk5ze.onion')
31
34
 
32
35
  browser_obj
33
36
  rescue StandardError => e
@@ -62,9 +65,10 @@ module PWN
62
65
  puts "USAGE:
63
66
  browser_obj = #{self}.open(
64
67
  browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
65
- proxy: 'optional - scheme://proxy_host:port || :tor'
68
+ proxy: 'optional - scheme://proxy_host:port || tor'
66
69
  )
67
- puts browser_obj.public_methods
70
+ browser = browser_obj[:browser]
71
+ puts browser.public_methods
68
72
 
69
73
  browser_obj = #{self}.onion(
70
74
  browser_obj: 'required - browser_obj returned from #open method'
@@ -9,13 +9,14 @@ module PWN
9
9
  # Supported Method Parameters::
10
10
  # browser_obj = PWN::WWW::Paypal.open(
11
11
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
12
- # proxy: 'optional - scheme://proxy_host:port || :tor'
12
+ # proxy: 'optional - scheme://proxy_host:port || tor'
13
13
  # )
14
14
 
15
15
  public_class_method def self.open(opts = {})
16
16
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
17
17
 
18
- browser_obj.goto('https://www.paypal.com')
18
+ browser = browser_obj[:browser]
19
+ browser.goto('https://www.paypal.com')
19
20
 
20
21
  browser_obj
21
22
  rescue StandardError => e
@@ -48,6 +49,8 @@ module PWN
48
49
  username = opts[:username].to_s.scrub.strip.chomp
49
50
  password = opts[:password]
50
51
 
52
+ browser = browser_obj[:browser]
53
+
51
54
  if password.nil?
52
55
  password = PWN::Plugins::AuthenticationHelper.mask_password
53
56
  else
@@ -55,21 +58,21 @@ module PWN
55
58
  end
56
59
  mfa = opts[:mfa]
57
60
 
58
- browser_obj.goto('https://www.paypal.com/signup/account')
59
-
60
- browser_obj.text_field(id: 'email').wait_until(&:present?).set(username)
61
- browser_obj.text_field(id: 'password').wait_until(&:present?).set(password)
62
- browser_obj.text_field(id: 'confirmPassword').wait_until(&:present?).set(password)
63
- browser_obj.button(id: '_eventId_personal').wait_until(&:present?).click!
64
- browser_obj.text_field(id: 'firstName').wait_until(&:present?).set(first_name)
65
- browser_obj.text_field(id: 'lastName').wait_until(&:present?).set(last_name)
66
- browser_obj.text_field(id: 'address1').wait_until(&:present?).set(address)
67
- browser_obj.text_field(id: 'city').wait_until(&:present?).set(city)
68
- browser_obj.select(id: 'state').wait_until(&:present?).select_value(state)
69
- browser_obj.text_field(id: 'postalCode').wait_until(&:present?).set(zip_code)
70
- browser_obj.text_field(id: 'phoneNumber').wait_until(&:present?).set(mobile_phone)
71
- browser_obj.span(index: 7).wait_until(&:present?).click! # Agree to ToS
72
- browser_obj.button(id: 'submitBtn').wait_until(&:present?).click!
61
+ browser.goto('https://www.paypal.com/signup/account')
62
+
63
+ browser.text_field(id: 'email').wait_until(&:present?).set(username)
64
+ browser.text_field(id: 'password').wait_until(&:present?).set(password)
65
+ browser.text_field(id: 'confirmPassword').wait_until(&:present?).set(password)
66
+ browser.button(id: '_eventId_personal').wait_until(&:present?).click!
67
+ browser.text_field(id: 'firstName').wait_until(&:present?).set(first_name)
68
+ browser.text_field(id: 'lastName').wait_until(&:present?).set(last_name)
69
+ browser.text_field(id: 'address1').wait_until(&:present?).set(address)
70
+ browser.text_field(id: 'city').wait_until(&:present?).set(city)
71
+ browser.select(id: 'state').wait_until(&:present?).select_value(state)
72
+ browser.text_field(id: 'postalCode').wait_until(&:present?).set(zip_code)
73
+ browser.text_field(id: 'phoneNumber').wait_until(&:present?).set(mobile_phone)
74
+ browser.span(index: 7).wait_until(&:present?).click! # Agree to ToS
75
+ browser.button(id: 'submitBtn').wait_until(&:present?).click!
73
76
 
74
77
  puts "Confirmation email sent to: #{username}"
75
78
 
@@ -91,6 +94,8 @@ module PWN
91
94
  username = opts[:username].to_s.scrub.strip.chomp
92
95
  password = opts[:password]
93
96
 
97
+ browser = browser_obj[:browser]
98
+
94
99
  if password.nil?
95
100
  password = PWN::Plugins::AuthenticationHelper.mask_password
96
101
  else
@@ -98,18 +103,18 @@ module PWN
98
103
  end
99
104
  mfa = opts[:mfa]
100
105
 
101
- browser_obj.goto('https://www.paypal.com/signin')
106
+ browser.goto('https://www.paypal.com/signin')
102
107
 
103
- browser_obj.text_field(id: 'email').wait_until(&:present?).set(username)
104
- browser_obj.text_field(id: 'password').wait_until(&:present?).set(password)
105
- browser_obj.button(id: 'btnLogin').click!
108
+ browser.text_field(id: 'email').wait_until(&:present?).set(username)
109
+ browser.text_field(id: 'password').wait_until(&:present?).set(password)
110
+ browser.button(id: 'btnLogin').click!
106
111
 
107
112
  if mfa
108
113
  # Send code to SMS
109
- browser_obj.button(id: 'btnSelectSoftToken').wait_until(&:present?).click!
110
- until browser_obj.url == 'https://www.paypal.com/myaccount/home'
111
- browser_obj.text_field(id: 'security-code').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mfa(prompt: 'enter mfa token'))
112
- browser_obj.button(id: 'btnCodeSubmit').click!
114
+ browser.button(id: 'btnSelectSoftToken').wait_until(&:present?).click!
115
+ until browser.url == 'https://www.paypal.com/myaccount/home'
116
+ browser.text_field(id: 'security-code').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mfa(prompt: 'enter mfa token'))
117
+ browser.button(id: 'btnCodeSubmit').click!
113
118
  sleep 3
114
119
  end
115
120
  print "\n"
@@ -127,7 +132,9 @@ module PWN
127
132
 
128
133
  public_class_method def self.logout(opts = {})
129
134
  browser_obj = opts[:browser_obj]
130
- browser_obj.link(index: 13).wait_until(&:present?).click!
135
+
136
+ browser = browser_obj[:browser]
137
+ browser.link(index: 13).wait_until(&:present?).click!
131
138
 
132
139
  browser_obj
133
140
  rescue StandardError => e
@@ -162,9 +169,10 @@ module PWN
162
169
  puts "USAGE:
163
170
  browser_obj = #{self}.open(
164
171
  browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
165
- proxy: 'optional - scheme://proxy_host:port || :tor'
172
+ proxy: 'optional - scheme://proxy_host:port || tor'
166
173
  )
167
- puts browser_obj.public_methods
174
+ browser = browser_obj[:browser]
175
+ puts browser.public_methods
168
176
 
169
177
  browser_obj = #{self}.signup(
170
178
  browser_obj: 'required - browser_obj returned from #open method',
@@ -9,13 +9,14 @@ module PWN
9
9
  # Supported Method Parameters::
10
10
  # browser_obj = PWN::WWW::Synack.open(
11
11
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
12
- # proxy: 'optional - scheme://proxy_host:port || :tor'
12
+ # proxy: 'optional - scheme://proxy_host:port || tor'
13
13
  # )
14
14
 
15
15
  public_class_method def self.open(opts = {})
16
16
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
17
17
 
18
- browser_obj.goto('https://www.synack.com')
18
+ browser = browser_obj[:browser]
19
+ browser.goto('https://www.synack.com')
19
20
 
20
21
  browser_obj
21
22
  rescue StandardError => e
@@ -35,6 +36,8 @@ module PWN
35
36
  username = opts[:username].to_s.scrub.strip.chomp
36
37
  password = opts[:password]
37
38
 
39
+ browser = browser_obj[:browser]
40
+
38
41
  if password.nil?
39
42
  password = PWN::Plugins::AuthenticationHelper.mask_password
40
43
  else
@@ -42,16 +45,16 @@ module PWN
42
45
  end
43
46
  mfa = opts[:mfa]
44
47
 
45
- browser_obj.goto('https://login.synack.com')
48
+ browser.goto('https://login.synack.com')
46
49
 
47
- browser_obj.text_field(name: 'email').wait_until(&:present?).set(username)
48
- browser_obj.text_field(name: 'password').wait_until(&:present?).set(password)
49
- browser_obj.button(class: 'btn').click!
50
+ browser.text_field(name: 'email').wait_until(&:present?).set(username)
51
+ browser.text_field(name: 'password').wait_until(&:present?).set(password)
52
+ browser.button(class: 'btn').click!
50
53
 
51
54
  if mfa
52
- until browser_obj.url.include?('https://platform.synack.com')
53
- browser_obj.text_field(name: 'authy_token').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mfa(prompt: 'enter mfa token'))
54
- browser_obj.button(class: 'btn').click!
55
+ until browser.url.include?('https://platform.synack.com')
56
+ browser.text_field(name: 'authy_token').wait_until(&:present?).set(PWN::Plugins::AuthenticationHelper.mfa(prompt: 'enter mfa token'))
57
+ browser.button(class: 'btn').click!
55
58
  sleep 3
56
59
  end
57
60
  print "\n"
@@ -69,8 +72,10 @@ module PWN
69
72
 
70
73
  public_class_method def self.logout(opts = {})
71
74
  browser_obj = opts[:browser_obj]
72
- browser_obj.img(class: 'navbar-avatar-img').wait_until(&:present?).click!
73
- browser_obj.button(text: 'Logout').wait_until(&:present?).click!
75
+
76
+ browser = browser_obj[:browser]
77
+ browser.img(class: 'navbar-avatar-img').wait_until(&:present?).click!
78
+ browser.button(text: 'Logout').wait_until(&:present?).click!
74
79
 
75
80
  browser_obj
76
81
  rescue StandardError => e
@@ -105,9 +110,10 @@ module PWN
105
110
  puts "USAGE:
106
111
  browser_obj = #{self}.open(
107
112
  browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
108
- proxy: 'optional - scheme://proxy_host:port || :tor'
113
+ proxy: 'optional - scheme://proxy_host:port || tor'
109
114
  )
110
- puts browser_obj.public_methods
115
+ browser = browser_obj[:browser]
116
+ puts browser.public_methods
111
117
 
112
118
  browser_obj = #{self}.login(
113
119
  browser_obj: 'required - browser_obj returned from #open method',
data/lib/pwn/www/torch.rb CHANGED
@@ -7,13 +7,14 @@ module PWN
7
7
  # Supported Method Parameters::
8
8
  # browser_obj = PWN::WWW::Torch.open(
9
9
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
10
- # proxy: 'optional - scheme://proxy_host:port || :tor'
10
+ # proxy: 'optional - scheme://proxy_host:port || tor'
11
11
  # )
12
12
 
13
13
  public_class_method def self.open(opts = {})
14
14
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
15
15
 
16
- browser_obj.goto('http://www.torchtorsearch.com')
16
+ browser = browser_obj[:browser]
17
+ browser.goto('http://www.torchtorsearch.com')
17
18
 
18
19
  browser_obj
19
20
  rescue StandardError => e
@@ -30,8 +31,9 @@ module PWN
30
31
  browser_obj = opts[:browser_obj]
31
32
  q = opts[:q].to_s
32
33
 
33
- browser_obj.text_field(name: 'q').wait_until(&:present?).set(q)
34
- browser_obj.button(name: 'cmd').click!
34
+ browser = browser_obj[:browser]
35
+ browser.text_field(name: 'q').wait_until(&:present?).set(q)
36
+ browser.button(name: 'cmd').click!
35
37
 
36
38
  browser_obj
37
39
  rescue StandardError => e
@@ -45,7 +47,9 @@ module PWN
45
47
 
46
48
  public_class_method def self.onion
47
49
  browser_obj = opts[:browser_obj]
48
- browser_obj.goto('http://xmh57jrzrnw6insl.onion')
50
+
51
+ browser = browser_obj[:browser]
52
+ browser.goto('http://xmh57jrzrnw6insl.onion')
49
53
 
50
54
  browser_obj
51
55
  rescue StandardError => e
@@ -80,9 +84,10 @@ module PWN
80
84
  puts "USAGE:
81
85
  browser_obj = #{self}.open(
82
86
  browser_type: 'optional :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
83
- proxy: 'optional - scheme://proxy_host:port || :tor'
87
+ proxy: 'optional - scheme://proxy_host:port || tor'
84
88
  )
85
- puts browser_obj.public_methods
89
+ browser = browser_obj[:browser]
90
+ puts browser.public_methods
86
91
 
87
92
  browser_obj = #{self}.open(
88
93
  q: 'required search string'
@@ -9,13 +9,14 @@ module PWN
9
9
  # Supported Method Parameters::
10
10
  # browser_obj = PWN::WWW::TradingView.open(
11
11
  # browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
12
- # proxy: 'optional - scheme://proxy_host:port || :tor'
12
+ # proxy: 'optional - scheme://proxy_host:port || tor'
13
13
  # )
14
14
 
15
15
  public_class_method def self.open(opts = {})
16
16
  browser_obj = PWN::Plugins::TransparentBrowser.open(opts)
17
17
 
18
- browser_obj.goto('https://tradingview.com')
18
+ browser = browser_obj[:browser]
19
+ browser.goto('https://tradingview.com')
19
20
 
20
21
  browser_obj
21
22
  rescue StandardError => e
@@ -34,20 +35,22 @@ module PWN
34
35
  username = opts[:username].to_s.scrub.strip.chomp
35
36
  password = opts[:password]
36
37
 
38
+ browser = browser_obj[:browser]
39
+
37
40
  if password.nil?
38
41
  password = PWN::Plugins::AuthenticationHelper.mask_password
39
42
  else
40
43
  password = opts[:password].to_s.scrub.strip.chomp
41
44
  end
42
45
 
43
- browser_obj.goto('https://tradingview.com')
46
+ browser.goto('https://tradingview.com')
44
47
 
45
- browser_obj.button(index: 3).wait_until(&:present?).click
46
- browser_obj.div(text: 'Sign in').wait_until(&:present?).click
47
- browser_obj.span(text: 'Email').wait_until(&:present?).click
48
- browser_obj.text_field(name: 'username').wait_until(&:present?).set(username)
49
- browser_obj.text_field(name: 'password').wait_until(&:present?).set(password)
50
- browser_obj.button(text: 'Sign in').click!
48
+ browser.button(index: 3).wait_until(&:present?).click
49
+ browser.div(text: 'Sign in').wait_until(&:present?).click
50
+ browser.span(text: 'Email').wait_until(&:present?).click
51
+ browser.text_field(name: 'username').wait_until(&:present?).set(username)
52
+ browser.text_field(name: 'password').wait_until(&:present?).set(password)
53
+ browser.button(text: 'Sign in').click!
51
54
 
52
55
  browser_obj
53
56
  rescue StandardError => e
@@ -61,8 +64,10 @@ module PWN
61
64
 
62
65
  public_class_method def self.logout(opts = {})
63
66
  browser_obj = opts[:browser_obj]
64
- browser_obj.button(index: 4).wait_until(&:present?).click
65
- browser_obj.div(text: 'Sign Out').wait_until(&:present?).click!
67
+
68
+ browser = browser_obj[:browser]
69
+ browser.button(index: 4).wait_until(&:present?).click
70
+ browser.div(text: 'Sign Out').wait_until(&:present?).click!
66
71
 
67
72
  browser_obj
68
73
  rescue StandardError => e
@@ -97,9 +102,10 @@ module PWN
97
102
  puts "USAGE:
98
103
  browser_obj = #{self}.open(
99
104
  browser_type: 'optional - :firefox|:chrome|:ie|:headless (Defaults to :firefox)',
100
- proxy: 'optional - scheme://proxy_host:port || :tor'
105
+ proxy: 'optional - scheme://proxy_host:port || tor'
101
106
  )
102
- puts browser_obj.public_methods
107
+ browser = browser_obj[:browser]
108
+ puts browser.public_methods
103
109
 
104
110
  browser_obj = #{self}.login(
105
111
  browser_obj: 'required - browser_obj returned from #open method',