Domine o Comando HOST: Guia Completo de Consultas DNS

Explorando o Comando HOST para Consultas DNS

O comando HOST é uma ferramenta de linha de comando essencial para realizar buscas no sistema de nomes de domínio (DNS). Trata-se de um utilitário simples, mas poderoso, que permite obter informações detalhadas sobre domínios e servidores.

Em atividades de segurança cibernética e hacking ético, a enumeração de DNS é frequentemente o primeiro passo na coleta de dados sobre um alvo. Esse processo consiste em pesquisar todos os registros DNS possíveis associados a um servidor de domínio, como informações sobre servidores de nomes, endereços IP, detalhes de servidores de e-mail, tempos de vida (TTL) e outros dados relevantes.

A posse dessas informações permite que invasores examinem a estrutura interna de uma rede, identificando vulnerabilidades e pontos de entrada. Embora existam várias ferramentas online dedicadas à análise de DNS, o comando HOST oferece uma maneira rápida e eficiente de realizar essas consultas diretamente na linha de comando.

Este artigo explorará alguns exemplos práticos de uso do comando HOST, demonstrando sua capacidade de obter detalhes cruciais sobre o DNS. Vamos mergulhar no mundo das consultas DNS!

Instalação

Em algumas instalações de sistema, o comando “HOST” pode não estar disponível por padrão. Portanto, pode ser necessário instalá-lo manualmente. O processo de instalação é bastante direto:

Todos os utilitários de DNS, como `nslookup`, `dig` e `host`, fazem parte do pacote “bind-utils”. Para instalá-lo, execute o seguinte comando no seu terminal:

sudo apt-get install dnsutils -y

Este comando funciona tanto em sistemas macOS quanto Linux.

Utilização

Sintaxe geral: O comando “host” sem parâmetros exibe sua sintaxe geral e os argumentos que podem ser utilizados, juntamente com uma breve descrição de cada um:

Saída de amostra:

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

Obtendo o Endereço IP de um Domínio

Para encontrar o endereço IP de um domínio específico, basta inserir o nome do domínio como argumento após o comando `host`:

host nome-do-dominio

Saída de amostra:

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

Para uma pesquisa detalhada, utilize as opções `-a` ou `-v`, que ativam o modo verbose:

Saída de amostra:

host -a etechpt.com.com 
Trying "etechpt.com.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24690
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;etechpt.com.com.                 IN      ANY

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

Received 161 bytes from 192.168.1.1#53 in 64 ms

Essa opção (-a) é usada para obter todos os registros e informações de zona do domínio. Também é possível visualizar o endereço do servidor DNS local usado na pesquisa.

Realizando Uma Pesquisa Inversa

O comando `host` também possibilita realizar uma pesquisa inversa de DNS, consultando um endereço IP para descobrir o nome do host ou domínio associado:

Por exemplo, a sintaxe seria:

host endereco-ip-alvo

Saída de amostra:

host dnsleaktest.com
dnsleaktest.com has address 23.239.16.110

host 23.239.16.110
110.16.239.23.in-addr.arpa domain name pointer li685-110.members.linode.com.

Ao copiar e colar o endereço de ponteiro (`li685-110.members.linode.com.`) no navegador, você será redirecionado para o site correspondente.

Localizando Servidores de Nomes de Domínio

Utilize a opção `-t` para especificar o tipo de consulta e obter os servidores de nomes de um domínio. O registro NS especifica os servidores de nomes autorizados para o domínio:

host -t ns nome-do-dominio

Saída de amostra:

host -t ns etechpt.com.com
etechpt.com.com name server olga.ns.cloudflare.com.
etechpt.com.com name server todd.ns.cloudflare.com.

Consultando Um Servidor de Nomes Específico

Para consultar informações de um domínio em um servidor de nomes específico, utilize a seguinte sintaxe:

host nome-do-dominio [servidor-de-nomes]

Saída de amostra:

