Skip to content

Commit a403525

Browse files
committed
Land rapid7#1910, DISCLAIMER for firefox_creds
Fixed conflict in Author.
2 parents 51896bc + 6c65121 commit a403525

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

modules/post/multi/gather/firefox_creds.rb

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,15 @@ def initialize(info={})
2727
keys3.db file which contains the key for decrypting these passwords. In cases where
2828
a Master Password has not been set, the passwords can easily be decrypted using
2929
third party tools or by setting the DECRYPT option to true. Using the latter often
30-
needs root privileges. If a Master Password was used the only option would be
31-
to bruteforce.
30+
needs root privileges. Also be warned that if your session dies in the middle of the
31+
file renaming process, this could leave Firefox in a non working state. If a
32+
Master Password was used the only option would be to bruteforce.
3233
},
3334
'License' => MSF_LICENSE,
3435
'Author' =>
3536
[
36-
'bannedit',
37-
'xard4s' # added decryption support
37+
'bannedit',
38+
'xard4s' # added decryption support
3839
],
3940
'Platform' => %w{ bsd linux osx unix win },
4041
'SessionTypes' => ['meterpreter', 'shell' ]
@@ -45,6 +46,12 @@ def initialize(info={})
4546
OptBool.new('DECRYPT', [false, 'Decrypts passwords without third party tools', false])
4647
]
4748
)
49+
50+
register_advanced_options(
51+
[
52+
OptBool.new('DISCLAIMER', [false, 'Acknowledge the warning', false])
53+
]
54+
)
4855
#TODO
4956
# - Collect cookies.
5057
end
@@ -68,6 +75,13 @@ def run
6875
end
6976

7077
if datastore['DECRYPT']
78+
if not datastore['DISCLAIMER']
79+
print_warning("Decrypting the keys causes the possible remote Firefox process to be,")
80+
print_warning("killed. If the user is paying attention, this could make him/her suspicious.")
81+
print_warning("In order to proceed, set the advanced DISCLAIMER option to true.")
82+
return
83+
end
84+
7185
omnija = nil
7286
org_file = 'omni.ja'
7387
new_file = Rex::Text::rand_text_alpha(5 + rand(3)) + ".ja"
@@ -104,6 +118,7 @@ def run
104118
return
105119
end
106120
print_status("Uploading #{new_file} to #{@paths['ff']}")
121+
print_warning("This takes some extra time") if @platform =~ /unix|osx/
107122
if not upload_file(@paths['ff']+new_file, tmp)
108123
print_error("Could not upload #{new_file}")
109124
return

0 commit comments

Comments
 (0)