lgandx / Responder

Responder is a LLMNR, NBT-NS and MDNS poisoner, with built-in HTTP/SMB/MSSQL/FTP/LDAP rogue authentication server supporting NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP and Basic HTTP authentication.
GNU General Public License v3.0
5.39k stars 768 forks source link

LDAP Auth Testing - Feature Request? #274

Open mubix opened 6 months ago

mubix commented 6 months ago

Not sure exactly what is going wrong but here are the steps I'm using to test:

  1. Added a DNS entry to my "testing.local" domain called "testingserver.testing.local" (I know inventive...)

  2. Run Responder - default configuration w/ verbose

  3. Open up LDP and connect

    image
  4. Bind as the current user:

    image

Result:

ld = ldap_open("testingserver.testing.local", 389);
Established connection to testingserver.testing.local.
Retrieving base DSA information...
Getting 0 entries:
-----------
0 = ldap_set_option(ld, LDAP_OPT_ENCRYPT, 1)
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, NEGOTIATE (1158)); // v.3
    {NtAuthIdentity: User='NULL'; Pwd=<unavailable>; domain = 'NULL'}
Error <81>: ldap_bind_s() failed: Server Down.
Server error: <empty>
-----------

Nothing shows up on Responder at all to even say a connection happened even with verbosity.

UPDATE 1:

I tried again, turning the "encrypt traffic after bind" off and I got a hash.

Oddly enough "NTLM" didn't work in the Advanced setting:

image

UPDATE 2:

I attempted LDAP connection using certutil: certutil -store "ldap://testingserver.testing.local/DC=testing,DC=local" And that came straight back without any output from Responder.

UPDATE 3:

Super odd behavior. If I leave "Encrypt after bind" on and use the "Negotiate" advanced method with a random user, I get a hash, if I go back and tell it to use "Bind as currently logged in user" AFTER that, I get a hash. So I don't think "Encrypt after bind" was the problem.

Update 4:

Simply attempting to bind twice seems to be what does it enough to get the hash.