La commande HOST est un utilitaire simple de l’interface de ligne de commande qui permet d’effectuer une énumération DNS.

Dans le domaine de la recherche en sécurité et du piratage éthique, l’énumération DNS est la première phase de la collecte d’informations sur une cible. Il s’agit d’interroger tous les enregistrements DNS potentiels d’un serveur de noms de domaine, tels que les détails du serveur de noms, les adresses IP, les détails de l’échangeur de courrier, les TTL, etc.

Les attaquants peuvent utiliser ces informations énumérées par le DNS pour examiner les enregistrements du réseau interne.

Il existe de nombreux outils de reconnaissance DNS et d’énumération en ligne disponibles sur l’internet. Cependant, l’énumération DNS peut être réalisée facilement à l’aide d’un seul utilitaire de ligne de commande. Il s’agit de “HOST”.

Dans cet article, nous allons voir quelques exemples de commandes HOST utiles pour interroger les détails du DNS.

C’est parti !

L’installation

La commande “HOST” peut parfois ne pas être disponible par défaut sur une machine nouvellement installée. Par conséquent, vous devrez l’installer manuellement sur le système. Le processus d’installation est assez simple.

Toutes les commandes liées au DNS comme nslookup, dig et host sont contenues dans la bibliothèque “bind-utils”. Pour cela, tapez simplement la commande suivante dans le terminal.

sudo apt-get install dnsutils -y

Cette commande HOST fonctionne sur MAC et Linux.

Utilisation

Syntaxe générale : La commande générale “host” affiche la syntaxe générale de la commande et les arguments qui peuvent être utilisés avec elle, ainsi qu’une brève description de chaque argument.

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host    
Utilisation : host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
            [-R nombre] [-m drapeau] [-p port] nom d'hôte [serveur]
       -a est équivalent à -v -t ANY
       -A est comme -a mais omet RRSIG, NSEC, NSEC3
       -c spécifie la classe de requête pour les données non IN
       -C compare les enregistrements SOA sur les serveurs de noms faisant autorité
       -d est équivalent à -v
       -l liste tous les hôtes d'un domaine, en utilisant AXFR
       -m définit le drapeau de débogage de la mémoire (trace|record|usage)
       -N modifie le nombre de points autorisés avant la recherche de la racine
       -p spécifie le port du serveur à interroger
       -r désactive le traitement récursif
       -R spécifie le nombre de tentatives pour les paquets UDP
       -s une réponse SERVFAIL doit interrompre la requête
       -t spécifie le type de requête
       -T active le mode TCP/IP
       -U active le mode UDP
       -v active la sortie verbeuse
       -V imprime le numéro de version et quitte
       -w spécifie d'attendre indéfiniment une réponse
       -W spécifie la durée d'attente d'une réponse
       -4 utilise uniquement le transport de requêtes IPv4
       -6 utilise uniquement le transport de requêtes IPv6

Pour trouver l’adresse IP d’un domaine

Pour trouver l’adresse IP d’un domaine particulier, il suffit de passer le nom du domaine cible comme argument après la commande host.

host Domaine cible

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host geekflare.com/fr
geekflare.com/fr a l'adresse 104.27.118.115
geekflare.com/fr a l'adresse 104.27.119.115
geekflare.com/fr a l'adresse IPv6 2606:4700:20::681b:7673
geekflare.com/fr a l'adresse IPv6 2606:4700:20::681b:7773
le courrier de geekflare.com/fr est géré par 1 aspmx.l.google.com.
geekflare.com/fr le courrier est pris en charge par 5 alt1.aspmx.l.google.com.
geekflare.com/fr est pris en charge par 5 alt2.aspmx.l.google.com.
geekflare.com/fr le courrier est pris en charge par 10 alt3.aspmx.l.google.com.
le courrier de geekflare.com/fr est pris en charge par 10 alt4.aspmx.l.google.com.

Pour une recherche complète en mode verbeux, utilisez l’option -a ou -v.

Exemple de sortie :

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

; ; SECTION DE LA QUESTION :
;geekflare.com/fr.                 EN TOUT

; ; SECTION RÉPONSE :
geekflare.com/fr.          3789 DANS HINFO "RFC8482" ""
geekflare.com/fr.          3789 IN RRSIG HINFO 13 2 3789 20220307065004 20220305045004 34505 geekflare.com/fr. HW0Lfr5HazPMaACSBHmFqs94usKUljX kONW/8Q2jwQ1QoAO9DEMjwDX rIQKODGtGnEizj2SzBF98mC2uQr7hQ==

Reçu 161 octets de 192.168.1.1#53 en 64 ms

Cette option (-a) est utilisée pour trouver tous les enregistrements de domaine et les informations sur les zones. Vous pouvez également noter l’adresse du serveur DNS local utilisé pour la recherche.

Pour effectuer une recherche inversée

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

A titre d’exemple, la syntaxe serait la suivante :

host adresse-ip-cible

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host dnsleaktest.com               
dnsleaktest.com a l'adresse 23.239.16.110
                                                                                                              
