27 de septiembre de 2009

Adobe getIcon Universal Exploiter

En las visitas habituales a milw0rm hay días aburridos en que apenas surgen exploits nuevos, otros en los que los que aparecen apenas están documentados y no acaban de describir que vulnerabilidad explotan (y como) y finalmente están los días normales es que aparecen programas de uso común para Windows y Linux, que son las plataformas con las que los usuarios trasteamos más. En uno de esos días de este mes 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 (así como de encontrar clientes explotables xd).

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?

Espero que os haya gustado, un saludo!

Nota*: He ofuscado el código de la librería, he eliminado los comentarios, renombrado variables, etc. pero solo he conseguido que un par de antivirus más no lo detecten hasta lograra una tasa de 12/41 :-( Se aceptan sugerencias :)

22 de septiembre de 2009

Metasploit Unleashed

Os dejo otra pequeña reseña, los chicos de Offensive Security han publicado un curso gratutito de Metasploit que merece la pena echarle un ojo, está disponible aquí y abarca las materias habituales de la herramienta estrella en el manejo de exploits. El curso incluye:

- Information Gathering

- Vulnerability Scanning

- Writing a simple fuzzer

- Exploit Development

- Client Side Exploits

- MSF Posts Exploitation

- Meterpreter Scripting

- Maintaining Access

- Etc.

Está en inglés y aunque entra en detalle aportando pantallazos y explicaciones es necesario tener una buena base en programación y sistemas operativos para poder completarlo y entenderlo.

Espero que os guste.

Un saludo.

21 de septiembre de 2009

2009 Information Security Awards

No necesitas más seguridad, necesitas mejor seguridad. He escogido este conocido slogan de CA para plantearos la entrada de hoy, ¿Cuáles son los mejores productos de seguridad del mercado? Es difícil de decir, ¿verdad? Muchas veces es fácil perderse entre compañías, tecnologías y sobretodo hacer una evaluación de cuál es la mejor plataforma para la necesidad de nuestra compañía. La revista de Information Security de TechTarget ha realizado una encuesta con sus lectores para determinar cuales son las mejores soluciones de seguridad (software, appliance, etc.) y el resultado lo tenéis por aquí. La revista completa en este otro enlace. Los premios se han dividido en las siguientes categorías:

- Best antimalware Products.

- Best Application Security Products.

- Best Authentication Products.

- Best Data Loss Prevention Products.

- Best Email Security Products.

- Best Identity and Access Management Products.

- Best Intrusion Detection and Prevention Products.

- Best Mobile Data Security Products.

- Best Network Access Control Products.

- Best Network Firewalls.

- Best Risk and Policy Management Products.

- Best Secure Remote Access Products.

- Best Security Information and Even Management Products.

- Best Unified Thread Management Products.

- Best Vulnerability Management Products.

- Best Web Security Gateway Products.

- Best Wireless Security Products.

Conviene echarle un ojo para estar al día, conocer que ofrece el mercado y por tanto, poder hacer recomendaciones. No estoy seguro sobre si el alta es obligatoria para poder leerlo aunque merece la pena, sus listas de correo son recomendables también.

Un saludo.

18 de septiembre de 2009

OWASP-IG-001: Spiders, Robots and Crawlers

Comenzamos con nuestra revisión de OWASP, hoy toca Information Ghatering, Spiders, Robots y Crawlers. ¿Por qué este comienzo? Bien, es bastante sencillo. Antes de atacar cualquier sistema debemos hacernos la pregunta, ¿qué sistema es?, ¿qué servicios ofrece?, yo siempre digo que si somos capaces de resolver estas dos preguntas con garantía tendremos la mitad del trabajo hecho, por ello las empresas colocan sus máquinas detrás de firewalls, en DMZs, segmentan redes, crean ACLs, así solo permiten ver lo que debería de verse por quien debería verlo.

En el OWASP-IG-001 recopilaremos información de la aplicación Web que queremos atacar, nos haremos un mapa de la misma y sabremos que estructura tiene. Todo esto se puede hacer a través de Web Spiders o Crawlers o con la ayuda del archivo de robots que muchos sitios Web tienen, y que no es más que un archivo de configuración que indica a los robots lo que “en teoría” no tienen que indexar, también habla con los User Agent para indicar si pueden o no mostrar la Web. Por ejemplo, el archivo de robots.txt de www.ieja.net (una página que no tiene nada que ver con la legendaria expresión manchega) nos da estas carpetas:

