.. | ||
README.md |
Token Kötüye Kullanma
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!
- **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARI'na göz atın!
- The PEASS Family koleksiyonumuzu keşfedin, özel NFT'lerimiz
- Resmi PEASS & HackTricks ürünleri
- Katılın 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦@carlospolopm'u takip edin.
- Hacking püf noktalarınızı paylaşarak hacktricks repo ve hacktricks-cloud repo'a PR gönderin.
Tokenlar
Windows Erişim Token'larının ne olduğunu bilmiyorsanız, devam etmeden önce bu sayfayı okuyun:
{% content-ref url="../access-tokens.md" %} access-tokens.md {% endcontent-ref %}
Belki zaten sahip olduğunuz token'ları kötüye kullanarak ayrıcalıkları yükseltebilirsiniz
SeImpersonatePrivilege
Bu ayrıcalık, herhangi bir işlem tarafından herhangi bir token'ın taklit edilmesine (ancak oluşturulmasına değil) izin verir, bir kolu alınabilirse. Bir Windows hizmetinden (DCOM) ayrıcalıklı bir token, bir açığı kullanarak NTLM kimlik doğrulamasını gerçekleştirmeye zorlayarak elde edilebilir, ardından bir işlemi SİSTEM ayrıcalıklarıyla yürütme imkanı sağlar. Bu zayıflık, juicy-potato, RogueWinRM (winrm'nin devre dışı bırakılmasını gerektirir), SweetPotato ve PrintSpoofer gibi çeşitli araçlar kullanılarak sömürülebilir.
{% content-ref url="../roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
{% content-ref url="../juicypotato.md" %} juicypotato.md {% endcontent-ref %}
SeAssignPrimaryPrivilege
Bu, SeImpersonatePrivilege ile çok benzerdir, ayrıcalıklı bir token almak için aynı yöntemi kullanacaktır.
Daha sonra, bu ayrıcalık, bir yeni/askıya alınmış işleme birincil bir token atanmasına izin verir. Ayrıcalıklı taklit token'ı kullanarak birincil bir token türetebilirsiniz (DuplicateTokenEx).
Token ile 'CreateProcessAsUser' ile yeni bir işlem oluşturabilir veya bir işlem askıya alabilir ve token'ı ayarlayabilirsiniz (genel olarak, çalışan bir işlemin birincil token'ını değiştiremezsiniz).
SeTcbPrivilege
Bu token etkinleştirilmişse, KERB_S4U_LOGON kullanarak herhangi bir kullanıcı için bir taklit token alabilir, kimlik bilgilerini bilmeden bir keyfi grup (yöneticiler) ekleyebilir, token'ın bütünlük seviyesini "orta" olarak ayarlayabilir ve bu token'ı mevcut iş parçacığına (SetThreadToken) atayabilirsiniz.
SeBackupPrivilege
Bu ayrıcalık, sistemin bu ayrıcalıkla tüm okuma erişimini (okuma işlemleriyle sınırlı) herhangi bir dosyaya vermesine neden olur. Bu, yerel Yönetici hesaplarının şifre karmalarını (registry'den) okumak için kullanılır, ardından "psexec" veya "wmicexec" gibi araçlar, hash ile kullanılabilir (Pass-the-Hash tekniği). Ancak, bu teknik iki durumda başarısız olur: Yerel Yönetici hesabı devre dışı bırakıldığında veya uzaktan bağlanan Yerel Yöneticilerden yönetici haklarını kaldıran bir politika olduğunda.
Bu ayrıcalığı şu şekilde kötüye kullanabilirsiniz:
- https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1
- https://github.com/giuliano108/SeBackupPrivilege/tree/master/SeBackupPrivilegeCmdLets/bin/Debug
- https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec'de IppSec'i takip ederek
- Veya:
{% content-ref url="../../active-directory-methodology/privileged-groups-and-token-privileges.md" %} privileged-groups-and-token-privileges.md {% endcontent-ref %}
SeRestorePrivilege
Bu ayrıcalık, dosyanın Erişim Kontrol Listesi'ne (ACL) bakılmaksızın herhangi bir sistem dosyasına yazma erişimi sağlar. Bu, hizmetleri değiştirme, DLL Hijacking yapma ve hata ayıklayıcıları Image File Execution Options aracılığıyla ayarlama gibi çeşitli teknikler için birçok olasılık açar.
SeCreateTokenPrivilege
SeCreateTokenPrivilege, bir kullanıcının token'ları taklit etme yeteneğine sahip olduğunda özellikle güçlü bir izindir, ancak SeImpersonatePrivilege olmadığında da kullanışlıdır. Bu yetenek, aynı kullanıcıyı temsil eden ve bütünlük seviyesi mevcut işlemin bütünlük seviyesini aşmayan bir token'ı taklit etme yeteneğine dayanır.
Ana Noktalar:
- SeImpersonatePrivilege Olmadan Taklit: Belirli koşullar altında SeCreateTokenPrivilege'ı EoP için kullanmak mümkündür.
- Token Taklidi Koşulları: Başarılı taklit için hedef token'ın aynı kullanıcıya ait olması ve taklit denemesi yapan işlemin bütünlük seviyesinden daha düşük veya eşit bir bütünlük seviyesine sahip olması gerekir.
- Taklit Token'larının Oluşturulması ve Değiştirilmesi: Kullanıcılar bir taklit token oluşturabilir ve bir ayrıcalıklı grubun SID'sini (Güvenlik Tanımlayıcısı) ekleyerek geliştirebilir.
SeLoadDriverPrivilege
Bu ayrıcalık, belirli değerlerle birlikte ImagePath
ve Type
için belirli değerlere sahip bir kayıt girdisi oluşturarak sürücü yüklemesine ve kaldırmasına izin verir. Doğrudan yazma erişimi HKLM
(HKEY_LOCAL_MACHINE) sınırlı olduğundan, bunun yerine HKCU
(HKEY_CURRENT_USER) kullanılmalıdır. Ancak, sürücü yapılandırması için HKCU
'yu çekirdeğe tanımlanabilir hale getirmek için belirli bir yol izlenmelidir.
Bu yol, \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
şeklindedir, burada <RID>
, mevcut kullanıcının Göreceli Kimliğidir. HKCU
içinde, bu tüm yol oluşturulmalı ve iki değer ayarlanmalıdır:
ImagePath
, yürütülecek ikili dosyanın yoludurType
,SERVICE_KERNEL_DRIVER
(0x00000001
) değerine sahip olmalıdır.
İzlenecek Adımlar:
- Sınırlı yazma erişimi nedeniyle
HKLM
yerineHKCU
'ya erişin. HKCU
içinde, mevcut kullanıcının Göreceli Kimliğini temsil eden<RID>
ile\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
yolunu oluşturun.ImagePath
'i yürütülecek ikilinin yoluna ayarlayın.Type
'ıSERVICE_KERNEL_DRIVER
(0x00000001
) olarak ayarlayın.
# Example Python code to set the registry values
import winreg as reg
# Define the path and values
path = r'Software\YourPath\System\CurrentControlSet\Services\DriverName' # Adjust 'YourPath' as needed
key = reg.OpenKey(reg.HKEY_CURRENT_USER, path, 0, reg.KEY_WRITE)
reg.SetValueEx(key, "ImagePath", 0, reg.REG_SZ, "path_to_binary")
reg.SetValueEx(key, "Type", 0, reg.REG_DWORD, 0x00000001)
reg.CloseKey(key)
Daha fazla bu ayrıcalığı kötüye kullanma yöntemi için https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
SeTakeOwnershipPrivilege
Bu, SeRestorePrivilege'a benzer. Başlıca işlevi bir işlemin bir nesnenin sahipliğini üstlenmesine izin verir ve WRITE_OWNER erişim hakları sağlayarak açık bir keyfi erişim gereksinimini atlar. İşlem, öncelikle yazma amaçları için amaçlanan kayıt defteri anahtarının sahipliğini güvence altına almayı, ardından yazma işlemlerini etkinleştirmek için DACL'yi değiştirmeyi içerir.
takeown /f 'C:\some\file.txt' #Now the file is owned by you
icacls 'C:\some\file.txt' /grant <your_username>:F #Now you have full access
# Use this with files that might contain credentials such as
%WINDIR%\repair\sam
%WINDIR%\repair\system
%WINDIR%\repair\software
%WINDIR%\repair\security
%WINDIR%\system32\config\security.sav
%WINDIR%\system32\config\software.sav
%WINDIR%\system32\config\system.sav
%WINDIR%\system32\config\SecEvent.Evt
%WINDIR%\system32\config\default.sav
c:\inetpub\wwwwroot\web.config
SeDebugPrivilege
Bu ayrıcalık, diğer işlemleri hata ayıklama izni verir, bellekte okuma ve yazma yapmayı içerir. Bu ayrıcalıkla, çoğu antivirüs ve ana bilgisayar saldırı önleme çözümlerinden kaçabilen çeşitli bellek enjeksiyon stratejileri kullanılabilir.
Belleği dök
SysInternals Suite'den ProcDump'ı kullanarak bir işlemin belleğini yakalayabilirsiniz. Bu özellikle, bu, bir kullanıcının bir sisteme başarılı bir şekilde giriş yaptıktan sonra kullanıcı kimlik bilgilerini depolayan Yerel Güvenlik Otoritesi Alt Sistemi Hizmeti (LSASS) işlemi için geçerlidir.
Daha sonra bu dökümü mimikatz'da yükleyerek şifreleri elde edebilirsiniz:
mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
Uzaktan Kod Çalıştırma (RCE)
Eğer bir NT SYSTEM
kabuğuna erişmek istiyorsanız şunları kullanabilirsiniz:
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)
İzinleri kontrol et
whoami /priv
Devre Dışı görünen token'lar etkinleştirilebilir, aslında Etkin ve Devre Dışı token'ları kötüye kullanabilirsiniz.
Tüm token'ları Etkinleştir
Eğer devre dışı bırakılmış token'larınız varsa, tüm token'ları etkinleştirmek için EnableAllTokenPrivs.ps1 betiğini kullanabilirsiniz:
.\EnableAllTokenPrivs.ps1
whoami /priv
Veya bu gönderideki betik.
Tablo
Tam token ayrıcalıkları hile yaprağı https://github.com/gtworek/Priv2Admin, özet aşağıda ayrıcalığı kötüye kullanmak için doğrudan yolları listeler.
Ayrıcalık | Etki | Araç | Yürütme yolu | Yorumlar |
---|---|---|---|---|
SeAssignPrimaryToken |
Yönetici | 3. taraf araç | "Kullanıcıya tokenları taklit etme ve potato.exe, rottenpotato.exe ve juicypotato.exe gibi araçlar kullanarak nt sistemine yükselme imkanı verir" | Güncelleme için Aurélien Chalot'a teşekkürler. Yakında daha tarif benzeri bir şeye dönüştürmeye çalışacağım. |
SeBackup |
Tehdit | Dahili komutlar | robocopy /b ile hassas dosyaları okuyun |
- %WINDIR%\MEMORY.DMP dosyasını okuyabilirseniz daha ilginç olabilir |
SeCreateToken |
Yönetici | 3. taraf araç | NtCreateToken ile yerel yönetici hakları da dahil olmak üzere keyfi token oluşturun. |
|
SeDebug |
Yönetici | PowerShell | lsass.exe token'ını kopyalayın. |
Betik FuzzySecurity adresinde bulunabilir. |
SeLoadDriver |
Yönetici | 3. taraf araç | 1. |
1. |
SeRestore |
Yönetici | PowerShell | 1. SeRestore ayrıcalığı mevcut olan PowerShell/ISE'yi başlatın. |
Saldırı bazı AV yazılımları tarafından tespit edilebilir. Alternatif yöntem, aynı ayrıcalığı kullanarak "Program Dosyaları" içinde depolanan hizmet ikili dosyalarını değiştirmeye dayanır |
SeTakeOwnership |
Yönetici | Dahili komutlar | 1. |
Saldırı bazı AV yazılımları tarafından tespit edilebilir. Alternatif yöntem, aynı ayrıcalığı kullanarak "Program Dosyaları" içinde depolanan hizmet ikili dosyalarını değiştirmeye dayanır. |
SeTcb |
Yönetici | 3. taraf araç | Yerel yönetici haklarını içeren tokenları manipüle edin. SeImpersonate gerekebilir. Doğrulanması gerekiyor. |
Referans
- Windows token'ları tanımlayan bu tabloya göz atın: https://github.com/gtworek/Priv2Admin
- Token'larla ayrıcalıkların kötüye kullanımı hakkında bu makaleye bakın.
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!
- **Bir ** **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te ** **görmek ister misiniz? veya PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARI'na göz atın!
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz'in koleksiyonunu keşfedin
- Resmi PEASS & HackTricks ürünlerimizi alın
- 💬 Discord grubuna katılın veya Telegram grubuna katılın veya Twitter 🐦@carlospolopm'u takip edin.
- Hacking hilelerinizi göndererek hacktricks repo ve hacktricks-cloud repo'a PR göndererek paylaşın.