9 exemples de commandes hôtes utiles pour interroger les détails DNS



L’utilitaire en ligne de commande HOST simplifie l’exploration des informations DNS.

Dans le domaine de la sécurité et du piratage éthique, la reconnaissance DNS est une étape initiale cruciale pour collecter des informations sur une cible. Elle consiste à interroger les enregistrements DNS d’un serveur de noms de domaine, tels que les serveurs de noms, les adresses IP, les serveurs de messagerie, les TTL, et autres.

Ces informations extraites via DNS peuvent être exploitées par des acteurs malveillants pour examiner la configuration interne du réseau.

De nombreux outils d’analyse et d’énumération DNS sont accessibles en ligne. Cependant, l’outil HOST offre une manière pratique d’effectuer cette tâche directement à partir de la ligne de commande.

Cet article présentera quelques exemples d’utilisation de la commande HOST pour interroger les détails DNS.

Commençons par l’installation et l’utilisation de cette commande!

Installation

Il est possible que la commande HOST ne soit pas présente par défaut sur un système nouvellement installé. Dans ce cas, une installation manuelle sera nécessaire. Heureusement, cette installation est simple.

Les commandes liées au DNS telles que nslookup, dig et host sont incluses dans la bibliothèque bind-utils. Pour l’installer, entrez simplement la commande suivante dans votre terminal:

sudo apt-get install dnsutils -y

Cette commande HOST est compatible avec les systèmes d’exploitation MAC et Linux.

Utilisation

Syntaxe générale: La commande host affiche sa syntaxe globale ainsi que les différents arguments possibles et leur description.

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host          
  Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
              [-R number] [-m flag] [-p port] hostname [server]
         -a is equivalent to -v -t ANY
         -A is like -a but omits RRSIG, NSEC, NSEC3
         -c specifies query class for non-IN data
         -C compares SOA records on authoritative nameservers
         -d is equivalent to -v
         -l lists all hosts in a domain, using AXFR
         -m set memory debugging flag (trace|record|usage)
         -N changes the number of dots allowed before root lookup is done
         -p specifies the port on the server to query
         -r disables recursive processing
         -R specifies number of retries for UDP packets
         -s a SERVFAIL response should stop query
         -t specifies the query type
         -T enables TCP/IP mode
         -U enables UDP mode
         -v enables verbose output
         -V print version number and exit
         -w specifies to wait forever for a reply
         -W specifies how long to wait for a reply
         -4 use IPv4 query transport only
         -6 use IPv6 query transport only
  

Obtenir l’adresse IP d’un domaine

Pour obtenir l’adresse IP d’un domaine, entrez simplement le nom de domaine après la commande host.

host Nom-du-domaine

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host toptips.fr.com
  toptips.fr.com has address 104.27.118.115
  toptips.fr.com has address 104.27.119.115
  toptips.fr.com has IPv6 address 2606:4700:20::681b:7673
  toptips.fr.com has IPv6 address 2606:4700:20::681b:7773
  toptips.fr.com mail is handled by 1 aspmx.l.google.com.
  toptips.fr.com mail is handled by 5 alt1.aspmx.l.google.com.
  toptips.fr.com mail is handled by 5 alt2.aspmx.l.google.com.
  toptips.fr.com mail is handled by 10 alt3.aspmx.l.google.com.
  toptips.fr.com mail is handled by 10 alt4.aspmx.l.google.com.
  

Pour une recherche complète et détaillée, utilisez l’option -a ou -v.

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host -a toptips.fr.com 
  Trying "toptips.fr.com"
  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24690
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

  ;; QUESTION SECTION:
  ;toptips.fr.com.                 IN      ANY

  ;; ANSWER SECTION:
  toptips.fr.com.          3789    IN      HINFO   "RFC8482" ""
  toptips.fr.com.          3789    IN      RRSIG   HINFO 13 2 3789 20220307065004 20220305045004 34505 toptips.fr.com. HW0Lfr5HazPMaACSBHmFqs94usKUljX+kONW/8Q2jwQ1QoAO9DEMjwDX rIQKODGtGnEizj2SzBF98mC2uQr7hQ==

  Received 161 bytes from 192.168.1.1#53 in 64 ms
  

L’option -a permet de consulter tous les enregistrements du domaine et les informations sur les zones. L’adresse du serveur DNS local est également affichée.

Effectuer une recherche inversée

Cette commande effectue une recherche inversée à partir d’une adresse IP et affiche le nom d’hôte ou de domaine associé.

Voici la syntaxe:

host adresse-ip-cible

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host dnsleaktest.com                                                                                  
  dnsleaktest.com has address 23.239.16.110
                                                                                                              
  ┌──(toptips.fr㉿kali)-[~]
  └─$ host 23.239.16.110  
  110.16.239.23.in-addr.arpa domain name pointer li685-110.members.linode.com.
  

En copiant et collant l’adresse du pointeur (li685-110.members.linode.com.) dans un navigateur, vous serez redirigé vers le site web.

Trouver les serveurs de noms de domaine

L’option -t permet de spécifier le type de requête. Utilisez-la pour obtenir les serveurs de noms de domaine.

Dans cet exemple, l’argument -t ns est utilisé pour obtenir les serveurs de noms d’un domaine spécifique.

L’enregistrement NS spécifie les serveurs de noms faisant autorité.

host -t ns nom-du-domaine

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host -t ns toptips.fr.com
  toptips.fr.com name server olga.ns.cloudflare.com.
  toptips.fr.com name server todd.ns.cloudflare.com.
  

