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.