**LM **is only **enabled **in** Windows XP and server 2003 **(LM hashes can be cracked). The LM hash AAD3B435B51404EEAAD3B435B51404EE means that LM is not being used (is the LM hash of empty string).
By default **Kerberos **is **used**, so NTLM will only be used if** there isn't any Active Directory configured, **the **Domain doesn't exist**, **Kerberos isn't working** (bad configuration) or the **client **that tries to connect using the IP instead of a valid host-name.
4. The **client encrypts **the **challenge **using the hash of the password as key and sends it as response
5. The **server sends **to the **Domain controller **the **domain name, the username, the challenge and the response**. If there **isn't** an Active Directory configured or the domain name is the name of the server, the credentials are **checked locally**.
The **server **and the **Domain Controller** are able to create a **Secure Channel** via **Netlogon **server as the Domain Controller know the password of the server (it is inside the **NTDS.DIT** db).
The authentication is as the one mentioned **before but **the **server **knows the **hash of the user** that tries to authenticate inside the **SAM **file. So, instead of asking the Domain Controller, the **server will check itself** if the user can authenticate.
The **hash NT (16bytes)** is divided in **3 parts of 7bytes each** (7B + 7B + (2B+0x00\*5)): the** last part is filled with zeros**. Then, the **challenge **is **ciphered separately **with each part and the **resulting **ciphered bytes are **joined**. Total: 8B + 8B + 8B = 24Bytes.
* Given the** same challenge** the **response **will be **same**. So, you can give as a **challenge **to the victim the string "**1122334455667788**" and attack the response used **precomputed rainbow tables**.
Nowadays is becoming less common to find environments with Unconstrained Delegation configured, but this doesn't mean you can't **abuse a Print Spooler service** configured.
You could abuse some credentials/sessions you already have on the AD to **ask the printer to authenticate** against some **host under your control**. Then, using `metasploit auxiliary/server/capture/smb` or `responder` you can **set the authentication challenge to 1122334455667788**, capture the authentication attempt, and if it was done using** NTLMv1** you will be able to **crack it**.\
If you are using `responder` you could try to** use the flag `--lm`**to try to **downgrade **the **authentication**.\
_Note that for this technique the authentication must be performed using NTLMv1 (NTLMv2 is not valid)._
Remember that the printer will use the computer account during the authentication, and computer accounts use **long and random passwords** that you **probably won't be able to crack** using common **dictionaries**. But the **NTLMv1** authentication** uses DES** ([more info here](./#ntlmv1-challenge)), so using some services specially dedicated to cracking DES you will be able to crack it (you could use [https://crack.sh/](https://crack.sh) for example).
**The first response** is created by ciphering using **HMAC\_MD5 **the **string **composed by the **client and the domain** and using as **key **the **hash MD4 **of the** NT hash**. Then, the **result **will by used as **key **to cipher using **HMAC\_MD5 **the **challenge**. To this, **a client challenge of 8 bytes will be added**. Total: 24 B.
If you have a **pcap that has captured a successful authentication process**, you can follow this guide to get the domain, username , challenge and response and try to creak the password: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://research.801labs.org/cracking-an-ntlmv2-hash/)
**Once you have the hash of the victim**, you can use it to **impersonate **it.\
You need to use a **tool **that will **perform **the **NTLM authentication using **that **hash**, **or **you could create a new **sessionlogon **and **inject **that **hash **inside the **LSASS**, so when any **NTLM authentication is performed**, that** hash will be used. **The last option is what mimikatz does.
This will launch a process that will belongs to the users that have launch mimikatz but internally in LSASS the saved credentials are the ones inside the mimikatz parameters. Then, you can access to network resources as if you where that user (similar to the `runas /netonly` trick but you don't need to know the plain-text password).
* **atexec.exe** (In this case you need to specify a command, cmd.exe and powershell.exe are not valid to obtain an interactive shell)`C:\AD\MyTools\atexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local 'whoami'`
This function is a **mix of all the others**. You can pass** several hosts**, **exclude **someones and **select **the **option **you want to use (_SMBExec, WMIExec, SMBClient, SMBEnum_). If you select **any **of **SMBExec **and **WMIExec **but you **don't **give any _**Command **_parameter it will just **check **if you have **enough permissions**.