Interroger un serveur de noms de domaine spécifique

Pour obtenir des détails sur un domaine en interrogeant un serveur de noms spécifique, utilisez la commande suivante:

host nom-du-domaine [serveur-de-noms]

Exemple de sortie:

  ┌──(root💀kali)-[/home/geekflare]
  └─# host toptips.fr.com  olga.ns.cloudflare.com.                                                           1 ⨯
  Using domain server:
  Name: olga.ns.cloudflare.com.
  Address: 173.245.58.137#53
  Aliases: 

  toptips.fr.com has address 104.27.118.115
  toptips.fr.com has address 104.27.119.115
  toptips.fr.com has IPv6 address 2606:4700:20::681b:7773
  toptips.fr.com has IPv6 address 2606:4700:20::681b:7673
  toptips.fr.com mail is handled by 1 aspmx.l.google.com.
  toptips.fr.com mail is handled by 5 alt1.aspmx.l.google.com.
  toptips.fr.com mail is handled by 5 alt2.aspmx.l.google.com.
  toptips.fr.com mail is handled by 10 alt3.aspmx.l.google.com.
  toptips.fr.com mail is handled by 10 alt4.aspmx.l.google.com.
  

Trouver les enregistrements MX d’un domaine

Pour obtenir la liste des enregistrements MX (Mail Exchanger) d’un domaine, utilisez cette commande:

host -t MX nom-du-domaine

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host -t mx  toptips.fr.com
  toptips.fr.com mail is handled by 1 aspmx.l.google.com.
  toptips.fr.com mail is handled by 5 alt1.aspmx.l.google.com.
  toptips.fr.com mail is handled by 5 alt2.aspmx.l.google.com.
  toptips.fr.com mail is handled by 10 alt3.aspmx.l.google.com.
  toptips.fr.com mail is handled by 10 alt4.aspmx.l.google.com.
  

L’ enregistrement MX est responsable de la redirection des e-mails vers un serveur de messagerie.

Trouver les enregistrements TXT d’un domaine

Pour obtenir la liste des enregistrements TXT d’un domaine (informations lisibles concernant un serveur de domaine):

host -t txt nom-du-domaine

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host -t txt toptips.fr.com
  toptips.fr.com descriptive text "google-site-verification=MRSwa454qay1S6pwwixzoiZl08kfJfkhiQIslhok3-A"
  toptips.fr.com descriptive text "google-site-verification=7QXbgb492Y5NVyWzSAgAScfUV3XIAGTKKZfdpCvcaGM"
  toptips.fr.com descriptive text "yandex-verification: 42f25bad396e79f5"
  toptips.fr.com descriptive text "v=spf1 include:_spf.google.com include:mailgun.org include:zcsend.net ~all"
  toptips.fr.com descriptive text "ahrefs-site-verification_8eefbd2fe43a8728b6fd14a393e2aff77b671e41615d2c1c6fc365ec33a4d6d0"
  toptips.fr.com descriptive text "ca3-7fbfaa573ba248ddb17a618e5b46ca01"
  

Trouver l’enregistrement SOA d’un domaine

Pour obtenir la liste des enregistrements SOA (Start of Authority) d’un domaine:

host -t soa nom-du-domaine

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host -t soa toptips.fr.com
  toptips.fr.com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600
  

Utilisez la commande ci-dessous pour comparer les enregistrements SOA de tous les serveurs de noms faisant autorité pour une zone particulière (la partie spécifique de l’espace de noms DNS).

host -C nom-du-domaine

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host -C toptips.fr.com                                                                                 2 ⨯
  Nameserver 173.245.58.137:
          toptips.fr.com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600
    

Trouver les enregistrements CNAME d’un domaine

CNAME (Canonical Name) est un enregistrement DNS qui redirige un domaine vers un autre, en faisant correspondre le nom de domaine d’origine à un alias.

Pour obtenir les enregistrements CNAME d’un domaine, utilisez cette commande:

host -t cname nom-du-domaine

Exemple de sortie:

  ┌──(toptips.fr㉿kali)-[~]
  └─$ host -t cname  toptips.fr.com
  toptips.fr.com has no CNAME record
  

Si le domaine cible possède des enregistrements CNAME, ils seront affichés après l’exécution de la commande.

Trouver les informations TTL d’un domaine

Time to Live (TTL) représente la durée de vie. Il fait partie du serveur de noms de domaine et est défini automatiquement par un serveur de noms faisant autorité pour chaque enregistrement DNS.

En d’autres termes, TTL est la durée pendant laquelle un serveur DNS met en cache un enregistrement avant de mettre à jour les données. Utilisez cette commande pour voir les informations TTL d’un nom de domaine:

host -v -t a nom-du-domaine

Exemple de sortie:

  ┌──(root💀kali)-[/home/geekflare]
  └─# host -v -t a toptips.fr.com                                                                            1 ⨯
  Trying "toptips.fr.com"
  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2479
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

  ;; QUESTION SECTION:
  ;toptips.fr.com.                 IN      A

  ;; ANSWER SECTION:
  toptips.fr.com.          30      IN      A       104.27.119.115
  toptips.fr.com.          30      IN      A       104.27.118.115

  Received 63 bytes from 192.168.1.1#53 in 60 ms
    

Conclusion

Cet article vous a fourni des exemples concrets d’utilisation de la commande HOST pour interroger les détails DNS.

Des outils en ligne gratuits sont également disponibles pour vérifier les enregistrements DNS d’un nom de domaine. Vous pouvez les trouver en ligne et les tester.