martes, 25 de diciembre de 2012

jueves, 20 de diciembre de 2012

Pseudoterminales y secuencias de escape

En el post anterior, les comentaba sobre cómo espiar la terminal de otro usuario en linux. Para esto era necesario lograr que el usuario víctima ejecute sin darse cuenta una llamada al comando "script" y lo conseguimos reemplazando el binario del comando "ls" por un script bash que haga todo el trabajo.

Si bien funcionó, no me parece la mejor forma de hacerlo, pues tiene algunos inconvenientes:
  1. Hay que esperar a que el usuario ejecute el comando "ls".
  2. Otros usuarios también podrían ejecutar "ls" y entrar en la sesión de script innecesariamente.
  3. Nosotros mismos podríamos entrar en la sesión de script si somos descuidados xD
Pues bien, hay otra forma de conseguir que un usuario ejecute algo en su terminal sin percatarse...

lunes, 17 de diciembre de 2012

Espiando la terminal

Algo que recientemente me puse a investigar fue sobre cómo espiar la terminal de otro usuario conectado al mismo servidor y ver que es lo que está haciendo en tiempo real. Así podría monitorear las acciones de los administradores u otros usuarios, saber si sospechan de mi presencia y poder reaccionar inmediatamente.

En este post hablaré de algunas aproximaciones para conseguir esto. Como imaginarán todas requieren de permisos de "root" en el sistema.

Empecemos...

jueves, 13 de diciembre de 2012

PHPIDS 0.7 SQLi Bypass II

Ya hace algún tiempo escribí un post sobre como "bypassear" la protección de PHPIDS 0.7 para poder colar nuestras inyecciones SQL. En aquella ocasión las pruebas se realizaron sobre una aplicación vulnerable en una variable de tipo numérico. Sin embargo eso mismo no funciona cuando se trata de una variable de tipo cadena, pues hay que anteponer siempre una comilla para poder inyectar y eso hace saltar otras reglas de PHPIDS.

viernes, 9 de noviembre de 2012

SQLi con comentarios y queries multilinea

En algunas oportunidades me he encontrado con inyecciones que al parecer no aceptaban ningún tipo de comentario. Cada vez que colocaba una forma de comentario la aplicación tiraba un error y la inyección fallaba. Con el tiempo y la experiencia me di cuenta que ello se debía a que la aplicación armaba "querys multilinea" ¿Qué es eso? Bueno, simplemente es cuando la consulta SQL incluye saltos de linea y tabulaciones. Los desarrolladores hacen esto usualmente cuando la query es muy larga y quieren mantener legible el código SQL.

Por ejemplo:

SELECT
    ID,
    TITULO,
    CONTENIDO,
    AUTOR,
    FECHA
FROM
    NOTICIAS
WHERE
    AUTOR = '$autor' AND
    FECHA = CURDATE()

lunes, 29 de octubre de 2012

Reto Limahack 2012

Desde hoy está publicado un formulario web desde el cual las personas que se hayan registrado a Limahack 2012 podrán consultar su agenda. El link es:

http://agenda.limahack.com/index.pl


Pero además, en esa misma web está funcionando un reto bastante interesante. Se trata de encontrar 5 tokens escondidos en diferentes lugares de la web. Cada token corresponde con una palabra y al unirlos se forma una frase. Para encontrarlos deberás simular ataques, encontrar pistas, analizar y sobre todo ser muy ingenioso.

Los tokens tienen una puntuación diferente dependiendo del grado de dificultad para encontrarlo. La primera persona en encontrar un token recibirá el puntaje completo que corresponde con ese token. A los que lo encuentren después se les descontará un punto por cada persona que lo haya encontrado antes. Por ello es importante que tan pronto encuentres uno lo envíes a la dirección de correo que aparece en la web.

La recompensa por participar en el reto es que podrás aparecer en el "Hall of Fame" de Limahack junto a tu puntuación obtenida.

Anímate a participar y ve calentando motores para el InkaGame ;)

Saludos.

viernes, 26 de octubre de 2012

DESAFIO ESET


 El desafío consiste en una serie de retos que simulan distintos comportamientos que posee el malware. Cada participante deberá resolver cada uno de ellos y sumar puntos por cada uno (no es necesario hacerlo en orden). Ganará aquél que logre sumar la mayor cantidad de puntos en el menor tiempo posible, en caso de empate lo hará aquél que haya alcanzado el mayor puntaje en el menor tiempo.

