漫谈流量劫持
0x00 本地劫持
在鼠标点击的一刹那,流量在用户系统中流过层层节点,在路由的指引下奔向远程服务器。这段路程中短兵相接的战斗往往是最激烈的,在所有流量可能路过的节点往往都埋伏着劫持者,流量劫持的手段也层出不穷,从主页配置篡改、hosts劫持、进程Hook、启动劫持、LSP注入、浏览器插件劫持、http代理过滤、内核数据包劫持、bootkit等等不断花样翻新。或许从开机的一瞬间,流量劫持的故事就已经开始。
1. 道貌岸然的流氓软件
“网址导航”堪称国内互联网最独特的一道风景线,从hao123开始发扬光大,各大导航站开始成为互联网流量最主要的一个入口点,伴随着的是围绕导航主页链接的小尾巴(推广ID),展开的一场场惊心动魄的攻防狙击战。一方面国内安全软件对传统IE浏览器的主页防护越来越严密, 另一方面用户体验更好的第三方浏览器开始占据主流地位,国内的流氓木马为了谋求导航量也开始“另辟蹊径”。
下面讲到的案例是我们曾经捕获到的一批导航主页劫持样本,历史活跃期最早可以追溯到2014年,主要通过多类流氓软件捆绑传播,其劫持功能模块通过联网更新获取,经过多层的内存解密后再动态加载。其中的主页劫持插件模块通过修改浏览器配置文件实现主页篡改,对国内外的chrome、火狐、safari、傲游、qq、360、搜狗等20余款主流浏览器做到了全部覆盖。实现这些功能显然需要对这批浏览器的配置文件格式和加密算法做逆向分析,在样本分析过程中我们甚至发现其利用某漏洞绕过了其中2款浏览器的主页保护功能,流氓作者可谓非常“走心”,可惜是剑走偏锋。
【1】 某软件下拉加载主页劫持插件
上图就是我们在其中一款软件中抓取到的主页劫持模块文件和更新数据包,可能你对数据包里这个域名不是很熟悉,但是提到“音速启动”这款软件相信安全圈内很多人都会有所了解,当年各大安全论坛的工具包基本上都是用它来管理配置的,伴随了很多像本文作者这样的三流小黑客的学习成长,所以分析这个样本过程中还是有很多感触的,当然这些木马劫持行为可能和原作者没有太大关系,听说这款软件在停止更新几年后卖给了上海某科技公司,其旗下多款软件产品都曾被发现过流氓劫持行为,感兴趣的读者可以自行百度,这里不再进行更多的披露。
正如前面的案例,一部分曾经的老牌软件开始慢慢变质,离用户渐行渐远;另一方面,随着最近几年国内安全环境的转变,之前流行的盗号、下载者、远控等传统木马日渐式微,另外一大批披着正规软件外衣的流氓也开始兴起,他们的运作方式有以下几个特点:
1.冒充正规软件,但实际功能单一简陋,有些甚至是空壳软件,常见的诸如某某日历、天气预报、色播、输入法等五花八门的伪装形式,企图借助这些正常功能的外衣逃避安全软件的拦截,实现常驻用户系统的目的。
2.背后行为与木马病毒无异,其目的还是为了获取推广流量,如主页锁定,网页劫持、广告弹窗、流量暗刷、静默安装等等。而且其中很大一部分流氓软件的恶意模块和配置都通过云端进行下拉控制,可以做到分时段、分地区、分场景进行投放触发。
【2】 某流氓软件的云端控制后台
- 变种速度比较快,屡杀不止,被安全软件拦截清理后很快就会更换数字签名,甚至换个软件外壳包装后卷土重来。这些数字签名注册的企业信息很多都是流氓软件作者从其他渠道专门收购的。
【3】某流氓软件1个月内多次更换数字签名证书逃避安全软件查杀
下面可以通过几个典型案例了解下这些流氓软件进行流量劫持的技术手法:
1) 通过浏览器插件进行流量劫持的QTV系列变种,该样本针对IE浏览器通过BHO插件在用户网页中注入JS脚本,针对chrome内核的浏览器利用漏洞绕过了部分浏览器插件的正常安装步骤,通过篡改配置文件添加浏览器插件实现动态劫持。
【4】被静默安装到浏览器中的插件模块,通过JS注入劫持网页
通过注入JS脚本来劫持用户网页浏览的技术优点也很明显,一方面注入的云端JS脚本比较灵活,可以随时在云端控制修改劫持行为,另一方面对于普通用户来说非常隐蔽,难以察觉。被注入用户网页的JS脚本的对网页浏览中大部分的推广流量都进行了劫持,如下图:
【5】 在网页中注入JS劫持推广流量
2) 下面这个“高清影视流氓病毒”案例是去年曾深入跟踪的一个流氓病毒传播团伙,该类样本主要伪装成播放器类的流氓软件进行传播,技术特点如下图所示,大部分劫持模块都是驱动文件,通过动态内存加载到系统内核,实现浏览器劫持、静默推广等病毒行为。
【6】 “高清影视”木马劫持流程简图
从木马后台服务器取证的文件来看,该样本短期内传播量非常大,单日高峰达到20w+,一周累计感染用户超过100万,安装统计数据库每天的备份文件都超过1G。
【7】 “高清影视”木马后台服务器取证
2. 持续活跃的广告弹窗挂马
提到流量劫持,不得不说到近2年时间内保持高度活跃的广告弹窗挂马攻击案例,原本的广告流量被注入了网页木马,以广告弹窗等形式在客户端触发,这属于一种变相的流量劫持,更确切的说应该称之为“流量污染”或“流量投毒”,这里我们将其归类为本地劫持。
近期挂马利用的漏洞多为IE神洞(cve-2014-6332)和HackingTeam泄漏的多个Flash漏洞。通过网页挂马,流量劫持者将非常廉价的广告弹窗流量转化成了更高价格的安装量,常见的CPM、CPV等形式的广告流量每1000用户展示只有几元钱的成本,假设网页挂马的成功率有5%,这意味着劫持者获取到20个用户的安装量,平均每个用户静默安装5款软件,劫持者的收益保守估计有50元,那么“广告流量投毒”的利润率就近10倍。这应该就是近两年网页挂马事件频发背后的最大源动力。
【8】 网页木马经常使用的IE神洞(CVE-2014-6332)
【9】 网页木马利用IE浏览器的res协议检测国内主流安全软件
这些广告流量大多来自于软件弹窗、色情站点、垃圾站群、运营商劫持量等等,其中甚至不乏很多知名软件的广告流量,从我们的监测数据中发现包括酷狗音乐、搜狐影音、电信管家、暴风影音、百度影音、皮皮影音等多家知名软件厂商的广告流量被曾被劫持挂马。正是因为如此巨大的流量基数,所以一旦发生挂马事件,受到安全威胁的用户数量都是非常巨大的。
【10】 对利用客户端弹窗挂马的某病毒服务器取证发现的flash漏洞exp
据了解很多软件厂商对自身广告流量的管理监控都存在漏洞,有些甚至经过了多层代理分包,又缺乏统一有力的安全审核机制,导致被插入网页木马的“染毒流量”被大批推送到客户端,最终导致用户系统感染病毒。在样本溯源过程中,我们甚至在某知名音乐软件中发现一个专门用于暗刷广告流量的子模块。用户越多责任越大,且行且珍惜。
【11】 2015年某次挂马事件涉及的弹窗客户端进程列表
【12】 对2015年度最活跃的某挂马服务器的数据库取证(高峰期每小时5k+的安装量)
0x01 网络劫持
流量劫持的故事继续发展,当一个网络数据包成功躲开了本地主机系统上的层层围剿,离开用户主机穿行于各个路由网关节点,又开启了一段新的冒险之旅。在用户主机和远程服务器之间的道路同样是埋伏重重,数据包可能被指引向错误的终点(DNS劫持),也可能被半路冒名顶替(302重定向),或者直接被篡改(http注入)。
1. 运营商劫持
提起网络劫持往往第一个想起的就是运营商劫持,可能每一个上网的用户或多或少都曾经遇到过,电脑系统或手机用安全软件扫描没有任何异常,但是打开正常网页总是莫名其妙弹出广告或者跳转到其他网站。对普通用户来说这样的行为可以说深恶痛绝,企业和正规网站同样也深受其害,正常业务和企业形象都会受到影响,在15年年底,腾讯、小米、微博等6家互联网公司共同发表了一篇抵制运营商流量劫持的联合声明。
在我们日常的安全运营过程中也经常接到疑似运营商劫持的用户反馈,下面讲述一个非常典型的http劫持跳转案例,用户反馈打开猎豹浏览器首页点击下载就会弹出广告页面,经过我们的检测发现用户的网络被运营商劫持,打开网页的数据包中被注入了广告劫持代码。类似的案例还有很多,除了明面上的广告弹窗,还有后台静默的流量暗刷。对于普通用户来说,可能只有运营商客服投诉或工信部投诉才能让这些劫持行为稍有收敛。
【13】 用户打开网页的数据包被注入广告代码
【14】 用户任意点击网页触发广告弹窗跳转到“6间房”推广页面
这个案例劫持代码中的域名“abc.ss229.com”归属于推广广告联盟,在安全论坛和微博已有多次用户反馈,其官网号称日均PV达到2.5亿。其实运营商劫持流量的买卖其实已是圈内半公开的秘密,结合对用户上网习惯的分析,可以实现对不同地区、不同群体用户的精准定制化广告推送,感兴趣的读者可以自行搜索相关的QQ群。
【15】 公开化的运营商劫持流量买卖
缺乏安全保护的dns协议和明文传输的http流量非常容易遭到劫持,而运营商占据网络流量的必经之路,在广告劫持技术上具有先天优势,比如常见的分光镜像技术,对于普通用户和厂商来说对抗成本相对较高,另一方面国内主流的搜索引擎、导航站点、电商网站都已经开始积极拥抱更加安全的https协议,这无疑是非常可喜的转变。
【16】 常用于运营商流量劫持的分光镜像技术
wooyun平台上也曾多次曝光运营商流量劫持的案例,例如曾经被用户举报的案例“下载小米商城被劫持到UC浏览器APP”,感谢万能的白帽子深入某运营商劫持平台系统为我们揭秘内幕。
【17】 被曝光的某运营商apk下载分发劫持的管理后台
以上种种,不得不让人想起“打劫圈”最富盛名的一句浑语,“此山是我开,此树是我栽,要想过此路,留下买路财”,“买网络送广告”已经成为网络运营商的标准套餐。这些劫持流量的买卖显然不仅仅是所谓的“个别内部员工违规操作”,还是那句话,用户越多责任越大,且行且珍惜。
2. CDN缓存污染
CDN加速技术本质上是一种良性的DNS劫持,通过DNS引导将用户对服务器上的js、图片等不经常变化的静态资源的请求引导到最近的服务器上,从而加速网络访问。加速访问的良好用户体验使CDN加速被各大网站广泛使用,其中蕴含的惊人流量自然也成为流量劫持者的目标。
【18】 用户打开正常网页后跳转到“色播”诱导页面
去年我们曾多次接到用户反馈使用手机浏览器打开网页时经常被跳转到色情推广页面,经过抓包分析,发现是由于百度网盟CDN缓存服务器中的关键JS文件被污染注入广告代码,劫持代码根据user-agent头判断流量来源后针对PC、android、iso等平台进行分流弹窗,诱导用户安装“伪色播”病毒APP。
【19】 抓包分析显示百度网盟的公共JS文件被注入广告代码
【20】 劫持代码根据访问来源平台的不同进行分流,推广“伪色播”病毒app
百度网盟作为全国最大的广告联盟之一,每天的广告流量PV是都是以亿为单位的,其CDN缓存遭遇劫持产生的影响将非常广泛。通过分析我们确认全国只有个别地区的网络会遭遇此类劫持,我们也在第一时间将这个情况反馈给了友商方面,但造成缓存被劫持的原因没有得到最终反馈,是运营商中间劫持还是个别缓存服务器被入侵导致还不得而知,但是这个案例给我们的CDN服务的安全防护再一次给我们敲响警钟。
【21】 通过流量劫持推广的“伪色播”病毒APP行为流程简图
从这个案例中我们也可以看出,移动端“劫持流量”很重要的一个出口就是“伪色情”诱导,这些病毒app基本上都是通过短信暗扣、诱导支付、广告弹窗、流量暗刷以及推广安装等手段实现非法牟利。这条移动端的灰色产业链在近两年已经发展成熟,“色播”类样本也成为移动端中感染量最大的恶意app家族分类之一。
【22】 “伪色播”病毒APP进行诱导推广
这些“伪色播”病毒app安装以后除了各种广告推广行为外,还会在后台偷偷发送短信去定制多种运营商付费业务,并且对业务确认短信进行自动回复和屏蔽,防止用户察觉;有些还集成了第三方支付的SDK,以VIP充值等方式诱导用户付费,用户到头来没看到想要的“福利”不说,吃了黄连也只能是有苦难言。
【23】 某“伪色播”病毒app通过短信定制业务进行扣费的接口数据包
【24】 病毒app自动回复并屏蔽业务短信,防止用户察觉
以其中某个专门做“色播诱导”业务的广告联盟为例,其背后的推广渠道多达数百个,每年用于推广结算的财务流水超过5000w元。从其旗下的某款色播病毒app的管理后台来看,短短半年内扣费订单数据超过100w条,平均每个用户扣费金额从6~20元不等,抛开其他的流氓推广收益,仅扣费这一项的半年收益总额就过百万,而这只是海量“伪色播”病毒样本中的一个,那整个产业链的暴利收益可想而知。
【25】 某“伪色播”病毒app的扣费统计后台
【26】 某“伪色播”病毒app扣费通道的数据存储服务器
3. DNS劫持
路由器作为亿万用户网络接入的基础设备,其安全的重要性不言而喻。最近两年曝光的路由器漏洞、后门等案例比比皆是,主流路由器品牌基本上无一漏网。虽然部分厂商发布了修复补丁固件,但是普通用户很少会主动去更新升级路由器系统,所以路由器漏洞危害的持续性要远高于普通PC平台;另一方面,针对路由器的安全防护也一直是传统安全软件的空白点,用户路由器一旦中招往往无法察觉。
国内外针对路由器的攻击事件最近两年也非常频繁,我们目前发现的攻击方式主要分为两大类,一类是利用漏洞或后门获取路由器系统权限后种植僵尸木马,一般以ddos木马居多,还兼容路由器常见的arm、mips等嵌入式平台;另一类是获取路由器管理权限后篡改默认的DNS服务器设置,通过DNS劫持用户流量,一般用于广告刷量、钓鱼攻击等。
【27】 兼容多平台的路由器DDOS木马样本
下面这个案例是我们近期发现的一个非常典型的dns劫持案例,劫持者通过路由器漏洞劫持用户DNS,在用户网页中注入JS劫持代码,实现导航劫持、电商广告劫持、流量暗刷等。从劫持代码中还发现了针对d-link、tp-link、zte等品牌路由器的攻击代码,利用CSRF漏洞篡改路由器DNS设置。
【28】 路由器DNS流量劫持案例简图
【29】 针对d-link、tp-link、zte等品牌路由器的攻击代码
被篡改的恶意DNS会劫持常见导航站的静态资源域名,例如s0.hao123img.com、s0.qhimg.com等,劫持者会在网页引用的jquery库中注入JS代码,以实现后续的劫持行为。由于页面缓存的原因,通过JS缓存投毒还可以实现长期隐蔽劫持。
【30】 常见的导航站点域名被劫持
【31】 网站引用的jquery库中被注入恶意代码
被注入页面的劫持代码多用来进行广告暗刷和电商流量劫持,从发现的数十个劫持JS文件代码的历史变化中,可以看出作者一直在不断尝试测试改进不同的劫持方式。
【32】 劫持代码进行各大电商广告的暗刷
【33】 在网页中注入CPS广告,跳转到自己的电商导流平台
我们对劫持者的流量统计后台进行了简单的跟踪,从51la的数据统计来看,劫持流量还是非常惊人的,日均PV在200w左右,在2015年末的高峰期甚至达到800w左右,劫持者的暴利收益不难想象。
【34】 DNS流量劫持者使用的51啦统计后台
最近两年DNS劫持活动非常频繁,恶意DNS数量增长也非常迅速,我们监测到的每年新增恶意DNS服务器就多达上百个。针对路由器的劫持攻击案例也不仅仅发生在国内,从蜜罐系统和小范围漏洞探测结果中,我们也捕获到了多起全球范围内的路由器DNS攻击案例。
【35】 DNS流量劫持者使用的51啦统计后台
【36】 在国外地区发现的一例路由器CSRF漏洞“全家桶”,被利用的攻击playload多达20多种
下面的案例是2016年初我们的蜜罐系统捕获到一类针对路由器漏洞的扫描攻击,随后我们尝试进行溯源和影响评估,在对某邻国的部分活跃IP段进行小范围的扫描探测后,发现大批量的路由器被暴露在外网,其中存在漏洞的路由器有30%左右被篡改了DNS设置。
抛开劫持广告流量牟利不谈,如果要对一个国家或地区的网络进行大批量的渗透或破坏,以目前路由器的千疮百孔安全现状,无疑可以作为很适合的一个突破口,这并不是危言耸听。
如下图中漏洞路由器首选DNS被设置为劫持服务器IP,备选DNS服务器设为谷歌公共DNS(8.8.8.8)。
【37】 邻国某网段中大量存在漏洞的路由器被劫持DNS设置
【38】 各种存在漏洞的路由器被劫持DNS设置
4. 神秘劫持
以一个神秘的劫持案例作为故事的结尾,在工作中曾经陆续遇到过多次神秘样本,仿佛是隐藏在层层网络中的黑暗幽灵,不知道它从哪里来,也不知道它截获的信息最终流向哪里,留给我们的只有迷一般的背影。
这批迷一样的样本已经默默存活了很久,我们捕获到早期变种可以追溯到12年左右。下面我们先把这个迷的开头补充下,这些样本绝大多数来自于某些可能被劫持的网络节点,请静静看图。
【39】 某软件升级数据包正常状态与异常状态对比
【40】 某软件升级过程中的抓包数据
我们在15年初的时候捕获到了其中一类样本的新变种,除了迷一样的传播方式,样本本身还有很多非常有意思的技术细节,限于篇幅这里只能放1张内部分享的分析截图,虽然高清但是有码,同样老规矩静静看图。
【41】 神秘样本技术分析简图
0x02 尾记
流量圈的故事还有很多,劫持与反劫持的故事在很长时间内还将继续演绎下去。流量是很多互联网企业赖以生存的基础,通过优秀的产品去获得用户和流量是唯一的正途,用户的信任来之不易,且行且珍惜。文章到此暂告一段落,有感兴趣的地方欢迎留言讨论。
引用