Este tutorial se concentrará em um uso chave do Nmap, i.e., descoberta de host e metodologia de descoberta de host. É bom notar 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 é Host Discovery
O processo de descoberta de host Nmap refere-se à enumeração de hosts de rede para reunir informações sobre eles para construir um plano de ataque no pen-testing.
Durante a descoberta do host, o Nmap usa elementos como Ping e um script embutido para pesquisar sistemas operacionais, portas e serviços em execução usando protocolos TCP e UDP. Se especificado, você pode ativar o mecanismo de script Nmap que usa vários scripts para pesquisar vulnerabilidades no host.
O processo de descoberta de host empregado pelo Nmap utiliza pacotes ICMP brutos. Esses pacotes podem ser desabilitados ou filtrados por firewalls (raramente) e administradores de sistema 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 realizar a descoberta de 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 de host com um simples Solicitação de eco ICMP onde o host responde com um ICMP echo reply.
Para enviar uma solicitação de eco ICMP com Nmap, digite o comando:
$ nmap -PE -sn 192.168.0.16A saída será semelhante à mostrada abaixo:
Iniciando o Nmap 7.91 (https: // nmap.org)relatório de varredura para 192.168.0.16
Host está ativo (0.Latência 11s).
Endereço MAC: EC: 08: 6B: 18: 11: D4 (Tecnologias Tp-link)
Nmap concluído: 1 endereço IP (1 host) verificado em 0.62 segundos
No comando acima, dizemos ao Nmap para enviar uma solicitação de eco de ping (-PE) para o alvo. Se receber uma resposta ICMP, o host está ativo.
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
NOTA: As solicitações de eco ICMP não são confiáveis e não chegam a uma conclusão com base na resposta. Por exemplo, considere o mesmo pedido para a Microsoft.com
$ nmap -sn -PE microsoft.comA saída será conforme mostrado abaixo:
Iniciando o Nmap 7.91 Observação: o host parece inativo.Se estiver realmente ativo, mas bloqueando nossas sondagens de ping, tente -Pn
Nmap concluído:
1 endereço IP (0 hosts ativos) verificado em 2.51 segundos
Aqui está uma captura de tela para a análise do Wireshark:
2: Ping TCP SYN
Outro método de descoberta de host é usar uma varredura de ping Nmap TCP SYN. Se você estiver familiarizado com os três handshakes TCP SYN / ACK, o Nmap pega emprestado da tecnologia e envia uma solicitação para várias portas para determinar se o host está ativo ou usando filtros permissivos.
Se dissermos ao Nmap para usar o ping SYN, ele envia o pacote para a porta de destino e, se o host estiver ativo, ele responde com um pacote ACK. Se o host estiver inativo, ele responde com um pacote RST.
Use o comando conforme mostrado abaixo para executar uma solicitação de ping SYN.
sudo nmap -sn -PS scanme.nmap.orgA resposta deste comando deve indicar se o host está ativo ou inativo. A seguir está um filtro Wireshark da solicitação.
tcp.bandeiras.syn && tcp.bandeiras.ack
NOTA: Usamos o -PS para especificar que queremos usar a solicitação de ping TCP SYN, que pode ser um método mais eficiente do que pacotes ICMP brutos. A seguir está uma solicitação de Nmap da Microsoft.com usando TCP SYN.
$ nmap -sn -PS microsoft.comO resultado é mostrado abaixo:
Iniciando o Nmap 7.91 (https: // nmap.org)Relatório de varredura Nmap para microsoft.com (104.215.148.63)
Host está ativo (0.Latência 29s).
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 concluído:
1 endereço IP (1 host) verificado em 1.08 segundos
3: Ping TCP ACK
O método de ping TCP ACK é filho da solicitação de ping SYN. Funciona de forma semelhante, mas em vez disso usa o pacote ACK. Neste método, NMAP tenta algo inteligente.
Ele 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 estiver online, o host responderá com um pacote RST indicando que o host está ativo.
Se você não está familiarizado com o RST (pacote de redefinição), é o pacote enviado após o recebimento de um pacote TCP inesperado. Uma vez que o pacote ACK que o Nmap envia não é uma resposta ao SYN, o host deve retornar um pacote RST.
Para inicializar um ping Nmap ACK, use o comando como:
$ nmap -sn -PA 192.168.0.16Dado o resultado abaixo:
Iniciando o Nmap 7.91 (https: // nmap.org)Relatório de varredura Nmap para 192.168.0.16
Host está ativo (0.Latência de 15s).
Endereço MAC: EC: 08: 6B: 18: 11: D4 (Tecnologias Tp-link)
Nmap concluído:
1 endereço IP (1 host) verificado em 0.49 segundos
4: Ping UDP
Vamos falar sobre outra opção para descoberta de host no Nmap, i.e., Ping UDP.
O ping UDP funciona enviando pacotes UDP para as portas especificadas do host de destino. Se o host estiver online, o pacote UDP pode encontrar uma porta fechada e responder com uma mensagem de porta ICMP inacessível. Se o host estiver inativo, o prompt será várias mensagens de erro ICMP, como 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 de host para hosts atrás de um firewall e filtros. Isso ocorre porque a maioria dos Firewalls procuram e bloqueiam o TCP, mas permitem o tráfego do protocolo UDP.
Para executar a descoberta de host Nmap com ping UDP, use o comando abaixo:
sudo nmap -sn -PU scanme.nmap.orgA saída do comando acima pode ser examinada usando o Wireshark, conforme mostrado na imagem abaixo. Filtro Wireshark usado - udp.porta == 40125
Como você pode ver na imagem acima, o Nmap envia um ping UDP para o IP 45.33.32.156 (scanme.nmap.org). O servidor responde com ICMP inacessível, o que indica que o host está ativo.
5: ARP Ping
Não podemos esquecer o método ARP ping que funciona muito bem para descoberta de host em redes locais. O método ARP ping funciona enviando uma série de sondagens ARP para um determinado intervalo de endereços IP e descobre hosts ativos. O ping ARP é rápido e muito confiável.
Para executar um ping ARP usando Nmap, use o comando:
sudo nmap -sn -PR 192.168.0.24/01Se você examinar o comando com o Wireshark e filtrar ARP da fonte 192.168.0.30, você obterá uma captura de tela das solicitações de sondagem ARP Broadcast, conforme mostrado abaixo. O filtro Wireshark usado é: arp.src.proto_ipv4 == 192.168.0.30
TCP SYN Stealth
Você descobrirá que a varredura SYN é uma boa opção para descoberta de host porque é rápida e pode fazer a varredura de 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 TCP incompletas.
Não entrarei em detalhes de como o TCP SYN / ACK funciona, mas você pode aprender mais sobre ele nos vários recursos fornecidos abaixo:
- https: // linkfy.para / tcpWiki
- https: // linkfy.explicado para / handshake de 3 vias
- https: // linkfy.para / anantomia de 3 vias
Para executar a varredura furtiva Nmap TCP SYN, use o comando:
sudo nmap -sS 192.168.0.24/01Eu forneci uma captura do Wireshark do comando Nmap -sS e os achados do Nmap da varredura, examine-os e veja como funciona. Procure por solicitações TCP incompletas com o pacote RST.
- https: // linkfy.para / threadshark-capture
- https: // linkfy.para / nmap-output-txt
Conclusão
Para recapitular, nos concentramos em discutir como usar o recurso de descoberta de host Nmap e obter informações sobre o host especificado. Também discutimos qual método usar quando você precisa realizar a descoberta de host para hosts atrás de firewalls, bloqueando solicitações de ping ICMP e muito mais.
Explore o Nmap para obter um conhecimento mais profundo.