
Ein DNS-Rebinding-Angriffsframework.
Aktuelle Aktualisierungen:
NEU (2025-11-25): Chrome Version 142 führte Local Network Access (LNA) ein, der die in Singularity implementierten DNS-Rebinding-Angriffstechniken verhindert. Der Zweig LNA-from-Non-Secure-Contexts von Singularity of Origin implementiert Unterstützung für den Trial for Local Network Access from Non-Secure Contexts. Dies erlaubt vorübergehend den Zugriff auf Ressourcen in lokalen Netzwerken aus nicht-sicheren Kontexten, sodass Sie mit Chrome noch etwas länger (bis zum 18. Mai 2026) mit DNS-Rebinding-Angriffen experimentieren können.
NEU (2025-05-19): Unsere Demoseite, rebind.it, wurde aktualisiert, um IPv6 zu unterstützen (Commit 3c5ee9a). Dies ist eine brechende Änderung für manuelle Abfragen (außerhalb der Singularity Manager-Benutzeroberfläche), da das DNS-Abfrageformat geändert wurde. Bitte beachten Sie How to Create Manual DNS Requests to Singularity of Origin für detaillierte Anweisungen. Darüber hinaus fügen wir regelmäßig neue Angriffs-Payloads hinzu; schauen Sie sich diese unbedingt an.
(2023-04-27) Schauen Sie sich unseren Blogbeitrag an, der den Stand des DNS-Rebinding im April 2023 dokumentiert. Wir beschreiben Local Network Access, eine neue W3C-Entwurfsspezifikation, die derzeit in einigen Browsern implementiert ist und DNS-Rebinding verhindern soll, und zeigen zwei Möglichkeiten, diese Einschränkungen zu umgehen. Wir diskutieren auch die Auswirkungen der WebRTC-IP-Adress-Leak-Mitigation und des DNS-Bit 0x20 auf DNS-Rebinding-Angriffe.
(2020-03-30) Neuer Blogbeitrag, der die Auswirkungen von DoH auf DNS-Rebinding-Angriffe untersucht. TL;DR: DoH (DNS over HTTPS) hat keine Auswirkung auf Rebinding-Angriffe und die von Anbietern beworbenen Schutzmaßnahmen können umgangen werden.
Schauen Sie sich unser DEF CON 27 Video und die BSidesLV-Präsentation State of DNS Rebinding: Attack & Prevention Techniques and the Singularity of Origin an.
Singularity of Origin ist ein Werkzeug zur Durchführung von DNS-Rebinding-Angriffen. Es enthält die notwendigen Komponenten, um die IP-Adresse des DNS-Namens des Angriffsservers auf die IP-Adresse des Zielrechners umzubinden und Angriffs-Payloads bereitzustellen, um verwundbare Software auf dem Zielrechner auszunutzen.
Es enthält auch Beispiel-Payloads zur Ausnutzung mehrerer anfälliger Softwareversionen, vom einfachen Erfassen einer Startseite bis hin zur Ausführung von Remote-Code. Es zielt darauf ab, ein Framework bereitzustellen, das die Ausnutzung von Software erleichtert, die für DNS-Rebinding-Angriffe anfällig ist, und das Bewusstsein dafür zu schärfen, wie sie funktionieren und wie man sich davor schützen kann.
Ausführliche Dokumentation finden Sie auf den Wiki-Seiten.



Die Einrichtung von Singularity erfordert einen DNS-Domänennamen, in dem Sie Ihre eigenen DNS-Einträge für Ihre Domain bearbeiten können, sowie einen Linux-Server zum Ausführen. Bitte beachten Sie die Einrichtung von Singularity Wiki-Seite für detaillierte Anweisungen.
Die Dokumentation befindet sich auf den Wiki-Seiten. Hier sind einige Anhaltspunkte zum Einstieg:
Eine Testinstanz ist zu Demonstrationszwecken unter http://rebind.it:8080/manager.html verfügbar.
Singularity wurde getestet und funktioniert mit den folgenden Browsern unter optimalen Bedingungen in unter 3 Sekunden:
Singularity unterstützt die folgenden Angriffs-Payloads:
simple-fetch-get.js): Dieser Beispiel-Payload führt eine GET-Anfrage an das Stammverzeichnis ('/') durch und zeigt die Serverantwort mit der fetch-API. Ziel dieses Payloads ist es, als Beispielanfrage zu dienen, um weitere Beiträge so einfach wie möglich zu machen.exposed-chrome-devtools.js): Dieser Payload demonstriert eine Remote-Code-Ausführung (RCE)-Sicherheitslücke in Microsoft VS Code, die in Version 1.19.3 behoben wurde. Dieser Payload kann angepasst werden, um jede Software auszunutzen, die Chrome Dev Tools auf localhost bereitstellt.etcd.js): Dieser Payload ruft die Schlüssel und Werte aus dem etcd-Schlüssel-Werte-Speicher ab.pyethapp.js): Nutzt die Python-Implementierung des Ethereum-Clients Pyethapp aus, um die Liste der besessenen Eth-Adressen zu erhalten und den Saldo der ersten Eth-Adresse abzurufen.rails-console-rce.js): Führt einen Remote-Code-Ausführungsangriff (RCE) auf die Rails Web Console durch.| Browser | Betriebssystem | Zeit bis zur Ausnutzung | Umbindungsstrategie | Abrufintervall | Zielangabe |
|---|
Multiple answers (fast) | |||||
Multiple answers (fast) | |||||
| Firefox | Windows 10 | ~3s | Multiple answers (fast) | 1s | 127.0.0.1 |
| Chromium | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Chrome | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Safari | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
aws-metadata-exfil.js): Zwingt einen headless Browser, AWS-Metadaten einschließlich privater Schlüssel an einen bestimmten Host zu exfiltrieren. Überprüfen Sie den Payload-Inhalt für weitere Details zur Einrichtung des Angriffs.duplicati-rce.js): Dieser Payload nutzt den Duplicati-Backup-Client aus und führt einen Remote-Code-Ausführungsangriff (RCE) durch. Damit dieser Angriff funktioniert, muss der Parameter targetURL in der Datei payload-duplicati-rce.html aktualisiert werden, um auf ein gültiges Duplicati-Backup zu verweisen, das den eigentlichen RCE-Payload, ein Shell-Skript, enthält.webpdb.js): Ein generischer RCE-Payload zur Ausnutzung von PDB, einem Python-Debugger, der über Websockets bereitgestellt wird.hook-and-control.js): Übernehmen Sie Ziel-Browser und verwenden Sie sie, um von Ihrem eigenen Browser oder anderen HTTP-Clients aus auf unzugängliche Ressourcen zuzugreifen. Sie können die Liste der übernommenen Browser auf der Subdomain "soohooked" des Singularity-Manager-Hosts auf Port 3129 (Standard) abrufen, z.B. http://soohooked.rebinder.your.domain:3129/. Zur Authentifizierung übermitteln Sie den geheimen Wert, der vom Singularity-Server beim Start in die Konsole ausgegeben wird.jenkins-script-console.js): Dieser Payload nutzt die Jenkins Script Console aus und zeigt die gespeicherten Anmeldeinformationen an.docker-api.js): Dieser Payload nutzt die Docker API aus und zeigt die Datei /etc/shadow des Docker-Hosts an.ollama-exfil.js): Exfiltrieren Sie Dateien von Hosts, die Ollama ausführen, einem Open-Source-System zum Ausführen und Verwalten großer Sprachmodelle (LLMs). Siehe Blog-Beitrag.html/payloads).