Writable Sys Path +Dll Hijacking Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Eğer bir Sistem Yolu klasöründe yazma yetkiniz olduğunu bulduysanız (bu, bir Kullanıcı Yolu klasöründe yazma yetkiniz varsa çalışmayacaktır) sistemde yetki yükseltme yapmanız mümkün olabilir.
Bunu yapmak için, sizin yetkilerinizden daha fazla yetkiye sahip bir hizmet veya işlem tarafından yüklenen bir kütüphaneyi ele geçireceğiniz bir Dll Hijacking durumunu kötüye kullanabilirsiniz ve bu hizmet, muhtemelen sistemde hiç var olmayan bir Dll'yi yüklemeye çalıştığı için, yazabileceğiniz Sistem Yolu'ndan yüklemeye çalışacaktır.
Dll Hijacking nedir hakkında daha fazla bilgi için kontrol edin:
Dll Hijackingİhtiyacınız olan ilk şey, yazma yetkinizden daha fazla yetkiye sahip bir işlemi Sistem Yolundan Dll yüklemeye çalışan bir işlem olarak belirlemektir.
Bu durumlarda sorun, muhtemelen bu işlemlerin zaten çalışıyor olmasıdır. Hangi Dll'lerin hizmetlerden eksik olduğunu bulmak için, mümkün olan en kısa sürede (işlemler yüklenmeden önce) procmon'u başlatmalısınız. Eksik .dll'leri bulmak için:
C:\privesc_hijacking klasörünü oluşturun ve C:\privesc_hijacking
yolunu Sistem Yolu ortam değişkenine ekleyin. Bunu manuel olarak veya PS ile yapabilirsiniz:
procmon
'u başlatın ve Options
--> Enable boot logging
'e gidin ve istemde OK
'ye basın.
Sonra, yeniden başlatın. Bilgisayar yeniden başlatıldığında procmon
olayları mümkün olan en kısa sürede kaydetmeye başlayacaktır.
Windows başladıktan sonra procmon
'u tekrar çalıştırın, çalıştığını söyleyecek ve olayları bir dosyada saklamak isteyip istemediğinizi soracaktır. Evet deyin ve olayları bir dosyada saklayın.
Dosya oluşturulduktan sonra, açılan procmon
penceresini kapatın ve olay dosyasını açın.
Bu filtreleri ekleyin ve yazılabilir Sistem Yolu klasöründen yüklemeye çalışan tüm Dll'leri bulacaksınız:
Ücretsiz bir sanallaştırma (vmware) Windows 11 makinesinde bunu çalıştırdığımda bu sonuçları aldım:
Bu durumda .exe'ler işe yaramaz, bu yüzden onları göz ardı edin, kaçırılan DLL'ler şunlardı:
Servis | Dll | CMD satırı |
---|---|---|
Görev Zamanlayıcı (Schedule) | WptsExtensions.dll |
|
Tanılama Politika Servisi (DPS) | Unknown.DLL |
|
??? | SharedRes.dll |
|
Bunu bulduktan sonra, WptsExtensions.dll'yi privesc için nasıl kötüye kullanacağınızı açıklayan ilginç bir blog yazısı buldum. Şimdi bunu yapacağız.
Yani, yetkileri artırmak için WptsExtensions.dll kütüphanesini ele geçireceğiz. Yolu ve adı bildiğimiz için sadece kötü niyetli dll'yi oluşturmamız gerekiyor.
Bu örneklerden herhangi birini kullanmayı deneyebilirsiniz. Rev shell almak, bir kullanıcı eklemek, bir beacon çalıştırmak gibi yükleri çalıştırabilirsiniz...
Tüm hizmetlerin NT AUTHORITY\SYSTEM
ile çalışmadığını unutmayın, bazıları NT AUTHORITY\LOCAL SERVICE
ile de çalışır ki bu da daha az yetkiye sahiptir ve yeni bir kullanıcı oluşturamazsınız izinlerini kötüye kullanamazsınız.
Ancak, o kullanıcının seImpersonate
yetkisi vardır, bu yüzden yetkileri artırmak için potato suite'i kullanabilirsiniz. Bu durumda, bir rev shell, bir kullanıcı oluşturmaya çalışmaktan daha iyi bir seçenektir.
Yazma anında Görev Zamanlayıcı servisi Nt AUTHORITY\SYSTEM ile çalışıyor.
Kötü niyetli Dll'yi oluşturduktan sonra (benim durumumda x64 rev shell kullandım ve bir shell geri aldım ama defender bunu msfvenom'dan olduğu için öldürdü), yazılabilir Sistem Yolu'na WptsExtensions.dll adıyla kaydedin ve bilgisayarı yeniden başlatın (veya hizmeti yeniden başlatın ya da etkilenen hizmet/programı yeniden çalıştırmak için ne gerekiyorsa yapın).
Hizmet yeniden başlatıldığında, dll yüklenmeli ve çalıştırılmalıdır (kütüphanenin **beklendiği gibi yüklenip yüklenmediğini kontrol etmek için procmon numarasını kullanabilirsiniz).
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)