LDAP INJECCTION ADVANCE HACKING AND FOR ADVANCE HACKERS...
LDAP son las siglas de Lightweight Directory Access Protocol (en español Protocolo Ligero de Acceso a Directorios) que hacen referencia a un protocolo a nivel de aplicación el cual permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP también es considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas.
Un directorio es un conjunto de objetos con atributos organizados en una manera lógica y jerárquica. El ejemplo más común es el directorio telefónico, que consiste en una serie de nombres (personas u organizaciones) que están ordenados alfabéticamente, con cada nombre teniendo una dirección y un número de teléfono adjuntos.
Un árbol de directorio LDAP a veces refleja varios límites políticos, geográficos u organizacionales, dependiendo del modelo elegido. Los despliegues actuales de LDAP tienden a usar nombres de Sistema de Nombres de Dominio (DNS por sus siglas en inglés) para estructurar los niveles más altos de la jerarquía. Conforme se desciende en el directorio pueden aparecer entradas que representan personas, unidades organizacionales, impresoras, documentos, grupos de personas o cualquier cosa que representa una entrada dada en el árbol (o múltiples entradas).
Habitualmente, almacena la información de autenticación (usuario y contraseña) y es utilizado para autenticarse aunque es posible almacenar otra información (datos de contacto del usuario, ubicación de diversos recursos de la red, permisos, certificados, etc). A manera de síntesis, LDAP es un protocolo de acceso unificado a un conjunto de información sobre una red.
La versión actual es LDAPv3, la cual es especificada en una serie de Internet Engineering Task Force (IETF) Standard Track Request for Comments (RFCs) como se detalla en el documento RFC 4510
Bien, entonces la primera pregunta lógica e inherente a todo hacker es...joder pues ataquemos ldap!!! joder si teneis que haber subido aquí para tener en cuenta ahora el LDAP, bueno tais retrsasadetes..pero bueno, lo importante es que lo estas leyendo....presupongo claro!!!
Lógicamente hasta ahora, que coño intentatabas atacar tu?..mejor , espera , espera..has hakeado alguna vez?, es decir, no "nininerias" ni "lammeruzadas"...con hackear no me refiero a hacer un Denial of Services Dsitributed bajandote LOIC y bajándote el manual de LOIC...Si eres hacker, con solo ver la intefarz de LOIC no es necesario bajarte nada, porque la interfaz es y pone términos de ingeniería, entonces si no sabes el conceto de una Denegación de Servicio, tira para atrás por que esto te viene Enorrrrrrrrrrrrrmeeeeeeeeee!!!!
Bien, para los que me siguais....Si tenemos un host al que queremos sacar una cuantas passwords, primeros tendremos que "taxonomizar" el ataque, es decir saber que coño atacamos, quien es, quienes lo forman, que relaciones de confianza tienen, que coño quieres de esa empresa y si esos datos te merecen la pena para algo...con algo también me refiero al hakcear el sistema a cualquier empresa pero apareciendo tu en ella y dejando en evidencia a su "experto" ja!! y que te contraten a ti..entonces SI SE´RÍA ÉTICO..
Bien a lo que voy...vamos a saco, queremos saber que coño tiene, que directorios forman el arbol, que relación directa con Active Directory tiene y si es el Directorio Ligero el protocolo correcto a hackear..estás seguro que los passwords que quieres o te valen los consigues a través del árbol de directorios?...conoces el concepto del fallo UNICODE/DECODE?? NO? léeto y tendrás una idea de los que es entrar en C_: romper la estructura de un IIS 5.0..y una vez entendido eso, hablamos de ISS 7.0 y como trasladar un Unicode Antiguo en "un moderno injector de peticiones al directorio de acceso ligero a datos del sistema operativo"...
Que buscamos cuando injectamos código ante un bug en ldap? pues joder , os acordais de las injecciones SQL...Slect, From, Where..realizamos consulta al SQL haber si pica y "nos canta algo no?" y lo consiguimos verdad?..pues
Sabeis lo que va a pasar no?.....
Bien seguir Leyendo Newbies....
Visión general del protocolo
**********************
Un cliente inicia una sesión de LDAP conectándose a un servidor LDAP, por defecto en el puerto TCP 389. El cliente luego envía una petición de operación al servidor, y el servidor envía respuestas. Con algunas excepciones, el cliente no necesita esperar una respuesta antes de enviar la siguiente petición, y el servidor puede responder en cualquier orden.
El cliente puede requerir las siguientes operaciones:
Además, el servidor puede enviar "notificaciones no solicitadas" que no son respuestas a ninguna petición, por ejemplo antes de que se termine el tiempo de conexión.
*********************************************************************************
PARA ADMIN QUE QUIERAN SECURIZARSE ANTE EL LDAP..ANDA TOMAD...Y APRENDED!!:
Un método alternativo común para asegurar las comunicaciones LDAP es usar un túnel SSL. Esto es denotado en las URLs de LDAP usando el esquema de URLs "ldaps". El puerto por defecto para LDAP sobre SSL es 636. El uso de LDAP sobre SSL fue común en LDAP Version 2 (LDAPv2) pero nunca fue estandarizado en una especificación formal. Su uso es considerado obsoleto al igual que LDAPv2, que ha sido retirado oficialmente en 2003.
LDAP es definido en términos de ASN.1, y los protocolos del mensaje están codificados en el formato binario BER. Sin embargo, utiliza representaciones textuales para un número de campos y tipos ASN.1.
**********************************************************************************
VENGA YA PODEIS DECIR EN EL CURRO QUE SABEIS MAZO DE LDAP...por dios!!!!
**********************************************************************************
Continuo que me ofusco leche!!!!!!!:
******************************************************************************
Estructura de directorio
El protocolo accede a directorios LDAP, que siguen la edición de 1993 del modelo X.500:
HABER PARA LOS DESPITADOS...DIRECTORIO ACTIVO, ACTIVE DIRECTORY...ahy, ahy...!!
Una entrada puede lucirse como esta cuando es representada en el formato
LDAP Data Interchange Format (LDIF) (LDAP por sí mismo es un protocolo binario):
dn es el nombre de la entrada; no es un atributo ni tampoco parte de la entrada. "cn=John Doe" es el nombre distinguido relativo, y "dc=example,dc=com" es el nombre distinguido de la entrada del padre, donde dc indica domain component (componente de dominio). Las otras líneas presentan los atributos en la entrada. Los nombres de atributos son generalmente cadenas mnemotécnicas, como "cn" para common name (nombre común), "dc" para domain component (componente de dominio), "mail" para dirección de e-mail y "sn" para surname (apellido).
Un servidor aloja un subárbol comenzando por una entrada específica, por ejemplo "dc=example,dc=com" y sus hijos. Los servidores también pueden almacenar referencias a otros servidores, con los cual un intento de acceso a "ou=department,dc=example,dc=com" puede retornar una referencia o continuación de referencia a un servidor que aloja esa parte del árbol de directorio. El cliente luego puede contactar al otro servidor. Algunos servidores también soportan encadenamiento (chaining), que implica que el servidor contacta al otro servidor y devuelve el resultado al cliente.
LDAP raramente define un ordenamiento: El servidor puede devolver los valores de un atributo, los atributos en una entrada y las entradas encontradas por una operación de búsqueda en cualquier orden. Esto sigue la definición formal - una entrada es definida como un conjunto de atributos, y un atributo es un conjunto de valores, y los conjuntos no necesitan estar ordenados.
Hay un esquema de URL similar y no estándar para LDAP sobre SSL,
Un directorio es un conjunto de objetos con atributos organizados en una manera lógica y jerárquica. El ejemplo más común es el directorio telefónico, que consiste en una serie de nombres (personas u organizaciones) que están ordenados alfabéticamente, con cada nombre teniendo una dirección y un número de teléfono adjuntos.
Un árbol de directorio LDAP a veces refleja varios límites políticos, geográficos u organizacionales, dependiendo del modelo elegido. Los despliegues actuales de LDAP tienden a usar nombres de Sistema de Nombres de Dominio (DNS por sus siglas en inglés) para estructurar los niveles más altos de la jerarquía. Conforme se desciende en el directorio pueden aparecer entradas que representan personas, unidades organizacionales, impresoras, documentos, grupos de personas o cualquier cosa que representa una entrada dada en el árbol (o múltiples entradas).
Habitualmente, almacena la información de autenticación (usuario y contraseña) y es utilizado para autenticarse aunque es posible almacenar otra información (datos de contacto del usuario, ubicación de diversos recursos de la red, permisos, certificados, etc). A manera de síntesis, LDAP es un protocolo de acceso unificado a un conjunto de información sobre una red.
La versión actual es LDAPv3, la cual es especificada en una serie de Internet Engineering Task Force (IETF) Standard Track Request for Comments (RFCs) como se detalla en el documento RFC 4510
Bien, entonces la primera pregunta lógica e inherente a todo hacker es...joder pues ataquemos ldap!!! joder si teneis que haber subido aquí para tener en cuenta ahora el LDAP, bueno tais retrsasadetes..pero bueno, lo importante es que lo estas leyendo....presupongo claro!!!
Lógicamente hasta ahora, que coño intentatabas atacar tu?..mejor , espera , espera..has hakeado alguna vez?, es decir, no "nininerias" ni "lammeruzadas"...con hackear no me refiero a hacer un Denial of Services Dsitributed bajandote LOIC y bajándote el manual de LOIC...Si eres hacker, con solo ver la intefarz de LOIC no es necesario bajarte nada, porque la interfaz es y pone términos de ingeniería, entonces si no sabes el conceto de una Denegación de Servicio, tira para atrás por que esto te viene Enorrrrrrrrrrrrrmeeeeeeeeee!!!!
Bien, para los que me siguais....Si tenemos un host al que queremos sacar una cuantas passwords, primeros tendremos que "taxonomizar" el ataque, es decir saber que coño atacamos, quien es, quienes lo forman, que relaciones de confianza tienen, que coño quieres de esa empresa y si esos datos te merecen la pena para algo...con algo también me refiero al hakcear el sistema a cualquier empresa pero apareciendo tu en ella y dejando en evidencia a su "experto" ja!! y que te contraten a ti..entonces SI SE´RÍA ÉTICO..
Bien a lo que voy...vamos a saco, queremos saber que coño tiene, que directorios forman el arbol, que relación directa con Active Directory tiene y si es el Directorio Ligero el protocolo correcto a hackear..estás seguro que los passwords que quieres o te valen los consigues a través del árbol de directorios?...conoces el concepto del fallo UNICODE/DECODE?? NO? léeto y tendrás una idea de los que es entrar en C_: romper la estructura de un IIS 5.0..y una vez entendido eso, hablamos de ISS 7.0 y como trasladar un Unicode Antiguo en "un moderno injector de peticiones al directorio de acceso ligero a datos del sistema operativo"...
Que buscamos cuando injectamos código ante un bug en ldap? pues joder , os acordais de las injecciones SQL...Slect, From, Where..realizamos consulta al SQL haber si pica y "nos canta algo no?" y lo consiguimos verdad?..pues
Sabeis lo que va a pasar no?.....
Bien seguir Leyendo Newbies....
Visión general del protocolo
**********************
Un cliente inicia una sesión de LDAP conectándose a un servidor LDAP, por defecto en el puerto TCP 389. El cliente luego envía una petición de operación al servidor, y el servidor envía respuestas. Con algunas excepciones, el cliente no necesita esperar una respuesta antes de enviar la siguiente petición, y el servidor puede responder en cualquier orden.
El cliente puede requerir las siguientes operaciones:
- Start TLS — usar la extensión Transport Layer Security (TLS) LDAPv3 para una conexión segura
- Bind — autenticarse y especificar una versión del protocolo LDAP
- Search — buscar y obtener entradas de directorio
- Compare — probar si una entrada nombrada contiene un valor de atributo dado
- Add — Añadir una nueva entrada
- Delete — Borrar una entrada
- Modify — Modificar una entrada
- Modify Distinguished Name (DN) — Modificar o renombrar una entrada
- Abandon — abortar una petición previa
- Extended Operation — operación genérica usada para definir otras operaciones
- Unbind — cerrar la conexión (no es el inverso de Bind)
Además, el servidor puede enviar "notificaciones no solicitadas" que no son respuestas a ninguna petición, por ejemplo antes de que se termine el tiempo de conexión.
*********************************************************************************
PARA ADMIN QUE QUIERAN SECURIZARSE ANTE EL LDAP..ANDA TOMAD...Y APRENDED!!:
Un método alternativo común para asegurar las comunicaciones LDAP es usar un túnel SSL. Esto es denotado en las URLs de LDAP usando el esquema de URLs "ldaps". El puerto por defecto para LDAP sobre SSL es 636. El uso de LDAP sobre SSL fue común en LDAP Version 2 (LDAPv2) pero nunca fue estandarizado en una especificación formal. Su uso es considerado obsoleto al igual que LDAPv2, que ha sido retirado oficialmente en 2003.
LDAP es definido en términos de ASN.1, y los protocolos del mensaje están codificados en el formato binario BER. Sin embargo, utiliza representaciones textuales para un número de campos y tipos ASN.1.
**********************************************************************************
VENGA YA PODEIS DECIR EN EL CURRO QUE SABEIS MAZO DE LDAP...por dios!!!!
**********************************************************************************
Continuo que me ofusco leche!!!!!!!:
******************************************************************************
Estructura de directorio
El protocolo accede a directorios LDAP, que siguen la edición de 1993 del modelo X.500:
- Un directorio es un árbol de entradas de directorio.
- Una entrada consta de un conjunto de atributos.
- Un atributo tiene un nombre (un tipo de atributo o descripción de atributo) y uno o más valores. Los atributos son definidos en un esquema (véase luego).
- Cada entrada tiene un identificador único: su Nombre distinguido (Distinguished Name, DN). Este consta de su Relative Distinguished Name (RDN) construido por algunos atributos en la entrada, seguidos del DN de la entrada del padre. Pensar en el nombre distinguido como un completo nombre de archivo y el nombre distinguido relativo como el nombre de archivo relativo en un folder.
HABER PARA LOS DESPITADOS...DIRECTORIO ACTIVO, ACTIVE DIRECTORY...ahy, ahy...!!
Una entrada puede lucirse como esta cuando es representada en el formato
LDAP Data Interchange Format (LDIF) (LDAP por sí mismo es un protocolo binario):
dn: cn=John Doe,dc=example,dc=com cn: John Doe givenName: John sn: Doe telephoneNumber: +1 888 555 6789 telephoneNumber: +1 888 555 1232 mail: john@example.com manager: cn=Barbara Doe,dc=example,dc=com objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top
dn es el nombre de la entrada; no es un atributo ni tampoco parte de la entrada. "cn=John Doe" es el nombre distinguido relativo, y "dc=example,dc=com" es el nombre distinguido de la entrada del padre, donde dc indica domain component (componente de dominio). Las otras líneas presentan los atributos en la entrada. Los nombres de atributos son generalmente cadenas mnemotécnicas, como "cn" para common name (nombre común), "dc" para domain component (componente de dominio), "mail" para dirección de e-mail y "sn" para surname (apellido).
Un servidor aloja un subárbol comenzando por una entrada específica, por ejemplo "dc=example,dc=com" y sus hijos. Los servidores también pueden almacenar referencias a otros servidores, con los cual un intento de acceso a "ou=department,dc=example,dc=com" puede retornar una referencia o continuación de referencia a un servidor que aloja esa parte del árbol de directorio. El cliente luego puede contactar al otro servidor. Algunos servidores también soportan encadenamiento (chaining), que implica que el servidor contacta al otro servidor y devuelve el resultado al cliente.
LDAP raramente define un ordenamiento: El servidor puede devolver los valores de un atributo, los atributos en una entrada y las entradas encontradas por una operación de búsqueda en cualquier orden. Esto sigue la definición formal - una entrada es definida como un conjunto de atributos, y un atributo es un conjunto de valores, y los conjuntos no necesitan estar ordenados.
URLs de LDAP
Un formato URL de LDAP existe para descubrir qué clientes soportan en variedad de grados, y qué servidores retornan como referentes y referencias de continuación (ver RFC 4516):ldap://host:port/DN?attributes?scope?filter?extensionsLa mayoría de los componentes, que son descritos debajo, son opcionales.
- host es el FQDN o dirección IP del servidor LDAP donde se realiza la consulta.
- port es el puerto de red del servidor LDAP.
- DN es el nombre distinguido a usar como base de búsqueda.
- attributes es una lista separada con comas de atributos a devolver.
- scope especifica el ámbito de búsqueda y puede ser "base" (por defecto), "one" o "sub".
- filter es un filtro de búsqueda. Por ejemplo
(objectClass=*)
como es definido en RFC 4515. - extensions son extensiones al formato URL de LDAP.
ldap://ldap.example.com/cn=John%20Doe,dc=example,dc=com
" refiere a todos los usuarios en la entrada de John Doe en ldap.example.com
, mientras "ldap:///dc=example,dc=com??sub?(givenName=John)
" busca por la entrada en el servidor por defecto (notar el triple slash, omitiendo el host, y la marca de doble pregunta, omitiendo los atributos). Así como en otros URLs, los caracteres especiales deben ser codificados con signos de porcentaje.Hay un esquema de URL similar y no estándar para LDAP sobre SSL,
ldaps:
. Esto no debe confundirse con LDAP sobre TLS, que se puede conseguir usando la operación StartTLS usando el esquema normal. ldap:
.