martes, 23 de octubre de 2012

Análisis del dump de nic.pe

Con respecto a los motivos de Lulzsec para ownear tan "rochosamente" al nic.pe y a como lo hicieron, no quiero comentar nada. Ya suficiente se ha dicho.

Por otro lado quisiera aprovechar los datos ya publicados y hacer un ligero análisis de la fortaleza de los passwords empleados.

El dump que publicó Lulzsec es un script sql que reconstruye una tabla llamada "nic_cliente" con toda la info. Luego de levantar esa info en un MySQL en localhost solo bastan algunas consultas SQL para iniciar nuestro análisis.

El campo que contiene el password del usuario se llama "clave" y está cifrado con SHA1 por lo que hay que crackear los passwords. Hay que notar que en la tabla hay otros campos como email, telefono, numero_documento... entre otros datos personales que podrían ser usados como contraseña. Además hay un campo llamado "clave2" que al parecer contiene un password anterior del usuario en texto plano. ¡SÍ, EN TEXTO PLANO!

Bueno... vamos a los números:

total de registros                 : 206704

clave = ''                         :   5269
clave = sha(clave2)                : 101633
clave = sha(usuario)               :    896
clave = sha(razon_social)          :      6
clave = sha(numero_documento)      :    370
clave = sha(telefono)              :     60
clave = sha(codigo_postal)         :     10
clave = sha(authinfo)              :      1
clave = sha('1234567')             :    215
clave = sha('12345678')            :     55
clave = sha('123456789')           :     77
clave = sha('1234567890')          :      7
clave = sha('0123456')             :      1
clave = sha('01234567')            :      1
clave = sha('password')            :      3


total obtenido                     : 108604
% obtenido                         :  52.54 %



Como ven lo único que se hizo fue probar los hashes de otros campos que estaban en la misma tabla y algunas contraseñas comunes y se logró descifrar más del 50% de los hashes...

Destacan los que mantienen su contraseña igual a la anterior (que está en texto plano), los que usan como clave su mismo nombre de usuario, los que prefieren usar otra información personal (su número de documento) y finalmente los que usan claves débiles como "1234567". ¿Que puedo decir? Clásica ingenuidad de usuario.

Bueno eso es todo.

Reconocimientos:
- Lulzsec, por los datos.
- RS, fué su idea.

Saludos.

martes, 9 de octubre de 2012

Limahack 2012 - Inscripciones abiertas


La noticia de que ya está activo el registro para asistentes a Limahack 2012 ha corrido como pólvora y a estas alturas del día se me hace algo tarde anunciarlo. Pero ahí va, por si no te habías enterado, ¡Limahack 2012 ya abrió sus puertas!


lunes, 17 de septiembre de 2012

Una historia de hackers [Parte III]

Nota: Esta es la tercera parte de un relato sobre una experiencia personal. Quizá quieras leer las partes I y II para comprendelo mejor.

---

¡Era Windows! El servidor era Windows ¿Cómo pude pasar por alto algo tan importante? Los comandos que encontré en los logs nunca pudieron haber funcionado. Esos eran comandos de Linux y el servidor era un Windows Server 2003. Había sido muy distraido por no considerarlo desde un principio. En parte creo, el llevar más de tres años como usuario de Linux hizo que todo me pareciera tan natural que olvidé por completo el contexto y por otra parte la emoción de encontrar algo sospechoso y seguirle la pista me hizo apresurar algunas conclusiones.

martes, 11 de septiembre de 2012

Probando, probando...

El pasado fin de semana me puse a codear una tool en python que implemente la técnica "FIND IN SET" para extracción de datos en una inyección SQL ciega. Se me ocurrieron algunas mejoras que he implementado y tengo otras en mente aún por implementar. Los resultados hasta ahora son bastante alentadores.

La tool aún no tiene nombre, provisionalmente le he puesto "fisi.py" de Find In Set Injector. Acepto sugerencias :D

Sin más, les dejo un vídeo comparativo entre "la tool" y sqlmap:

sábado, 1 de septiembre de 2012

Find In Set: Casos prácticos

Find In Set, como recordarán, es una técnica de inyección SQL a ciegas (Blind SQLi) muy eficiente puesto que nos permite extraer información de la base de datos realizando menos consultas que de la forma clásica con búsqueda binaria.

