Visão geral do Nmap

Publicado por rafael oliveira em 10/05/2016

[ Hits: 4.374 ]

 


Visão geral do Nmap



Dica rápida pra quem costuma utilizar o Nmap para realizar Footprint durante Pentest ou até mesmo testar seu ambiente e então fazer um Hardening...

Abaixo estão algumas opções desta poderosa ferramenta criada por Gordon Lyon "Fyodor":

Descoberta de hosts

-P* = tipos de ping:
  • 1. -P0 = desabilita o ping (echo request) ou -Pn ou -PN
  • 2. -PR = ping usando ARP
  • 3. -PA = ping usando flag ACK
  • 4. -PS = ping usando flag SYN
  • 5. -PU = ping usando UDP
  • 6. -PP , -PM .-PE = ping usando ICMP
  • 6.1. -PP = exibe timestamp ICMP-TYPE = 14
  • 6.2. -PM = exibe mascara de endereço de rede ICMP-TYPE = 18
  • 6.3. -PE = echo request ICMP-TYPE = 8
  • 7. -PO = ping usando pacotes IGMP

Obs.: -sn = com esta opção o nmap apenas verifica se o host esta "UP" e retorna a saída do comando na tela e não realiza scan. Importante usar sempre a opção --send-ip exceto quando realizando descoberta com -PR (ARP Scan).

Ex.:

# nmap -v -n --reason --packet-trace --send-ip -PS80 192.168.5.0/24

Realiza descoberta na rede usando SYN Scan(-PS) , enviando flag SYN para a 80 do host de destino (-PS80), habilita o verbose (-v), não resolve nome (-n), exibe no report o retorno, a razão pela qual aquele host está UP (--reason), envia pacotes IP (--send-ip), exibe com detalhes pacotes enviados e recebidos (--packet-trace) como mostra a saída abaixo:

SENT (0.0187s) TCP 192.168.5.101:51234 > 192.168.5.253:80 S ttl=48 id=16522 iplen=44 seq=3733934792 win=1024 <mss 1460>
RCVD (0.0215s) TCP 192.168.5.253:80 > 192.168.5.101:51234 SA ttl=64 id=0 iplen=44 seq=1133767345 win=5840 <mss 1460>


Escaneamento de portas

  • -sP = efetua ping scan, apenas verifica se o host esta UP
  • -sS = scan usando flag SYN
  • -sA = scan com ACK

Obs.: O "-sA" serve para mapear regras de firewall, caso a porta esteja aberta ou fechada, o servidor retorna com a flag "RST" e o nmap identifica como UNFILTERED, e caso o servidor retorne um "icmp unreachable" ou não retorne nada o nmap caracteriza como FILTERED.
  • -sT = nmap estabelece uma conexão de alto nível (usando em usuarios sem privilegio)
  • -sU = scan UDP

Obs.: scan UDP otimizado:

# nmap -sUV -T4 -F --version-intensity 0 scanme.nmap.org
  • -sR = RPC scan (flag null)

Obs.: qualquer pacote que não contenha os bits SYN, RST, ou ACK irá resultar em um RST como resposta se a porta estiver fechada, e nenhuma resposta se a porta estiver aberta. Contanto que nenhum desses três bits estejam incluídos, qualquer combinação dos outros três (FIN, PSH e URG) é válida.

O Nmap explora isso com três tipos de scan:

Se um pacote RST for recebido, a porta é considerada fechada, e nenhuma resposta significa que está aberta|filtrada.

A porta é marcada como filtrada se um erro ICMP do tipo inalcançável (tipo 3, código 1, 2, 3, 9, 10, ou 13) for recebido (texto extraído do manual do nmap "man nmap").
  • -sN = não envia nenhuma flag no cabeçalho TCP/IP
  • -sF = envia flag FIN
  • -sX = envia flags FIN, PSH e URG

Obs.: caso não retorne nenhum pacote do servidor a porta esta aberta (filtered ou open|filtered), se a porta não estiver aberta é retornado RST + ACK do servidor (closed).
  • -sI (idle scan) = utiliza um host zumbi para fazer um scan no host real

Este comando procura por possíveis hosts zumbis na internet:

