pwn 0.4.700 → 0.4.702

Sign up to get free protection for your applications and to get access to all the features.
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',