O Nmap (“Network Mapper”) é uma ferramenta de código aberto para análise de rede e auditoria de segurança. Ela foi desenhada para varrer de forma rápida redes amplas, embora também funcione muito bem contra hosts individuais. O Nmap utiliza pacotes IP em estado bruto (raw) de maneira inovadora para determinar quais hosts estão disponíveis na rede, quais serviços (nome da aplicação e versão) os hosts oferecem, quais sistemas operativos (e versões de SO) eles estão a usar, que tipos de filtro de pacotes/firewalls estão em uso, e dezenas de outras caraterísticas. Embora o Nmap seja normalmente utilizado para auditorias de segurança, muitos administradores de sistemas e rede consideram-no útil para tarefas de rotina tais como inventário de rede, monitorização de serviços de atualização agendados, e monitorização de host ou disponibilidade de serviço.
Sendo um dos melhores implica que tenha diversas funcionalidades, utilidades e um enorme número de comandos. Alguns dos comandos mais usuais são apresentados abaixo.
Esta ferramenta foi desenvolvida por Gordon Lyon, e com a ferramenta este tentou dar resposta a algumas questões relativas aos seus testes, i.e., “Que computadores estão ligados à rede?”, “Qual o SO do alvo?”, “Que portas tem o alvo disponíveis?”, etc.
Exemplo 1: Análise de um IP ou de um domínio
A forma mais radical de utilizar esta ferramenta é efetuar uma análise bruta a determinado endereço de IP.
nmap 192.168.1.69
Por outro lado, é possível passar-lhe também um domínio da mesma maneira.
nmap alvo.com
Para um varrimento mais rico pode ser usada a opção -v.
nmap -v 192.168.1.69
Descrição: -v : Increase verbosity level (use -vv or more for greater effect)
Para mais detalhes, pode ser consultada a ajuda fornecida pela ferramenta. Nesta estão discriminadas todas as opções que ela oferece. A imagem em seguida, apresenta um exemplo.
O comando é o seguinte:
nmap -help
Exemplo 2: Analise de múltiplos IPs ou uma rede (subnet)
O Nmap permite alguma diversidade na definição do target. Tal facto pode ser observado de seguida.
a) Vários IPs separados com um espaço.
nmap 192.168.1.1 192.168.1.2 192.168.1.3
b) Por blocos.
nmap 192.168.1.1-20
c) Seleção com um wildcard.
nmap 192.168.1.*
d) Seleção de uma rede completa.
nmap 192.168.1.0/24
Exemplo 3: Selecionar alvos a partir de um ficheiro
Para criar um ficheiro via Linux pode ser utilizado o seguinte comando:
cat > nome_do_ficheiro.txt
Em seguida, podem ser introduzidos via terminal os alvos.
alvo.com 192.168.1.1 olalol.com 7.7.7.7
A imagem seguinte é bastante ilustrativa.
O comando para dar continuidade à empreitada é o seguinte:
nmap -iL /path/alvos.txt
Exemplo 4: Excluir alvos de uma rede
Uma das funcionalidades oferecidas pelo Nmap é a exclusão de alguns hots aquando a análise de uma rede. Tal feito pode ser concretizado de duas maneiras.
nmap 192.168.1.0/24 --exclude 192.168.1.5 nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.254
Ou ainda, através de um ficheiro de inclusão.
nmap -iL /tmp/scanlist.txt --excludefile /tmp/exclude.txt
Exemplo 5: Deteção do Sistema Operativo e sua versão
nmap -A 192.168.1.254 nmap -v -A 192.168.1.1 nmap -A -iL/path/alvos.txt
Exemplo 6: Descortinar se o alvo é protegido ou não por uma firewall
Para efetuar este tipo de análise é necessária a inclusão da opção “-sA”.
nmap -sA 192.168.1.254 nmap -sA alvo.com
Exemplo 7: Analisar alvo quando este é protegido por uma firewall
nmap -PN 192.168.1.1 nmap -PN server1.cyberciti.biz
Exemplo 8: Analisar um alvo com IPv6
Para analisar um host alvo com IP versão 6, deve ser usado o seguinte comando:
nmap -6 IPv6-Address-Here nmap -6 alvo.pt nmap -6 2607:f0d0:1002:51::4 nmap -v -A -6 2607:f0d0:1002:51::4
Exemplo 9: Análise e descoberta de hosts
Uma valiosa funcionalidade que o Nmap sustenta é a descoberta de hosts ligados.
nmap -sP 192.168.1.0/24
Exemplo 10: Análise Rápida (Quick Scan)
Quando se analisa um host ou um servidor alvo, este deve ser o comando a ser usado inicialmente. Pois o argumento “F” indica análise rápida.
nmap -F 192.168.1.1
Exemplo 11: Adiciona a razão pelo qual o Nmap diz que tem a porta aberta
nmap --reason 192.168.2.2 nmap --reason alvo.pt
Exemplo 12: Apresenta apenas portas à escuta (abertas)
nmap --open 192.168.1.1 nmap --open alvo.pt
Exemplo 13: Apresenta todos os pacotes trocados (enviados e recebidos)
nmap --packet-trace 192.168.1.1 nmap --packet-trace seguranca-informatica.pt
Exemplo 14: Apresenta as saídas instaladas assim como os caminhos percorridos
nmap –-iflist
Exemplo 15: Analisar portas especificas
Para efetuar uma análise deste tipo podem ser usados os comandos a seguir.
a) Análise à porta 80
nmap -p 80 192.168.2.2
b) Análise à porta 80 via TCP
nmap -p T:80 192.168.2.2
c) Análise à porta 53 via UDP
nmap -p U:53 192.168.1.1
d) Análise de duas portas simultaneamente
nmap -p 80,443 192.168.1.1
e) Análise de um bloco de portas
nmap -p 80-200 192.168.1.1
f) Combinação de todas as portas
nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.2.2 nmap -p U:53,111,137,T:21-25,80,139,8080 alvo.com nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 192.168.2.2
g) Análise com um wildcard
nmap -p "*" 192.168.1.1
h) Análise das portas mais comuns
nmap --top-ports 5 192.168.1.1 nmap --top-ports 10 192.168.1.1
Exemplo 16: Análise Rápida de portas
A forma mais rápida para análise de portas pode ser conseguido através do seguinte comando.
nmap -T5 alvo.com
Para melhorar a sua eficácia poder-se-á reformular da seguinte maneira:
nmap -T5 -F alvo.com
Exemplo 17: Detetar sistema operativo do alvo
nmap -O 192.168.2.2
Exemplo: 18: Analisar que programas e versão correm nas portas à escuta
nmap -sv 192.168.2.2
O output será algo semelhante a:
Host is up (0.090s latency). Not shown: 845 closed ports, 153 filtered ports PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD or KnFTPD 80/tcp open http Apache httpd 2.2.14 ((Unix)) Service Info: OS: Unix
Exemplo 19: Analisar um alvo utilizando TCP ACK (PA) e TCP Syn (PS) ping
Se a firewall estiver a bloquear os pings normais (ICMP) é necessário utilizar o seguinte método de descoberta:
nmap -PS 192.168.2.2 nmap -PS 80,21,443 192.168.2.2 nmap -PS 192.168.2.2 nmap -PS 80,21,200-512 192.168..2.2
Exemplo 20: Analisar um alvo utilizando o protocolo ping através do IP
nmap -PO 192.168.2.2
Exemplo 21: Analisar um alvo usando UDP ping
nmap -PU 192.168.2.2
Exemplo 22: Descobrir as portas mais utilizadas usando a análise TCP SYN
Este deve ser um dois primeiros, senão o primeiro comando de análise a qualquer host. É concretizada uma análise camuflada ao alvo.
nmap -sS 192.168.1.1
Para as portas TCP mais usadas deve ser usado o seguinte comando:
nmap -sT 192.168.1.1
Exemplo 23: Análise de serviços UDP
nmap -sU 192.268.2.2
Exemplo 24: Análise ao protocolo IP
Esta análise permite detetar quais são os protocolos (TCP, ICMP, IGMP, etc) que o alvo suporta.
nmap -sO 192.168.2.2 nmap -sO alvo.com
Exemplo 25: Detetar falhas na firewall
O seguinte comando diz respeito a uma análise nula para fazer a firewall gerar uma resposta.
nmap -sN 192.168.2.2
a) Verificação de firewall
nmap -sF 192.168.2.2
b) Faz os sets FIN, PSH, e URG serem analisados
nmap -sX 192.168.2.2
Exemplo 26: Analisar a firewall com pacotes fragmentados
nmap -f 192.168.2.2 nmap -f fw2.nixcraft.net.in nmap -f 15 alvo.pt
O offset pode ser indicado através da opção —mtu.
nmap --mtu 32 192.168.1.1
Exemplo 27: Iscos! A opção -D faz com que o alvo pense que está a ser analisado por mais maquinas
O IDS fará com que se reporte entre 5 a 10 portas a cada IP mas nunca sabe quais são os verdadeiros e os falsos.
nmap -n -Ddecoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip nmap -n -D192.168.1.5,10.5.1.2,172.1.2.4,3.4.2.1 192.168.1.5
Exemplo 28: Alterar o endereço MAC antes da análise
nmap --spoof-mac MAC-ADDRESS-HERE 192.168.2.2
Uma melhor forma de projetar esta análise é através de um MAC aleatório.
nmap -v -sT -PN --spoof-mac 0 192.168.1.1
Exemplo 29: Salvar as informações obtidas para um ficheiro
nmap 192.168.2.2 > output.txt nmap -oN /path/to/filename 192.168.2.2 nmap -oN output.txt 192.168.2.2
Naturalmente para projetar uma auditoria de segurança via terminal é uma empreitada demorosa. Seria necessário decorar, anotar ou consultar determinado número de vezes a ajuda da ferramenta. Para facilitar todos este processo, foi disponibilizado o Nmap na sua versão GUI. Este foi batizado como Zenmap.
Para a sua instalação no Linux basta fazer uso do seguinte comando:
apt-get install zenmap
Boa continuação!