30 oct. 2009

Adobe getIcon Universal Exploiter

En uno de esos días de Septiembre surgió el exploit para Adobe 9.0 y 8.1.2 titulado “getIcon Universal Exploiter” el cual tenía una particularidad, estaba perfectamente documentado y era bastante fácil de explotar.

La vulnerabilidad, conocida por Adobe desde Julio del año pasado aprovecha el típico desbordamiento de buffer en la pila al no controlar los argumentos que se pasan al método “getIcon” (de ahí el original nombre). En los enlaces publicados en milw0rm hay amplia información de la vulnerabilidad, código ensamblador que muestra las llamadas no controladas, etc. Etc. A grandes rasgos el exploit desarrollado en Python aplica la conocida técnica de “Heap Spraying” para inyectar el payload que en este caso será una Shell remota, para ello formaremos un archivo .pdf que incluya una librería desarrollada en C y que luego incluiremos en el pdf mediante el exploit desarrollado en python. Me explico paso a paso:

1) En el archivo evil_payload.c se genera un socket que abrirá la conexión a la IP y puerto que indiquemos (aquí normalmente pondremos nuestra IP publica y un puerto que nos asegure no bloquee el firewall, digamos, el 80), además mostrará un error que mitigue las sospechas al usuario que abre el pdf. A partir de este código en C debemos generar la librería a inyectar en el pdf, si disponéis del Visual C++ 2008 Express Edition (gratuito) se puede compilar en un periquete:

Con la opción /LD especificamos que se genere una librería de enlace dinámico (.DLL, para más info sobre compilaciones acudir aquí:
2) Una vez que tenemos la librería toca darle paso al Script de Python, si le echamos un ojo vemos que lo único que hace es manipular el .pdf que le digamos inyectándole la librería, incluir un payload en javascript que genere la excepción y poco más:

Ejecutamos el script y creamos el .pdf especialmente modificado:
3) Llegado este punto ya tenemos nuestro documento .pdf especialmente manipulado para que las versiones no actualizadas de Adobe hagan “crash”. Probablemente al hacer este último paso os haya saltado el antivirus, y es que ya han pasado 3 semanas desde que se publicó el exploit y son varios los que lo detectan, en concreto 14 según virustotal*:
Pero claro, esto es relativo. Una idea sencilla para utilizarlo es compartir el archivo con el Emule bajo un nombre sugerente (de ahí el que yo he escogido) y esperar que la gente se lo vaya bajando, no es sofisticado pero funciona. De todas formas todavía no tendremos nada, si os fijáis nos falta algo, si queremos que se nos abra una Shell remota (para eso pusimos nuestra IP y puerto), ¿alguien tendrá que estar escuchando, verdad? Por suerte esto es facilísimo con netcat:

Recordar que deberéis tener configurado el NAT en vuestro router para que la conexión pueda abrirse, después solo queda esperar que “piquen” y se nos abrirá una bonita Shell. Fácil a la par que peligroso, ¿verdad?

Author & Editor

Ingeniero Civil en Computación (Universidad de Chile FCFM) y Diplomado en Gestión y Evaluación de Proyectos TI (Universidad de Chile FEN). Actualmente trabajo como Project Manager en varios proyectos y como asesor tecnológico para empresas.

0 Notaciones:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.

Labels

0-day (12) 1337day (1) 8.8 (2) Adobe Acrobat (1) Android (2) Anonimato (1) Anonymous (9) BackDoor (2) BackTrack (15) badUSB (1) Base64 (1) Black Hat (7) BlackHat (1) Blackploit (25) Brute Force (3) Bug (106) Bypass Password (1) Bypass Redirect (1) C99 Shell (1) Carding (1) CheatSheet (15) Chilean Way (1) Conference (10) Cryptsetup (1) CSRF (1) DDoS (11) DEF CON (3) DEFCON (7) Diapositivas (1) Diseño Web (1) Distro Linux (27) Documental (2) DoS (2) Drupal (1) DuckDuckGo (1) E-zine (18) Ekoparty (1) Escaneo (4) España (1) Exploit (64) Ezine (1) Facebook (1) Fast-Info (44) FBI (1) Ficheros Binarios (1) Firefox (4) Flash (2) Forense (9) Fuerza Bruta (11) Fuga de Datos (1) GhostShell (1) GNU/Linux (4) Google (2) Guía (1) Hack T00LZ (130) Hack Tips (63) Hacked (6) Hacking (18) Hacking Hardware (5) HashCat (1) Herramientas (121) HighSecCON (1) Humor Geek (13) Infografía (1) Ingeniería Social (5) Inj3ct0r (1) Internet Explorer (3) Java (7) JavaScript (2) Kali (3) KitPloit (1) Leaks (21) Linux OS (79) LulzSec (1) Mac OS (10) Magazine (1) Malaware (3) Malaware Tools (12) Malware (1) Man in the Middle (15) Manuales (3) MD5 CRACK (4) Metasploit (57) MSSQL (1) MySQL (6) MySQL CRACK (1) Nmap (6) Nmap NSE (2) Noticias (193) NTLM CRACK (1) Ofuscar (5) OpenSolaris OS (1) OpenSSL (1) ORACLE (1) OWASP (3) Paper (10) PDF (7) PenTest (14) Perl (2) Phearking (13) Phishing (3) PHP (13) phpMyAdmin (1) PoC (1) Premios Bitacoras (1) Presentaciones (11) PRISM (1) Privacidad (2) Programación (12) Programas Linux (41) Programas Windows (41) Pwned (1) Python (5) Reconocimiento (5) Ruby (2) s (1) Scripts (7) Seguridad (145) Seguridad Web (140) Seguridad Wireless (19) Sensitive Data Exposure (2) SHA1 CRACK (1) Shellshock (1) Slides (1) Spoofing (1) Spyware (1) SQLi (19) SQLi Tools (7) SQLMap (2) SSH (1) Textos (74) Tips (57) Troyanos y Virus (11) Trucos (7) Trucos Win (7) Turiales (56) Tutoriales (18) Twitter (1) Ubuntu (2) Underc0de (1) UnderDOCS (1) Unlock (1) URL Redirection (1) UXSS (1) vBulletin (1) Video (48) Virtualización (2) Web T00LZ (17) Wifislax (1) Wikileaks (1) WikiRebels (1) Windows OS (66) Wireless Tools (13) XSS (16) Youtube (1)

 
biz.