Los detalles de la técnica pueden revisarlos en este post: http://alguienenlafisi.blogspot.com/2011/04/findinset-optimized-blind-mysql.html o también en la web de su autor: http://www.websec.mx/blog/ver/extraer_datos_blind_sql_inyeccion

Además pueden ver una demo en vídeo aquí: http://alguienenlafisi.blogspot.com/2012/05/findinset-bsqli-demo.html

Sin embargo, hay algo que aún no queda muy claro... ¿Cuándo es recomendable usar "Find In Set"? ¿En qué casos reales puedo aplicar esta técnica? Pues bién, en este post quiero hablar de un par de casos en los que nos vendría bien utilizar "Find In Set"

domingo, 19 de agosto de 2012

fake script "su"

Este "truquito" me valió en una ocasión para conseguir escalar privilegios a root en un sistema al cual ya tenía acceso con las credenciales de otro usuario no privilegiado. Cómo obtuve esas credenciales es otra historia que quizá algún día cuente... xD Pero ahora vamos a lo que vamos...

Se trata de hacer un script bash que simule ser el comando "su" para robarle el password de root al administrador cuando intente elevar privilegios. Como verán nada complejo en realidad y sin mucha magia ni glamour pero realmente efectivo. De hecho está inspirado en el mecanismo usado por un troyano descrito en el libro "El Huevo Del Cuco" de Clifford Stoll.

domingo, 12 de agosto de 2012

Algo más que ' OR ''='

Esto me sucedió hace poco. Encontré un SQLi en el formulario de login de una app que estaba auditando y decidí hacer un bypass del login solo por probar... Ya podía usar el SQLi para extraer información de la base de datos... pero también quería probar el login bypass. Entonces probé el clásico ' OR ''=' en su forma original y en algunas variantes en el campo de usuario y en el de password... pero no hubo éxito, cada vez se mostraba el mismo mensaje de error: "password incorrecto".

Curiosamente, luego de algunas pruebas más, llegué a concluir que el campo del password no era en realidad inyectable. Solo lo era el campo de usuario ¿Qué clase de programador valida correctamente el campo del password pero se olvida totalmente del campo de usuario? Seguramente no muchos. Supuse entonces que estaba frente a una implementación ligeramente distinta de un login; una, en la que el password no se inserta en la consulta SQL (y por tanto nunca será "inyectable").

martes, 24 de julio de 2012

LimaHack 2012 / Call For Papers




Limahack es el evento de inseguridad informática con mayor nivel técnico en el Perú. Este año, en su cuarta edición, el evento promete seguir creciendo aún más y se realizará durante 2 días seguidos para dar acogida a un número mayor de asistentes y tener más presentaciones.


La fecha y el lugar aún no han sido revelados en la página del evento. Pero desde hoy ya se ha dado inicio al "Call for Papers". Así que si has investigado sobre algún tema de hacking, trabajas en áreas afines y/o llevas el hacking hardcodeado en tu fuente y quieres compartir tus conocimientos con todos nosotros, esta es tu oportunidad.

Envía tu propuesta de presentación a través del formulario que está publicado en este link:

http://www.limahack.com/Cfp.htm

Nota: Este formulario NO es para registrase como asistente. El registro de asistentes aún no ha comenzado. Paciencia ;)

Saludos.


miércoles, 18 de julio de 2012

CAFE-BABE v0.2

CAFE-BABE es la tool que programé hace un par de días durante una noche de insomnio xD Ya les hablé de ella y para que sirve en el post anterior:

http://alguienenlafisi.blogspot.com/2012/07/scapy-arp-y-cafe-babe.html

Bueno, le hice algunos arreglos y la he puesto en Google code. Puden descargarla desde este link:

http://code.google.com/p/cafe-babe/downloads/list

Además hice un vídeo para mostrar su funcionamiento y compararlo con el funcionamiento de una herramienta clásica como es arpspoof de la suit dsniff. Para nada se trata de cual herramienta es mejor que otra, solo se muestran las ventajas y desventajas de cafe-babe.





martes, 17 de julio de 2012

Scapy, ARP y CAFE-BABE

Nada, que debí haber tomado mucho café y de pronto quise hacer lo mismo de siempre pero diferente.

