En visant une RCE pour 20 $, ils sont devenus par hasard les administrateurs de .mobi
(labs.watchtowr.com)- watchTowr Labs a enregistré pour environ 20 $ le domaine expiré dotmobiregistry.net, prenant ainsi le contrôle de l’ancien nom d’hôte du serveur WHOIS de
.mobi, et a constaté que d’anciens clients WHOIS ainsi que certains flux de validation de certificats TLS/SSL continuaient de faire confiance à cette adresse - Le serveur WHOIS officiel de
.mobia été déplacé verswhois.nic.mobi, mais de nombreux outils continuaient d’interroger l’ancienne adressewhois.dotmobiregistry.net, codée en dur - Après avoir déployé un serveur WHOIS temporaire le 30 août 2024, ils ont reçu jusqu’au 4 septembre plus de 135 000 systèmes uniques et 2,5 millions de requêtes, révélant à quel point un domaine legacy abandonné restait largement connecté à l’infrastructure réelle d’Internet
- Certaines autorités de certification TLS/SSL utilisaient une validation par e-mail fondée sur le WHOIS pour vérifier la propriété des domaines
.mobi, et lors d’un test avec GlobalSign,whois@watchtowr.comest apparu comme adresse de validation possible pourmicrosoft.mobi - Les chercheurs n’ont pas demandé l’émission d’un certificat malveillant, et par la suite le NCSC britannique et ShadowServer ont relié ce domaine à un sinkhole afin de proxyfier des réponses WHOIS
.mobilégitimes
Un domaine expiré à 20 $ ressuscité comme infrastructure WHOIS
- L’objectif initial de watchTowr Labs était de trouver une RCE réellement exploitable dans la manière dont les clients WHOIS analysent les réponses des serveurs
- Lors des premières expériences, ils se sont fait passer pour un serveur WHOIS et ont renvoyé de longues chaînes de caractères, confirmant que certains clients plantaient facilement
- Mais pour contrôler une réponse WHOIS, un attaquant devait généralement disposer de l’un des éléments suivants
- un MITM permettant d’intercepter le trafic WHOIS au niveau réseau
- un accès au véritable serveur WHOIS
- une redirection WHOIS vers un serveur contrôlé par l’attaquant
- Ces prérequis constituent une barrière élevée dans un scénario d’attaque réel, mais l’expiration de l’ancien domaine du serveur WHOIS de
.mobia changé la donne - Le serveur WHOIS de
.mobiétait passé dewhois.dotmobiregistry.netàwhois.nic.mobi, et l’ancien domainedotmobiregistry.netavait expiré vers décembre 2023 - Après avoir enregistré ce domaine, watchTowr a placé un serveur WHOIS derrière
whois.dotmobiregistry.netafin de vérifier si des clients WHOIS qui avaient encore l’ancienne adresse codée en dur continuaient à l’interroger
La surface d’attaque créée par le codage en dur de l’adresse du serveur WHOIS
- WHOIS utilise un serveur distinct pour chaque TLD, mais les mécanismes standardisés permettant aux clients de découvrir ce serveur en temps réel sont faibles
- En pratique, les outils WHOIS s’appuient souvent sur une liste textuelle publiée par l’IANA et codent en dur les adresses des serveurs au moment du développement
- Tant que l’adresse change rarement, le problème reste discret, mais si elle change et que l’ancien domaine expire, d’anciens clients peuvent continuer à interroger une adresse abandonnée
- watchTowr a répondu aux requêtes WHOIS reçues par le serveur
lglasset a renvoyé de fausses informations WHOIS faisant apparaître watchTowr comme propriétaire de toutes les cibles interrogées - Les réponses contenaient aussi un ASCII art et une demande d’arrêt des requêtes
Volume et provenance des requêtes observées
- Après le déploiement du serveur WHOIS le 30 août 2024, plus de 76 000 adresses IP sources uniques ont envoyé des requêtes en quelques heures
- En environ deux jours, la base SQLite a accumulé 1,3 million de requêtes, et au 4 septembre 2024, le total atteignait 2,5 millions de requêtes pour plus de 135 000 systèmes uniques
- Parmi les sources figuraient de grands registrars et des sites fournissant des fonctions WHOIS
domain.comgodaddy.comwho.iswhois.rusmallseo.toolsseocheki.netcentralops.netname.comwebchart.org
- Des services d’analyse de sécurité utilisaient eux aussi l’ancien serveur WHOIS de
.mobi- urlscan.io utilisait ce résultat WHOIS sur les pages de domaines
.mobi - VirusTotal interrogeait le serveur WHOIS temporaire de watchTowr et affichait le résultat
- urlscan.io utilisait ce résultat WHOIS sur les pages de domaines
- De nombreux serveurs mail et filtres antispam ont également été identifiés
- Les filtres antispam peuvent effectuer une requête WHOIS sur le domaine de l’expéditeur
- Cela allait de
cheapsender.emailà des hôtes semblant appartenir à l’infrastructure gouvernementale du Bangladesh, commemail.bdcustoms.gov.bd
- Des adresses liées au
.govont été observées dans plusieurs pays- Argentine, Pakistan, Inde, Bangladesh, Indonésie, Bhoutan, Philippines, Israël, Éthiopie, Ukraine, États-Unis
- Pour le Brésil, les exemples incluaient
antispam.ap.gov.bretmaster.aneel.gov.br
- Parmi les sources
.mil, les forces armées suédoises sont citées en exemple - Des sources
.eduet des entreprises de cybersécurité ont aussi été observées, notamment Group-IB, Detectify et Censys - Si des entités
.govet des serveurs mail interrogent le serveur WHOIS à chaque réception d’un e-mail depuis un domaine.mobi, cela ouvre la possibilité d’observer passivement qui communique avec qui
Vulnérabilités des anciens clients WHOIS et possibilité de RCE
- watchTowr a recherché des précédents de vulnérabilités dans l’analyse des réponses WHOIS et a conclu que, sur 26 CVE trouvées, seules 3 concernaient encore des bugs déclenchables par une réponse WHOIS malformée
- La rareté de ces cas peut être liée à l’idée qu’une exploitation réelle exige des prérequis difficiles, comme le contrôle du serveur WHOIS d’un TLD
- phpWHOIS CVE-2015-5243 est une vulnérabilité permettant une RCE en exécutant via PHP
evaldes données reçues du serveur WHOIS- Le code vulnérable n’échappait qu’imparfaitement
\"dans la chaîne de réponse WHOIS avant de la transmettre àeval - L’analyse de Netitude donne comme exemple de charge utile
”;phpinfo();// - Les versions vulnérables de phpWHOIS avaient
whois.dotmobiregistry.netcodé en dur
- Le code vulnérable n’échappait qu’imparfaitement
- Fail2Ban CVE-2021-32749 est une vulnérabilité d’injection de commande due à une sortie WHOIS transmise sans nettoyage correct à l’outil
mail- Fail2Ban peut faire une requête WHOIS sur le propriétaire d’une IP bloquée et inclure cette information dans un e-mail à l’administrateur
- Mais cette vulnérabilité se produit dans le cadre d’une requête WHOIS sur une adresse IP, si bien que le contrôle du serveur WHOIS de domaine
.mobiobtenu par watchTowr ne permettait pas de l’atteindre directement
- Une exécution de code réelle exigeait donc toujours à la fois des clients interrogeant l’ancien serveur WHOIS de
.mobiet une implémentation cliente vulnérable
Impact jusque dans les flux de validation de certificats TLS/SSL
- Certaines autorités de certification TLS/SSL prenaient en charge une vérification de propriété de domaine consistant à extraire une adresse e-mail de contact administratif depuis les données WHOIS puis à envoyer un lien de validation à cette adresse
- watchTowr cite comme exemples d’autorités de certification ou de revendeurs prenant en charge cette validation fondée sur le WHOIS
- Trustico
- Comodo
- SSLS
- GoGetSSL
- GlobalSign
- DigiSign
- Sectigo
- Lors d’un test chez GoGetSSL, en soumettant une CSR fictive pour
watchTowr.mobi, l’adressewhois@watchtowr.comconfigurée par watchTowr n’apparaissait pas, seule une adresse placeholder laissant penser que la requête WHOIS n’avait pas abouti était affichée - Lors d’un test chez Entrust, l’enregistrement WHOIS légitime de
microsoft.mobia été analysé et seules des adresses du domainemicrosoft.comont été proposées pour la validation, tandis quewatchTowr.mobin’était pas analysé - Lors d’un test avec GlobalSign, il semblait au départ que l’enregistrement WHOIS de
microsoft.mobin’était pas analysé, mais lorsque watchTowr a copié le format de sortie du serveur WHOIS légitime pourmicrosoft.mobiet l’a servi depuis son propre serveur WHOIS, le résultat a changé - GlobalSign a alors interrogé le serveur WHOIS de watchTowr et a extrait de la réponse
whois@watchtowr.com, proposé comme e-mail de validation pourmicrosoft.mobi - watchTowr s’est arrêté à ce stade et n’a pas obtenu en pratique de certificat TLS/SSL malveillant
- En théorie, la chaîne d’attaque serait la suivante
- placer un serveur WHOIS malveillant sur l’ancien nom d’hôte faisant autorité
- tenter d’acheter un certificat TLS/SSL pour un domaine
.mobiciblé - laisser l’autorité de certification interroger le WHOIS et envoyer l’e-mail de validation à l’adresse de l’attaquant plutôt qu’au véritable propriétaire
- cliquer sur le lien pour obtenir un certificat TLS/SSL pour le domaine ciblé
- Une telle capacité pourrait théoriquement permettre des attaques d’interception de trafic ou d’usurpation du serveur visé
Mesures correctives et problèmes persistants
- Avant la publication, le NCSC britannique et la ShadowServer Foundation ont coordonné la réponse
- Le domaine
dotmobiregistry.netet le nom d’hôtewhois.dotmobiregistry.netont été reliés à un système de sinkhole fourni par ShadowServer - Ce sinkhole proxyfie des réponses WHOIS légitimes pour les domaines
.mobi - Une procédure de notification des parties affectées a également été mise en place
- Ce cas met en lumière un défaut structurel qui apparaît lorsque se combinent infrastructure legacy, domaines abandonnés, traitements fondés sur WHOIS et procédures de validation des autorités de certification TLS/SSL
- Un acteur capable de faire du MITM pourrait lui aussi falsifier les données WHOIS pour tenter le même type d’attaque, et même avec des mécanismes comme la transparence des certificats, des obstacles opérationnels demeurent face à une attaque à grande échelle
1 commentaires
Avis sur Hacker News
Plusieurs erreurs humaines ont sans doute mené à cette situation, mais il y a une chose qui aurait clairement pu empêcher cette attaque précise : ne jamais laisser expirer un domaine
Le serveur WHOIS du domaine de premier niveau .MOBI a été migré il y a quelques années de
whois.dotmobiregistry.netverswhois.nic.mobi, et le domainedotmobiregistry.netsemble avoir été laissé expirer vers décembre 2023Quand une entreprise commence à utiliser un nouveau domaine en se disant que cela ne coûte que 10 dollars par an, ce domaine devient en pratique un actif à 10 dollars par an pour toujours. Une fois qu’un domaine est lié à l’activité, il est impossible de rompre totalement ce lien
https://money.cnn.com/2016/01/29/technology/google-domain-pu...
Au final, les chiffres calculés eux-mêmes me semblaient peu importants, car il est plus probable d’oublier le paiement après avoir manqué les notifications de renouvellement à cause d’une carte bancaire expirée ou d’un filtrage antispam
Comment les grandes entreprises font-elles pour ne pas oublier de payer leurs domaines ? Confient-elles à des bureaux d’enregistrement coûteux des renouvellements pour une durée proche de « l’infini » ? Cela ressemble à un problème d’exploitation business assez difficile
J’ai l’impression qu’un matin, en me réveillant, je vais apprendre qu’Internet a complètement disparu parce que quelqu’un, dans une chambre d’hôtel isolée, aura fait quelque chose avec un Raspberry Pi connecté au hotspot Wi-Fi du café voisin
.mobi[0] https://xkcd.com/2347/
[1] https://en.wikipedia.org/wiki/ARPANET#Debate_about_design_go...
[1] https://news.ycombinator.com/item?id=41482087
Pourquoi les outils codent-ils en dur des listes de serveurs WHOIS ?
Il semble exister une méthode standard pour publier cela dans le DNS, mais un test rapide montre que de nombreux domaines de premier niveau n’ont pas l’enregistrement correspondant. Un exemple qui fonctionne est
dig _nicname._tcp.fr SRV +noall +answer, qui renvoie_nicname._tcp.fr. 3588 IN SRV 0 0 43 whois.nic.fr.Il existe aussi un brouillon Internet expiré à ce sujet : https://datatracker.ietf.org/doc/html/draft-sanz-whois-srv-0...
mobi.whois.arpa. CNAME whois.nic.mobiaurait déjà suffi à résoudre le problème. Mais faire en sorte que tout le monde s’accorde sur ce mécanisme et l’adopte est difficileComme fanf2 le dit plus bas, on pourrait aussi commencer par interroger le serveur WHOIS de l’IANA. Si l’on interroge
mobisur https://www.iana.org/whois, une partie de la réponse contientwhois: whois.nic.mobiLe manque de compétence des développeurs est déjà un problème, mais les hallucinations de l’IA vont encore aggraver la situation
J’ai vu trop d’équipes ne pas comprendre qu’une fois qu’un domaine commence à être utilisé de manière significative, il faut en pratique le renouveler jusqu’à la mort thermique de l’univers, ou au moins jusqu’à la mort thermique de l’équipe
Que ce soit dans ce genre de cas, avec une URL ancienne mais importante qui traîne quelque part, ou avec un membre de l’équipe qui s’est inscrit à un service avec une adresse e-mail de l’ancien domaine, il est très difficile de savoir quand on peut vraiment abandonner un vieux domaine
La surface d’attaque créée par le simple achat d’un domaine expiré appartenant à un ancien serveur WHOIS est vraiment immense
La vraie solution à WHOIS, c’est RDAP
Malheureusement, ce n’est pas obligatoire pour les domaines de premier niveau nationaux, et même parmi les domaines de premier niveau non nationaux, beaucoup ne fonctionnent pas correctement
https://en.wikipedia.org/wiki/Registration_Data_Access_Proto...
https://resolve.rs/domains/rdap-missing.html
Très beau travail
Le domaine
dotmobiregistry.netet le nom d’hôtewhois.dotmobiregisry.netpointent désormais vers un système de sinkhole fourni par ShadowServer, qui est censé proxifier les réponses WHOIS légitimes pour les domaines.mobiSi ces domaines devaient être abandonnés, il aurait mieux valu renvoyer une réponse du type 404. Les laisser continuer à fonctionner comme si de rien n’était réduit l’incitation à passer au domaine officiel
Domain not found.>>> Please update your code or tell your system administrator to use whois.nic.mobi, the authoritative WHOIS server for this domain. <<<Je pense que l’approche globale de l’informatique est vouée à l’échec. Elle repose sur une sécurité parfaite, en supposant que cette sécurité sera obtenue par des contrôles SBOM et des mises à jour fréquentes
Mais cela n’arrive jamais. Rien que pour log4j, 40 % de l’ensemble des téléchargements concernent des versions vulnérables. Et c’est sans parler des fournisseurs de la chaîne d’approvisionnement qui mettent la clé sous la porte ou cessent de maintenir des composants
Comme notre corps est en permanence un champ de bataille contre les micro-organismes, tout sera toujours forcément plein de bugs et de failles
Cela prendra probablement des décennies, mais la voie paraît assez claire. Il faut y consacrer des efforts, appliquer les connaissances tirées de chaque « leçon » et ne pas s’arrêter
J’ai bien aimé l’ambiance générale du type « on ne voulait pas faire ça, mais la situation a continué à prendre de l’ampleur et, à chaque étape, on a obtenu quelque chose de plus gros que prévu »
Si les personnes qui s’y opposaient avaient écouté et corrigé le parsing, les auteurs auraient peut-être pu s’épargner tout ce travail
En retournant la question, faut-il croire que tous les serveurs WHOIS du monde sont toujours authentiques et sûrs ?
En particulier, du point de vue d’une autorité de certification qui effectue une validation TLS, elle n’a sûrement pas envie de savoir qu’en exécutant
whois somethingarbitrary.ru, elle s’expose à une exécution de code à distance à cause d’un serveur russe