Agora que já definimos nosso alvo, é importante saber se o mesmo está ativo e mesmo que ele se encontre por trás de um firewall, o Nmap nos entrega algumas opções para que possamos usar para dar bypass no firewall e descobrirmos se o host se encontra ativo.
Vamos ver algumas dessas opções e como usar cada uma:
-sL (list scan) :: lista os hosts sem fazer o envio de qualquer pacote. Esse parâmetro é muito simples e como não faz uso do envio de pacotes, ele não pode ser combinado com parâmetros de scan de porta, descoberta de SO ou scan via ping.
# nmap -sL www.scanme.org/28
Starting Nmap 6.47 ( http://nmap.org ) at
Nmap scan report for tsukasa.chibi.ca (74.207.244.208)
Nmap scan report for li86-209.members.linode.com (74.207.244.209)
Nmap scan report for li86-210.members.linode.com (74.207.244.210)
Nmap scan report for li86-211.members.linode.com (74.207.244.211)
Nmap scan report for li86-212.members.linode.com (74.207.244.212)
Nmap scan report for li86-213.members.linode.com (74.207.244.213)
Nmap scan report for li86-214.members.linode.com (74.207.244.214)
Nmap scan report for li86-215.members.linode.com (74.207.244.215)
Nmap scan report for li86-216.members.linode.com (74.207.244.216)
Nmap scan report for li86-217.members.linode.com (74.207.244.217)
Nmap scan report for li86-218.members.linode.com (74.207.244.218)
Nmap scan report for li86-219.members.linode.com (74.207.244.219)
Nmap scan report for li86-220.members.linode.com (74.207.244.220)
Nmap scan report for scanme.org (74.207.244.221)
rDNS record for 74.207.244.221: scanme.nmap.org
Nmap scan report for li86-222.members.linode.com (74.207.244.222)
Nmap scan report for li86-223.members.linode.com (74.207.244.223)
Nmap done: 16 IP addresses (0 hosts up) scanned in 1.04 seconds
Podemos ver também que por omissão, ele tenta resolver o reverso.
-sn (no port scan) :: usado para um exame do tipo ping. Sozinho, esse parâmetro vai trazer um resultado semelhante ao anterior, porém, com o tempo de latência.
Esse parâmetro também é mais intrusivo que o anterior. Mas diferente do
-sL, esse parâmetro pode ser usado com outros, que veremos à frente. Esse parâmetro faz o envio de um ICMP echo request, envio de pacotes TCP SYN na porta 443 e TCP ACK na porta 80 e uma requisição de timestamp via ICMP.
# nmap -sn scanme.org/28
Starting Nmap 6.47 ( http://nmap.org ) at
Nmap scan report for tsukasa.chibi.ca (74.207.244.208)
Host is up (0.18s latency).
Nmap scan report for li86-209.members.linode.com (74.207.244.209)
Host is up (0.18s latency).
Nmap scan report for li86-210.members.linode.com (74.207.244.210)
Host is up (0.18s latency).
Nmap scan report for li86-211.members.linode.com (74.207.244.211)
Host is up (0.19s latency).
Nmap scan report for li86-212.members.linode.com (74.207.244.212)
Host is up (0.19s latency).
Nmap scan report for li86-213.members.linode.com (74.207.244.213)
Host is up (0.19s latency).
Nmap scan report for li86-214.members.linode.com (74.207.244.214)
Host is up (0.19s latency).
Nmap scan report for li86-215.members.linode.com (74.207.244.215)
Host is up (0.19s latency).
Nmap scan report for li86-216.members.linode.com (74.207.244.216)
Host is up (0.19s latency).
Nmap scan report for li86-217.members.linode.com (74.207.244.217)
Host is up (0.19s latency).
Nmap scan report for li86-218.members.linode.com (74.207.244.218)
Host is up (0.19s latency).
Nmap scan report for li86-219.members.linode.com (74.207.244.219)
Host is up (0.18s latency).
Nmap scan report for scanme.org (74.207.244.221)
Host is up (0.18s latency).
rDNS record for 74.207.244.221: scanme.nmap.org
Nmap scan report for li86-222.members.linode.com (74.207.244.222)
Host is up (0.18s latency).
Nmap scan report for li86-223.members.linode.com (74.207.244.223)
Host is up (0.18s latency).
Nmap done: 16 IP addresses (15 hosts up) scanned in 2.54 seconds
-Pn (no ping) :: essa opção pula a fase de descoberta do Nmap. Com essa opção, normalmente o Nmap utiliza um método mais agressivo para saber se o host se encontra ativo, esses scans mais agressivos são usados em ports scan, detecção de S.O. ou detecção de versão de serviços.
Se a descoberta de host for desabilitada com essa opção, o Nmap vai executar todas as funções que foram passadas em todos os IPs, no caso de rede ou range de IPs, já que ele não saberá quais estão ou não ativos.
Como podem observar abaixo, o tempo gasto para um simples scan é bem visível com a opção
-Pn e sem ela.
Obs.: usei
-n, para não resolver nomes.
# nmap -n -Pn scanme.org/31
Starting Nmap 6.47 ( http://nmap.org )
Nmap scan report for 74.207.244.220
Host is up.
All 1000 scanned ports on 74.207.244.220 are filtered
Nmap scan report for scanme.org (74.207.244.221)
Host is up (0.22s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
9929/tcp open nping-echo
Nmap done: 2 IP addresses (2 hosts up) scanned in 45.36 seconds <<<< :: Tempo gasto
# nmap -n scanme.org/31
Starting Nmap 6.47 ( http://nmap.org )
Nmap scan report for scanme.org (74.207.244.221)
Host is up (0.19s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
9929/tcp open nping-echo
Nmap done: 2 IP addresses (1 host up) scanned in 13.60 seconds <<<< - Tempo gasto
-PS portas (TCP SYN ping) :: faz envios de pacotes TCP vazios, com a flag SYN ativa. Por padrão esses pacotes são direcionados à porta 80 (em caso de compilação do Nmap, essa porta padrão pode ser alterada, mudando o DEFAULT_TCP_PROBE_PORT_SPEC dentro do "nmap.h").
Portas alternativas podem ser passadas como parâmetro. A flag SYN sugere ao host remoto que você está tentando fazer uma conexão. Se a porta escolhida estiver fechada, o host irá responder com um RST e se estiver aberta, responderá com um SYN/ACK, ambas as respostas já dizem ao Nmap que o host está ativo e respondendo. No caso de uma resposta SYN/ACK, o nosso host com Nmap, que faz o envio do RST para finalizar a conexão.
Portas passadas como parâmetro:
# nmap -sn -PS21,22,80,443,8080 scanme.org
Starting Nmap 6.47 ( http://nmap.org ) at
Nmap scan report for scanme.org (74.207.244.221)
Host is up (0.19s latency).
rDNS record for 74.207.244.221: scanme.nmap.org
Nmap done: 1 IP address (1 host up) scanned in 1.03 seconds
Porta padrão:
# nmap -sn -PS scanme.org
Starting Nmap 6.47 ( http://nmap.org )
Nmap scan report for scanme.org (74.207.244.221)
Host is up (0.19s latency).
rDNS record for 74.207.244.221: scanme.nmap.org
Nmap done: 1 IP address (1 host up) scanned in 1.04 seconds
Exemplo de host down:
# nmap -sn -PS22 XXX.XXX.XXX.XXX
Starting Nmap 6.47 ( http://nmap.org )
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.04 seconds
-PA portas (TCP ACK ping) - segue os padrões do parâmetro anterior, porém usando a flag ACK. O pacote ACK "entende" que está reconhecendo os dados através de uma conexão TCP estabelecida. Mas como essa conexão não existe, os hosts remotos tentem a responder com um RST e essa resposta já basta para o Nmap dar o host como ativo.
# nmap -sn -PA scanme.org
Starting Nmap 6.47 ( http://nmap.org )
Nmap scan report for scanme.org (74.207.244.221)
Host is up (0.19s latency).
rDNS record for 74.207.244.221: scanme.nmap.org
Nmap done: 1 IP address (1 host up) scanned in 1.05 seconds
-PU portas (UDP ping) :: uma outra opção de descoberta de host é o ping via UDP, que envia um pacote UDP para as portas passadas. Na maioria das vezes, o pacote vai vazio, porém em alguns casos, o pacote faz uso de payloads para tentar obter uma resposta.
A opção
--data-length, pode ser usada para definirmos um tamanho fixo para os payloads aleatórios, se usarmos essa opção passando 0 (zero) como tamanho, o envio de payloads será desabilitado. Se uma porta não for especificada, será usada como padrão a 40125 (em caso de compilação do Nmap, essa porta padrão pode ser alterada mudando o DEFAULT_UDP_PROBE_PORT_SPEC dentro do "nmap.h").
Ao bater em uma porta fechada, o host envia ao Nmap um pacote ICMP de porta inalcançável e isso já basta para o Nmap deduzir que o host está ativo. Muita atenção para não escolher uma porta de uso comum, como a 53, pois a maioria dos serviços ignoram pacotes vazios e não respondem.
# nmap -PU --data-length 0 scanme.org
Starting Nmap 6.47 ( http://nmap.org ) at
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.08 seconds
Ainda na parte de descoberta de hosts, o Nmap nos dá as opções:
- -PY (SCTP INIT ping);
- -PO (IP Protocol ping);
- -PR (ARP ping) - muito usado em LANs;
- -n (para não realizar resolução de nomes);
- -R (para forçar a resolução do DNS);
- E a trinca -PE, -PP e -PM, que são os ICMP Ping Types.