Quizá lo que vaya a explicar en este post no tenga utilidad práctica, no aporte eficiencia, es más, hasta puede que la reste y que no sea tan innovador como yo creo. Pero se me ocurrió ayer y no he dormido hasta demostrarme a mi mismo que funciona.

De lo que trata, es de hacer una típica interceptación de paquetes IP dentro de una red LAN valiendonos de las debilidades ya por demás conocidas del protocolo ARP. Sin embargo, a diferencia del clásico ataque ARP Poisoning en el que asocias tu MAC con la IP del router (u otro host) en la caché ARP de la victima, en este caso la asociación se hará con una MAC arbitraria e inexistente en la red. Yo le llamo CAFE-BABE.

jueves, 12 de julio de 2012

Anonymous LDAP Authentication

Para quién no sabe mucho de que van los servidores LDAP, solo imaginen que son una especie de base de datos. Sin embargo a diferencia de las bases de datos relacionales (donde las relaciones pueden ser de todos contra todos formando una red) en los directorios LDAP (así se les llama) las relaciones son jerárquicas, es decir en forma de árbol. Por esta característica son ideales para almacenar información con una estructura jerárquica bien definida, como por ejemplo la estructura organizativa de una empresa.
Fig. 1 - Arbol LDAP de una organización.

sábado, 30 de junio de 2012

El siguiente paso... Squid

Quizá ya has visto el vídeo de la con "Owning bad Guys and Mafia with Javascript" que dio Maligno (Chema Alonso) en la Rooted. Si no, http://vimeo.com/43984554.

Bien, luego de verlo, me dieron ganas de hacer lo mismo aunque sea solo para jugar. En este caso, en lugar de montar un proxy público (que no hay donde tampoco) pensé en hacerlo utilizando un fake AP. Esto trae algunas desventajas, como que reduces los usuarios a un área geográfica determinada. Así que dudo encontrar usuarios tan "interesantes" como los de la con. Pero la ventaja sería que puedes hacer un ataque dirigido. Por ejemplo, poniendo el AP en el aula de clase, en el salón de conferencias o cerca al aula de docentes de la facultad }:))

El cómo montar un AP con linux y tu interface wifi, ya se explicó en el post anterior. Así que vamos a lo que nos interesa, a configurar el proxy. Básicamente haremos lo mismo que explica Chema en su blog, pero con algunas variaciones.

Empecemos...

lunes, 18 de junio de 2012

Montar un AP con Linux

En este post quiero mostrar como podemos montar un AP (Access Point) con nuestra interface wifi en Linux. Específicamente usaré Fedora 16, pero el procedimiento debe variar poco para otras distros.

Las razones por las que nos interesaría montar un AP pueden ser diversas. Yo en particular lo quise hacer para ver cuantos h4x0rs se conectan a mi AP en busca de internet gratis y así poder sniffar su tráfico. Sí, soy muy malo }:)) Ya lo sé. Aunque aún no lo pongo en práctica.

Bueno empecemos de una vez... ¡A la consola!

miércoles, 6 de junio de 2012

Una historia de hackers [Parte II]

Día miércoles. Hace más de una hora desde que debí haber llegado al trabajo. Tras tocar la puerta un par de veces, giré la perilla y entré en la oficina. Era el último en llegar. Los demás ya estaban acomodados en sus respectivos escritorios y por un momento habían dejado de observar la pantalla de su monitor para dirigir sus miradas hacia la puerta.

Tras estrechar la mano de cada uno de mis compañeros, tomé mi lugar y me dispuse a empezar con el trabajo. Hoy tocaba hacer hardening de PHP.

Aún no había terminado de encender el ordenador, cuando el mismo colega que descubrió el ataque el día anterior, me dijo:

- Han vuelto a atacar esta mañana desde la misma IP.

domingo, 13 de mayo de 2012

FIND_IN_SET BSQLi (DEMO)

Hola a todos, como sabrán el sábado 12 fue el "OWASP Latam Tour 2012". Este año tuve la oportunidad de participar como expositor con una charla sobre "Optimizacion de Blind SQLi". En resumen quise mostrar un método de extracción de datos bastante interesante y eficiente. Para ello hice una demo en vídeo que quiero compartir con ustedes también aquí en el blog.

Bueno sin más los dejo con el vídeo. Las diapositivas las comparto luego :) Las diapositivas de todas las charlas están publicadas en:

