百度安全 | 通过DNS劫持传播仿冒百度APK的案例分析

原创
04/09 10:27
阅读数 29


摘要

 

百度安全实验室在与黑产的持续对抗中发现,近来有攻击者通过DNS劫持推送仿冒百度APK。一旦受害者手机连接了新的网络,仿冒APK会进一步篡改所连WiFi路由器的DNS,从而控制更多的受害者,达到大面积散播、持久流量劫持的目的。目前已有逾8000客户端被劫持、近1500WiFi热点的DNS被篡改。

 

背景

 

春节期间,许多APP都推出了抢新年红包送现金的活动。然而,随之而来的DNS劫持、推送恶意APK的事件却在频繁发生。例如图 1所示,在发生了DNS劫持的网络里,用户手机浏览网页时会弹出“发现金”的闪动按钮,点击按钮会下载名为“Baidu.apk 的程序。这个APK看似手机百度,但实际上是个仿冒的恶意APK

 

1:用户用手机浏览器浏览网页发现弹出“发现金”推广,点击后会下载名为“Baidu.apk”的恶意程序

 

 

技术分析

 

经分析,该设备所连WiFiDNS被恶意篡改成了101.200.147.153。当用户访问的网页内容里出现百度统计时,这一恶意DNS服务会将百度统计的域名hm.baidu.com劫持解析到IP116.255.169.168的服务器上。该服务器返回内容为混淆加密的JS内容,解密后内容如 2所示。 

 

2:解密后的恶意服务器返回的JS代码


2可以看出,这段JS代码会从http://ai.weixin.qq.com/apk/Baidu.apk下载仿冒手百 APK。恶意DNS将域名ai.weixin.qq.com也解析到了116.255.169.168,因此这段JS实际上是从同一恶意服务器获得了恶意APK


受害者在手机上下载Baidu.apk 安装后,截屏如 3所示。 

 

3:恶意APK安装后的截屏

恶意程序的图标和手机百度的图标一模一样,打开之后会加载网页http://m.baidu.com,如 4所示,足可以假乱真。非专业人士根本无法识别是否为手机百度!

 

4Baidu.apk恶意程序打开后的截屏

 

黑产推广这一仿冒APK的目的何在?我们来看一下仿冒手百的代码和行为。  5所示为逆向出来的代码片段。


5Baidu.apk恶意程序逆向分析代码片段1

代码里有很强的 e4a(易安卓)代码风格。这部分代码创建窗口并打开“http://m.baidu.com浏览,符合前面描述的行为。但除此之外,还额外请求了两个 URL


1http://whois.pconline.com.cn/ip.jsp。如图 6所示,对这一URL的访问能获得IP归属地和运营商。

6http://whois.pconline.com.cn/ip.jsp访问截图

 

2. http://www.dochtm.com。如 7所示,这一URL提供通过MAC地址查询WiFi万能钥匙密码库获取WiFi密码的功能。

7http://www.dochtm.com访问截图

 

再接着看代码,如 8所示:

 

8Baidu.apk恶意程序逆向分析代码片段2

 

如图8所示,这一段代码会调起默认浏览器,并在浏览器里执行JS代码,其效果为模拟用户登录路由器设置页面,修改路由器 DNS配置,并提交。如 9所示示例表单,这段代码将路由器的DNS 服务器修改为恶意DNS服务器101.200.147.153,备用DNS 地址为8.8.8.8,启用备用地址是为了防止恶意DNS解析部分网站失效时,被用户察觉从而修改DNS配置,隐蔽性极高。 

 

9:路由器DNS配置修改表单

 

那么问题来了,这个仿冒 APP 怎么能登录路由器设置页面执行修改操作呢?

10Baidu.apk恶意程序逆向分析代码片段3

 

10所示,该恶意APK自带35个弱密码集合,它会遍历这些密码以及上文用“WiFi 万能钥匙”获得的密码, 尝试登陆所在网络的路由器。这已经能成功登入很多普通用户的路由器了。那么上文提到的获取 IP 归属地和运营商的接口有什么用?


