martes, 31 de diciembre de 2013

Buscar subdominios con Google - Script en python


No se cuantas veces durante el año me decía mentalmente voy a programar un script que haga esto porque me aburre hacerlo manualmente y al final lo dejaba para después, me olvidaba y nunca lo hacía. Pero hoy es el último día del año y pa' que me queden menos cosas pendientes aquí está:

viernes, 27 de diciembre de 2013

Hacking WiFi - ZTE ZXHN H108N


Probablemente te hayas topado alguna vez con redes wifi con nombres como "WLAN_E3C2" o "WLAN_0A6E" o en general "WLAN_XXXX". Como seguro habrás sospechado, estos son nombres por defecto. Uno de los routers que asigna este tipo de nombres por defecto a su red inalámbrica es el "ZTE ZXHN H108N". Quizá existan otros modelos que asignen nombres con el mismo formato, pero en este post me referiré específicamente a ese modelo de ZTE.

sábado, 7 de diciembre de 2013

Compilación cruzada con Buildroot

En este post quiero mostrar el uso de una herramienta de compilación cruzada llamada "Buildroot" para poder escribir programas en C que se ejecuten sistemas Linux embebidos, como los que hay por ejemplo en routers, camaras ip, DVRs, etc.

Muchos de estos dispositivos permiten conectar por SSH o Telnet y obtener una shell, otros tienen vulnerabilidades de inyección de comandos (como este router o este otro) y a otros se puede acceder por puerto serial con algo de hardware hacking. De una u otra manera, lo primero que debes conseguir es una linea de comandos en el dispositivo.

viernes, 25 de octubre de 2013

DVR TVT - Directory Traversal


Fig. 1 - DVR TVT Serie TD-2300SS

Descripción:

El dispositivo DVR modelo TD-2308SS-B de la marca TVT es vulnerable a "Directory Traversal". Un atacante puede usar esta vulnerabilidad para descargar ficheros con información sensible como por ejemplo el fichero "config.dat" que contiene las credenciales para acceder a la interfaz web del dispositivo.

El fichero "config.dat" se puede procesar con el comando "strings" para obtener las credenciales de administración en texto plano.

sábado, 12 de octubre de 2013

Algoritmo de descompresión LZS

Por ahora no tengo mucho tiempo para escribir en el blog pero quiero compartir con ustedes unas cuantas líneas de código que programé recientemente. Se trata de un programa para descomprimir datos comprimidos con el algoritmo LZS que se describe en este paper:

http://masters.donntu.edu.ua/2003/fvti/boykov/library/lzs.pdf

El programa tiene algunos errores, como que si los datos descomprimidos son mayores a 2048 bytes va a dar overflow... Pero lo bueno es que funciona y para mi propósito eso es suficiente. En fin, ahi se los dejo.

lunes, 5 de agosto de 2013

Joomla "com_media" Unauthorised Uploads

Esta vulnerabilidad se ha publicado hace poco (01/08/2013) en el "Vulnerable Extensions List" de Joomla (vel.joomla.org). Se trata de un filtrado incorrecto en el componente "com_media", que es parte del core de Joomla y se encarga de la gestión del contenido multimedia (imágenes). Esta vulnerabilidad permite subir ficheros no autorizados al servidor lo que podría terminar en una ejecución de código PHP.

En este post quiero hacer un análisis de esta vulnerabilidad y mostrar como explotarla.

domingo, 4 de agosto de 2013

PHP Object Injection

Este tipo de vulnerabilidad lo aprendí hace poco mientras investigaba sobre vulnerabilidades en Joomla. Resulta que en febrero y marzo de este año Egidio Romano ("EgiX") hizo publicas dos vulnerabilidades de inyección de objetos PHP que afectan a diversas versiones de Joomla permitiendo realizar ataques de denegación de servicio, inyección SQL y bajo determinadas condiciones inclusión de ficheros (LFI). Obviamente esto tenía que llamar mi atención, así que de ello tratará este post.

lunes, 10 de junio de 2013

Call for Papers - Limahack 2013


Los preparativos para Limahack 2013 ya han iniciado y hoy se abrió el Call for Papers para el evento de este año. Así que ahora es tu oportunidad de participar como expositor en Limahack 2013 y compartir con todos tus investigaciones sobre in-seguridad informatica y hacking.

Call for Papers: http://www.limahack.com/cfp.html

Nos vemos en Limhack 2013 ;)

Un saludo.

domingo, 19 de mayo de 2013

Hackeando Nucom R5000UNv2

