Nmap do início ao fim (parte 1)

Seguindo a mesma linha da série de artigos sobre o Mod Security, a ideia aqui é aprender como funciona e para que servem algumas das principais opções do Nmap e também mostrar que ele é muito mais do que um simples Port Scan.

[ Hits: 15.088 ]

Por: Júnior Carreiro em 04/02/2015 | Blog: http://webdefense.blogspot.com.br/


Hi man, Are you there?



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.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Hi man, Are you there?
Outros artigos deste autor

Introdução ao ModSecurity

Integrando ModSecurity ao NGINX e Apache

Arquivo de configuração do mod_security

Leitura recomendada

Segurança no Linux: Antivírus, Firewall, Wine - Mitos e Verdades

Fundamentos da criptografia assimétrica

Tor e Hidden Service Protocol - Explicando tecnicamente a "Deep Web"

Tutorial de Instalação do ClamAV - Anti-vírus open Source

Sudo 1.8.12 - Parte II - Como sudo funciona

  
Comentários
[1] Comentário enviado por wagnerfs em 04/02/2015 - 22:32h

Obrigado por compartilhar o conhecimento. Aguardando o próximo artigo.

_________________________
Wagner F. de Souza
Graduado em Redes de Computadores
"GNU/Linux for human beings."
LPI ID: LPI000297782

[2] Comentário enviado por d3stiny em 04/02/2015 - 22:55h


Vlw Amigo...



[3] Comentário enviado por augustoamormino em 05/02/2015 - 14:31h


Muito útil o artigo, parabéns!

[4] Comentário enviado por creonte38 em 05/02/2015 - 22:10h

Quem dera que todos artigos tivessem esse tipo de qualidade. Totalmente utilitário. Agradeço de coração por inspirar a estudar cada vez mais.

[5] Comentário enviado por removido em 26/02/2015 - 01:06h

Perfeito prá dar um passo além e sair da fase noob. O Whois do scanme.org existe. Eu posso ficar dando portscan nele? Tipo, como se pratica se portscan pode ser visto como agressão por mais delicado que tenta-se ser? E aguardando também o próximo artigo.

--
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

[6] Comentário enviado por travelercarlssin em 02/07/2015 - 08:21h


Parabéns ! Ótimo artigo.

Obrigado por compartilhar !!

[7] Comentário enviado por d3stiny em 25/04/2016 - 21:41h


[5] Comentário enviado por listeiro_037 em 26/02/2015 - 01:06h

Perfeito prá dar um passo além e sair da fase noob. O Whois do scanme.org existe. Eu posso ficar dando portscan nele? Tipo, como se pratica se portscan pode ser visto como agressão por mais delicado que tenta-se ser? E aguardando também o próximo artigo.

--
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Desculpa a demora amigo....o dominio exite sim e pode ser feito scan dele.
abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts