pwn 0.5.196 → 0.5.198
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/lib/pwn/plugins/transparent_browser.rb +15 -3
- data/lib/pwn/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a30f2d135c01d466356d18ce8476d369880832f2cf15e83ab03935db04d1fad0
|
4
|
+
data.tar.gz: 9981bb26e409bb5a66568367fe7642ede2367308f8c1b62f7fa48ad936857546
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a5b6615feaa3b7a7885a39de4f90950166565eeee727ad70854aa11a918cd68e6dc4dd04c4a762876f61b55b67482e2e635ecad5f7d804e4146263133a8dcbf
|
7
|
+
data.tar.gz: 284c0b19781af117e09c9fa6eca4588f70ce5602dd943b69bb1a8cf07798eb79d89ced07c27402c9bc60671dd65989932f35e0f17c0575c0ec3b6c3ec0106c13
|
data/README.md
CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
|
|
37
37
|
$ ./install.sh
|
38
38
|
$ ./install.sh ruby-gem
|
39
39
|
$ pwn
|
40
|
-
pwn[v0.5.
|
40
|
+
pwn[v0.5.198]: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.3.3@pwn
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
53
53
|
$ gem install --verbose pwn
|
54
54
|
$ pwn
|
55
|
-
pwn[v0.5.
|
55
|
+
pwn[v0.5.198]:001 >>> PWN.help
|
56
56
|
```
|
57
57
|
|
58
58
|
If you're using a multi-user install of RVM do:
|
@@ -62,7 +62,7 @@ $ rvm use ruby-3.3.3@pwn
|
|
62
62
|
$ rvmsudo gem uninstall --all --executables pwn
|
63
63
|
$ rvmsudo gem install --verbose pwn
|
64
64
|
$ pwn
|
65
|
-
pwn[v0.5.
|
65
|
+
pwn[v0.5.198]:001 >>> PWN.help
|
66
66
|
```
|
67
67
|
|
68
68
|
PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
|
@@ -66,7 +66,7 @@ module PWN
|
|
66
66
|
Watir.default_timeout = 900
|
67
67
|
|
68
68
|
args = []
|
69
|
-
args.push('--start-maximized')
|
69
|
+
# args.push('--start-maximized')
|
70
70
|
args.push('--disable-notifications')
|
71
71
|
|
72
72
|
unless browser_type == :rest
|
@@ -128,6 +128,8 @@ module PWN
|
|
128
128
|
end
|
129
129
|
|
130
130
|
# args.push('--devtools') if devtools
|
131
|
+
# Private browsing mode
|
132
|
+
args.push('--private')
|
131
133
|
options = Selenium::WebDriver::Firefox::Options.new(
|
132
134
|
args: args,
|
133
135
|
accept_insecure_certs: true
|
@@ -153,6 +155,8 @@ module PWN
|
|
153
155
|
args.push('--disable-hang-monitor')
|
154
156
|
end
|
155
157
|
|
158
|
+
# Incognito browsing mode
|
159
|
+
args.push('--incognito')
|
156
160
|
options = Selenium::WebDriver::Chrome::Options.new(
|
157
161
|
args: args,
|
158
162
|
accept_insecure_certs: true
|
@@ -214,6 +218,8 @@ module PWN
|
|
214
218
|
end
|
215
219
|
|
216
220
|
args.push('--headless')
|
221
|
+
# Private browsing mode
|
222
|
+
args.push('--private')
|
217
223
|
options = Selenium::WebDriver::Firefox::Options.new(
|
218
224
|
args: args,
|
219
225
|
accept_insecure_certs: true
|
@@ -230,13 +236,14 @@ module PWN
|
|
230
236
|
this_profile['download.prompt_for_download'] = false
|
231
237
|
this_profile['download.default_directory'] = '~/Downloads'
|
232
238
|
|
233
|
-
args.push('--headless')
|
234
|
-
|
235
239
|
if proxy
|
236
240
|
args.push("--host-resolver-rules='MAP * 0.0.0.0 , EXCLUDE #{tor_obj[:ip]}'") if tor_obj
|
237
241
|
args.push("--proxy-server=#{proxy}")
|
238
242
|
end
|
239
243
|
|
244
|
+
args.push('--headless')
|
245
|
+
# Incognito browsing mode
|
246
|
+
args.push('--incognito')
|
240
247
|
options = Selenium::WebDriver::Chrome::Options.new(
|
241
248
|
args: args,
|
242
249
|
accept_insecure_certs: true
|
@@ -308,6 +315,7 @@ module PWN
|
|
308
315
|
jmp_devtools_panel(browser_obj: browser_obj, panel: :elements)
|
309
316
|
end
|
310
317
|
|
318
|
+
browser_obj[:browser].driver.manage.window.maximize
|
311
319
|
new_tab(browser_obj: browser_obj, first_tab: true)
|
312
320
|
end
|
313
321
|
|
@@ -676,6 +684,7 @@ module PWN
|
|
676
684
|
browser.execute_script("document.title = '#{devtools_tab_title}'")
|
677
685
|
end
|
678
686
|
|
687
|
+
# TODO: Find replacement for hotkey - there must be a better way.
|
679
688
|
browser.send_keys(:f12)
|
680
689
|
if first_tab
|
681
690
|
# TODO: replace sleep with something more reliable like an event listener
|
@@ -704,6 +713,7 @@ module PWN
|
|
704
713
|
firefox_types = %i[firefox headless_firefox]
|
705
714
|
chrome_types = %i[chrome headless_chrome]
|
706
715
|
|
716
|
+
# TODO: Find replacement for hotkey - there must be a better way.
|
707
717
|
hotkey = []
|
708
718
|
case PWN::Plugins::DetectOS.type
|
709
719
|
when :linux, :openbsd, :windows
|
@@ -714,11 +724,13 @@ module PWN
|
|
714
724
|
|
715
725
|
case panel
|
716
726
|
when :elements, :inspector
|
727
|
+
hotkey.push('i') if chrome_types.include?(browser_type)
|
717
728
|
hotkey.push('c') if firefox_types.include?(browser_type)
|
718
729
|
when :console
|
719
730
|
hotkey.push('j') if chrome_types.include?(browser_type)
|
720
731
|
hotkey.push('k') if firefox_types.include?(browser_type)
|
721
732
|
when :debugger, :sources
|
733
|
+
hotkey.push('s') if chrome_types.include?(browser_type)
|
722
734
|
if firefox_types.include?(browser_type)
|
723
735
|
# If we're in the console, we need to switch to the inspector first
|
724
736
|
jmp_devtools_panel(browser_obj: browser_obj, panel: :inspector)
|
data/lib/pwn/version.rb
CHANGED