Hace un par de días, nuestro ISP nos cambió el modem/router por otro modelo más "adecuado" al plan de servicio que tenemos contratado. El anterior router que teníamos era un bonito porta retratos blanco marca Huawei que, aunque no fuera lo mejorcito, ya lo tenía configurado a mi gusto: puertos cerrados, DMZ, QoS, etc. Así que ahora tocaba volver a meter mano a todo.

El nuevo modelo de router que tenemos es un Nucom R5000UNv2 de color blanco y con dos antenas wifi como el de la imagen. Al inicio me dio una buena impresión.
 
Fig. Nucom R5000UN v2

jueves, 2 de mayo de 2013

Find In Set con extractvalue y XPath

Una de las técnicas de inyección SQL que más me sorprendió, en cuanto a optimización de la extracción de datos en inyecciones ciegas, es "Find In Set". Pues llega al punto de mejorar la eficiencia "lineal" de la búsqueda binaria (que son siempre ocho consultas para cualquier carácter ASCII) a una expresión "logarítmica" que depende de la posición del carácter a extraer dentro de un conjunto arbitrario y esto es mucho mejor.

Sin embargo, tiene un pequeño gran problema: necesita un tercer estado para funcionar. Mientras que la técnica clásica de búsqueda binaria solo requiere dos estados (la página de verdadero y la de falso), Find In Set necesita un tercer estado que indique el final de la cadena binaria. Originalmente se sugería ejecutar un "delay" y usarlo como tercer estado, pero es contraproducente. Al final lo que se pretende es ahorrar tiempo no consultas.

martes, 30 de abril de 2013

Una forma de elevar privilegios en linux

Hace algún tiempo escribí un par de posts en los que, mientras buscaba una forma de espiar la terminal de otro usuario, encontré también una manera para ejecutar comandos en su consola usando pseudoterminales y secuencias de escape.

Aprendido este nuevo truco, pense en buscar otros escenarios donde pudiera ser útil y es así como encontré una forma, algo rebuscada eso sí, de elevar privilegios en Linux.

Los detalles a continuación...

miércoles, 17 de abril de 2013

Tomando el control con UDF en Postgresql

Tanto Postgresql como MySQL soportan librerías UDF (User Defined Functions). Estas librerías permiten ampliar las funciones del DBMS y programar las nuestras propias en un lenguaje como C o C++. Esto nos puede permitir por ejemplo programar una función que llame a "system" y ejecute comandos en el sistema operativo desde una consulta SQL o, mejor aún, desde una inyección SQL. Este post trata de como "tomar el control" con una inyección SQL usando librerías UDF en Postgresql.

miércoles, 10 de abril de 2013

Compilar librería UDF "lib_postgresqludf_sys.so" para Sqlmap

Una de las formas de tomar control del sistema operativo mediante un SQLi en Postgresql (y también en MySQL) es mediante librerías UDF (User Defined Functions). Este mecanismo permite programar nuestras propias funciones en C/C++, compilarlas como una librería compartida (.so en linux y .dll en windows) y luego importarlas a la base de datos. Evidentemente, es necesario tener permisos de administrador en la DB.

Sqlmap, implementa esta técnica de explotación y viene con librerías precompiladas para distintas versiones de Postgresql y MySQL tanto para linux como para windows con arquitecturas de 32 o 64 bits. Para usarlas se utiliza el parámetro "--os-cmd" (para ejecutar comandos en el SO) o también "--os-pwn" (para ejecutar payloads de metasploit). Por ejemplo:

domingo, 31 de marzo de 2013

Explotación de web services con Sqlmap

Hace poco encontré un Blind SQLi en un web service y recordé que se podía automatizar con Sqlmap. Tiempo atrás ya había leído este post de Bernardo Damele, en el que explica como usar el soporte para SOAP de Sqlmap.  Es genial cuando algo que leíste hace mucho tiempo de pronto te sirve y ahorras tiempo y esfuerzo :)

En este otro post ya había escrito sobre los web services y el protocolo SOAP. Puedes revisarlo si no recuerdas el funcionamiento de SOAP. En resumen, se puede decir que la diferencia, en lo que a la explotación de un SQLi se refiere, está en el "formato" de envió de datos. Mientras que en un SQLi "normal" los datos se envían por GET o POST en el formato "variable=valor", en un webservice los datos de entrada se envían por POST en un documento XML.

miércoles, 20 de marzo de 2013

Redirecciones no validadas (caso práctico)

En el último puesto del "OWASP Top 10" del año 2010, se incluyó una nueva vulnerabilidad con el nombre de "Unvalidated Redirects and Forwards". En la versión "Release Candidate" de este año del mismo documento, dicha vulnerabilidad aún se mantiene vigente y en su mismo puesto. Pero... ¿De qué trata este fallo de seguridad?

