ch05 deel
							parent
							
								
									fa117b6721
								
							
						
					
					
						commit
						fe632b6ab5
					
				|  | @ -95,3 +95,92 @@ | |||
|         * ask target personnel for info on policy | ||||
|         * create test account for pentest | ||||
|         * attempt 1 password per observation window | ||||
| 
 | ||||
| ## Password representation | ||||
| 
 | ||||
| * Windows | ||||
|     * Security Accounts Manager (SAM) for modern desktop versions | ||||
|         * stores all local account info | ||||
|         * login info from domain users that connected to the machine | ||||
|         * encrypted SAM database | ||||
|         * password hashes stored in registry | ||||
|     * LANMAN (LM) or NT hashes | ||||
|     * Active Directory newer alternative | ||||
| 
 | ||||
| ### Lanman hash | ||||
| 
 | ||||
| * operation | ||||
|     1. truncate password to 14 characters (pad with NUL bytes if less) | ||||
|     2. convert to uppercase | ||||
|     3. split into two 7-char pieces | ||||
|     4. use each piece as 7-byte DES key to encrypt 64-bit known constant `KGS!@#$%` | ||||
|     5. hash is concatenation of two 8-byte outputs | ||||
| * this hash is criminally bad | ||||
| 
 | ||||
| ### NT hash | ||||
| 
 | ||||
| * operation | ||||
|     1. convert password (max 256 chars) into UTF-16 little endian format | ||||
|     2. hash using MD4 (no salt) | ||||
| * better but still pretty bad | ||||
| 
 | ||||
| ## Windows challenge-reponse authentication | ||||
| 
 | ||||
| * mutiple forms of network cryptographic authentication | ||||
|     * **LANMAN challenge/response**: legacy-only, uses LM hash | ||||
|     * **NTLMv1**: also legacy, uses NT hash | ||||
|     * **NTLMv2**: stronger security, uses NT hash | ||||
|     * **Microsoft Kerberos** | ||||
| 
 | ||||
| ### LANMAN and NTLMv1 | ||||
| 
 | ||||
| * operation | ||||
|     1. client initiates authentication | ||||
|     2. server sends 8-byte challenge | ||||
|     3. client formulates response | ||||
|         1. pad LM/NT hash to 21 bytes | ||||
|         2. split hash in three 7-byte pieces | ||||
|         3. use each piece as DES key to encrypt challenge | ||||
|         4. response is 3 8-byte outputs | ||||
|     4. server calculates same response and compares | ||||
| * problems | ||||
|     * attacker can sniff both challenge and response and try to crack | ||||
|     * rogue server could issue static challenge for which it has rainbow tables | ||||
|         * works because neither hash uses salting | ||||
|     * without rogue server, method is slower than cracking hashes in SAM db | ||||
|         * no access to actual hash | ||||
|         * attacker needs to perform DES encryption | ||||
| 
 | ||||
| ### NTLMv2 | ||||
| 
 | ||||
| * operation | ||||
|     1. client sends authentication request | ||||
|     2. server sends 8-byte server challenge | ||||
|     3. client formulates response | ||||
|         1. creates NTLMv2 hash using HMAC-MD5 | ||||
|             * data: username and domain name | ||||
|             * key: NT hash | ||||
|         2. creates NTLMv2 response using HMAC-MD5 | ||||
|             * data: server challenge + data blob (client challenge, timestamp, | ||||
|               fields for integrity / security) | ||||
|             * key: NTLMv2 hash | ||||
|     4. client sends response to server | ||||
|     5. server computes validity of response using stored NT hash and received | ||||
|     fields | ||||
| * cracking still possible but much slower | ||||
|     * stronger hash is used | ||||
|     * timestamp protects against replay attacks | ||||
|     * rainbow tables not useful due to variability of client challenge | ||||
| 
 | ||||
| ### NTLM relay attacks | ||||
| 
 | ||||
| * both versions vulnerable | ||||
| * possible if attacker can access server client usually uses | ||||
|     * ARP or DNS spoofing | ||||
|     * phishing | ||||
|     * cross-site scripting attacks | ||||
| * operation | ||||
|     1. attacker poses as authentication server | ||||
|     2. attacker relays authentication request messages to real server -> acts | ||||
|        as authenticating client | ||||
|     3. attacker receives authentication and returns error message to client | ||||
|  |  | |||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 66 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 37 KiB | 
		Loading…
	
		Reference in New Issue