Por trás da porta verde!

60
Por trás da porta verde! Usando NMAP Luiz Thiago [email protected] @lthiagol

Transcript of Por trás da porta verde!

Page 1: Por trás da porta verde!

Por trás da porta verde! Usando NMAP

Luiz Thiago

[email protected]

@lthiagol

Page 2: Por trás da porta verde!

Quem sou eu ...

• Graduação

– IFPB – Redes de Computadores

• Especialização

– I2P – Segurança da Informação

• Profissão

– Unimed CG - Analista de Infraestrutura de TIC

Page 3: Por trás da porta verde!

Slides ...

blog.luizthiago.info/Palestras

Page 4: Por trás da porta verde!
Page 6: Por trás da porta verde!

NMAP Origem

• 1º. de Setembro de 1997

• Edição 51 da Phrack

• Gordon Lyon a.k.a. Fyodor

• Network Mapper - NMAP

• 2.000 linhas de código

• Suportando apenas Linux

Page 7: Por trás da porta verde!

“Inexperienced users and script kiddies, […], try to solve every problem with the default SYN scan. Since Nmap is free, the only barrier to port scanning mastery is knowledge.”

nmap.org/book/man-port-scanning-techniques.html

“Usuários inexperientes e script kiddies, [...], tentam resolver todos problemas usando apenas o SYN scan padrão. Como o Nmap é grátis, a única barreira para dominar o port scanning é o conhecimento.”

Tradução livre

NMAP Motivação

Page 8: Por trás da porta verde!

NMAP Documentação

Page 9: Por trás da porta verde!

NMAP Documentação

nmap.org

Page 10: Por trás da porta verde!

Network Scanner??

• O que ele procura?

• Isso que ele procura serve pra que?

• O que eu posso fazer com o resultado?

Page 11: Por trás da porta verde!

IP/Porta

Page 12: Por trás da porta verde!

IP/Porta

• Camada de rede

– Protocolo IP

– Endereço IP de Destino e Origem

Page 13: Por trás da porta verde!

IP/Porta • Camada de transporte

– Protocolo TCP, UDP ou SCTP

– Porta de destino e origem

Page 14: Por trás da porta verde!

Voltando pro NMAP

Page 15: Por trás da porta verde!

NMAP Básico

• $ nmap <alvo>

– Executa uma varredura em mais de 1.000 portas TCP no computador <alvo>

– Classificando as portas em seis estados:

• open, closed, filtered, unfiltered, open|filtered, e closed|filtered

Page 16: Por trás da porta verde!

NMAP Básico

As portas são listadas de acordo com o acesso do host que está executando o NMAP e do momento da execução. Varreduras executadas em outros momentos ou a partir de outros hosts podem, senão irão, mostrar resultados diferentes.

Page 17: Por trás da porta verde!

NMAP Básico

• Estado das portas:

– Open: Uma aplicação está aceitando conexões TCP, datagramas UDP ou associações SCTP nessa porta – Objetivo principal do NMAP é achar essas portas

– Closed: Uma porta nesse estado é acessível, porém, nenhuma aplicação está escutando na mesma.

Page 18: Por trás da porta verde!

NMAP Básico

• Estado das portas:

– Filtered: O NMAP não consegue determinar se a porta está open, pois, um filtro de pacotes impede essa ação.

– Unfiltered: A porta está acessível, mas não é possível determinar se está open ou closed – Esse estado é retornado apenas pelo ACK scan!

Page 19: Por trás da porta verde!

NMAP Básico

• Open|Filtered: Estado indicado quando não é possível determinar com certeza se a porta está open ou filtered.

• Closed|Filtered: Similar ao estado Open|Filtered, mas entre os estados closed e filtered.

Page 20: Por trás da porta verde!

NMAP Test-drive

# nmap -A -T4 scanme.nmap.org Starting nmap ( http://insecure.org/nmap/ ) Interesting ports on scanme.nmap.org (205.217.153.62): (The 1663 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) 53/tcp open domain 70/tcp closed gopher 80/tcp open http Apache httpd 2.0.52 ((Fedora)) 113/tcp closed auth Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Uptime 33.908 days (since Thu Jul 21 03:38:03 2005)

Page 21: Por trás da porta verde!

NMAP AVISO

• Port Scanning pode ser encarado como um ataque, pois, a primeira etapa de um ataque é justamente o levantamento de informações.

• Use em apenas em ambientes controlados e com permissão

• Maquinas virtuais são uma boa ideia!

• scanme.nmap.org

Page 22: Por trás da porta verde!

Técnicas de Port Scanning

Page 23: Por trás da porta verde!

NMAP -sS

• -sS (TCP SYN scan)

– Método padrão do NMAP

– Rápido, não obstruído por firewalls restritivos e “silencioso”

– Diferenciação confiável entre open, closed e filtered

– Inicia conexões TCP, aguarda uma resposta e analisa.

Page 24: Por trás da porta verde!

NMAP -sS

Page 25: Por trás da porta verde!

NMAP -sS

• NMAP solicita a conexão (SYN Flag)

– SYN/ACK Flags de resposta – OPEN

