【杂谈】BGP劫持与DNS篡改
原创
joe1sn
joe1sn
不止Sec
2026年10月20日 16:48
重庆
去阅读
一般网络安全接触到的都是 XSS、SQL、溢出攻击这种,但是在网络上利用网络协议自身的攻击也是存在的。在7月的一篇帖子当中我汇总了下信息
在 国家互联网应急中心CNCERT 的调查报告中已经说明了
关于中国境外自治域AS 402425恶意篡改部分DNS解析数据的调查报告
近期,中国多个省份多次发生用户访问请求异常跳转至博彩网站的事件,对广大人民的财产安全和正常上网权利造成了严重危害。经分析,攻击者利用中国境外自治域AS 402425,主要采取宣告虚假路由、篡改域名解析数据等手段进行攻击,危害范围广泛,特此公布有关调查情况,为全球相关国家、单位和广大网民有效发现和防范此类攻击提供借鉴。
并且其中一个恶意IP和我遇到的符合
我自己也补充一下这方面的知识
须知:这不是对这个攻击的还原。本实验所模拟的“BGP 前缀劫持”“DNS 篡改”等行为,仅用于帮助理解路由选择与攻击链原理,不构成、也不应被理解为对真实网络实施攻击的指导或授权。验在 Cisco Packet Tracer 模拟环境 中完成,使用虚构的 AS 号、私有 IP 地址、保留地址和虚构域名,不针对任何真实互联网自治系统、ISP、银行、网站、DNS 服务器或第三方网络。
假设当前在系统中有如下结构
BGP 前缀劫持
- IP 地址:就像每台设备的“门牌号”。比如
192.168.1.10。 - 路由器:就像“快递中转站”。它知道把包裹(数据)往哪个方向送。
- AS(自治系统):就像一家“快递公司”。每个公司有一个编号(AS 号),比如 AS 100、AS 200。BGP 就是这些快递公司之间互相告诉对方:“我这边能送到哪些地址”。
BGP 前缀劫持(BGP Prefix Hijacking)就是:一个自治系统(AS)向互联网“谎报”自己拥有某个 IP 网段的路由,把原本应该去别处的流量吸引到自己这里。
BGP 是互联网上各个自治系统之间交换路由信息的协议。它有一个特点:默认信任邻居发来的路由宣告,不会天然验证“这个 AS 是否真的拥有这个 IP 前缀”。于是,攻击者或配置错误就可能宣告一个不属于自己的 IP 前缀。
BGP 选路时通常优先:
- 更具体的前缀(掩码更长,如
/25比/24更优先); - AS-Path 更短的路径;
- 其他属性(Local Preference、MED 等)
攻击测试
我们现在要从PC1访问银行的网络 Bank-Server0,此时我们的自治域 AS 400 还没有开始攻击,即没有完成 FakeServer 的宣称
很明显,路径是: PC -> R1 -> R2 -> R3 -> Bank-Server0,测试一下发现的确如此
现在开始在 AS 400 进行劫持
此时R1上出现了两条路径
BGP路径选择是越短越优先,此时已经劫持成功
此时返回PC1发现路径被修改
防护措施
- RPKI + ROA:给 IP 前缀做密码学签名,声明“哪个 AS 有权宣告它”
- 前缀过滤:ISP 对客户宣告的路由做白名单/长度限制
- IRR 路由注册:在路由注册库中登记合法起源 AS,IRR本质上是一个供网络运营商查询“某个IP前缀应由哪个AS宣告”的数据库。但问题在于,IRR并非一个受到严格验证的权威系统。攻击者正是利用了这一点,在那些验证不严格的非权威IRR中,为不属于自己的IP前缀注册虚假的“路由对象”(Route Object),将自己(AS 402425)伪造成该前缀的合法来源。
- BGPsec:对 BGP 更新做路径签名(部署较少)
- 路由监控:用 BGPStream、RIPE RIS 等监测异常宣告
DNS 篡改
这种利用手法还是比较贴近内网渗透、网络钓鱼的内容的,这里仅仅实现最简单的一种:让假服务器也提供 DNS 服务来模拟
现在我们设置 银行的DNS服务器开启并进行相关配置
设置PC1的DNS服务器为192.168.3.10
现在正常访问网页
现在进行篡改
有了BGP劫持的情况下做DNS劫持会轻松很多,但是DNS协议本身的劫持利用手法也有很多,总结为
本地设备层:
- 本地主机劫持:恶意软件修改操作系统中的
hosts文件或TCP/IP配置里的DNS服务器地址 - 路由器DNS劫持
网络传输层:
- 中间人篡改:攻击者在用户与递归解析服务器之间的链路上截获DNS报文,直接修改其中的解析结果后再转发
- 权威侧/在途响应劫持:攻击者截获递归服务器与权威服务器之间的应答流量,对解析结果或TTL进行修改
- BGP路由劫持驱动的DNS篡改(组合攻击):攻击者首先通过异常BGP路由宣告,把原本不经过自己网络的DNS流量“牵引”过来;流量进入攻击者网络后,再在途中篡改DNS应答。
解析服务器层:
- DNS缓存投毒:针对递归解析服务器,攻击者伪造权威服务器的响应,向缓存中注入虚假记录
权威与注册层:直接从源头篡改答案
- 权威服务器 / 注册商层面的劫持:攻击者直接攻破域名注册商或权威DNS服务器,篡改NS记录或A记录。
- 恶意DNS服务器:攻击者完全控制一台DNS服务器,并通过上述某种方式(路由器劫持、中间人下发、恶意软件修改配置等)让受害者的查询最终落到这台服务器上
DNS利用技巧还是挺多的,例如:当一个子域名(如 app.example.com)通过CNAME指向一个外部服务(如 app-xyz.azurewebsites.net),而该外部资源后来被取消或删除后,原来的CNAME记录却忘记从DNS区域中删除。这条记录就变成了“悬空”的,攻击者重新申请得到app-xyz.azurewebsites.net就能瞬间“接管”对 app.example.com 的控制权,因为所有流向该子域名的流量都会按照那条遗留的CNAME记录,忠实地转发到攻击者控制的新资源上。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论