MUITO ALÉM DO ALERT() EM
ATAQUES WEB CLIENT SIDE
WAGNER ELIAS
SALVADOR 26/11/2016
ALGUNS ATAQUES CLIENT-SIDE
PAYLOAD
PRINCIPAIS TIPOS DE ATAQUES
▸ XSS Refletido|Dom Based|Armazenado
▸ Out-of-band XSS
▸ JSON Hijacking
▸ DNS Pinning
▸ web cache poisoning
IMPACTOS
PAYLOAD
CONFIDENCIALIDADE
▸ Acesso a dados sensíveis na máquina da vítima
▸ Sequestro de sessão e comprometimento da conta
▸ Acesso a histórico de navegação
▸ Análise de comportamento da vítima
DISPONIBILIDADE
▸ Causar indisponibilidade por consumo excessivo de
recursos
▸ Disparar uma série de eventos como poup-up para
advertisement
▸ Gerar múltiplas requisições de DNS e causar um flood
INTEGRIDADE
▸ Hospedar malwares do tipo drive-by-download
▸ Controlar completamente o navegador da vítima (BeEF)
▸ Explorar vulnerabilidades de remote code execution na
máquina (BeEF + Metasploit)
VETORES INTERESSANTES
PAYLOAD
CLIPBOARD
‣ O clipboard da máquina sempre contem informações
interessantes
‣ O BeEF possui um módulo para capturar essas informações
https://github.com/beefproject/beef/wiki/Network-Discovery
NETWORK DISCOVERY
A partir de um vetor de XSS/HTML injection você pode
carregar o BeEF e descobrir os hosts e serviços da rede
interna
https://github.com/beefproject/beef/wiki/Network-Discovery
TUNNELING
Use o navegador da vitima “hookado" pelo BeEF como túnel
para analisar a aplicação com as credenciais do usuário
https://github.com/beefproject/beef/wiki/Tunneling
GAME OVER
O BeEF tem integração com o metasploit e pode ser
executado direto da console
https://github.com/beefproject/beef/wiki/Metasploit
CACHE POISONING
CACHES.OPEN('PREFETCH-CACHE-V1').THEN(FUNCTION(CACHE){CACHE.PUT(NEW
REQUEST('INDEX.HTML', {MODE: 'NO-CORS'}), NEW
RESPONSE('X3CSCRIPT>ALERT(1)X3C/SCRIPT>', {HEADERS: {'CONTENT-TYPE': 'TEXT/
HTML'}}))})
O service worker do navegador sempre vai dar prioridade
ao conteúdo em cache, portanto podemos armazenar um
script que será executado sempre que carregar essa página
http://sirdarckcat.blogspot.com.br/2015/05/service-workers-new-apis-new-vulns-fun.html
GOOGLE TAG MANAGER
Através do comprometimento de uma conta no Google Tag
Manager você pode inserir scripts que serão carregados na
página da vítima
DIFICULTANDO A VIDA
PAYLOAD
CONTENT SECURITY POLICY (CSP)
‣ Header HTTP que implementa políticas de renderização no
navegador
‣ Políticas muito elaboradas que vão desde de controle de
acesso a que script e origem é permitido executar
https://github.com/beefproject/beef/wiki/Network-Discovery
SUB RESOURCE INTEGRITY
WELIAS@CONVISO.COM.BR
@WELIAS
OBRIGADO

Muito além do alert() em ataques web client side