Abusing Tokens
Tokenlar
Eğer Windows Erişim Token'larının ne olduğunu bilmiyorsanız, devam etmeden önce bu sayfayı okuyun:
pageAccess TokensBelki 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 zafiyet, 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.
pageRoguePotato, PrintSpoofer, SharpEfsPotato, GodPotatopageJuicyPotatoSeAssignPrimaryPrivilege
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 atamaya izin verir. Ayrıcalıklı taklit token'ı ile 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ıkla sistem, bu ayrıcalıkla herhangi bir dosyaya (sadece okuma işlemleriyle sınırlı) tüm okuma erişimini verir. Bu, yerel Yönetici hesaplarının şifre karmalarını (Pass-the-Hash tekniği) okumak için kullanılır. 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://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec'de IppSec'i takip ederek
Veya:
SeRestorePrivilege
Bu ayrıcalık, dosyanın Erişim Kontrol Listesi'ne (ACL) bakılmaksızın herhangi bir sistem dosyasına yazma erişimini 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 kullanabilirsiniz.
Token Taklidi Koşulları: Başarılı taklit, hedef token'ın aynı kullanıcıya ait olmasını ve taklit denemesi yapan işlemin bütünlük seviyesinin hedef token'ın bütünlük seviyesinden küçük veya eşit olmasını gerektirir.
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 bir kayıt defteri girdisi oluşturarak sürücü yüklemesine ve kaldırmasına izin verir. ImagePath
ve Type
için belirli değerlere sahip bir kayıt defteri girdisi oluştururken doğrudan yazma erişimi HKLM
(HKEY_LOCAL_MACHINE) tarafından kısıtlandığından, 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ğini temsil eder. 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:
Yazma erişimi kısıtlı olduğundan
HKLM
yerineHKCU
'ya erişin.HKCU
içinde,<RID>
mevcut kullanıcının Göreceli Kimliğini temsil ettiği\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
yolunu oluşturun.ImagePath
'i ikilinin yürütme yoluna ayarlayın.Type
'ıSERVICE_KERNEL_DRIVER
(0x00000001
) olarak ayarlayın.
Daha fazla bu ayrıcalığı kötüye kullanma yolu 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 olanak tanır 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.
SeDebugPrivilege
Bu ayrıcalık, diğer işlemleri hata ayıklama izni verir, bellekte okuma ve yazma yapılmasını da içerir. Bu ayrıcalıkla, çoğu antivirüs ve ana bilgisayar saldırı önleme çözümlerini atlatabilen çeşitli bellek enjeksiyon stratejileri kullanılabilir.
Belleği dök
SysInternals Suite'den ProcDump'ı kullanarak bir işlemin belleğini yakalayabilirsiniz. Bu özellikle, kullanıcı başarılı bir şekilde bir sisteme giriş yaptıktan sonra kullanıcı kimlik bilgilerini depolayan Yerel Güvenlik Otoritesi Alt Sistem Hizmeti (LSASS) işlemine uygulanabilir.
Daha sonra bu dökümü mimikatz'da yükleyerek şifreleri elde edebilirsiniz:
Uzaktan Kod Çalıştırma (RCE)
Eğer bir NT SYSTEM
kabuğuna erişmek istiyorsanız şunları kullanabilirsiniz:
İzinleri kontrol et
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:
Veya bu gönderideki betik.
Tablo
Tam token ayrıcalıkları hile yaprağı https://github.com/gtworek/Priv2Admin, aşağıdaki özet sadece ayrıcalığı kötüye kullanarak yönetici oturumu elde etmek veya hassas dosyaları okumak için doğrudan yolları listeleyecektir.
Ayrıcalık | Etki | Araç | Yürütme yolu | Açıklamalar |
---|---|---|---|---|
| Yönetici | 3. taraf araç | "Bir 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 teşekkürler Aurélien Chalot . Yakında daha çok tarif benzeri bir şeye dönüştürmeye çalışacağım. |
| Tehdit | Dahili komutlar |
| - %WINDIR%\MEMORY.DMP dosyasını okuyabilirseniz daha ilginç olabilir
- |
| Yönetici | 3. taraf araç |
| |
| Yönetici | PowerShell |
| Betik FuzzySecurity adresinde bulunabilir. |
| Yönetici | 3. taraf araç | 1. | 1. |
| Yönetici | PowerShell | 1. SeRestore ayrıcalığı mevcut olan PowerShell/ISE'yi başlatın. 2. Ayrıcalığı Enable-SeRestorePrivilege ile etkinleştirin. 3. utilman.exe'yi utilman.old olarak yeniden adlandırın 4. cmd.exe'yi utilman.exe olarak yeniden adlandırın 5. Konsolu kilitleyin ve Win+U tuşlarına bası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ştirme üzerine dayanır |
| 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ştirme üzerine dayanır. |
| Yönetici | 3. taraf araç | Yerel yönetici haklarını içerecek şekilde tokenları manipüle edin. SeImpersonate gerekebilir. Doğrulanması gerekiyor. |
Referans
Windows token'larını 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.
Last updated