– RST Flag de resposta – CLOSED

– Sem resposta ou um ICMP unreachable error – Filtered

• Necessário privilégios de superusuário/admin

Page 26: Por trás da porta verde!

NMAP -sT

• -sT (TCP connect scan) – Opção padrão quando o SYN Scan não está

disponível ou o usuário não tem privilégios

– Usando a chamada de sistema CONNECT o NMAP tenta estabelecer uma conexão TCP com o alvo

– Fácil detecção, pois, gera logs no destino

– É mais demorada que a opção -sS

– Infelizmente o NMAP não tem tanto controle da chamada CONNECT e isso torna essa opção menos eficiente!

Page 27: Por trás da porta verde!

NMAP -sN -sF -sX

• RFC 793

– http://tools.ietf.org/html/rfc793#page-65

– “If the state is CLOSED […] then all data in the incoming segment is discarded. An incoming segment containing a RST is discarded. An incoming segment not containing a RST causes a RST to be sent in response.”

– Em outras palavras, descarte e retorne uma mensagem!

Page 28: Por trás da porta verde!

NMAP -sN -sF -sX

• Flags de um cabeçalho TCP

– URG

– ACK

– PSH

– RST

– SYN

– FIN

Page 29: Por trás da porta verde!

NMAP -sN -sF -sX

• Quando sistemas seguem essa RFC, pacotes que não contenham uma flag SYN, RST ou ACK retornarão um RST se a porta estiver fechada

– Não responderá nada para portas abertas.

• Desde que essas flags estejam desligadas não importa o estados das flags FIN, PSH e URG

Page 30: Por trás da porta verde!

NMAP -sN -sF -sX

• Null scan (-sN)

– Todas as flags estão desligadas

• FIN scan (-sF)

– Apenas a flag FIN é ligada.

• Xmas scan (-sX)

– Liga as flags FIN, PSH e URG

– O nome é uma brincadeira com uma árvore de natal que está toda acessa

Page 31: Por trás da porta verde!

• O comportamento dos três tipos de SCAN é parecido, diferenciando apenas as flags que estão ativadas

• Os estados das portas são:

– CLOSED – Se um RST for recebido como resposta

– OPEN|FILTERED – Se não houver resposta

– FILTERED – Se um ICMP unreachable error for recebido

NMAP -sN -sF -sX

Page 32: Por trás da porta verde!

• Vantagens:

– Pode passar por:

• Firewalls non-stateful

• Roteadores com filtros de pacotes

– Mais “silencioso” que o TCP SYN Scan

• Disvantagem:

– Nem todos os SO seguem a RFC 793 a risca

– Difícil diferenciar portas OPEN de FILTERED

NMAP -sN -sF -sX

Page 33: Por trás da porta verde!

• Apenas uma flag ACK é enviada

• Sistemas sem filtros retornarão um RST para portas OPEN e CLOSED, marcando ambas como UNFILTERED

– Sendo acessíveis por “pacotes ACK”

– Não é possível diferenciar OPEN de CLOSED

• Portas sem resposta ou que retornem erros ICMP são marcadas como FILTERED

NMAP -sA

Page 34: Por trás da porta verde!

• Não identifica portas abertas!

• Serve para identificar:

– Conjuntos de regras de firewall

– Portas filtradas

– Se os firewalls no caminho são ou não statefull

• Sim ... –sA vem de TCP ACK scan

NMAP -sA

Page 35: Por trás da porta verde!

NMAP -sW

• Window Scan ...

Page 36: Por trás da porta verde!

NMAP -sW

Windows???????

Page 37: Por trás da porta verde!

NMAP -sW

• Window Scan ...

• Mesma varredura que o ACK scan, porém, analisa o tamanho da janela do TCP (TCP Window)

• No lugar de marcar UNFILTERED quando receber um RST a janela é analisada: – TCP Window positiva – OPEN

– TCP Windows zero – CLOSED

• Não é muito confiável

Page 38: Por trás da porta verde!

NMAP -sM

• Uriel Maimon – Phrack #49

• Baseado na mesma técnica dos SCAN NULL, FIN e XMAS

– Probe FIN/ACK

– Porém, alguns sistemas derivados do BSD simplesmente não retornam nada se a porta estiver OPEN

• TCP Maimon scan

Page 39: Por trás da porta verde!

NMAP scans...

• -sZ (SCTP COOKIE ECHO scan)

• -sI <zombie host>[:<probeport>] (idle scan)

• -sO (IP protocol scan)

• -b <FTP relay host> (FTP bounce scan)

• --scanflags (Custom TCP scan)

Page 40: Por trás da porta verde!

NMAP -sU

• -sU (UDP scan) – Geralmente mais lento que os do tipo TCP

– Pode ser usado junto dos outros TCP scan

– Um payload específico ou 0 é enviado dependendo da porta de destino

• Respostas • ICMP unreachable errors (Tipo 3, codigo 3) – CLOSED

• ICMP unreachable errors (Tipo 3, codigo 1, 2,9, 10, 13) – FILTERED

• Pacote UDP – OPEN

• Sem resposta – OPEN|FILTERED