User-agent: * 
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /editor/
Disallow: /help/
Disallow: /images/
Disallow: /includes/
Disallow: /language/
Disallow: /mambots/
Disallow: /media/
Disallow: /modules/
Disallow: /templates/
Disallow: /installation/

¿Protege esto en el acceso a carpetas internas? No, no es una solución de control de acceso ni provee autenticación ni autorización, tal como indican en www.robotstxt.org se podría crear una carpeta ieja.org/norobots/ y dentro de ella poner todas las sub-carpetas y archivos que no queremos sean visitados o indexados, pero ni siquiera eso sería una solución valida, los robots.txt no están para proveer control de acceso por lo que habrá que configurar el servidor http correctamente protegiendo el acceso a carpetas y archivos y añadiendo una solución de control de acceso.

Para realizar un mapa de la aplicación que queremos asaltar existen gran variedad de herramientas, algunas de ellas ya las hemos visto, como es el caso del Paros Proxy que, configurado como Proxy puede interceptar la URL a la que accedemos y desplegar su araña en busca de carpetas y subcarpetas:

Tanto esta herramienta como el WebScarab de OWASP tienen muchas funciones adicionales pero tiempo al tiempo, hoy no es el día ;-) Aunque creo que WebScarab no os la he presentado. En el proyecto OWASP no solo ofrecen una metodología de Test de Intrusión en Aplicaciones Web, también ofrecen herramientas de ayuda para su metodología. WebScarab hace una cosa que Paros no hace, también recopila enlaces a Webs externas, en esta en particular hay muchas:

La forma de hacerlo es la misma, configuramos el listener para que capture el tráfico y desde “Spider”, comenzamos a recopilar. Cuando tengamos los resultados es probable que sean distintos del anterior Spider, así que habrá que cruzarlos. Pero no solo de herramientas pre-fabricadas vive el hombre, si recordáis hace unos meses me fabriqué un Spider con unas pocas líneas en Perl para buscar todas las fotos que hicieron en una atracción de Terra Mítica en un día, muy similar al que hizo Lobosoft en C#. Por otro lado en PenTester.es hicieron una mucho más elaborada que mostraba todas las URL de un particular dominio objetivo, se llamaba TargetSearch y nos será muy util para siguientes entradas (estrechamente relacionadas con esta).

¿Qué cuales son las vulnerabilidades que exlotamos haciendo esto? Pues a priori y salvo excepciones, ninguna. Claro está, a veces hay administradores despistados que dejan la carpeta de administración visible a todo el mundo, o aplicaciones mal diseñadas con lapsus en su desarrollo, como fue el caso de los router Zyxel que no protegían la URL:

http://[Ip Router]/rpFWUpload.html

y permitían resetear el router fácilmente. Esta primera fase no suele reportar vulnerabilidades, pero si lo hace nos podemos dar una idea del ambiente “descuidado” que tenemos delante.

Buen fin de semana ;-)

16 de septiembre de 2009

From OSSTMM to OWASP

Fue a finales de 2006, comienzos de 2007. Estaba enfrascado en el proyecto final de carrera "Auditoria de Sistemas de la Información", donde tras varios meses pegándome con la extensa OSSTMM y otras tantas semanas de prácticas en una importante empresa de seguridad pude dar a luz el que sería uno de mis hijos pródigos, un proyecto de alrededor de 300 paginas donde se explicaba la metodología OSSTMM con un ejemplo "real" de auditoria basada en esta metodología sobre un cliente.

Desde entonces no he podido volver a dedicarme al Pen-Testing, sin salirme del mundo de la Seguridad he tenido la oportunidad de hacer otras muchas cosas, sin embargo el conocimiento tiende a diluirse como un azucarillo en el agua de la memoria si no es refrescado continuamente así que me he dicho, ¡volvamos a hacer Pen-Test! Eso sí, con un "pero", esta vez vamos a ser más prácticos y en vez de amasar un par de decenas de entradas hablando de OSSTMM y sus famosos 7 dominios de forma teórica y enriquecedora pero a fin de cuentas, algo aburrida, vamos a repasar la OWASP Testing Guide 3.0 y sus 9 sub-categorías y 66 controles de seguridad de forma práctica, con ejemplos reales (que en algún caso tendré que desarrollar por 1ª vez, por lo que os animo a corregirme o dar ideas si veis desvaríos varios). Antes de todo eso vamos a recordar cómo es OSSTMM, por qué es la metodología de auditoría más completa y por qué, a fin de cuentas, lo que se usa es OWASP (al menos desde mi experiencia).