https://www.owasp.org/index.php/LatamTour2012_LIM_Agenda




martes, 24 de abril de 2012

Una historia de hackers [Parte I]

Martes por la mañana, hace más de una hora desde que llegué a trabajar. En ese momento me encontraba algo aburrido terminando de configurar un Apache. De pronto, tras una revisión de rutina, un compañero observó en los registros del UTM un UDP Flood proveniente de un servidor de nuestra red interna. El día comenzaba a ponerse interesante.

A decir por la IP de destino, el ataque estaba dirigido a un servidor de hosting de alguna empresa norteamericana. Hasta ese momento tenía una idea clara del problema: alguien había comprometido nuestro servidor de alguna manera y ahora lo estaba utilizando para lanzar ataques de denegación de servicio.

sábado, 7 de abril de 2012

OWASP Latam Tour 2012 - CFP


El capítulo peruano de OWASP ha iniciado la convocatoria de presentaciones para el "OWASP LATAM TOUR PERU 2012". Las personas u organizaciones interesadas en hacer una presentación sobre algún tema de seguridad en aplicaciones deben emplear esta plantilla para enviar su tema. El correo de contacto es "owasp.peru@gmail.com".

Más información:

https://www.owasp.org/index.php/Peru#OWASP_LATAM_TOUR_2012

Saludos.

viernes, 16 de marzo de 2012

UCCINUX - Open Day

El sábado de la próxima semana estaré participando en el "Open Day" que organiza UCSSINUX. Tengo programada una charla a las 9:00 AM en la que hablaré sobre automatización de inyecciones SQL con mi tool favorita: Sqlmap. Así que si no tienes nada mejor que hacer ese día, nos vemos allá xD

Fig. 1 - UCSSINUX Open Day.

 Más detalles, a continuación...

sábado, 10 de marzo de 2012

Linux Week 2012

El próximo lunes empieza "Linux Week 2012", una semana de conferencias sobre aplicaciones del software libre en diferentes áreas.

Al igual que el año pasado es probable que asista con toda la manchita de "San Marcux". El martes será un día imperdible, pues la temática de ese día será "Seguridad Informática" y algunos amigos van estar ahí hablando de temas interesantes :)

miércoles, 25 de enero de 2012

LimaHack@UTP

El sábado de la próxima semana (04/02) se estará llevando acabo una nueva réplica del LimaHack 2011 en la Universidad Tecnológica del Perú (UTP).

Como es característico de este evento, el ingreso es libre previa inscripción.

domingo, 22 de enero de 2012

PHPIDS 0.7 SQLi Bypass

PHPIDS es una aplicación web de detección de intrusos open source que podemos configurar en nuestras propias aplicaciones a fin de bloquear ataques conocidos (XSS, SQLi, LFI, RCE, etc).

Ayer me dieron ganas de jugar un poco con este IDS y buscar alguna forma de "bypassearlo" para poder explotar un SQLi. Luego de muchas pruebas, logré encontrar algo y, aunque aún no estoy satisfecho con los resultados, creo que no estaría mal publicar los avances.

jueves, 19 de enero de 2012

Modificando los payloads de sqlmap

Hoy quiero escribir sobre algo que me ha resultado muy útil en algunas ocasiones. Se trata de la posibilidad de modificar los payloads de sqlmap. Seguro te estarás preguntando ¿Y para que quiero yo modificarlos? Bueno pues a veces sucede que algunos segmentos del payload como nombres de funciones, bases de datos o clausulas hacen match con una firma del IDS y te echan al agua la explotación. Pero claro como tu eres un ninja en SQL descubres al cabo de un rato una forma alternativa de inyección que se salta el IDS :D Lo único malo es que deberás hacer todo el trabajo manualmente porque no hay ninguna herramienta que utilice esa forma de inyectar o quiza debas programarte tu propia tool.

martes, 3 de enero de 2012

Fondo Editorial UNMSM - Hacked

Bueno, ahora que estoy de vacaciones y tengo algo de tiempo libre me he puesto a buscar más errores en los sistemas de la universidad y he encontrado algunas cosas interesantes.

Por lo pronto quiero contarles de un defacement que ha sufrido la web del "Fondo Editorial de la UNMSM" ¿Cómo? ¿No sabes que es el Fondo Editorial? Bueno la verdad yo tampoco lo conocía hasta ahora xD