UAC - User Account Control
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)
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:
Kullanıcı Hesabı Kontrolü (UAC), yükseltilmiş aktiviteler için onay istemi sağlayan bir özelliktir. Uygulamalar farklı bütünlük
seviyelerine sahiptir ve yüksek seviyeye sahip bir program, sistemi potansiyel olarak tehlikeye atabilecek görevleri yerine getirebilir. UAC etkinleştirildiğinde, uygulamalar ve görevler her zaman bir yönetici hesabının güvenlik bağlamında çalışır; yönetici bu uygulama/görevlerin sisteme yönetici düzeyinde erişim almasına açıkça yetki vermedikçe. Bu, yöneticileri istenmeyen değişikliklerden koruyan bir kolaylık özelliğidir, ancak bir güvenlik sınırı olarak kabul edilmez.
Bütünlük seviyeleri hakkında daha fazla bilgi için:
Integrity LevelsUAC uygulandığında, bir yönetici kullanıcıya 2 jeton verilir: standart bir kullanıcı anahtarı, normal seviyede düzenli işlemler yapmak için ve yönetici ayrıcalıkları olan bir jeton.
Bu sayfa, UAC'nin nasıl çalıştığını derinlemesine tartışmakta ve oturum açma süreci, kullanıcı deneyimi ve UAC mimarisini içermektedir. Yöneticiler, UAC'nin kendi organizasyonlarına özgü nasıl çalıştığını yerel düzeyde (secpol.msc kullanarak) veya bir Active Directory alan ortamında Grup Politika Nesneleri (GPO) aracılığıyla yapılandırıp dağıtmak için güvenlik politikalarını kullanabilirler. Çeşitli ayarlar detaylı olarak burada tartışılmaktadır. UAC için ayarlanabilecek 10 Grup Politika ayarı vardır. Aşağıdaki tablo ek detaylar sağlamaktadır:
FilterAdministratorToken
Devre Dışı
EnableUIADesktopToggle
Devre Dışı
ConsentPromptBehaviorAdmin
Windows dışı ikili dosyalar için onay istemi
ConsentPromptBehaviorUser
Güvenli masaüstünde kimlik bilgileri istemi
EnableInstallerDetection
Etkin (ev için varsayılan) Devre Dışı (kurumsal için varsayılan)
ValidateAdminCodeSignatures
Devre Dışı
EnableSecureUIAPaths
Etkin
PromptOnSecureDesktop
Etkin
Bazı programlar, kullanıcı yönetici grubuna ait olduğunda otomatik olarak yükseltilir. Bu ikili dosyalar, içlerinde Manifests kısmında autoElevate seçeneği True değeri ile bulunur. İkili dosya ayrıca Microsoft tarafından imzalanmış olmalıdır.
Sonra, UAC'yi atlatmak (bütünlük seviyesini orta seviyeden yüksek seviyeye yükseltmek) için bazı saldırganlar bu tür ikili dosyaları rastgele kod çalıştırmak için kullanır çünkü bu, Yüksek seviye bütünlük sürecinden çalıştırılacaktır.
Bir ikilinin Manifest dosyasını, Sysinternals'tan sigcheck.exe aracını kullanarak kontrol edebilirsiniz. Ve süreçlerin bütünlük seviyesini Process Explorer veya Process Monitor (Sysinternals) kullanarak görebilirsiniz.
UAC'nin etkin olup olmadığını doğrulamak için:
Eğer 1
ise UAC etkin, eğer 0
ise veya mevcut değilse, UAC etkisizdir.
Sonra, hangi seviye yapılandırıldığını kontrol edin:
Eğer 0
ise, UAC istemi olmayacak (gibi devre dışı)
Eğer 1
ise, yönetici kullanıcı adı ve şifre istenir yüksek haklarla ikili dosyayı çalıştırmak için (Güvenli Masaüstünde)
Eğer 2
ise (Her zaman beni bilgilendir) UAC, yönetici yüksek ayrıcalıklarla bir şey çalıştırmaya çalıştığında her zaman onay isteyecektir (Güvenli Masaüstünde)
Eğer 3
ise 1
gibi ama Güvenli Masaüstünde gerekli değil
Eğer 4
ise 2
gibi ama Güvenli Masaüstünde gerekli değil
Eğer 5
ise (varsayılan) yöneticiye yüksek ayrıcalıklarla Windows dışı ikili dosyaları çalıştırmak için onay isteyecektir
Sonra, LocalAccountTokenFilterPolicy
değerine bakmalısınız
Eğer değer 0
ise, yalnızca RID 500 kullanıcısı (yerleşik Yönetici) UAC olmadan yönetici görevlerini yerine getirebilir ve eğer 1
ise, "Yöneticiler" grubundaki tüm hesaplar bunları yapabilir.
Ve son olarak FilterAdministratorToken
anahtarının değerine bakın
Eğer 0
(varsayılan), yerleşik Yönetici hesabı uzaktan yönetim görevlerini yapabilir ve eğer 1
ise, yerleşik Yönetici hesabı uzaktan yönetim görevlerini yapamaz, LocalAccountTokenFilterPolicy
1
olarak ayarlanmadıkça.
Eğer EnableLUA=0
veya yoksa, hiç kimse için UAC yok
Eğer EnableLua=1
ve LocalAccountTokenFilterPolicy=1
, Hiç kimse için UAC yok
Eğer EnableLua=1
ve LocalAccountTokenFilterPolicy=0
ve FilterAdministratorToken=0
, RID 500 için UAC yok (Yerleşik Yönetici)
Eğer EnableLua=1
ve LocalAccountTokenFilterPolicy=0
ve FilterAdministratorToken=1
, Herkes için UAC var
Tüm bu bilgiler metasploit modülü kullanılarak toplanabilir: post/windows/gather/win_privs
Kullanıcınızın gruplarını kontrol edebilir ve bütünlük seviyesini alabilirsiniz:
Kurbanın grafik erişimine sahipseniz, UAC atlatma oldukça basittir çünkü UAC istemi göründüğünde "Evet"e tıklamanız yeterlidir.
UAC atlatma, aşağıdaki durumda gereklidir: UAC etkin, işleminiz orta bütünlük bağlamında çalışıyor ve kullanıcınız yöneticiler grubuna ait.
UAC'nın en yüksek güvenlik seviyesinde (Her Zaman) atlatılmasının, diğer seviyelerden (Varsayılan) çok daha zor olduğunu belirtmek önemlidir.
Eğer UAC zaten devre dışıysa (ConsentPromptBehaviorAdmin
0
) yönetici ayrıcalıklarıyla bir ters shell çalıştırabilirsiniz (yüksek bütünlük seviyesi) gibi bir şey kullanarak:
Eğer Administrators grubunda bir kullanıcı ile bir shell'e sahipseniz, C$ paylaşılanını SMB (dosya sistemi) üzerinden yeni bir diske yerel olarak monte edebilirsiniz ve dosya sisteminin içindeki her şeye erişiminiz olur (hatta Administrator ana dizinine).
Bu numaranın artık çalışmadığı görünüyor
Cobalt Strike teknikleri, UAC maksimum güvenlik seviyesinde ayarlanmamışsa yalnızca çalışacaktır.
Empire ve Metasploit ayrıca UAC'yi bypass etmek için birkaç modül sunmaktadır.
Dokümantasyon ve araç https://github.com/wh0amitz/KRBUACBypass adresinde bulunmaktadır.
UACME, birkaç UAC bypass exploitinin derlemesidir. UACME'yi visual studio veya msbuild kullanarak derlemeniz gerektiğini unutmayın. Derleme, birkaç çalıştırılabilir dosya (örneğin Source\Akagi\outout\x64\Debug\Akagi.exe
) oluşturacaktır, hangi dosyaya ihtiyacınız olduğunu bilmeniz gerekecek.
Dikkatli olmalısınız çünkü bazı bypasslar, kullanıcıya bir şeylerin olduğunu bildiren bazı diğer programları uyarabilir.
UACME, her tekniğin çalışmaya başladığı derleme sürümünü içerir. Sürümlerinizi etkileyen bir tekniği arayabilirsiniz:
Ayrıca, bu sayfasını kullanarak Windows sürüm 1607
'yi derleme sürümlerinden alabilirsiniz.
**Burada AUC'yi atlamak için kullanılan tüm teknikler, kurbanla birlikte tam etkileşimli bir kabuk gerektirir (yaygın bir nc.exe kabuğu yeterli değildir).
Bir meterpreter oturumu kullanarak elde edebilirsiniz. Session değeri 1 olan bir işleme geçin:
(explorer.exe çalışmalıdır)
Eğer bir GUI'ye erişiminiz varsa, UAC istemini aldığınızda sadece kabul edebilirsiniz, gerçekten bir bypass'a ihtiyacınız yok. Bu nedenle, bir GUI'ye erişim sağlamak UAC'yi atlamanızı sağlar.
Ayrıca, birinin (potansiyel olarak RDP aracılığıyla) kullandığı bir GUI oturumu alırsanız, yönetici olarak çalışan bazı araçlar olacaktır; buradan örneğin admin olarak doğrudan bir cmd çalıştırabilirsiniz, böylece UAC tarafından tekrar istem yapılmaz, https://github.com/oski02/UAC-GUI-Bypass-appverif. Bu biraz daha gizli olabilir.
Eğer gürültü yapmaktan endişe etmiyorsanız, her zaman şunu çalıştırabilirsiniz: https://github.com/Chainski/ForceAdmin bu kullanıcı kabul edene kadar izinleri yükseltmek için istek yapar.
UACME'ye bir göz atarsanız, çoğu UAC bypass'ının bir Dll Hijacking zafiyetini kötüye kullandığını fark edeceksiniz (esas olarak kötü amaçlı dll'yi C:\Windows\System32 içine yazarak). Dll Hijacking zafiyetini nasıl bulacağınızı öğrenmek için bunu okuyun.
Otomatik yükseltme yapacak bir ikili dosya bulun (çalıştırıldığında yüksek bütünlük seviyesinde çalıştığını kontrol edin).
Procmon ile DLL Hijacking'e karşı savunmasız olabilecek "NAME NOT FOUND" olaylarını bulun.
Muhtemelen bazı korumalı yollar (C:\Windows\System32 gibi) içinde yazma izinlerinizin olmadığı DLL'yi yazmanız gerekecek. Bunu aşmak için:
wusa.exe: Windows 7, 8 ve 8.1. Korumalı yollar içinde bir CAB dosyasının içeriğini çıkarmaya izin verir (çünkü bu araç yüksek bütünlük seviyesinden çalıştırılır).
IFileOperation: Windows 10.
Korumalı yola DLL'nizi kopyalamak ve savunmasız ve otomatik yükseltilmiş ikili dosyayı çalıştırmak için bir script hazırlayın.
Bir autoElevated ikili dosyanın kayıttan okumaya çalışıp çalışmadığını izlemeyi içerir; çalıştırılacak bir ikili dosyanın veya komutun adı/yolu (bu bilgi HKCU içinde aranıyorsa daha ilginçtir).
Dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturmak ve otomatikleştirmek için Trickest kullanın. Bugün Erişim Alın:
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)