HTTP代理进程(ADSafe.exe)劫持策略更新流程(图)
优采云 发布时间: 2021-07-30 22:23HTTP代理进程(ADSafe.exe)劫持策略更新流程(图)
HTTP代理进程(ADSafe.exe)主要负责处理网络过滤驱动转发的HTTP请求,可以根据不同的规则进行广告过滤和流量劫持。 ADSafe 规则分为两部分,分别放在两个不同的目录中。规则目录的位置和用途如下图所示:
规则目录的位置和用途
如上图所示,用户订阅规则主要对应ADSafe中的自定义广告过滤规则,主要用于广告过滤、*敏*感*词*软件过滤等;流量劫持规则主要包括劫持策略和劫持内容。劫持生效后,可以用提前准备的劫持内容替换原来的HTTP请求,达到劫持的目的。以参观为例。由于跳转过程较快,我们截获了被劫持的链接(hxxps:///c?w=***&t=/)。劫持效果,如下图所示:
流量劫持
最后跳转页面,如下图:
终于被劫持的地址
流量劫持策略不仅会由5.3版本的ADSafe直接发布,还可以进行云控制更新。正在分析中,劫持策略还在更新中,所以下面提到的劫持策略均以我们获取的最新版本为准。
ADSafe 策略文件中的数据采用 AES 算法加密,加密数据采用 BASE64 编码。由于所有策略文件的解密过程完全相同,下面不再赘述。相关解密逻辑如下图所示:
解密逻辑相关代码
策略更新功能主要对应ADSafe中的AdsCdn.dll模块,主要负责策略请求、下载和解密过程。劫持策略更新过程首先访问C&C服务器地址,请求策略配置数据CdnJsonconfig.dat。 C&C服务器地址,如下图所示:
C&C 服务器地址
请求CdnJsonconfig.dat的数据相关代码,如下图:
请求 CdnJsonconfig.dat 数据代码
文件解密后,我们可以得到如下配置:
CdnJsonconfig.dat 解密数据
如上图,“0002020A”属性中存放的是策略更新配置文件的下载地址(hxxp:///pc_v4/rulefile/source_9800.xml?-70969872),我们可以使用HTTP请求获取如下配置:
策略更新配置
如上图所示,每组""标签对应一个策略或数据文件,下一级的""标签存放的是文件下载地址。每个文件下载到本地后,文件的MD5值都会改变。进行比较以确保文件的完整性。验证MD5后,将规则文件解压到ADSafe安装目录下的res目录下。策略更新的相关代码如下图所示:
策略更新代码
我们前面提到过,ADSafe官网版本(4.0版本)中没有收录流量劫持策略。其实是因为低版本AdsCdn.dll动态库中用于请求CdnJsonconfig.dat数据的URL指向一个局域网地址(hxxp://192.168.1.77:823/i .ashx),因此劫持策略无法更新。不仅如此,官网版安装包安装后,网络过滤驱动不会发布,直接导致安装官网版ADSafe根本没有任何广告过滤功能。
代理服务进程除了上述操作外,还会通过检测窗口名称(OllyDbg等)、修改线程调试属性等方式进行反调试,相关代码如下图所示:
检测调试器
流量劫持策略
流量劫持策略下发到本地后,会先解密,再加载到HTTP代理服务中。下面为了方便我们对劫持规则的描述,首先引用ADSafe过滤器语法汇总表来解释过滤规则的关键词。关键词及相关用途如下图所示:
过滤语法总结
流量劫持策略保存在ADSafe安装目录下的“res\tc.dat”文件中。解密后,我们可以得到劫持策略。部分劫持策略,如下图所示:
劫持策略
如上图所示,每条劫持规则的含义大致相同。首先,通过常规规则匹配 URL。 URL匹配成功后,返回“$$”后的HTTP数据包内容,返回的数据包中收录有流量劫持功能的JavaScript脚本。以0025.dat的解密数据包内容为例,如下图所示:
包装内容
以之前的劫持规则为例,劫持生效后,当用户访问“当当”网上商城时:图书、母婴、美妆、家居、数码、家电、服装、鞋子、箱包等,正品低价,*敏*感*词*对于诸如“苏宁易购()-准时发货,更超值,新货发货更快”等网址,返回的数据将替换为HTTP数据数据包 0025.dat。数据包文件的内容也需要解密。解密后,我们可以看到由JavaScript脚本控制的相关劫持逻辑。
劫持京东网站等电商
首先,脚本会根据不同的URL执行不同的劫持逻辑。 URL列表如下图所示:
网址劫持规则列表
如上图所示,url属性存储的是要劫持的URL,name存储的是劫持调用函数。在劫持脚本中,每个URL对应不同的劫持函数。劫持函数调用逻辑,如下图所示:
劫持函数调用
由于被劫持的网址数量众多,我们只描述几个典型的劫持情况。我们以京东商城劫持为例。用于劫持的函数是_fun_17。功能逻辑,如下图所示:
用来劫持京东的_fun_17功能
函数_fun_17从预先准备好的劫持数据中解密出一组被劫持的链接,每个链接对应一个劫持概率。劫持概率按比例顺序存储在被劫持的链路阵列后面。解密后的劫持数据如下图所示:
数据劫持
获取上述劫持链接后,会调用ft_r函数在当前页面插入刷新标签进行跳转。如下图所示:
ft_r 函数内容
如上图所示,每个被劫持的链接都是通过广告推广平台(如易奇发、星落、多麦等)链接到最终京东首页的链接。 ADSafe 将通过这些广告推广平台变现流量。其他网站的劫持也大致相同。下面简单介绍一下其他劫持逻辑。
劫持Hao123导航
Hao123的劫持逻辑如下图所示:
如上图所示,用于劫持Hao123的HTTP数据存储在0021.dat中。解密后与0025.dat大致相同,但该文件中只保存了Hao123的相关劫持代码。劫持功能,如下图所示:
Hao123劫持功能
上图中的脚本会从促销号列表中随机选择一个促销号拼接在“hao123_Internet from here”链接后面,然后插入刷新标签进行跳转。用于劫持的促销号共有8个,如下图所示:
用于劫持Hao123的推广账号数据
劫持百度搜索
劫持百度搜索的劫持策略,如下图:
劫持策略
数据劫持百度搜索在0023.dat,劫持功能如下图所示:
百度搜索劫持功能
类似于Hao123劫持的情况,列表中有36个推广号,如下图:
促销编号列表
四、同源分析
除了上一篇提到的反网卫,我们还发现了一款广告过滤软件“Ad Filter Master”,其劫持策略和功能模块与ADSafe相同。该软件有两个页面完全相同的官网,hxxp:///和hxxp:///,“广告过滤大师-简单好用的广告软件”域名以“”注册。如下图所示:
注册信息
官网页面不仅一样,还有多个安全软件的安全认证,如下图:
广告过滤大师官网页面
广告过滤大师劫持策略目录与ADSafe、清网防御者对比,如下图:
劫持策略目录对比
不仅目录中的文件名基本一致,用于流量劫持的数据的SHA1也基本一致(只有0025.dat的SHA不同),三个软件也收录相同的功能模块。所以我们可以判断这三个软件属于同一个软件厂商。 SHA1对比,如下图所示:
流量劫持数据文件SHA1对比
五、附录
文章涉及样本SHA256: