|   | 
	
	
	
		| Exposing the Outlook Password Secrets | 
	
	   |  	
    
    
	
		| 
		
			
			
		
		 | 
	
	
	  |  	
	
	
	
		
	
		  |  	
		
	
		| 
		
	 | 
	
	
		|   | 
	
	
		|   | 
	
	
	
		
	
	
	
		| 
			
		 | 
	
	
	  |   | 
  
	
		
	
		  |  	
	
	
		| 
		  Microsoft Outlook is the popular 
			email client used within the enterprises worldwide. It provides 
			multiple type of email configuration including Exchange Server, 
			POP3, IMAP, HTTP etc. 
			
		   
			Like many applications, Outlook also stores the account password for 
			subsequent logins when user selects the 'Remember Password' option 
			during authentication. The password is stored in the encrypted 
			format and only corresponding user can decrypt the password.
			 
			Different versions of Outlook store the password at separate 
			locations using distinct encryption methods.  
           
		     
 
		     
		  This research article throws 
			light on uncovering the password stored by different version of 
		Outlook on different platforms.
	  	  
		 
 
 
 
		 | 
	
	
	
	  |   | 
  
	
	
		
	
	  |  	
	
		| All versions of Outlook starting 
			from 2002 to latest version 2010, store the passwords (other than 
			exchange server) for various email account such as POP3, IMAP, SMTP, 
			HTTP at following registry location.
			 | 
  |  	
	
		[Windows NT onwards] 
		HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows 
		Messaging Subsystem\Profiles 
		 
		[Prior to Windows NT] 
		HKEY_CURRENT_USER\Software\Microsoft\Windows Messaging 
		Subsystem\Profiles | 
			
	  |  	
	  Latest Outlook 2013 (version 15.0) stores the account configuration along with encrypted password at following location | 
  
	  |  	
	
	
		| 
        HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\Outlook
         | 
	
  |  	
  
  
  
	
		| Outlook stores other information related to configured email account 
		such as Email Address, User name, Server etc along with password at this 
		location.  
		Here is the screenshot of IMAP/SMTP account stored for sample outlook 
		profile  | 
			
	  |  	
			
	
		
		  | 
			
	  |  	
			
	
		| As shown in the above screenshot different type of accounts 
		(IMAP/POP3/SMTP/HTTP) uses different registry 'Value Name' to refer to 
		username, password, server information etc.
		 
		Here is the table which summarizes these registry value names for all type of email account 
		configurations used by Outlook.  | 
			
	  |  	
			
	
		
		
		
		
			
				|   | 
				Username | 
				Password | 
				Email Address | 
				Server | 
				Port | 
			 
			
				| IMAP | 
				IMAP User | 
				IMAP Password | 
				Email | 
				IMAP Server | 
				IMAP Port | 
			 
			
				| POP3 | 
				POP3 User | 
				POP3 Password | 
				Email | 
				POP3 Server | 
				POP3 Port | 
			 
			
				| HTTP | 
				HTTP User | 
				HTTP Password | 
				Email | 
				HTTP Server URL | 
				N/A | 
			 
			
				| SMTP | 
				SMTP User | 
				SMTP Password | 
				Email | 
				SMTP Server | 
				SMTP Port | 
			 
			
		 
		
		
		 | 
			
  |  	
	
		| Except the password, all the other information is stored in clear 
		text in unicode format. Password is encrypted and has following 
		structure. | 
			
	  |  	
			
	
		
		struct OutlookPassword
		{ 
		BYTE byteEncType;  
		BYTE *encPassData;  
		};  
		
		 | 
			
	  |  	
			
	
		The byteEncType indicates the encryption mechanism used for storing 
		the password. Here are possible values for byteEncType 
		
		-  Windows Protected Storage
		
 - New Windows Cryptography Method
		
		
  
		 | 
			
	  |  	
			
	
		| Newer versions (2002-2013) of Outlook uses 'Windows Cryptography' 
		methods to encrypt the password when Outlook is running on Windows NT 
		platform. For older platforms it uses the 'Windows Protected Storage' 
		mechanism. The method for decrypting protected storage based passwords 
		is mentioned the in the 
		below section on older Outlook version.
		
		 Once the password value is read from the registry, decrypting it is 
		plain task. As mentioned above, make sure that first byte contains value 
		2 pointing to newer method of encryption. In that case, encPassData 
		value contains the actual encrypted password data which can be decrypted 
		using CryptUnprotectData function as shown below  | 
		
	  |  	
			
	
		
		
 DATA_BLOB DataPassword;
 DATA_BLOB DataOutput;
 DataPassword.cbData = 
 DataPassword.pbData = (BYTE *) outlookPassword->encPassData;
 if( CryptUnprotectData(&DataPassword, 0, 0, 0, 0, 0, &DataOutput) )
 {
    printf("Found the Outlook Password %S ", DataOutput.pbData);
 } 
		
		 | 
			
	  |  	
			
	
		| The above code snippet takes the encrypted password data and length 
		to form the DATA_BLOB parameter. Then it is passed on to 
		CryptUnprotectData function to decrypt the password and the clear text 
		password is stored in the DataOutput parameter on successful execution.  | 
			
	
	  |   | 
  
	
		|   | 
			
			
	
		
			
		  |  	
			
	
		| Newer Outlook version (2002-2013) uses the 'Credential Store' to 
		store the 'Exchange Server' passwords. It provides more secure mechanism 
		for storing and retrieving the password than the older 'Protected 
		Storage' format. This mechanism is mainly used by Windows to securely 
		store network login passwords. 
		 
		Here are the locations of credential files used by 'Credential Store' to 
		store the encrypted passwords on various platforms.  | 
			
  |  	
			
	
		 
	
	
	 
	
					
	
		 
		  |  	 
		
	
		| On Windows XP, the encrypted user credentials are stored in the 
		hidden file called 'Credentials' inside both APPDATA and LOCALAPPDATA 
		locations mentioned below. |  
		
	  |  	 
		
	
		
         
   [APPDATA Location]
   C:\Documents and Settings\<username>\Application Data\Microsoft\Credentials\<user sid>\
        
   [LOCALAPPDATA Location]
   C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft
   \Credentials\<user sid>\ 
		 |  
		
	  |  	 
	
		 
		  |  	 
	
		| Vista onwards, the user credentials are stored in the multiple files 
		with random name (generated using GUID) inside both APPDATA and 
		LOCALAPPDATA locations mentioned below. (There will be separate 
		credential file for each of the network accounts) |  
		
			  |  	 
		
	
		
        
   [APPDATA Location]
   C:\Users\<username>\AppData\Roaming\Microsoft\Credentials\
        
   [LOCALAPPDATA Location]
   C:\Users\<username>\AppData\Local\Microsoft\Credentials\ 
         |  
		
  |  	 
		
	
	
	
	 
	
	
	 | 
	
		
		 
		
		  
		
		For further details on decrypting 
			the exchange server password protected by 'Credential Store' refer 
			to the 'Recovering Domain Network Password Section' of  'Exposing 
			Secrets of Network Passwords'
	   
	  
 |  	
		
		 |   |  	
		
		
		 
			 	
		
			  |  	
		
		 | Older versions of Outlook (Outlook 
			Express, 98, 2000 etc) stores the Email configuration information 
			along with encrypted password at following registry location, |  	
		
	  |  	
		
		 
			[For Outlook installed in Internet 
			Mail Only Mode Configuration] 
			HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\OMI Account 
			Manager\Accounts 
			 
			[For Outlook in normal mode] 
			HKCU\Software\Microsoft\Internet Account Manager\Accounts |  	
		
		  |  	
		
		 | Here Outlook stores all the email 
			configuration details such as Email Address, User name, Server etc 
			along with encrypted password. Unlike new Outlook version, older 
			ones stored password for all type of accounts including 'Exchange 
			Server' in the 'Windows Protected Storage'.
			 
			However the storage format in the registry is similar to new Outlook 
			versions with the slight change in the registry value names. Here is 
			the table which summarizes various registry value names for 
			different type of email account 
			configurations used by older Outlook versions.  |  	
		
			  |  	
			
	
		
		
		
			
				|   | 
				Username | 
				Password | 
				Email Address | 
				Server | 
				Port | 
			 
			
				| IMAP | 
				IMAP User Name | 
				IMAP Password2 | 
				SMTP Email Address | 
				IMAP Server | 
				IMAP Port | 
			 
			
				| POP3 | 
				POP3 User Name | 
				POP3 Password2 | 
				SMTP Email Address | 
				POP3 Server | 
				POP3 Port | 
			 
			
				| HTTP | 
				HTTPMail User Name | 
				HTTPMail Password2 | 
				SMTP Email Address | 
				HTTPMail Server | 
				N/A | 
			 
			
				| SMTP | 
				SMTP User Name | 
				SMTP Password2 | 
				SMTP Email Address | 
				SMTP Server | 
				SMTP Port | 
			 
			
				| LDAP | 
				LDAP User Name | 
				LDAP Password2 | 
				N/A | 
				LDAP Server | 
				N/A | 
			 
			
			
			
		 
		
		
		 | 
			
		  |  	
		
		 | The encrypted password is in below 
			format (same across all Outlook versions) |  	
		
		  |  	
		
		 
			 |  	
		
		 Since older versions use 'Protected 
			Storage' method, the byteEncType is always set to 1. Also the encPassData value 
			actually points to 'password item name' in the Protected storage. 
			While enumerating protected storage passwords, this item name can be 
			used to match with corresponding Outlook account password. 
			 
			The complete program to enumerate and decrypt 'Protected Storage' 
			passwords is shown in the 'Exposing Secrets of Internet Explorer' 
			article [Reference 2]. Here additional 
			check needs to be performed for comparing it with Outlook item names 
			retrieved from the registry so as to recover only Outlook based 
			passwords. |  	
		
	
		 |   |  	
		
		 |   |  	
		
		 
			 	
		
		  |  	
		
		 | 
			Outlook Password Decryptor is the FREE tool to instantly recover lost password for all 
			versions of Outlook Application. |  	
		
			  |  	
		
		 
			
			  |  	
		
		  |  	
		
		 | Outlook Password Decryptor works on 
			wide range of platforms starting from Windows 2000 to Windows 10. It 
			also support password recovery of passwords from all versions 
			of Outlook . |  	
		
	  |  	
		
		
	
		
	
	
		
		
			- 
			
			Recovering Domain Network Passwords from 'Credential Store'
 
			- 
			
			Decrypting Passwords from 'Protected Storage' 
 
		 
		 | 
	
	
		|   | 
	
 
	
		| 
		
			
			
		
		 | 
	
	
	  |  	
	
	
		
	
		  |  	
		
		
		
	
		| 
		
	 | 
	
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   |