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