Pular para o conteúdo principal

nmap

O NMAP é uma ferramenta de código aberto usada para varrer e mapear redes. Ele fornece uma variedade de opções de varredura e enumeração para descobrir informações sobre hosts e serviços em uma rede.


Tipos de Scanner

TCP Connect

  • Completa o three way handshake;
  • "Barulhento" e facilmente detectável;
  • Gera mais trafego.

Exemplos:

nmap -sT
nmap -sV

Half Open / Syn Connect

Envia um SYS e analisa a resposta, se for SYS/ACK a porta está aberta e então já é enviado um RST sem completar o handshake.

  • Não completa o three way handshake;
  • Consome menos tráfego;
  • Nível de detecção menor comparado com o TCP connect.

Exemplo:

nmap -sS

Opções de Varredura

  • -sn: Detecção de hosts vivos.
  • -sT: TCP Connect Scan.
  • -sS: SYN Scan / Half Open Scan.
  • -sV: Descobrir versões de serviços.
  • -sU: UDP Scan.
  • -Pn: Ignorar descoberta de host vivo.
  • -O: Detecção de sistema operacional.
  • -A: Descobrir detalhes sobre sistema operacional e serviços.
  • -p-: Varredura de todas as portas (65535).
  • -sF: FIN Scan (envia flag FIN).
  • -sN: NULL Scan (não envia nenhuma flag).
  • -sX: XMAS Scan (envia FIN+PSH+URG).
  • -f: Fragmentar pacotes.
  • -p: Especificar a porta.
  • --open: Mostrar apenas as portas abertas.
  • -oN: Salvar resultados em arquivo no formato normal.
  • -oX: Salvar resultados em arquivo no formato XML.
  • -oG: Salvar resultados em arquivo no formato para gráficos.

Níveis de Agressividade

  • -T0: Usado para evitar IDS.
  • -T1: Espera cerca de 15 segundos durante a varredura.
  • -T2: Espera cerca de 4 segundos durante a varredura.
  • -T3: Nível normal (padrão).
  • -T4: Varredura rápida.
  • -T5: Varredura muito rápida e barulhenta.

Referência: https://nmap.org/book/performance-timing-templates.html

Exemplos

Escaneamento em modo verbose para obter informações de serviços e sistema operacional:

nmap -v -A 192.168.0.0/24

Executar um SYN Scan ignorando a detecção de hosts ativos:

nmap -sS -Pn 192.168.0.0/24

Em casos em que o firewall opera efetuando o DROP, é possível realizar uma varredura com uma porta de origem diferente:

nmap -v -sS --source-port 53 192.168.1.100

No entanto, para explorar essa porta, é necessário utilizar uma porta de origem permitida pelo firewall. Por exemplo:

nc -p53 -vn 192.168.1.100 8081

Nesse caso, estamos utilizando a porta 53 como porta de origem para conectar à porta 8081.

Nesse tipo de bypass no firewall, as portas 53, 443 e 80 são normalmente permitidas.

Enumeração de SMB

O NMAP possui scripts para a enumeração de SMB, que estão localizados no diretório /usr/share/nmap/scripts.

Para descobrir o sistema operacional através do SMB, utilize o seguinte comando:

nmap -v --script=smb-os-discovery 192.168.0.114

Para enumerar compartilhamentos SMB, utilize o seguinte comando:

nmap -v --script=smb-enum-shares 192.168.0.114

Enumerando compartilhamentos quando já se possui alguma autenticação válida:

nmap -v -p 445 \
--script "smb-enum-shares" \
--script-args smbusername=administrator,smbpassword='administrator!!' \
172.16.0.200

Para enumerar usuários e compartilhamentos, utilize o seguinte comando:

nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.10.216.122

Também é possível executar todos os scripts relacionados ao SMB:

nmap -v --script=smb* 192.168.0.114

Enumeração de DNS

Para obter uma lista de subdomínios, execute o seguinte comando:

nmap 131.221.240.0/22 -sn | grep "inatel.br" | awk '{print $5}'

Enumeração de NFS

Para enumerar serviços NFS, utilize o seguinte comando:

nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.216.122

Conversão de XML para JSON

Para converter um arquivo XML para JSON, utilize os seguintes comandos:

cat port_scan.xml | xq . | tr -d '@' | jq

Antes de executar o comando acima, é necessário instalar alguns pacotes adicionais:

sudo apt install jq
pip install yq

Referência: https://www.howtogeek.com/devops/how-to-convert-xml-to-json-on-the-command-line/