
Un framework d'attaque par rebinding DNS.
Mises à jour récentes :
NOUVEAU (2025-11-25) : Chrome version 142 a ajouté l'Accès au Réseau Local (LNA), qui empêche les techniques d'attaque par rebinding DNS implémentées dans Singularity. La branche LNA-from-Non-Secure-Contexts de Singularity of Origin implémente le support de l'essai pour l'accès au réseau local depuis des contextes non sécurisés. Cela permet temporairement l'accès aux ressources sur les réseaux locaux depuis des contextes non sécurisés, vous permettant ainsi d'expérimenter les attaques de rebinding DNS un peu plus longtemps (jusqu'au 18 mai 2026) lors de l'utilisation de Chrome.
NOUVEAU (2025-05-19) : Notre site de démonstration, rebind.it, a été mis à jour pour supporter IPv6 (commit 3c5ee9a). Ce changement casse la compatibilité pour les requêtes manuelles (en dehors de l'interface utilisateur de Singularity Manager) car le format des requêtes DNS a été modifié. Veuillez vous référer à Comment créer des requêtes DNS manuelles vers Singularity of Origin pour des instructions détaillées. De plus, nous ajoutons périodiquement de nouvelles charges utiles d'attaque ; assurez-vous de les consulter.
(2023-04-27) Consultez notre article de blog décrivant l'état du rebinding DNS en avril 2023. Nous décrivons l'Accès au Réseau Local, une nouvelle spécification W3C en projet actuellement implémentée dans certains navigateurs qui vise à empêcher le rebinding DNS, et nous montrons deux façons de contourner ces restrictions. Nous discutons également des effets de l'atténuation des fuites d'adresses IP via WebRTC et du DNS Bit 0x20 sur les attaques de rebinding DNS.
(2020-03-30) Nouvel article de blog examinant l'impact de DoH sur les attaques de rebinding DNS. TL;DR : DoH (DNS sur HTTPS) n'a aucun effet sur les attaques de rebinding et les protections annoncées par les fournisseurs peuvent être contournées.
Consultez notre vidéo DEF CON 27 et la présentation BSidesLV à State of DNS Rebinding: Attack & Prevention Techniques and the Singularity of Origin.
Singularity of Origin est un outil pour effectuer des attaques de rebinding DNS.
Il comprend les composants nécessaires pour rebinder l'adresse IP du nom DNS du serveur d'attaque vers l'adresse IP de la machine cible et pour servir des charges utiles d'attaque afin d'exploiter des logiciels vulnérables sur la machine cible.
Il est également livré avec des charges utiles d'exemple pour exploiter plusieurs versions de logiciels vulnérables, allant de la simple capture d'une page d'accueil à l'exécution de code à distance. Il vise à fournir un cadre pour faciliter l'exploitation de logiciels vulnérables aux attaques de rebinding DNS et à sensibiliser sur leur fonctionnement et comment s'en protéger.
La documentation détaillée se trouve sur les pages wiki.



La configuration de Singularity nécessite un nom de domaine DNS où vous pouvez modifier vos propres enregistrements DNS pour votre domaine et un serveur Linux pour l'exécuter. Veuillez consulter la page wiki configuration de Singularity pour des instructions détaillées.
La documentation se trouve sur les pages wiki. Voici quelques pistes pour commencer :
Une instance de test est disponible à des fins de démonstration sur http://rebind.it:8080/manager.html.
Singularity a été testé pour fonctionner avec les navigateurs suivants dans des conditions optimales en moins de 3 secondes :
Singularity prend en charge les charges utiles d'attaque suivantes :
simple-fetch-get.js) : Cette charge utile d'exemple effectue une requête GET vers le répertoire racine ('/') et affiche la réponse du serveur en utilisant l'API fetch.
Le but de cette charge utile est de servir d'exemple de requête pour faciliter au maximum les contributions supplémentaires.exposed-chrome-devtools.js) : Cette charge utile démontre une vulnérabilité d'exécution de code à distance (RCE) dans Microsoft VS Code corrigée dans la version 1.19.3.
Cette charge utile peut être adaptée pour exploiter tout logiciel exposant les outils de développement Chrome sur localhost.etcd.js) : Cette charge utile récupère les clés et valeurs du magasin de clés-valeurs etcd.pyethapp.js) : Exploite l'implémentation Python du client Ethereum Pyethapp pour obtenir la liste des adresses eth possédées et récupérer le solde de la première adresse eth.rails-console-rce.js) : Effectue une attaque d'exécution de code à distance (RCE) sur la console web Rails.| Navigateur | Système d'exploitation | Temps avant exploitation | Stratégie de rebinding | Intervalle de récupération | Spécification de la cible |
|---|
Réponses multiples (rapide) | |||||
Réponses multiples (rapide) | |||||
| Firefox | Windows 10 | ~3s | Réponses multiples (rapide) | 1s | 127.0.0.1 |
| Chromium | Ubuntu | ~3s | Réponses multiples (rapide) | 1s | 0.0.0.0 |
| Firefox | Ubuntu | ~3s | Réponses multiples (rapide) | 1s | 0.0.0.0 |
| Chrome | macOS | ~3s | Réponses multiples (rapide) | 1s | 0.0.0.0 |
| Firefox | macOS | ~3s | Réponses multiples (rapide) | 1s | 0.0.0.0 |
| Safari | macOS | ~3s | Réponses multiples (rapide) | 1s | 0.0.0.0 |
aws-metadata-exfil.js) : Force un navigateur sans tête à exfiltrer les métadonnées AWS, y compris les clés privées, vers un hôte donné. Consultez le contenu de la charge utile pour plus de détails sur la configuration de l'attaque.duplicati-rce.js) : Cette charge utile exploite le client de sauvegarde Duplicati et effectue une attaque d'exécution de code à distance (RCE).
Pour que cette attaque fonctionne, le paramètre targetURL dans le fichier payload-duplicati-rce.html doit être mis à jour pour pointer vers une sauvegarde Duplicati valide contenant la charge utile RCE réelle, un script shell.webpdb.js) : Une charge utile RCE générique pour exploiter PDB, un débogueur Python exposé via des websockets.hook-and-control.js) : Détournez les navigateurs cibles et utilisez-les pour accéder à des ressources inaccessibles depuis votre propre navigateur ou d'autres clients HTTP. Vous pouvez récupérer la liste des navigateurs détournés sur le sous-domaine "soohooked" de l'hôte du gestionnaire Singularity sur le port 3129 par défaut, par exemple http://soohooked.rebinder.your.domain:3129/. Pour vous authentifier, soumettez la valeur secrète affichée sur la console par le serveur Singularity au démarrage.jenkins-script-console.js) : Cette charge utile exploite la console de scripts Jenkins et affiche les informations d'identification stockées.docker-api.js) : Cette charge utile exploite l'API Docker et affiche le fichier /etc/shadow de l'hôte Docker.ollama-exfil.js) : Exfiltrez des fichiers depuis des hôtes exécutant Ollama, un système open-source pour exécuter et gérer de grands modèles de langage (LLM). Voir l'article de blog.html/payloads).