OSSTMM, la metodología que lo abarca todo

Open Source Security Testing Methodology Manual (OSSTMM) es un manual de pen testing desarrollado por el ISECOM cuya primera versión salió allá por el año 2001. Este cuaderno de auditoría gratuito y bajo licencia Creative Commons abarca todos los aspectos que una auditoría de seguridad debe contemplar si quiere ser lo más completa posible. Esto queda perfectamente reflejado en lo que a mí me gusta llamar el “molino de Don Quijote”:

La imagen del molino me encanta por que muestra de forma transversal y extremadamente simple como todo está relacionado en nuestro negocio, en nuestros sistemas de información, procesos, etc. Y sobretodo en el centro de todo, la seguridad física (disciplina por la que siento debilidad). OSSTMM muestra el camino para chequear todas las acciones que nos aseguren el cumplimiento regulatorio, el cumplimiento legal y el cumplimiento con las políticas corporativas, todo ello sin dejar de lado otros aspectos como el hacking wireless o la seguridad en las comunicaciones. La metodología está dividida en 6 módulos que alcanzan diferentes objetivos en la auditoría:

1- Seguridad de la Información (presencia en Internet de cualquier tipo de información de una entidad).

2- Seguridad en los procesos (ingeniería social, “suggestion test”)

3- Seguridad en Tecnologías de Internet (IDS, firewall, router testing, DOS, passwork cracking, etc.)

4- Seguridad de las comunicaciones (Modem, FAX, PBX, etc.)

5- Seguridad Wireless (TEMPEST, hacking 802.11, bluetooth, infrarrojos, etc.)

6- Seguridad Física (perímetro de seguridad, alarmas de seguridad, test de control de accesos, estudio del entorno, etc.).

Hay ciertos módulos que hay que pensarse muy bien si se van a ofrecer, por ejemplo todo lo relacionado con Ingeniería Social puede provocar conflictos de los que es necesario estar prevenido legalmente, los ataques DOS se dan por hecho ¿merece la pena hacerlos?, quizás tampoco sea necesario revisar el entorno geo-político de nuestro cliente, a no ser claro que se encuentre en el antiguo cauce de un río, exista inestabilidad local o una alta tasa de delincuencia en la zona (yo no abriría una oficina en ciertos barrios de practicamente cualquier ciudad).

OWASP, hacking ético puro y duro

Por otro lado tenemos el Open Web Application Security Project, OWASP se centra exclusivamente en tests de intrusión para aplicaciones web, proporcionando un exhaustivo catálogo de 66 controles de seguridad a revisar en toda aplicación web. Podría coincidir con los puntos 1 y 3 de OSSTMM, rozando algún que otro punto pero sin tanto detalle. Esto es lo que suele contratar cuando se solicita un servicio de pen-testing, hacking ético o similares. OWASP es una metodología muy práctica que desde el primer punto va al grano, AJAX Testing, WSDL, Buffer Overflows, Stack Overflow, LDAP Injection, SQL Injection, CSS, escalado de privilegios, etc. Además te explica que hace ese ataque, te ofrece indicaciones sobre herramientas y técnicas a emplear, artículos que conviene leer, etc. Esto hace a OWASP una metodología válida tanto para principiantes como para usuarios avanzados, se divide en los siguientes dominios:

1- Recolección de información.

2- Test de Gestión de la Configuración.

3- Test de Autenticación

4- Test de Gestión de Sesiones

5- Test de Autorización

6- Test de validación de datos de entrada.

7- DOS testing.

8- Test de Web Services.

9- Test AJAX.

Finalmente deja un capítulo con indicaciones sobre como redactar los informes, valorar el riesgo de forma correcta (aparece la vieja fórmula de riesgo = probabilidad * impacto).

En próximas entradas y como proyecto a largo plazo iremos revisando cada uno de los 66 controles de seguridad y veremos ejemplos prácticos de ataques.

