Por trás da porta verde!
-
Upload
luiz-thiago -
Category
Documents
-
view
646 -
download
1
Transcript of Por trás da porta verde!
Por trás da porta verde! Usando NMAP
Luiz Thiago
@lthiagol
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
Slides ...
blog.luizthiago.info/Palestras
Comunidade
• GESoL-CG
– http://gesolcg.wordpress.com/
• GLUGPB
– http://listas.glugpb.org.br/listinfo.cgi/glugpb-glugpb.org.br
• UbuntuPB
– http://wiki.ubuntu-br.org/UbuntuPB
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
“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
NMAP Documentação
NMAP Documentação
nmap.org
Network Scanner??
• O que ele procura?
• Isso que ele procura serve pra que?
• O que eu posso fazer com o resultado?
IP/Porta
IP/Porta
• Camada de rede
– Protocolo IP
– Endereço IP de Destino e Origem
IP/Porta • Camada de transporte
– Protocolo TCP, UDP ou SCTP
– Porta de destino e origem
Voltando pro NMAP
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
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.
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.
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!
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.
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)
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
Técnicas de Port Scanning
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.
NMAP -sS
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
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!
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!
NMAP -sN -sF -sX
• Flags de um cabeçalho TCP
– URG
– ACK
– PSH
– RST
– SYN
– FIN
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
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
• 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
• 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
• 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
• 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
NMAP -sW
• Window Scan ...
NMAP -sW
Windows???????
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
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
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)
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
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!
Outras funcionalidades do
NMAP
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
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
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
Detecção de SO
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)
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
Detecção de versão
Detecção de versão
Demais opções da CLI do NMAP
ou
Aquela porrada de opções que aparece quando executamos o nmap sem especificar nenhum parâmetro ...
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
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
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.
Defesas
Defesas conta o NMAP
• Segurança por obscuridade
• Port knocking
– http://www.portknocking.org/
• HoneyPot/HoneyNet
• Simulação de SO
• IDS
• Firewalls
Uso prático
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
Perguntas?