lunes, 11 de marzo de 2013

Configurando Fedora 18



Hace poco instalé en mi máquina la última versión de Fedora: "Spherical Cow". O también conocida como Fedora 18. Así que pondré aquí algunas de las configuraciones que hice para asegurar un poco mi sistema y además instalar algunas herramientas "básicas".

jueves, 7 de marzo de 2013

OWASP Latam Tour 2013


Por otro año consecutivo, el capitulo de OWASP en Perú formará parte del "OWASP Latam Tour", la gira anual de conferencias de OWASP por muchos países de latinoamérica donde se tratan diversos temas sobre seguridad en aplicaciones web.

Este año la gira trae algunas novedades. El evento se llevará a cabo durante dos días: lunes 25 y martes 26 de marzo, en la Escuela de Postgrado de la Universidad Tecnológica del Perú (UTP).

Mapa: http://g.co/maps/ajq42

El primer día estará dedicado al dictado de talleres. Para los interesados en llevar alguno de estos entrenamientos, pueden encontrar mayor información en este enlace:

https://www.owasp.org/index.php/LatamTour2013#Training

El segundo día será para las conferencias. Como todos los años, el ingreso es gratuito previo registro al evento.

Link de registro: http://www.regonline.com/Register/Checkin.aspx?EventID=1204754

Desde hace algunos días la agenda ya está lista y puede consultarse en este enlace: 

https://www.owasp.org/index.php/LatamTour2013#Lima

Este año me ha llamado la atención la cantidad de speakers extranjeros a diferencia de años anteriores. En el evento participarán: Pablo Ramos (Argentina) que como recordarán también participó en el pasado Limahack 2012; Fabio Cerullo (Argentina) por segundo año consecutivo aquí en Perú; Simon Bennetts (United Kingdom) que dará una conferencia remota, Bennetts es lider del proyecto ZAP (Zed Attack Proxy) uno de los proyectos de OWASP que más me gusta y Jaime Andrés Restrepo (Colombia) quizá más conocido como "DragoN" por los asiduos foreros de la comunidad DragonJar.

Por el lado nacional participarán: Carlos Ganoza Plasencia, lider del proyecto WATIQAY, un sistema de monitoreo y respuesta inmediata a incidentes de seguridad web y por que no decirlo, el primer proyecto de OWASP peruano; y Camilo Galdos quien presentará su herramienta llamada "DomKingKong" orientada a vulnerabilidades del tipo Cross Site Scripting (XSS) con seguridad una de sus vulnerabilidades favoritas pues ha detectado este tipo de fallos en páginas de reconocidas empresas como Adobe o Microsoft.

Sin más, animarles a participar del evento.

Un saludo.

miércoles, 30 de enero de 2013

LFI 2 RCE en Windows con archivos temporales

Esto lo leí hace algún tiempo y me pareció sencillamente genial. Se trata de una forma bastante ingeniosa de explotar un LFI mediante ficheros temporales de PHP en Windows. El paper es de marzo de 2011 y lo pueden encontrar en este link:

http://gynvael.coldwind.pl/download.php?f=PHP_LFI_rfc1867_temporary_files.pdf

Por mi parte trataré de explicarlo como lo entendí.

domingo, 27 de enero de 2013

Solución al reto de la agenda Limahack 2012

Hola a todos, quizá recuerdan que previo a Limahack 2012 hubo un reto que consistía en buscar cinco tokens escondidos en la página de consulta de la agenda de Limahack. Actualmente la página del reto ya no está disponible pero si te quedaste con la curiosidad de saber dónde estaban escondidos los tokens puedes revisar la solución compartida por "amorales" (ganador del reto) en este link:

http://limahack.com/hofame.html

Además está la lista de participantes y su puntuación obtenida en el reto.

Un saludo.

Actualización:

La página de limahack ha cambiado y el link anterior ya no está disponible. El link al "writeup" con las soluciones es este:

http://ubuntuone.com/1ovP74ZNII0BqDVPDMIpB3

jueves, 3 de enero de 2013

Inyectando código PHP en cookies de SquirrelMail

La tarea más complicada al explotar un LFI es encontrar un fichero donde poder inyectar el código PHP que deseamos ejecutar. Existen muchas opciones donde inyectar la shell, como por ejemplo:
  • En los logs de Apache.
  • En el fichero /proc/self/environ.
  • En los metadatos de imágenes (si hay un uploader de imagenes).
  • En las cookies de sesión de PHP.
  • En /tmp usando una inyección SQL con INTO OUTFILE.
  • En ficheros temporales usando "phpinfo".