Page 41: Por trás da porta verde!

NMAP -sU

• Grande desafio ... Efetuar um SCAN rápido!

– Portas OPEN ou FILTERED dificilmente respondem, aumentando o número de retestes

– Normalmente ICMP tem um número limitado de respostas

• Linux limita a 1 ICMP por segundo

• Analisar 65,536 portas leva 18 horas

• Boa idéia é analisar apenas portas populares!

Page 42: Por trás da porta verde!

Outras funcionalidades do

NMAP

Page 43: Por trás da porta verde!

Detecção de SO

• Razões:

– Determinar vulnerabilidades

• Delimitar o escopo da exploração

– Inventário de redes

– Detecção de dispositivos não autorizados

– Engenharia social

Page 44: Por trás da porta verde!

Detecção de SO

• Habilitado pela opção

– O

• Pode ser otimizado com a opção

– osscan-limit

• Caso não seja possível ter exatidão na detecção é possível uma aproximação com

– osscan-guess

Page 45: Por trás da porta verde!

Detecção de SO

• Como funciona:

– Vários testes são feitos com as respostas do alvo:

• Amostragem de ID de IP

• Ordenação da opções do TCP

• Verificação de TCP Window inicial

• [..]

– O NMAP compara os resultados com uma base de dados própria

– Exibe o resultado

Page 46: Por trás da porta verde!

Detecção de SO

Page 47: Por trás da porta verde!

Exame por ping

• Executa apenas o exame por ping para descobrir se o host (ou lista de hosts) está ativo

• Faz a varredura de forma rápida e confiável • É possível especificar técnicas de descoberta de

hospedeiros – TCP SYN (-PS <lista de portas>) – TCP ACK (-PA <lista de portas>) – UDP (-PU <lista de portas>) – ICMP (-PE, -PP, -PM) – Protocolo IP (-PO <lista de protocolos>) – ARP (-PR)

Page 48: Por trás da porta verde!

Detecção de versão

• Encontra as portas abertas e tenta descobrir qual serviço está sendo executado em cada uma delas – Descobrindo inclusive versões

– Falsos positivos são comuns

• Essa é uma ótima solução para serviços executando em portas não padronizadas

• -sV: Probe open ports to determine service/version info

Page 49: Por trás da porta verde!

Detecção de versão

Page 50: Por trás da porta verde!

Detecção de versão

Page 51: Por trás da porta verde!

Demais opções da CLI do NMAP

Page 52: Por trás da porta verde!

ou

Aquela porrada de opções que aparece quando executamos o nmap sem especificar nenhum parâmetro ...

Page 53: Por trás da porta verde!

HOST DISCOVERY:

• -sL: List Scan - simply list targets to scan • -sn: Ping Scan - disable port scan • -Pn: Treat all hosts as online -- skip host discovery • -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to

given ports • -PE/PP/PM: ICMP echo, timestamp, and netmask request

discovery probes • -PO[protocol list]: IP Protocol Ping • -n/-R: Never do DNS resolution/Always resolve [default:

sometimes] • --dns-servers <serv1[,serv2],...>: Specify custom DNS servers • --system-dns: Use OS's DNS resolver • --traceroute: Trace hop path to each host

Page 54: Por trás da porta verde!

OUTPUT:

• -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, • and Grepable format, respectively, to the given filename. • -oA <basename>: Output in the three major formats at once • -v: Increase verbosity level (use -vv or more for greater effect) • -d: Increase debugging level (use -dd or more for greater effect) • --reason: Display the reason a port is in a particular state • --open: Only show open (or possibly open) ports • --packet-trace: Show all packets sent and received • --iflist: Print host interfaces and routes (for debugging) • --log-errors: Log errors/warnings to the normal-format output file • --append-output: Append to rather than clobber specified output files • --resume <filename>: Resume an aborted scan • --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML • --webxml: Reference stylesheet from Nmap.Org for more portable XML • --no-stylesheet: Prevent associating of XSL stylesheet w/XML output

Page 55: Por trás da porta verde!

MISC:

• -6: Enable IPv6 scanning

• -A: Enable OS detection, version detection, script scanning, and traceroute

• --datadir <dirname>: Specify custom Nmap data file location

• --send-eth/--send-ip: Send using raw ethernet frames or IP packets

• --privileged: Assume that the user is fully privileged • --unprivileged: Assume the user lacks raw socket privileges • -V: Print version number • -h: Print this help summary page.

Page 56: Por trás da porta verde!

Defesas

Page 57: Por trás da porta verde!

Defesas conta o NMAP

• Segurança por obscuridade

• Port knocking

– http://www.portknocking.org/

• HoneyPot/HoneyNet

• Simulação de SO

• IDS

• Firewalls

Page 58: Por trás da porta verde!

Uso prático

Page 59: Por trás da porta verde!

Uso prático

• Detectar máquinas infectadas com Conficker

– http://pt.wikipedia.org/wiki/Conficker

– http://nmap.org/nsedoc/scripts/p2p-conficker.html

– nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254

• Scripts

• O que você conseguir imaginar

Page 60: Por trás da porta verde!

Perguntas?