O Nmap é certamente um dos melhores escanners de hosts, portas e serviços disponíveis na atualidade. Nesta matéria teremos uma introdução sobre como ele faz isto e de como utilizá-lo. Vamos lá!
Veremos agora a utilização prática dos conceitos aprendidos.
TCP connect()
Forma mais simples de scanning, ela tenta abrir uma conexão na
máquina alvo, se for bem sucedida é porque a porta está aberta. Esse
método é facilmente detectado pelo firewall da máquina alvo (é o default).
# nmap -sT alvo
(alvo é o IP da máquina, ex:127.0.0.1)
TCP SYN (half open)
Nesse método, um pacote SYN é enviado, caso haja resposta (um pacote SYN-ACK
seja recebido), é porque a porta está aberta. Caso seja recebido um RST
é porque está fechada. Se a resposta vier positiva (SYN-ACK), o nmap
envia outro RST fechando a conexão, de modo que a conexão não se completará.
A vantagem desse método é que fica mais difícil a detecção do portscan, pois
ele não abre uma conexão TCP completa.
# nmap -sS alvo
FIN (Stealth)
Esse método envia pacotes FIN para o alvo, caso não haja resposta, a porta
está aberta, caso seja recebido um pacote RST, é porque está fechada. Esse
método é útil, pois alguns firewalls podem detectar a chegada de pacotes SYN,
detectando o método TCP SYN, esse modo elimina essa possibilidade de detecção.
# nmap -sF alvo
# nmap -sX alvo
(Xmas Tree -> envia as flag FIN, URG e PUSH no pacote FIN) # nmap -sN alvo
(null scan -> não envia flag no pacote FIN)
ACK (ack scan)
Esse método é utilizado para mapear o firewall alvo. Ele pode determinar o
tipo de firewall e se ele apenas bloqueia os pacotes SYN.
# nmap -sA alvo
ICMP (ping scan)
Nesse método são enviados pacotes "ICMP echo request" para o alvo, caso não
haja resposta, é enviado um pacote TCP ACK para a porta 80 ou então um pacote
SYN (se nenhum das anteriores responder), isso tudo porque alguns firewalls
bloqueiam o "ping". Ele é utilizado para ver se a máquina alvo está ativa ou não.
# nmap -sP alvo
UDP
Nesse método, um pacote UDP de 0 byte é enviado, caso seja recebido um "ICMP
port unreachable" é porque a porta está fechada, caso contrário, está aberta.
# nmap -sU alvo
RPC scan
Esse método combina vários métodos de scan do nmap. Ele considera todas as
portas TCP/UDP abertas e as "flooda" com comandos "NULL SunRPC", tentando
descobrir quais portas RPC estão abertas, e se possível, o programa e a versão do RPC.
# nmap -sR alvo
TCP/IP Fingerprint
Esse método ativa a identificação remota do sistema operacional. Ela usa várias
informações recebidas e as compara com a base da dados dos sistemas operacionais
conhecidos, detectando qual o sistema usado na máquina.
# nmap -O alvo
Além dessas opções, o nmap possui muitas outras, como por exemplo o scan rápido
(nmap -F) ou então a opção de não pingar a máquina antes de scaniá-la (nmap -P0).
Em adição a esses métodos de scan, o nmap oferece a opção de escolher "políticas",
de modo a dificultar a detecção pelo IDS da máquina alvo. As opções são "Paranoid",
"Sneaky", "Polite", "Normal", "Aggressive" ou "Insane".
A opção "Paranoid" escaneia de 5 em 5 minutos cada porta, a "Sneaky", de 15 em 15 segundos e assim evoluindo.
A vantagem do "scan" ser mais lento é que dificulta a descoberta pelo IDS da máquina alvo.
A opção padrão é a normal.
[9] Comentário enviado por removido em 19/05/2005 - 18:45h
cvs, v. está corretíssimo. A sintaxe -A não só mostra o serviço, assim como sua versão. É uma sintaxe implantada, recentemente nos últimos releases. Muito bem observado.
scotty, eu nao li o man page. da proxima vez, tenha consciencia de que muitos programas são baseados nas sintaxes e que uma explicação sobre as tais podem ser fundamentais para o ingresso de novos usuários na área. na próxima versão deste artigo, trarei mais inovacões sobre o uso do programa.
tzbishop2k@yahoo.es