# nmap -iR 1000 --script ipidseq -T5 -v -oA Área\ de\ trabalho/zombies
  • --scanflags = insere manualmente flags TCP
  • -sC = invoca scripts da categoria "default" do NSE (Nmap Script Engine)

Ex.:

# nmap -v -n -PS80 -sS -sU -p T:80,U:53 192.168.5.254

Realiza um SYN Scan (-sS) e UDP Scan (-sU) nas portas 80 TCP (-p T:80) e 53 UDP (,U:53).

Especificação de portas

  • -p = faixa ou lista de portas
  • --top-ports = quantidade de portas mais usadas EX: --top-ports + quantidade de portas

Obs.: com a opção "-p" podemos especificar portas separando-as por vírgula ( -p 80,25,23 ) ou range de portas incluindo um hífen entre elas ( -p 1-65535 ), podemos especificar todas as portas da seguinte forma " -p- "

Versionamento

  • -sV = com essa opção é possível identificar versões de serviços "rodando" nas portas
  • --version-intensity 1-9 = determina a intensidade do versionamento EX: --version-intentisy 5
  • --version-all = alias para --version-intensity 9

Driblar firewall e IDS "Evasion"

  • -f = fragmenta pacotes + --mtu = tamanho do MTU
  • -D = usa IPs de hosts para enganar firewall e IDS, como se esses hosts estivessem escaneando o host alvo. (Decoy)
  • -S ip spoof
  • -e = interface
  • -g ou --source-port = porta de origem
  • --ttl = altera o time to live do pacote
  • --data-length = acrescenta numero de bytes aleatórios aos pacotes (Payload com conteúdo aleatório)
  • --spoof-mac = mudar MAC da interface. Obs.: o mac spoof apenas funciona com -sT -PN
  • -iR = scaneia IPs de forma randômica
  • --badsum = envia pacotes TCP com checksum incorretos
  • --scan-delay = tempo entre as requisições
  • -T[0-5] = templates que reúne uma série de opções afim de tornar o scan mais rápido ou mais lento , por default o nmap usa " -T3 "

Ex.:

# nmap -v --reason --packet-trace --privileged -n -PN -T2 --ttl 255 -f --mtu 8 -g 20 -D RND:10 --randomize-hosts --data-length 1400 -sSV --version-intensity 9 -p 80,443,25,110 192.168.5.0/24

Realiza um scan na rede 192.168.5.0/24 usando 10 IPs como Decoy (-D RND:10 ).

Fingerprint

  • -O = figerprint
  • --osscan-guess = figerprint mais detalhado

Opções variadas

  • --iflist = lista interfaces
  • --traceroute = traça rota
  • --open = exibe apenas portas abertas
  • --send-ip = envia pacotes IPs no lugar de ARP
  • --packet-trace = mostra todos os pacotes na tela
  • -r = Efectuar o rastreio(Scan) das portas consecutivas e não aleatoriamente
  • --resume = retoma scan abortado
  • --exclude = hosts que devem ser excluídos do scan
  • --excludefile = arquivo de entrada com hosts a serem excluídos do scan
  • -iL = arquivo de entrada contendo os hosts a serem analisados
  • --reason = indica a qual teste o host respondeu
  • -F = scan rápido

Utilizando scripts

  • --script = utiliza scripts localizados em " /usr/share/nmap/scripts "
  • --script-args = passa argumentos aos scripts
  • --script-trace = exibe detalhes das ações dos scripts
  • --script-help + nome_script = exibe um breve detalhe sobre o que faz tal script
  • --script-updatedb = atualiza os script do nmap

Outras dicas deste autor

Script de backup + envio de e-mail

openSUSE 13.1 em UEFI

Auditando acesso de usuários no Linux

Configurando parâmetros ajustáveis do sistema de arquivos ext*

Leitura recomendada

O que é um Fuzzer em Penetration Testing (Pentesting)

Site do RibaFS de volta!

Fechando a porta 6000 do X

Senhas criptograficamente seguras com o PWGen

BlackArch Linux - Usando um repositório para Pentest

  

Comentários
[1] Comentário enviado por removido em 11/05/2016 - 09:17h

Belo tutorial. É um atalho.

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

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



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts