Este tutorial se concentrará em um uso importante do NMAP, eu.e., Host Discovery and Host Discovery Metodology. É bom observar que este não é um guia para iniciantes para trabalhar com NMAP ou metodologia de coleta de informações em testes de penetração.
O que é a descoberta do host
O processo de descoberta do host do NMAP refere-se à enumeração dos hosts de rede para coletar informações sobre eles para criar um plano de ataque no teste de caneta.
Durante a descoberta do host, o NMAP usa elementos como ping e um script interno para pesquisar sistemas operacionais, portas e serviços de execução usando protocolos TCP e UDP. Se especificado, você pode ativar o mecanismo de script nmap que usa vários scripts para procurar vulnerabilidades contra o host.
O processo de descoberta do host empregado pela NMAP utiliza pacotes ICMP crus. Esses pacotes podem ser desativados ou filtrados por firewalls (raramente) e administradores de sistemas muito cautelosos. No entanto, o NMAP nos fornece uma varredura furtiva, como veremos neste tutorial.
Vamos começar.
Descoberta de rede
Sem perder muito tempo, vamos examinar vários métodos para executar a descoberta do host e superar várias limitações causadas por dispositivos de segurança de rede, como firewalls.
1: Ping ICMP clássico
Você pode realizar a descoberta do host com um simples Solicitação de eco ICMP onde o host responde com um ICMP Echo Responder.
Para enviar uma solicitação de eco ICMP com o NMAP, digite o comando:
$ nmap -pe -sn 192.168.0.16
A saída será parecida como mostrado abaixo:
Iniciando NMAP 7.91 (https: // nmap.org)
Relatório de varredura para 192.168.0.16
Host está em alta (0.11s latência).
Endereço MAC: CE: 08: 6b: 18: 11: D4 (TP-Link Technologies)
NMAP Concluído: 1 endereço IP (1 host up) digitalizado em 0.62 segundos
No comando acima, dizemos ao NMAP para enviar uma solicitação de eco ping (-pe) para o alvo. Se receber uma resposta do ICMP, o host está em alta.
Abaixo está uma captura de tela do Wireshark do comando nmap -sn -pe:
Considere o recurso fornecido abaixo para saber mais sobre o Protocolo ICMP.
https: // linkfy.para/icmp
OBSERVAÇÃO: Os pedidos de eco do ICMP não são confiáveis e não tiram uma conclusão com base na resposta. Por exemplo, considere o mesmo pedido à Microsoft.com
$ NMAP -SN -PE Microsoft.com
A saída será como mostrado abaixo:
Iniciando NMAP 7.91 NOTA: Host parece baixo.
Se realmente estiver acontecendo, mas bloqueando nossas sondas de ping, tente -pn
NMAP feito:
1 endereço IP (0 hosts up) digitalizado em 2.51 segundos
Aqui está uma captura de tela para análise Wireshark:
2: TCP Syn Ping
Outro método de descoberta de host é usar uma varredura NMAP TCP Syn Ping. Se você estiver familiarizado com os três apertos de mão TCP Syn/ACK, o NMAP empresta a tecnologia e envia uma solicitação para várias portas para determinar se o host está atualizado ou usando filtros permissivos.
Se dissermos ao NMAP para usar o Syn Ping, ele enviará o pacote para a porta de destino e, se o host estiver em alta, ele responderá com um pacote ACK. Se o host estiver inativo, ele responderá com um primeiro pacote.
Use o comando como mostrado abaixo para executar uma solicitação de Syn Ping.
SUDO NMAP -SN -PS ScanMe.NMAP.org
A resposta deste comando deve indicar se o host está para cima ou para baixo. A seguir, é apresentado um filtro Wireshark da solicitação.
TCP.bandeiras.syn && tcp.bandeiras.ACK
OBSERVAÇÃO: Usamos o -PS para especificar que queremos usar a solicitação de Syn Ping TCP, que pode ser um método mais eficiente do que os pacotes ICMP brutos. A seguir, é apresentada uma solicitação NMAP da Microsoft.com Usando TCP Syn.
$ NMAP -SN -PS Microsoft.com
A saída é mostrada abaixo:
Iniciando NMAP 7.91 (https: // nmap.org)
Relatório de varredura NMAP para Microsoft.com (104.215.148.63)
Host está em alta (0.29s latência).
Outros endereços para Microsoft.com (não digitalizado): 40.112.72.205 13.77.161.179 40.113.200.201 40.76.4.15
NMAP feito:
1 endereço IP (1 host up) digitalizado em 1.08 segundos
3: TCP ACK Ping
O método TCP ACK Ping é um filho da solicitação de Syn Ping. Funciona da mesma forma, mas em vez disso, usa o pacote ACK. Neste método, o NMAP tenta algo inteligente.
Começa enviando um pacote TCP ACK vazio para o host. Se o host estiver offline, o pacote não deve obter nenhuma resposta. Se online, o host responderá com um pacote primeiro indicando que o host está em alta.
Se você não está familiarizado com o primeiro (pacote de redefinição), é o pacote enviado após o recebimento de um pacote TCP inesperado. Como o pacote ACK NMAP envia não é uma resposta ao SYN, o host deve devolver um pacote RST.
Para inicializar um ping nmap ack, use o comando como:
$ NMAP -SN -PA 192.168.0.16
Dada saída abaixo:
Iniciando NMAP 7.91 (https: // nmap.org)
Relatório de varredura NMAP para 192.168.0.16
Host está em alta (0.15s latência).
Endereço MAC: CE: 08: 6b: 18: 11: D4 (TP-Link Technologies)
NMAP feito:
1 endereço IP (1 host up) digitalizado em 0.49 segundos
4: UDP Ping
Vamos falar sobre outra opção para a descoberta do host no NMAP, eu.e., UDP Ping.
UDP Ping funciona enviando pacotes UDP para as portas especificadas do host de destino. Se o host estiver online, o pacote UDP poderá encontrar uma porta fechada e responder com uma mensagem inacessível da porta ICMP. Se o host estiver inativo, o prompt será várias mensagens de erro do ICMP, como o TTL excedido ou nenhuma resposta.
A porta padrão para ping UDP é 40, 125. O ping UDP é uma boa técnica para usar ao realizar a descoberta do host para hosts por trás de um firewall e filtros. Isso ocorre porque a maioria dos firewalls procura e bloqueia o TCP, mas permite o tráfego do protocolo UDP.
Para executar a descoberta do host nmap com ping UDP, use o comando abaixo:
SUDO NMAP -SN -PU SCANME.NMAP.org
A saída do comando acima é examinável usando o Wireshark, conforme mostrado na captura de tela abaixo. Filtro de Wireshark usado - UDP.porta == 40125
Como você pode ver na captura de tela acima, o NMAP envia um ping UDP para o IP 45.33.32.156 (ScanMe.NMAP.org). O servidor responde com o ICMP inacessível, o que indica que o host está em alta.
5: arp ping
Não podemos esquecer o método ARP Ping que funciona muito bem para a descoberta de hosts nas redes locais. O método ARP Ping funciona enviando uma série de sondas ARP para o intervalo de endereço IP especificado e descobre hosts ao vivo. Arp ping é rápido e muito confiável.
Para executar um ping ARP usando o NMAP, use o comando:
sudo nmap -sn -pr 192.168.0.1/24
Se você examinar o comando com Wireshark e filtrar ARP da fonte 192.168.0.30, você receberá uma captura de tela de solicitações de sonda de transmissão ARP, como mostrado abaixo. O filtro Wireshark usado é: ARP.src.proto_ipv4 == 192.168.0.30
Tcp syn furtom
Você descobrirá que a Syn Scan é uma boa opção para a descoberta do host, porque é rápida e pode digitalizar uma série de portas em segundos, desde que sistemas de segurança como firewalls não interfiram. Syn também é muito poderoso e furtivo, pois funciona por solicitações incompletas de TCP.
Não vou entrar nos detalhes de como o TCP Syn/ACK funciona, mas você pode aprender mais sobre isso com os vários recursos fornecidos abaixo:
Para executar o NMAP TCP Syn Stealth Scan, use o comando:
sudo nmap -ss 192.168.0.1/24
Eu forneci uma captura Wireshark do comando nmap -SS e o NMAP achados da varredura, examine -os e veja como funciona. Procure solicitações TCP incompletas com o pacote RST.
Conclusão
Para recapitular, focamos em discutir como usar o recurso de descoberta do host nmap e obter informações sobre o host especificado. Também discutimos qual método usar quando você precisa executar a descoberta de host para hosts por trás dos firewalls, bloqueando solicitações de ping ICMP e muito mais.
Explore o NMAP para obter um conhecimento mais profundo.