Salu2

10 de septiembre de 2009

Flash Cookies


Que a todos nos gusta mantener la privacidad no es ninguna novedad, que ignoramos hasta que punto nuestra actividad queda registrada en nuestro sistema operativo muchas veces si. Todos sabemos que una cookie es (literal de Wikipedia) “un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas. En ocasiones tambilén se le llama huella”. Esto está bastante bien ya que ayuda a los servidores a reconocer a los clientes y decir, ¡ey! Tu ya estuviste aquí, y la ultima vez te interesó esto, así que te voy a ofrecer información de eso, y de esto otro que seguro que también te gusta. Y miel sobre hojuelas.

No obstante muchas veces tenemos que compartir nuestro PC con familiares, amigos y quizás no nos gusta que vean “nuestras cosillas”, por ello de forma periódica decimos, ¡limpieza de historial”, ¡limpieza de contraseñas!, ¡limpieza de cookies!, incluso muchas veces miramos con curiosidad que guardan los servidores de nosotros y nos vamos a la carpeta de las cookies a indagar, al fin y al cabo nunca dieron buena espina y son susceptibles de múltiples ataques como robo de cookies, cookie spoofing o cross-site cooking (de los cuales por cierto, tengo que hablar un día).

Una vez realizada la limpieza que todos los navegadores permiten respiramos más tranquilos, ¿verdad?, ¡no, error! Todavía quedan cookies, y son las relativas a las paginas que utilizan objetos flash (léase, más de la mitad de las 100 páginas más visitadas de Internet), también conocidas como “Local Share Object” o Flash Cookies . Podemos buscar archivos .SOL en nuestro equipo que no encontraremos ninguno, sin embargo se encuentran aquí (en XP y Vista):

%APPDATA%\Macromedia\FlashPlayer\#SharedObjects\\\\.sol

Lo más curioso de todo es que la forma que han habilitado en Adobe para que las veamos, configuremos y demos permisos es a través de su página Web, desde donde de forma dinámica serán cargadas. Estas cookies además tienen poderes “especiales “ (recuerdan a las galletas de la tontuna del Facebook (...parecidos razonables)) y pueden “regenerar” cookies http que habíamos eliminado, tienen un tamaño por defecto de 100 KB y encima no tienen por qué expirar, así que si las miráis probablemente encontréis páginas de vuestra adolescencia.

Por suerte existen editores de archivos SOL como “soleditor” que permiten explorarlas todas y ver que guardan de nosotros, en la mayoría de los casos información relativa al volumen y poco más, en otros como esta de Terra Mitica hay objetos más chulos, aunque las posibilidades son muy variadas:

Ya sabéis, cuidado qué desayunáis ;-)

Salu2!

8 de septiembre de 2009

Exploits of Death

You are a dead man.

Response: Sure, do you have an exploit of death?

La historia del hombre siempre parece que es cíclica, sucede con los mercados bursátiles y con las crisis económicas, sucede cuando olvidamos o no reflexionamos sobre los acontecimientos que nos atañen y, pasado un tiempo, volvemos a encontrarnos como estábamos. Reflexionando un poco parece como si entráramos en un bucle del que estamos “obligados” a tomar la decisión correcta y aprender de nuestros errores. Algo así como el día de la marmota o atrapado en el tiempo:

Supongo que estas cosas también ocurren en las cosas que el hombre crea, en un paralelismo un tanto retorcido ahí tenemos la vieja vulnerabilidad de el ping de la muerte que, a parte de tener un nombre cool, fue un fastidio durante bastante tiempo, en especial por que allá por la edad de piedra de la informática, año 1996, había muchas cosas y muy buenas, pero todavía no había Seguridad ni cultura y sensibilización sobre la misma.