host etechpt.com.com  olga.ns.cloudflare.com.
Using domain server:
Name: olga.ns.cloudflare.com.
Address: 173.245.58.137#53
Aliases: 

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

Obtendo Registros MX de um Domínio

Para visualizar a lista de registros MX (Mail Exchanger) de um domínio:

host -t MX nome-do-dominio

Saída de amostra:

host -t mx  etechpt.com.com
etechpt.com.com mail is handled by 1 aspmx.l.google.com.
etechpt.com.com mail is handled by 5 alt1.aspmx.l.google.com.
etechpt.com.com mail is handled by 5 alt2.aspmx.l.google.com.
etechpt.com.com mail is handled by 10 alt3.aspmx.l.google.com.
etechpt.com.com mail is handled by 10 alt4.aspmx.l.google.com.

Os registros MX são responsáveis por direcionar e-mails para o servidor de e-mail correto.

Visualizando Registros TXT de um Domínio

Para obter a lista de registros TXT (informações textuais legíveis) de um domínio:

host -t txt nome-do-dominio

Saída de amostra:

host -t txt etechpt.com.com
etechpt.com.com descriptive text "google-site-verification=MRSwa454qay1S6pwwixzoiZl08kfJfkhiQIslhok3-A"
etechpt.com.com descriptive text "google-site-verification=7QXbgb492Y5NVyWzSAgAScfUV3XIAGTKKZfdpCvcaGM"
etechpt.com.com descriptive text "yandex-verification: 42f25bad396e79f5"
etechpt.com.com descriptive text "v=spf1 include:_spf.google.com include:mailgun.org include:zcsend.net ~all"
etechpt.com.com descriptive text "ahrefs-site-verification_8eefbd2fe43a8728b6fd14a393e2aff77b671e41615d2c1c6fc365ec33a4d6d0"
etechpt.com.com descriptive text "ca3-7fbfaa573ba248ddb17a618e5b46ca01"

Obtendo o Registro SOA de um Domínio

Para obter o registro SOA (Start of Authority) de um domínio:

host -t soa nome-do-dominio

Saída de amostra:

host -t soa etechpt.com.com
etechpt.com.com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600

Para comparar os registros SOA de todos os servidores de nome autoritativos de uma zona, utilize:

host -C nome-do-dominio

Saída de amostra:

host -C etechpt.com.com
Nameserver 173.245.58.137:
        etechpt.com.com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600

Localizando Registros CNAME de um Domínio

Um registro CNAME (Canonical Name) é responsável por redirecionar um domínio para outro, mapeando o nome de domínio original para um alias. Para descobrir os registros CNAME de um domínio, utilize:

host -t cname nome-do-dominio

Saída de amostra:

host -t cname  etechpt.com.com
etechpt.com.com has no CNAME record

Caso o domínio possua algum registro CNAME, ele será exibido na saída do comando.

Obtendo Informações de TTL de um Domínio

TTL (Time to Live) é o tempo que um registro DNS fica armazenado em cache antes de ser atualizado. Para visualizar as informações de TTL de um domínio, execute:

host -v -t a nome-do-dominio

Saída de amostra:

host -v -t a etechpt.com.com
Trying "etechpt.com.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2479
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;etechpt.com.com.                 IN      A

;; ANSWER SECTION:
etechpt.com.com.          30      IN      A       104.27.119.115
etechpt.com.com.          30      IN      A       104.27.118.115

Received 63 bytes from 192.168.1.1#53 in 60 ms

Conclusão

Esperamos que este artigo tenha sido útil para entender como utilizar o comando `host` para obter informações detalhadas sobre DNS. Essa ferramenta versátil é essencial para administradores de sistema, profissionais de segurança e qualquer pessoa que precise investigar a infraestrutura de rede por meio do DNS.

Se você quiser aprofundar seus conhecimentos, você pode também explorar ferramentas online gratuitas para verificar os registros DNS de um nome de domínio.