I've got few questions associated with NTLM protocol details.
(Interactive authentication only) A user accesses a client computer and provides a domain name, user name, and password. The client computes a cryptographic hash of the password and discards the actual password.
The client sends the user name to the server (in plaintext).
The server generates a 16-byte random number, called a challenge or nonce, and sends it to the client.
The client encrypts this challenge with the hash of the user's password and returns the result to the server. This is called the response.
The server sends the following three items to the domain controller:
User name Challenge sent to the client Response received from the client
The domain controller uses the user name to retrieve the hash of the user's password from the Security Account Manager database. It uses this password hash to encrypt the challenge.
The domain controller compares the encrypted challenge it computed (in step 6) to the response computed by the client (in step 4). If they are identical, authentication is successful.
If attacker knows the challenge (even just from sniffing the data), and the ciphertext from the response (a.k.a steps 3 and 4) and the algorithm (which from some reason I couldn't find out what exact algorithm is used, If someone knows I'll be happy to know.) , what prevents the attacker from getting the key to the encryption (which is the hash).
Responder tool intercepts traffic and sends chllenges to all misspelled hostnames NTLMs, and gives the attacker the net-NTLMv2, which can not be used in PTH. why it can't be used ?
At steps 6 and 7, the domaon controller uses the NTLM hash of the user, and encrypts the chllenge itself, and then compares to the response, but accorsing to what I understand, the response is encrypted using the net-NTLMv2 but in the DC DB (NTDS.DIT) the hashes are stored as NTLM hashes, how the calculation in step 7 is the same as the response ?
thank you a lot!