11Baidu.apk恶意程序逆向分析代码片段4

11所示,该代码默认设置DNS IP101.200.147.153,并判断用户当前网络属于哪个运营商,以此为依据分别设置联通、移动、电信对应的DNS IP。此举是为了使用户在使用移动网络(3G,4G)时,觉察不出网速状况的变化,避免被一些手机助手优化过慢DNS

 

另一个疑问是,既然当前网络环境中的 DNS 已经是篡改过的了,为什么这一山寨手百还要执行一遍篡改的脚本呢?这是一种传播方式,具体场景如 12所示


12:黑产DNS劫持传播扩散示意图

如图12所示,用户在使用被篡改DNS的无线网络下载仿冒的手机百度APP之后,APP会请求获取敏感权限,并尝试用前面的弱账号密码组合来登录所在无线网络的路由器,继而篡改其路由器DNS,如果有新手机设备连接了这个网络,仿冒APP就得以传播。

 

黑产利益分析

 

劫持用户的网页劫持,目的肯定是想获取暴利。经研究发现,他们的目标是劫持百度广告推广,将被劫持用户设备访问网页时的百度广告替换为google广告。尽管谷歌的主要站点在大陆都是不能正常访问的,但是其广告联盟的广告并不受此影响。而由于互联网广告的特性,用户每次点击网页广告之后,黑产就会有一定的收入进账,而百度网盟及其广告主就会蒙受一定的损失,假以时日,数额就会越来越大。

 

下图是在被劫持的电脑上看到的, 访问网盟地址:http://cpro.baidustatic.com 


13:被劫持的设备访问百度网盟网站时被篡改的信息

 

如图14和图15被劫持前后,在浏览器效果的对比如下:

被劫持前是百度广告推广:

 

14:正常情况下的百度推广联盟广告

劫持后:被替换成 GOOGLE 广告了。

15:被劫持后的设备访问网页时的谷歌广告

 

 

影响范围

 

目前百度安全实验室“反DNS 劫持服务”监测到约 8094 个客户端被劫持。

另外,根据一则国外分析机构的报告中提到的该仿冒APP  C&C网站的统计数据[1],若数据属实的话,已经有1443wifiDNS被篡改,并且,这个数字还在不断增长中。


 

防护建议

 

仿冒的APP并不直接攻击用户,而是攻击整个用户使用网络,在此过程中,中招的用户也不幸被病毒的始作俑者利用作为传播恶意DNS的“肉鸡”。经过我们对alaxa top1000域名的解析测试,前文提到的DNS地址并没有劫持除了hm.baidu.com之外其他的常见域名,而且由于采用了8.8.8.8作为备用地址,即便劫持用的DNS失效,普通用户也不会察觉到网络的异常。

由于其传播特性加之普通用户的安全意识不高,受害用户将成指数型增长,假以时日,广告联盟的损失也会越来越大。

我们建议用户检查一下自己所在无线网络路由器设备的DNS设置,如果不是网络服务商提供的官方DNS或者8.8.8.8114.114.114.114这样的可靠第三方DNS服务,特别如果你的DNS 地址是本文分析中的三个恶意DNS之一(101.200.147.153, 112.33.13.11,120.76.249.59),请立即修改DNS配置并且修改路由器密码。

 

附录

 

恶意DNS 地址列表:

101.200.147.153

112.33.13.11

120.76.249.5

被劫持域名:

百度统计代码域名hm.baidu.com

仿APK样本:

HASH:acdb7bfebf04affd227c93c97df536cf ; 包名com.baidu.com

弱密码组合:

admin:00000000

admin:admin

admin:123456

admin:12345678

admin:123456789

admin:1234567890

admin:66668888

admin:1111111

admin:88888888

admin:666666

admin:87654321

admin:147258369

admin:987654321

admin:66666666

admin:112233

admin:888888

admin:000000

admin:5201314

admin:789456123

admin:123123

admin:789456123

admin:0123456789

admin:123456789a

admin:11223344

admin:123123123


长按关注
百度安全实验室



本文分享自微信公众号 - 百度安全实验室(BaiduX_lab)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部