miércoles, abril 29, 2009

LDAP Injector

Hace ya año y medio desde que se publicó el Reto Hacking IV sobre Blind LDAP Injection. Ese que ganó El gran Mandingo y que iba sobre la serie Alias. El solucionario del reto fue publicado y cualquiera puede jugar con él hoy en día.

Meses después pasamos, en Abril de 2008, por la Blackhat Europe 2008 donde publicamos un paper sobre LDAP Injection y Blind LDAP Injection junto con la charla. Para impartir la charla, yo, que soy amante de los GUIs en las charlas, pedí a Rodol que me preparase una pequeña tool para inyectar LDAP en la charla.

La utilidad se llamo LDAP Injector y es sólo eso, un GUI para realizar cuatro funciones que seguro que un amante de Pipper, curl o python puede sustituir, pero, como lo dejamos publicado en esta URL, voy a explicar brevemente como funciona. La herramienta realiza tres tipos de inyecciones a ciegas:

Ataque por diccionario

La primera es por diccionario y, simplemente, realiza una sustitución de la palabra que aparece en el fichero por el patrón [$0] que aparece en la URL de configuración. Si el "String to find" aparece en la página de respuesta se toma como una respuesta TRUE y aparecerá como un valor válido. Es útil para buscar atributos o valores de atributos en entornos en los que no está permitido el uso del carácter comodín. Mil herramientas hacen esta misma función.

Ataque a Strings

La segunda es un ataque a valores alfanuméricos booleanizando. Primero realiza una reducción del charset y luego pasa a ejecutar el proceso de booleanización. En el siguiente ejemplo se puede ver funcionando la herramienta con el Reto Hacking IV.

La web vulnerable

En el reto hacking el parámetro vulnerable estaba en la búsqueda de recursos. Una vez que se buscan objetos con algún valor en el atributo uid aparece una única impresora.


Valor True

Si se busca por un nombre de usuario que no existe, por ejemplo Maligno, obtendremos un valor falso sin ninguna impresora.


Valor False

A partir de ese momento se puede utilizar LDAP Injector para extraer el valor del usuario. Se configura la URL vulnerable, se pone [$0] en el valor a buscar y se utiliza como string to find en resultados positivos el nombre del fichero de la imagen de la impresora. Se selecciona búsqueda de valores string y para adelante.

Fase 1: Reducción del charset

Utilizando la idea de RoMaNSoFt se averigua que caracteres se encuentran en el valor buscado.


Buscando los caracteres que forman parte del valor

Fase 2: Booleanización

Una vez reducido el charset se procede a realizar la booleanización del valor para ordenar los caracteres en el valor.


Booleanización de los caracteres

Al final se obtiene el usuario buscado en el reto hacking.


Usuario del Reto Hacking IV

Búsqueda de valores numéricos

La tercera opción sirve para obtener valores numericos realizando búsqueda binaria. La opción requiere configurar el valor sin operador, es decir, si se quisiera averiguar el valor del atributo salario mediante búsqueda binaria se configuraría (salario[$0]) el resto ya lo hace la herramienta.

No soporta cookies, no soporta sesiones, no soporta proxy, es sólo un GUI para jugar en una conferencia, pero... servía para solucionar el Reto Hacking IV.

Saludos Malignos!

6 comentarios:

  1. Genial!!!!! Ya era hora de que viese la luz

    ResponderEliminar
  2. Uno de los primeros papers que hablan sobre blind ldap injection (y donde se describe la técnica del charset reduction por primera vez) es mi solucionario a dicho reto, que podéis encontrar en:
    http://www.rs-labs.com/papers/i64-reto_IV-solve.txt

    PD: Saludos muchos, que ya hace tiempo que no comentaba nada... (esto de tirar de google reader te hace cada vez más perrón :-)).

    -r

    ResponderEliminar
  3. Hace tiempo que leo tu blog.

    Me sorprendió verlo ayer en el prograam de la Milá!!

    un saludo

    ResponderEliminar
  4. Milá quiero un hijo tuyo

    ResponderEliminar
  5. chemita y pa cuando un reto nuevo, para verano habra alguno no?? :P

    por cierto eres famoso en to los laos yo tmb t vi por ahi en el programa maliggggno xD, no habras exo cosas malas con la tia k salio despues de porno no?? jeje

    ResponderEliminar
  6. Uno, dos, tres, cuatro, cinco, seis, siete!! INFECTADOS! Uno, dos, tres! OS SALVÁIS... Magistral...xDD

    Venga, un saludete.

    ResponderEliminar