Whoam I Network profiling based on HTML tags
Whoam. I Network profiling based on HTML tags injection Dr. Alfonso Muñoz Senior Cyber Security Researcher (Co)Editor Criptored, CISA, CEH… alfonso. munoz@11 paths. com Twitter: @mindcrypt Ricardo Martín QA Security Analyst ricardo. martin@11 paths. com Twitter: @ricardo 090489
Equipo… Ricardo Martín Q&A Security Analyst ricardo. Martin@11 paths. com Dr. Alfonso Muñoz Senior Cyber Security Researcher (Co)Editor Criptored, CISA, CEH alfonso. munoz@11 paths. com Dr. Antonio Guzmán Head of the research area antonio. guzman@11 paths. com
Whoam. I El mundo real… - Ataques/Fugas de información vs contramedidas - ¿Estás seguro con tu navegador web? . . .
Whoam. I La idea…
Whoam. I Investigando… - ¿Cómo funcionan los navegadores web cuando buscan “recursos”? - … ¿pero qué es un “recurso”? Recurso: <img src=“/images/latch. jpg”/> Recurso: <href a=“http: //www. latch. com“/> Recurso: <embed src=“gatos. avi”> … ¿Recurso: <img src=“ 172. 0. 0. 4: 445”/>?
Whoam. I Enumeración… - Preguntemos por “recursos específicos…” <img src="http: //172. 19. 70" onload="alert(1)" onerror="alert(0)"> Si el recurso no está disponible el navegador responderá más tarde… - ¿Qué podemos hacer…? - Vectores de ataque. HTML injection navegadores con web. RTC - Footprinting/Fingerprinting (“sistemas operativos”, escaneo de red, puerto abiertos, software en la red, impresoras, DNS…) - Evasión de seguridad perimetral. “Exfiltración” - APTs – “Exploits”- SCADA - ¿En qué navegadores web funciona y con qué tags?
Whoam. I Navegadores… - Navegadores web analizados IE (11. 0. 9600. 17207), Chrome (35. 0. 1916. 153 dev-m), Firefox (33. 0), Safari (5. 1. 7(7534. 57. 2)), Opera (25. 0) <img src="http: //172. 19. 70" onload="alert(1)" onerror="alert(0)"> - Ejemplo en WINDOWS 8. 1: Firefox Chrome IE Safari/Opera Version 32. 0 35. 0. 1916. 153 dev-m 11. 0. 9600. 17207 5. 1. 7(7534. 57. 2) Event / TAG=IMG Onerror Host Activos < 21 seg (>> 21 seg) < 7 seg (>> 7 seg) < 21 seg (>> 21 seg) (>27 seg) Timeouts (Host inexistentes) Web. RTC ≈ 21 seg (19 seg<X<23 seg) (>27 seg) ≈ 21 seg (19 seg<X<23 seg) (>10 seg) ≈ 7 seg (6 seg<X<8 seg) x (>27 seg) ≈ 21 seg (19 seg<X<23 seg) x
Whoam. I más “SOs” In progress… - Linux (Ubuntu: FF, Chrome, Konqueror) - Android LINUX: RFC 1122 recommends at least 100 seconds for the timeout Ubuntu 14. 04. 1 Chrome Ubuntu vs Chrome Windows - Por el timeout podemos “identificar” qué sistema operativo ejecuta el navegador…
Tags. Whoam. I útiles… - Firefox 32. 0. 2 (Onerror): <img>, <object>, <iframe>, <audio>, <video>, <frame>, <script> - Chrome 35. 0. 1916. 153 dev-m (Onload/Onerror): <img>, <object>, <iframe>, <audio>, <video>, <embed>, <frame>, <script> - IE 11. 0. 9600. 17207 (onload/Onerror): <img>, <object>, <iframe>, <audio>, <video>, <embed>, <frame>, <script> - Safari 5. 1. 7 (Onerror): <img>, <object>, <iframe>, <embed>, <frame>, <script> TAGS analizadas: Todas
Tiempos de escaneo… Whoam. I Red Windows - Necesidad de persistencia (Mi. TM…) - Tiempo máximos: - 1 IP|puerto - IE: 0<tiempo<8 seg Otros: 0<tiempo<23 seg (En general ≈300 ms, <2 seg) - 1 IP|puertos - IE: 0<tiempo<65535*8 seg Otros: 0<tiempo<65535*23 seg Ej: (10 abiertos, 65525 cerrados) ≈ 3 seg + 36 horas (10 abiertos, 1014 cerrados) ≈ 3 seg + 33 minutos - Escaneo red (X. X. X. 1 – X. X. X. 254, 80 equipos activos) Lanzo 3 puertos por IP, 5 IP de golpe: 15 hilos - “Media” IE: ≈ 12 min 12*60 / 254*3 ≈ 0, 95 seg/petición - “Media” Resto: ≈ 21 min 21*60 / 254*3 ≈ 1, 65 seg/petición - Forzando por Java. Script el timeout a 2 seg se pueden reducir drásticamente tiempos (redes y puertos)…
Whoam. I Más detalles… * * * Chrome (escaneo rápido)
Port Banning Whoam. I Limitaciones en puertos < 1024 - Algunos navegadores impiden peticiones a una serie de puertos número puerto < 1024 FF/Chrome: SI (80, 443, 445, 543, 1433, …) NO (21, 110, 115, 139, 993…) - Internet Explorer es “libreeeeeeeeee” SI (69 -tftp, 80, 115 -sftp, 135, 139, 443, 445 -smb, 543 -Kerberos, 587 -smtp, 1433 -sqlserver…) NO (21 -ftp, 110 -pop 3, 993 -imaps…)
Whoam. I Detalles… (experimental) – NMAP/wireshark - *Equipos “Windows”: es necesario lanzar contra puertos “abiertos” para saber si la IP está activa (se recibe respuesta) - Equipos Linux (Ubuntu): si IP existe el puerto responde rápido (esté abierto o no [RST]) - Dispositivos “Android/Iphone”: si IP existe el puerto responde rápido (esté abierto o no [RST]) - *Dispositivos “Windows/Phone”: es necesario lanzar contra puertos “abiertos” para saber si la IP está activa
Whoam. I Lo mejor está por llegar….
Whoam. I DEMO explotación Port banning no es útil Usuario A 1. Usuario A visita página web 2. Lan za exp a nz t i plo ex eterpret er La ploit - M 2. Lanza exploit 3. Metas loit Equipo en red Vulnerable (Shellsock)
Whoam. I Trabajo actual / futuro - Profiling based on HTML injection facilita la “ex-filtración” y perfil de una red interna. ¿Ataques con persistencia? otros protocolos - El ataque no funciona si el código Java. Script está prohibido (No. Script, Port Banning …. ) depende - ¿Es posible enviar las diferencias temporales al servidor sin usar Javascript/AJAX? - HTML 5? - CSS? - … - ¿Por qué no se habla más de este tipo de ataques? - “Lugares públicos con navegador web”…
Whoam. I /**/ || ? ? Network profiling based on HTML tags injection Dr. Alfonso Muñoz Senior Cyber Security Researcher (Co)Editor Criptored, CISA, CEH… alfonso. munoz@11 paths. com Twitter: @mindcrypt Ricardo Martín QA Security Analyst ricardo. martin@11 paths. com Twitter: @ricardo 090489
- Slides: 17