┌──(geekflare㉿kali)-[~]
└─$ host 23.239.16.110  
110.16.239.23.in-addr.arpa domain name pointer li685-110.members.linode.com.

Si vous copiez-collez l’adresse du pointeur ( li685-110.members.linode.com.) dans le navigateur web, vous serez redirigé vers le site web.

Pour trouver les serveurs de noms de domaine

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

Ici, je passe l’argument -t pour trouver les serveurs de noms d’un nom de domaine spécifique.

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

host -t ns domaine-cible

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host -t ns geekflare.com/fr
geekflare.com/fr serveur de noms olga.ns.cloudflare.com.
geekflare.com/fr serveur de noms todd.ns.cloudflare.com.

Pour interroger certains serveurs de noms de domaine

Pour obtenir des informations sur un serveur de noms de domaine spécifique faisant autorité, utilisez la commande suivante.

host target-domain [name-server]

Exemple de sortie :

┌──(root💀kali)-[/home/geekflare]
└─# host geekflare.com/fr olga.ns.cloudflare.com.                                                           1 ⨯
Utilisation du serveur de domaine :
Nom : olga.ns.cloudflare.com.
Adresse : 173.245.58.137#53
Alias : 

geekflare.com/fr a l'adresse 104.27.118.115
geekflare.com/fr a l'adresse 104.27.119.115
geekflare.com/fr a l'adresse IPv6 2606:4700:20::681b:7773
geekflare.com/fr a l'adresse IPv6 2606:4700:20::681b:7673
le courrier de geekflare.com/fr est géré par 1 aspmx.l.google.com.
geekflare.com/fr le courrier est pris en charge par 5 alt1.aspmx.l.google.com.
geekflare.com/fr est pris en charge par 5 alt2.aspmx.l.google.com.
geekflare.com/fr le courrier est pris en charge par 10 alt3.aspmx.l.google.com.
le courrier de geekflare.com/fr est pris en charge par 10 alt4.aspmx.l.google.com.

Pour trouver les enregistrements MX d’un domaine

Pour obtenir une liste des enregistrements MX (Mail Exchanger) d’un domaine, procédez comme suit

host -t MX domaine-cible

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host -t mx geekflare.com/fr
le courrier de geekflare.com/fr est pris en charge par 1 aspmx.l.google.com.
geekflare.com/fr le courrier est pris en charge par 5 alt1.aspmx.l.google.com.
geekflare.com/fr est pris en charge par 5 alt2.aspmx.l.google.com.
geekflare.com/fr le courrier est pris en charge par 10 alt3.aspmx.l.google.com.
le courrier de geekflare.com/fr est pris en charge par 10 alt4.aspmx.l.google.com.

Cet enregistrement MX est responsable de l’acheminement d’un courriel vers un serveur de messagerie.

Pour trouver les enregistrements TXT d’un domaine

Pour obtenir une liste des enregistrements TXT d’un domaine (informations lisibles par l’homme sur un serveur de domaine), procédez comme suit

host -t txt domaine-cible

Exemple de sortie :

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

Pour trouver l’enregistrement SOA d’un domaine

Pour obtenir une liste des enregistrements SOA ( start of authority ) d’un domaine

host -t soa domaine-cible

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host -t soa geekflare.com/fr
geekflare.com/fr a un enregistrement SOA 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 domaine-cible

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host -C geekflare.com/fr 2 ⨯
Serveur de noms 173.245.58.137 :
        geekflare.com/fr a un enregistrement SOA olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600

Pour trouver les enregistrements CNAME d’un domaine

CNAME signifie enregistrement de nom canonique. Cet enregistrement DNS est responsable de la redirection d’un domaine vers un autre, ce qui signifie qu’il fait correspondre le nom de domaine original à un alias.

Pour trouver les enregistrements DNS CNAME d’un domaine, utilisez la commande ci-dessous.

host -t cname domaine-cible

Exemple de sortie :

┌──(geekflare㉿kali)-[~]
└─$ host -t cname geekflare.com/fr
geekflare.com/fr n'a pas d'enregistrement CNAME

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

Pour trouver des informations sur le TTL d’un domaine

TTL est l’abréviation de Time to live (temps de vie). Il fait partie du serveur de noms de domaine. Il est automatiquement défini par un serveur de noms faisant autorité pour chaque enregistrement DNS.

En d’autres termes, le TTL indique la durée pendant laquelle un serveur DNS met en cache un enregistrement avant d’actualiser les données. Utilisez la commande ci-dessous pour voir les informations TTL d’un nom de domaine.

host -v -t a domaine-cible

Exemple de sortie :

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

; ; SECTION DE LA QUESTION :
;geekflare.com/fr.                 EN A

; ; SECTION RÉPONSE :
geekflare.com/fr.          30 DANS A 104.27.119.115
geekflare.com/fr.          30 DANS UN 104.27.118.115

Reçu 63 octets de 192.168.1.1#53 en 60 ms

Conclusion

J’espère que cet article vous a aidé à apprendre quelques exemples de commandes host utiles pour interroger les détails DNS.

Vous pourriez également être intéressé par des outils en ligne gratuits pour vérifier les enregistrements DNS d’un nom de domaine.