Pre-Windows 2000 computers
Theory
When a new computer account is configured as "pre-Windows 2000 computer", its password is set based on its name (i.e. lowercase computer name without the trailing $
). When it isn't, the password is randomly generated.
Once an authentication occurs for a pre-Windows 2000 computer, according to TrustedSec's blogpost, its password will usually need to be changed.
Practice
Finding computer accounts that have been "pre-created" (i.e. manually created in ADUC instead of automatically added when joining a machine to the domain), but have never been used can be done by filtering the UserAccountControl
attribute of all computer accounts and look for the value 4128 (32|4096) (deductible via the UserAccountControl flags):
32 -
PASSWD_NOTREQD
4096 -
WORKSTATION_TRUST_ACCOUNT
The logonCount
attribute can be filtered as well.
The ldapsearch-ad tool can be used to find such accounts. Once "pre-created" computer accounts that have not authenticated are found, they should be usable with their lowercase name set as their password. This can be tested with NetExec (Python) for instance.
You will see the error message STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT when you have guessed the correct password for a computer account that has not been used yet. (trustedsec.com)
Testers can then change the Pre-Windows 2000 computer accounts' password (i.e. rpcchangepwd.py, kpasswd.py, etc.) in order to use it.
Alternatively, Filip Dragovic was able to authenticate using Kerberos without having to change the account's password. (source)
The ticket obtained can then be used with Pass the ticket
Reference
Last updated