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 à la fois sur MAC et sur 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 number] [-m flag] [-p port] hostname [server]
-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 l'indicateur 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 l'interrogation
-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 le transport de requête IPv4 uniquement
-6 utilise le transport de requête IPv6 uniquement
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
geekflare.com a l'adresse 104.27.118.115
geekflare.com a l'adresse 104.27.119.115
geekflare.com a l'adresse IPv6 2606:4700:20::681b:7673
geekflare.com a l'adresse IPv6 2606:4700:20::681b:7773
geekflare.com est traité par 1 aspmx.l.google.com.
geekflare.com est traité par 5 alt1.aspmx.l.google.com.
geekflare.com est traité par 5 alt2.aspmx.l.google.com.
geekflare.com est traité par 10 alt3.aspmx.l.google.com.
geekflare.com est traité 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
Trying "geekflare.com"
; ; ->>HEADER<<- opcode : QUERY, status : NOERROR, id : 24690
; ; flags : qr rd ra ; QUERY : 1, ANSWER : 2, AUTHORITY : 0, ADDITIONAL : 0
; ; QUESTION SECTION :
;geekflare.com. IN ANY
; ; ANSWER SECTION :
geekflare.com. 3789 IN HINFO "RFC8482" ""
geekflare.com. 3789 IN RRSIG HINFO 13 2 3789 20220307065004 20220305045004 34505 geekflare.com. HW0Lfr5HazPMaACSBHmFqs94usKUljX kONW/8Q2jwQ1QoAO9DEMjwDX rIQKODGtGnEizj2SzBF98mC2uQr7hQ==
A 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
geekflare.com serveur de noms olga.ns.cloudflare.com.
geekflare.com serveur de noms todd.ns.cloudflare.com.
Pour interroger certains serveurs de noms de domaine
Pour demander des détails sur un serveur de noms de domaine spécifique faisant autorité, utilisez la commande ci-dessous.
host target-domain [name-server]
Exemple de sortie :
┌──(root💀kali)-[/home/geekflare]
└─# host geekflare.com olga.ns.cloudflare.com. 1 ⨯
Utilisation du serveur de domaine :
Nom : olga.ns.cloudflare.com.
Adresse : 173.245.58.137#53
Alias :
geekflare.com a l'adresse 104.27.118.115
geekflare.com a l'adresse 104.27.119.115
geekflare.com a l'adresse IPv6 2606:4700:20::681b:7773
geekflare.com a l'adresse IPv6 2606:4700:20::681b:7673
geekflare.com mail is handled by 1 aspmx.l.google.com.
geekflare.com est traité par 5 alt1.aspmx.l.google.com.
geekflare.com est traité par 5 alt2.aspmx.l.google.com.
geekflare.com est traité par 10 alt3.aspmx.l.google.com.
geekflare.com est traité 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
geekflare.com le courrier est traité par 1 aspmx.l.google.com.
geekflare.com le courrier est traité par 5 alt1.aspmx.l.google.com.
le courrier de geekflare.com est pris en charge par 5 alt2.aspmx.l.google.com.
Le courrier de geekflare.com est pris en charge par 10 alt3.aspmx.l.google.com.
Le courrier de geekflare.com 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
geekflare.com descriptive text "google-site-verification=MRSwa454qay1S6pwwixzoiZl08kfJfkhiQIslhok3-A"
geekflare.com texte descriptif "google-site-verification=7QXbgb492Y5NVyWzSAgAScfUV3XIAGTKKZfdpCvcaGM"
geekflare.com texte descriptif "yandex-verification : 42f25bad396e79f5"
geekflare.com texte descriptif "v=spf1 include:_spf.google.com include:mailgun.org include:zcsend.net ~all"
geekflare.com texte descriptif "ahrefs-site-verification_8eefbd2fe43a8728b6fd14a393e2aff77b671e41615d2c1c6fc365ec33a4d6d0"
geekflare.com 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
geekflare.com a 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 domaine-cible
Exemple de sortie :
┌──(geekflare㉿kali)-[~]
└─$ host -C geekflare.com 2 ⨯
Nameserver 173.245.58.137 :
geekflare.com 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
geekflare.com n'a pas d'enregistrement CNAME
Si le nom de domaine cible possède des enregistrements CNAME, ils seront affichés 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 1 ⨯
Trying "geekflare.com"
; ; ->>HEADER<<- opcode : QUERY, status : NOERROR, id : 2479
; ; flags : qr rd ra ; QUERY : 1, ANSWER : 2, AUTHORITY : 0, ADDITIONAL : 0
; ; QUESTION SECTION :
;geekflare.com. IN A
; ; ANSWER SECTION :
geekflare.com. 30 IN A 104.27.119.115
geekflare.com. 30 IN A 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 hôte 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.