Contenu

Régulation des Données et des Normes de Sécurité

WriteUp d’un challenge créé par DocSystemDocSystem, dans la catégorie Système, de difficulté Médium (256 points) lors de la Cybernight 2024.

Description

J’ai trouvé dans les logs de mon serveur qu’une machine ayant pour IP 10.44.10.142 a essayé de se connecter.

J’ai essayé de me connecter à http://10.44.10.142/ sauf que le serveur m’a renvoyé une erreur 404 avec comme message Invalid Domain Name. Je suis sûr que je pourrai en savoir plus si j’arrive à accéder à ce site web…

Write Up

On essaie d’accéder au site directement avec son ip et on obtient la page web suivante :

Invalid Domain Name

Pour essayer d’obtenir le nom de domaine associé à cette adresse IP on peut faire une requête DNS inversée1

C'est quoi une requête DNS inversé (rDNS) ?

Le DNS est un système qui permet de traduire des nom de domaine (par exemple efrei.fr) en adresse IP (içi 51.255.68.208).

Le DNS permet d’associer d’autres éléments à un nom de domaine comme un serveur DNS (NS), un serveur de courriel (MX), du texte (TXT), … selon le type d’enregistrement utilisé1.

On peut obtenir l’ensemble des enregistrements d’efrei.net :

$ dig +noall +answer +multiline efrei.fr any 

efrei.fr.               5011 IN A 51.255.68.208
efrei.fr.               10212 IN NS ns-25-c.gandi.net.
efrei.fr.               10212 IN NS ns-198-a.gandi.net.
efrei.fr.               10212 IN NS ns-4-b.gandi.net.
efrei.fr.               10212 IN SOA ns1.gandi.net. hostmaster.gandi.net. (
                                1734566400 ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                10800      ; minimum (3 hours)
                                )
efrei.fr.               10212 IN MX 0 efrei-fr.mail.protection.outlook.com.
efrei.fr.               10212 IN TXT "adobe-idp-site-verification=24ae552e92c3dd96706b4b4c4c8a49bfb9a44b518d8a80e9356c01b170441253"
efrei.fr.               10212 IN TXT "mandrill_verify.k7R91fyohD3aj9DbSG6TDA"
efrei.fr.               10212 IN TXT "asv=1b41fbe40353c081c79ad6ca689f1c97"
efrei.fr.               10212 IN TXT "MS=ms61542660"
efrei.fr.               10212 IN TXT "v=spf1 include:spf.protection.outlook.com include:spf.lianamailer.com include:servers.mcsv.net ip4:85.255.30.167 include:mail.zendesk.com include:spf.mailjet.com include:_spf.explore-blue.com -all"
efrei.fr.               10212 IN CAA 0 issue "amazon.com"
efrei.fr.               10212 IN CAA 0 issue "letsencrypt.org"
efrei.fr.               10212 IN CAA 0 issue "sectigo.com"

Le rDNS permet de faire l’inverse du DNS classique, obtenir un nom de domaine à partir d’une adresse IP. Il fonctionne grâce à l’enregistrement PTR.

Voilà ce que cela pourrait donner pour efrei.fr2 :

# Nous sommes dans la zone 0.168.192.in-addr.arpa

@ 9266 IN SOA ns1.gandi.net. hostmaster.gandi.net. (
  1734566400 ; serial
  10800      ; refresh (3 hours)
  3600       ; retry (1 hour)
  604800     ; expire (1 week)
  10800      ; minimum (3 hours)
)

68.255.51.in-addr.arpa. IN NS ns-25-c.gandi.net.
68.255.51.in-addr.arpa. IN NS ns-4-b.gandi.net.

208               IN      PTR     efrei.fr

On utilise dig pour faire la requête dns inversée (nslookup peut être également utilisé) :

$ dig -x 10.44.10.142

; <<>> DiG 9.18.30 <<>> -x 10.44.10.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16407
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;142.10.44.10.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
142.10.44.10.in-addr.arpa. 3600 IN      PTR     did-u-reverse-me.cybernight-c.tf.

;; Query time: 15 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Fri Dec 20 19:00:37 CET 2024
;; MSG SIZE  rcvd: 100

On accède à l’URL et on obtient le drapeau.

FLAG
CYBN{jUSt_s0M3_D0m41ns}

  1. Le titre du challenge suggère également cette approche ↩︎