13 años después me llega un correo de Hispasec donde enviando unos paquetes especialmente manipulados a un Windows Vista o Windows 7 que tengan el servicio SMB activo (en Vista, si no recuerdo mal por defecto), te tira la máquina provocando un BSOD ya que el driver que interpreta las cabeceras de los paquetes para ese protocolo trabaja en la “Zona Cero” del núcleo. Curiosamente lo han publicado “sin avisar” y actualmente es explotable (más info en el blog de Laurent Gaffié ) un viejo ataque (desbordamiento de buffer) para nuevos Sistemas Operativos, ¿cíclico? Lo dejo a opinión del lector. Lo que está claro es que los tiempos entonces no son los tiempos de ahora, la política de actualización de parches de Microsoft podrá ser mejor o peor, pero es constante y bajo periodos definidos, salvo excepciones claro. Y lo que es más importante de todo, atosiga al usuario con avisos para que actualice. Bajo ese escenario empresas y usuarios domésticos pueden estar algo más tranquilos que allá por el 96.

Por cierto, en el 2004 salió otro de esos exploits con nombre cool, se llamaba JPEG of Death y Microsoft tardó varias semanas en publicar parche, sin embargo y curiosamente a día de hoy me he encontrado con muchos antivirus que no detectan los exploits disponibles en milw0rm. Eso si, será difícil encontrar una víctima sin actualizar.

¿Cuándo se volverá a repetir la historia?

Salu2

4 de septiembre de 2009

Sys Internals

Hagamos un Kit Kat en esta semana intensa de vuelta a la normalidad para presentaros un pack de herramientas de Windows, si con las Net Tools teníamos casi todo lo que hace falta para trabajar a nivel de red (como vimos aquí ) con Sys Internals tendremos un control mucho mayor sobre lo que pasa en nuestra máquina Windows (preferiblemente XP, algunas de ellas no se llevan bien con WVista y W7, otras sí) a nivel de procesos, registro de Windows, arranque del sistema operativo, conexiones de red e incluso un detector de Rootkits!, Merece la pena:

Process Explorer (): Un básico con unos añitos del que ya se oyó hablar cuando vimos el Svchost Analyzer. Procesos padres, hijos, consumo de CPU, hilos lanzados, consumo de CPU, etc. Una gozada:

PSTools : Pack de herramientas de gestión de procesos, con las que podremos jugar todo lo que queramos en nuestros sistema (o en otros xD) incluye:

- PsExec: Ejecuta procesos de forma remota.

- PsFile: Muestra archivos abiertos de forma remota.

- PsGetSid: Muestra el SID de un equipo o un usuario.

- PsInfo: Muestra información acerca de un sistema.

- PsKill: Elimina los procesos por el nombre o Id. de proceso.

- PsList: Muestra información acerca de procesos.

- PsLoggedOn: Averigua quién ha iniciado sesión de forma local y a través de recursos compartidos (origen completo incluido).

- PsLogList: Vuelca los registros de eventos.

- PsPasswd: Cambia las contraseñas de cuenta.

- PsService: Muestra y controla los servicios.

- PsShutDown: Apaga y reinicia opcionalmente un equipo.

- PsSuspend: Suspende los procesos.

- PsUptime: Muestra el tiempo durante el que se ha ejecutado un sistema desde el último reinicio (la funcionalidad de PsUptime se ha incluido en PsInfo).

AutoRuns: El comando msconfig nos permite editar el boot.ini, ver que servicios se arrancan con nuestro Sistema Operativo y que programas se ejecutarán sin necesidad de que estén en la carpeta de “Inicio”, todo eso está muy bien y es básico, pero con AutoRuns alcanzaremos una granularidad mucho mayor, librerias, drivers, tareas del scheduled, ¡codecs!, de todo lo que os podáis imaginar. Muy útil para entender como funciona nuestro sistema operativo:

RootkitRevealer: ¿Crees que tu antivirus no lo detecta todo? Entonces crees bien, si quieres echar un vistazo rápido a tu registro de Windows y detectar inconsistencias, buscar el gato encerrado que hay en tu sistema operativo y alimentar tu paranoia, esta es tu herramienta:

TCPView: Yo creo que si los millones de Script Kiddies del mundo que buscan en los foros el Puerto del messenger conocieran esta herramienta saldrían hackers como setas. No, en serio, con TCPView tendremos un conocimiento casi total sobre todos los flujos TCP y UDP que llegan y salen de nuestra máquina, su estado, el proceso que los inició (algo parecido al netstat –ban pero más profundo) así como la posibilidad de matar los procesos o cerrar las conexiones que no tengan buena pinta, muy util:

Poco a poco vamos ampliando nuestro kit de herramientas, ¿verdad?

Espero que tengáis una vuelta “amable”, ¡salu2!