Abusing Tokens
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Eğer Windows Erişim Tokenlarının ne olduğunu bilmiyorsanız devam etmeden önce bu sayfayı okuyun:
Belki de sahip olduğunuz tokenları kötüye kullanarak ayrıcalıkları artırabilirsiniz
Bu, herhangi bir tokenın taklit edilmesine (ancak oluşturulmasına değil) izin veren bir ayrıcalıktır, eğer ona bir handle elde edilebiliyorsa. Ayrıcalıklı bir token, bir Windows servisi (DCOM) aracılığıyla NTLM kimlik doğrulaması yaptırılarak elde edilebilir ve bu da SYSTEM ayrıcalıklarıyla bir sürecin çalıştırılmasını sağlar. Bu güvenlik açığı, juicy-potato, RogueWinRM (winrm'nin devre dışı bırakılmasını gerektirir), SweetPotato ve PrintSpoofer gibi çeşitli araçlar kullanılarak istismar edilebilir.
SeImpersonatePrivilege ile çok benzer, ayrıcalıklı bir token elde etmek için aynı yöntemi kullanır. Bu ayrıcalık, yeni/askıya alınmış bir sürece birincil token atamaya izin verir. Ayrıcalıklı taklit token ile birincil token türetebilirsiniz (DuplicateTokenEx). Token ile, 'CreateProcessAsUser' ile yeni bir süreç oluşturabilir veya askıya alınmış bir süreç oluşturup tokenı ayarlayabilirsiniz (genel olarak, çalışan bir sürecin birincil tokenını değiştiremezsiniz).
Bu token etkinleştirildiğinde, KERB_S4U_LOGON kullanarak herhangi bir kullanıcı için taklit token alabilirsiniz, kimlik bilgilerini bilmeden, tokena keyfi bir grup (yönetici) ekleyebilir, tokenın bütünlük seviyesini "orta" olarak ayarlayabilir ve bu tokenı mevcut iş parçacığına atayabilirsiniz (SetThreadToken).
Bu ayrıcalık, herhangi bir dosyaya (okuma işlemleriyle sınırlı) tüm okuma erişim kontrolü vermek için sistemin neden olduğu bir ayrıcalıktır. Bu, yerel Yönetici hesaplarının şifre karma değerlerini kayıt defterinden okumak için kullanılır, ardından "psexec" veya "wmiexec" gibi araçlar hash ile kullanılabilir (Pass-the-Hash tekniği). Ancak, bu teknik iki koşul altında başarısız olur: Yerel Yönetici hesabı devre dışı bırakıldığında veya uzaktan bağlanan Yerel Yöneticilerden yönetim haklarını kaldıran bir politika mevcut olduğunda. Bu ayrıcalığı kötüye kullanabilirsiniz:
https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec IppSec'i takip ederek
Ya da aşağıdaki Yedek Operatörleri ile ayrıcalıkları artırma bölümünde açıklandığı gibi:
Herhangi bir sistem dosyasına yazma erişimi için izin veren bu ayrıcalık, dosyanın Erişim Kontrol Listesi (ACL) ne olursa olsun geçerlidir. Bu, hizmetleri değiştirme, DLL Hijacking yapma ve çeşitli diğer teknikler arasında Görüntü Dosyası Uygulama Seçenekleri aracılığıyla hata ayıklayıcılar ayarlama gibi birçok yükseltme olanağı sunar.
SeCreateTokenPrivilege, özellikle bir kullanıcının tokenları taklit etme yeteneğine sahip olduğunda güçlü bir izindir, ancak SeImpersonatePrivilege yoksa da kullanışlıdır. Bu yetenek, aynı kullanıcıyı temsil eden ve bütünlük seviyesi mevcut sürecin seviyesini aşmayan bir tokenı taklit etme yeteneğine dayanır.
Ana Noktalar:
SeImpersonatePrivilege olmadan taklit: Belirli koşullar altında tokenları taklit ederek EoP için SeCreateTokenPrivilege'i kullanmak mümkündür.
Token Taklit Koşulları: Başarılı taklit, hedef tokenın aynı kullanıcıya ait olmasını ve bütünlük seviyesinin taklit etmeye çalışan sürecin bütünlük seviyesinden az veya eşit olmasını gerektirir.
Taklit Tokenların Oluşturulması ve Değiştirilmesi: Kullanıcılar bir taklit token oluşturabilir ve bunu ayrıcalıklı bir grubun SID'sini (Güvenlik Tanımlayıcısı) ekleyerek geliştirebilir.
Bu ayrıcalık, belirli değerlerle bir kayıt defteri girişi oluşturarak cihaz sürücülerini yükleme ve boşaltma izni verir. HKLM
(HKEY_LOCAL_MACHINE) üzerinde doğrudan yazma erişimi kısıtlandığından, bunun yerine HKCU
(HKEY_CURRENT_USER) kullanılmalıdır. Ancak, HKCU
'nun sürücü yapılandırması için çekirdek tarafından tanınabilmesi 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 Tanımlayıcısıdır. HKCU
içinde, bu tüm yol oluşturulmalı ve iki değer ayarlanmalıdır:
ImagePath
, yürütülecek ikilinin yolu
Type
, SERVICE_KERNEL_DRIVER
(0x00000001
) değeri ile.
Takip Edilecek Adımlar:
Kısıtlı yazma erişimi nedeniyle HKLM
yerine HKCU
'ya erişin.
HKCU
içinde \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
yolunu oluşturun, burada <RID>
mevcut kullanıcının Göreceli Tanımlayıcısını temsil eder.
ImagePath
'ı ikilinin yürütme yoluna ayarlayın.
Type
'ı SERVICE_KERNEL_DRIVER
(0x00000001
) olarak atayın.
Daha fazla bu yetkiden yararlanma yolu için https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
Bu, SeRestorePrivilege ile benzerdir. Temel işlevi, bir sürecin bir nesnenin mülkiyetini üstlenmesine izin vermek olup, bu da YAZMA_SAHİBİ erişim hakları sağlanarak açık bir takdir erişim gereksinimini aşar. Süreç, önce yazma amacıyla hedef kayıt anahtarının mülkiyetini güvence altına almayı, ardından yazma işlemlerini etkinleştirmek için DACL'yi değiştirmeyi içerir.
Bu ayrıcalık, diğer süreçleri hata ayıklamaya izin verir, buna bellek içinde okuma ve yazma da dahildir. Çoğu antivirüs ve host saldırı önleme çözümlerini atlatabilen çeşitli bellek enjeksiyon stratejileri, bu ayrıcalıkla kullanılabilir.
Bir sürecin belleğini yakalamak için ProcDump aracını SysInternals Suite içinden kullanabilirsiniz. Özellikle, bir kullanıcının bir sisteme başarıyla giriş yaptıktan sonra kullanıcı kimlik bilgilerini saklamaktan sorumlu olan Yerel Güvenlik Otoritesi Alt Sistemi Servisi (LSASS) sürecine uygulanabilir.
Bu dökümü daha sonra şifreleri elde etmek için mimikatz'a yükleyebilirsiniz:
Eğer bir NT SYSTEM
shell almak istiyorsanız şunları kullanabilirsiniz:
Devre Dışı Görünen Token'lar etkinleştirilebilir, aslında Etkin ve Devre Dışı token'ları istismar edebilirsiniz.
Eğer devre dışı token'larınız varsa, tüm token'ları etkinleştirmek için EnableAllTokenPrivs.ps1 script'ini kullanabilirsiniz:
Or the script embed in this post.
Full token privileges cheatsheet at https://github.com/gtworek/Priv2Admin, summary below will only list direct ways to exploit the privilege to obtain an admin session or read sensitive files.
SeAssignPrimaryToken
Admin
3rd party tool
"Bu, bir kullanıcının token'ları taklit etmesine ve potato.exe, rottenpotato.exe ve juicypotato.exe gibi araçlar kullanarak nt sistemine privesc yapmasına izin verecektir"
SeBackup
Threat
Built-in commands
Hassas dosyaları robocopy /b
ile okuyun
- %WINDIR%\MEMORY.DMP dosyasını okuyabiliyorsanız daha ilginç olabilir.
- SeBackupPrivilege
(ve robocopy) açık dosyalarla çalışırken yardımcı değildir.
- Robocopy, /b parametresi ile çalışmak için hem SeBackup hem de SeRestore'ye ihtiyaç duyar.
SeCreateToken
Admin
3rd party tool
NtCreateToken
ile yerel yönetici hakları da dahil olmak üzere keyfi bir token oluşturun.
SeDebug
Admin
PowerShell
lsass.exe
token'ını kopyalayın.
SeLoadDriver
Admin
3rd party tool
1. szkg64.sys
gibi hatalı bir çekirdek sürücüsü yükleyin.
2. Sürücü açığını istismar edin.
Alternatif olarak, bu ayrıcalık güvenlikle ilgili sürücüleri ftlMC
yerleşik komutuyla boşaltmak için kullanılabilir. Yani: fltMC sysmondrv
SeRestore
Admin
PowerShell
Saldırı bazı AV yazılımları tarafından tespit edilebilir.
Alternatif yöntem, aynı ayrıcalığı kullanarak "Program Files" içinde depolanan hizmet ikili dosyalarını değiştirmeye dayanır.
SeTakeOwnership
Admin
Built-in commands
1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. cmd.exe'yi utilman.exe olarak yeniden adlandırın.
4. 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 Files" içinde depolanan hizmet ikili dosyalarını değiştirmeye dayanır.
SeTcb
Admin
3rd party tool
Token'ları yerel yönetici hakları ile manipüle edin. SeImpersonate gerektirebilir.
Doğrulanması gerekiyor.
Take a look to this table defining Windows tokens: https://github.com/gtworek/Priv2Admin
Take a look to this paper about privesc with tokens.
Thank you for the update. I will try to re-phrase it to something more recipe-like soon.
Script to be found at
1. szkg64
açığı olarak listelenmiştir.
2. szkg64
tarafından oluşturulmuştur.
1. SeRestore ayrıcalığı ile PowerShell/ISE başlatın. 2. ile ayrıcalığı 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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)