You are on page 1of 22

Szma Testlerinde

Windows letim Sistemi


Hak Ykseltme almalar
indekiler
1. Giri.........................................................................................................................................................3

2. Bilgi Toplamada Kullanlan Aralar......................................................................................................4

3. Yaplandrma Hatalar/Eksiklikleri ve Tespiti ......................................................................................6

3.1. Gvenli Olmayan Dosya/Dizin zinleri ........................................................................................6

3.2. Gvenli Olmayan Kayt Defteri Deerleri ...................................................................................9

3.3. Gvenli Olmayan Servis zinleri .................................................................................................11

3.4. Servis altrlabilir Dosyasnn Unquoted Braklmas ...........................................................15

3.5. Getsystem Komutu le Hak Ykseltmek...................................................................................19

4. Sonu....................................................................................................................................................21

5. Referanslar...........................................................................................................................................22
1. Giri
Szma testlerinde Windows iletim sistemi gvenlik uzmanlarnn karsna olduka fazla kmaktadr.
Windows iletim sistemi zerinde snrl hak seviyesinde hedef sistemde oturum elde etmek genelde
kolay olabilir ancak bir sonraki sisteme geebilmek iin bulunduunuz sistemde en yksek hak
seviyesine kp tam hakimiyet kurmanz gerekmektedir. Ortalama bir yapda sz konusu tam
hakimiyeti saladktan sonra yapnn byk ounluu ele geirmek kolaylaacaktr.

Bu noktada hak ykseltme zafiyetleri zm iin yardmc olmaktadr. Hak ykseltme basit anlamyla
herhangi bir yaplandrma veya gelitirme eksikliini/hatasn kullanarak bir st veya en st hak
seviyesine kmaktadr diyebiliriz. Yaz ierisinde tanmlamadan da anlalaca zere hedef sistem
zerinde alan servislerin, uygulamalarn veya nc parti uygulamalarn gelitirilmesi veya
yaplandrlmas aamasnda ortaya kan eksiklikleri/hatalar istismar ederek nasl hak ykseltilir
ileyeceiz. Ancak yaz ierisinde servisin veya uygulamann gelitirilme aamasnda ortaya kan
zafiyetlere deil yaplandrma kaynakl olan zafiyetlere odaklanacaz.

Tm gvenlik yamalarnn ve nlemlerin uyguland bir iletim sisteminde eksik veya hatal
gerekletirilen yaplandrma(lar) iletim sistemini savunmasz brakabilir ve ele geirilmesine neden
olabilir.

Yaz boyunca anlatlan ierik iin Windows Server 2012 iletim sistemi zerinde oluturulmu
PwnAble isminde bir servis ve daha nce zafiyeti duyurulmu nc parti bir yazlm kullanlmtr.
2. Bilgi Toplamada Kullanlan Aralar
Hak ykseltme almas iin hedef sistem zerinde hedef alnacak uygulamalarn veya servislerin
yaplandrlmasna ynelik belli bal sorgulamalarn yaplmas gerekmektedir. Bu ilemler iin
kullanlabilecek baz aralar aada verilmitir.

Accesschk
o Sistem yneticileri tarafndan kullanlan bu ara ile iletim sistemindeki kullanclarn
veya kullanc gruplarnn hangi dosyalara, dizinlere, kayt defteri girdilerine, global
nesnelere ve servislere eriimlerinde hangi haklara sahip olduunu gsterir.
o https://technet.microsoft.com/en-us/sysinternals/accesschk.aspx
Icacls
o Windows sistemlerde kurulum ile beraber gelen bu ara ile dizin veya dosyalarn
DACLs bilgilerine eriilebilir ya da deitirilebilir.
o https://technet.microsoft.com/tr-tr/library/cc753525(v=ws.10).aspx
Process Explorer
o Windows iletim sisteminde o an alan uygulamalar derinlemesine takip
edilebilecek, deiiklik yaplabilecek olan uygulamadr. Standart grev yneticisinin
gelimi versiyonu olarak tanmlanabilir, gelimi EXE ve DLL takibi ne kan
zelliidir.
o https://technet.microsoft.com/tr-tr/sysinternals/processexplorer
Windows Privesc Check
o Ak kaynak kodlu olarak Python dilinde gelitirilen ara ile hedef sistem zerindeki
yaplandrma hatalarndan kaynaklanan zafiyetlerin tespiti gerekletirilebilir. Bu
alandaki en popler aralardan bir tanesidir. Ara ayn zamanda baz nc parti
yazlmalarn gncelletirme eksiklerini de tespit edilebilmektedir.
o https://github.com/pentestmonkey/windows-privesc-check
PowerUp
o Ak kaynak kodlu olarak Powershell ile gelitirilen ara ile hedef sistem zerindeki
yaplandrma hatalarndan kaynaklanan zafiyetlerin tespiti gerekletirilebilir.
o https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp
WPC-PS
o Bu alandaki bir baka ara olan WPC-PS, ak kaynak kodlu olarak Powershell ile
gelitirilmektedir. Ara ile hedef sistem zerindeki yaplandrma hatalarndan
kaynaklanan zafiyetlerin tespiti gerekletirilebilir.
o https://github.com/silentsignal/wpc-ps
3. Yaplandrma Hatalar/Eksiklikleri ve Tespiti
Aadaki balklarda bir Windows iletim sisteminde olabilecek yaplandrma hatalar le ilgili
detaylar verilmitir.

3.1. Gvenli Olmayan Dosya/Dizin zinleri

Windows iletim sisteminde her bir servisin, uygulamann birbirinden bamsz dizin ve alt dizinleri
bulunmaktadr. Bu dizin ve alt dizinlerde servislerin, uygulamalarn altrlabilir dosyalar bata
olmak zere birok dosya bulunur. Bu noktada genel olarak iki farkl yaplandrma zayfl ile
karlalmaktadr.

Hedef servisin bulunduu dizinin, alt dizinlerinin veya servis ile ilikili dosyalarn izinlerinin
gvenilir olarak belirlenmemesi
Direkt olarak servisin altrlabilir dosyasnn izinlerinin gvenilir olarak belirlenmemesi

Yukarda da deinilen icacls isimli ara kullanlarak hedef dizin ve dosyalarn izinleri hakknda bilgi
alnabilir. rnek olarak aada PwnAble servisinin dizini ve servisin altrlabilir dosyasnn izinleri
sz konusu ara ile sorgulanmtr.

Servisi Dizini in Haklar


C:\> icacls 'C:\Program Files\PwnAble'
C:\Program Files\PwnAble Everyone:(OI)(CI)(F)
NT SERVICE\TrustedInstaller:(I)(F)
NT SERVICE\TrustedInstaller:(I)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION
PACKAGES:(I)(OI)(CI)(IO)(GR,GE)

Successfully processed 1 files; Failed processing 0 files


Servisin altrlabilir Dosyas in Haklar

PS C:\> icacls 'C:\Program Files\PwnAble\pwn.exe'


C:\Program Files\PwnAble\pwn.exe BUILTIN\Administrators:(F)
NT AUTHORITY\SYSTEM:(F)
S-1-5-5-0-175763:(RX)
Everyone:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
Successfully processed 1 files; Failed processing 0 files

Sorgunun ktsndan da anlalaca zere hedef servisin dizininin ve altrlabilir dosyasnn izinleri
arasnda Everyone (I)(F) ibaresi gemektedir. Bu durum, hedef iletim sistemindeki herhangi bir
kullancnn servisin dizini ve altrlabilir dosyas zerinde ilem yapabilir anlamna gelmektedir. Sz
konusu servisin NT AUTHORITY\SYSTEM haklaryla altn gz onunda bulundurursak saldrgan
hedef servisin bu yaplandrma zafiyetinin kullanarak servisin alt hak olan NT
AUTHORITY\SYSTEM haklarna kabilir.

Bu konuda daha nce yaynlanm bir zafiyet olan Symantec pcAnywhere - Insecure File
Permissions Local Privilege Escalation, CVE-2011-3479 rnek verilebilir. Sz konusu yazlmn
kulland dizin herhangi bir kullanc tarafndan mdahale edilebilir durumda braklmtr. Ayn
zamanda yazlmn kulland dier altrlabilir dosyalardan bazlarnn izinleri de gerekli ekilde
ayarlanmam ve herhangi bir kullanc tarafndan mdahale edilebilir ekilde braklmtr. Bu
durumda hedef sistemde yazlm ykl ise saldrgan servisin kulland altrlabilir dosyalardan
herhangi birisine mdahale edip kendi dosyas ile deitirerek sistemi ele geirebilir.

Symantec yazlm iin duyurulan zafiyette yanl yaplandrlan dosyalardan biri olan,
WinAw32.exe zerinde Everyone grubunun Full Control izni vardr. Yetkisiz bir kullanc sz
konusu dosya zerinde istedii deiiklii yapabilir. Lab ortamnda dosyaya Meterpreter eklenmitir
ardndan dosya hedefteki temiz dosya ile deitirilmitir. Bu noktadan sonra hedef sistemdeki
yazlm altnda Meterpreter oturumu elde edilecektir. Zafiyetin istismar ile ilgili ekran
grntleri aada verilmitir.
ekil 1 - Dosyann zinleri ve Yazlmn altrlmas

ekil 2 - Dosyaya Meterpreter Eklenmesi ve Oturumun Elde Edilmesi


3.2. Gvenli Olmayan Kayt Defteri Deerleri

Windows iletim sisteminde servisler ile ilgili olabilecek veriler kayt defteri ierisinde
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services dizin yolunda tutulur. Aadaki
ekran grntsnde hedef iletim sistemi zerinde alan PwnAble servisine ait kayt defterindeki
bilgiler grlmektedir.

Aadaki ekran grntsnde hedef servisin kayt defteri dizini iin izin bilgileri grlmektedir. Ekran
grntsnde de grlecei zere servisin kayt defteri deerleri zerinde Authenticated Users
grubuna dahil kullanclar iin Full Control hakk tanmlanmtr.
Bu durum, herhangi bir ekilde iletim sisteminde oturumu olan kullancnn ilgili kayt defteri
deerleri zerinde deiiklik yapabilir, anlamna gelmektedir. rnek olarak ImagePath deeri
servisin altrlabilir dosyasnn dizin yolunu ierir, saldrgan bu kayt defteri deerini kendi
uygulamasnn dizin yolu ile deitirerek servisin haklarnda alacak bir uygulama elde etmi olur.
Bylece kstl olan hakkn servisin haklarna karm olacaktr.
3.3. Gvenli Olmayan Servis zinleri

Windows iletim sisteminde dosyalar, servisler ya da dier objeler DACLs deerlerine sahiptir. DACLs
bir obje zerinde bulunan kullanclarn veya gruplarn yetki snrlarn belirler. rnein, bir servis
zerinde Authenticaed Users grubu okuma iznine sahip olduu gibi servisi balatma, servisi
durdurma veya ayarlarn deitirme hakkna sahip olabilir. Bu haklar DACLs ksmnda belirlenir.
Windows iletim sistemlerinde servis ekleme, ayarlarn deitirme gibi haklar sadece Administrator
haklarna sahip kullanclarda bulunur, baz durumlarda Administrators grubuna dahil olmayan
kullanclar iin de servisler zerinde ilem yapma hakk tanmlanabilir. Bu durumda saldrgan servisin
ayarlarn deitirerek hak ykseltebilir.

rnek olarak halil kullancs kstl bir kullanc olup NT AUTHORITY\SYSTEM haklarnda alan
PwnAble servisini balatma, durdurma, yaplandrmasn deitirmek gibi haklara sahiptir.
Aadaki ekran grntsnde servisin izin durumlarn ieren ekran grntleri verilmitir.

ekil 3 - Servis zerindeki Haklar


ekil 4 - DACLs

Sz konusu servisin DACLs deerlerine accesschk arac ile bakldnda da ayn sonu grlebilir.

Komut

C:\ accesschk.exe quvcw PwnAble

ekil 5 - Servis Bilgileri ve Accessck Kullanm


Aadaki komutlar kullanlarak srasyla servis durdurulmu, servisin altrlabilir dosyas
Meterpreter ile deitirilmi ve son olarak servis tekrar balatlmtr. Bylece aslnda yetkisiz olan
halil kullancs hedef sistemde yanl yaplandrlm servis izinlerini istismar ederek NT
AUTHORITY\SYSTEM haklarnda alan Meterpreter oturumu elde etmitir.

Komutlar

Sc stop PwnAble
Sc config binPath= C:\Users\halil\Desktop\m.exe
Sc start PwnAble

ekil 6 - Kstl Kullanc ve Servise Mdahele

Yukardaki ekran grntsnde servisi balatldktan sonra bir hata kts grlmektedir. Windows
iletim sistemlerinde bir servis baladnda Service Control Manager ile iletiime gemesi
gerekmektedir. Normalde balamas iin tetiklenen servis, baladnda Service Control Managera
balayabilmesi iin ne kadar srenin gerekli olduunu (time-out period) belirtmesi gerekir. Eer
Service Control Manager servis tarafndan bu ekilde bir bildirim alamaz ise belirli bir sre sonra
servisin ilemini durdurur. Bu bekleme sresi zel bir deiiklik yaplmadysa otuz saniyeden daha
azdr. Yukardaki ekran grntsndeki hatann sebebi budur. Burada dikkat edilmesi gereken nokta;
servis balatlyor, servisin altrlabilir dosyas alyor ancak servis balad bildirimi Service
Control Managera gitmedii iin belirli bir sre sonra Service Control Manager servisin ilemini
durduruyor. O yzden bu gibi durumlarda Meterpreter kullanlacaksa ya manuel olarak ya da
otomatik olarak Migrate ileminin yaplmas yararl olur.

ekil 7 - Meterpreter Oturumunun Sistem Haklarnda Elde Edilmesi


3.4. Servis altrlabilir Dosyasnn Unquoted Braklmas

Windows iletim sisteminde bir servisin dizin yolu ierisinde boluk varsa ve trnak iaretleri ()
arasna alnmamsa ortaya kan zafiyettir. Burada iletim sistemi servisin dizin yolunu yorumlamaya
alyor ve her bir bolukta servisin altrlabilir dosyasna erimeye alyor.

Zafiyet Windows iletim sistemlerindeki CreateProcess fonksiyonunun ierisindeki


lpApplicationName parametresinin yapsndan kaynaklanmaktadr. Fonksiyon ve parametreleri
hakknda daha detayl bilgi ilgili MSDN sayfasndan edinilebilir. (CreateProcess function,
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx).

rnein servisin dizin yolu aada gibi olsun.

Servisin Dizin Yolu

C:\Program Files\PwnAble Service\pwn process.exe

letim sistemi bu durumda servisin altrlabilir dosyasna eriebilmek iin srasyla aadaki dizin
yollarn deneyecektir.

C:\Program.exe
C:\Program Files\PwnAble.exe
C:\Program Files\PwnAble Service\pwn.exe
C:\Program Files\PwnAble Service\pwn process.exe

letim sistemi eer ilk denemede bulamaz ise sonrakine onda da bulamaz ise bir sonrakine
geecektir ta ki altrlabilir bir dosyaya eriene kadar. Bu durumda saldrgan eer aadaki
dizinlerden birisine yazma iznine sahip olursa iletim sisteminin bekledii isimde altrlabilir dosya
ekleyerek zafiyeti istismar edebilir.

C:\
C:\Program Files\
C:\Program Files\PwnAble Service\

rnein, servis balatldnda iletim sistemi ncelikle C:\Program.exe dizin yoluna gidecektir,
saldrgan sz konusu dizine Program.exe adnda kendi dosyasn oluturabilrse iletim sistemi
direkt olarak saldrgann dosyasn altracak ve servisin gerek dizin yolu olan C:\Program
Files\PwnAble Service\ altndaki pwn process.exee hi bakmayacaktr.

Bu noktada dikkat edilmesi gereken, saldrgann muhtemel dizin yollarna iletim sisteminin bekledii
isimde dosya oluturabilecek izinlere sahip olmasdr. Normalde C:\ gibi kk dizinlere yetkisiz
kullanclar iin yazma izni verilmez. Bu durumda dier seenekler deerlendirilmelidir.

Aadaki ekran grntsnde de grlebilecei zere, servisin dizininde Everyone grubunun Full
Control yetkisi var. letim sistemi servisin gerek altrlabilir dosyasndan hemen nce
pwn.exe isimli dosyann olup olmadna bakacaktr. Sz konusu dizine iletim sisteminin bekledii
isimde bir dosya oluturulursa, iletim sistemi oluturulan dosyay altracaktr.

Oluturulan Dosyann Yolu

C:\Program Files\PwnAble Service\pwn.exe

ekil 8 - Servisin, Haklarn ve Dosyann Durumu


ekil 9 - Meterpreter Oturumunun Elde Edilmesi

Bu zafiyet Metasploitin trusted_service_path modl kullanlarak da istismar edilebilir. Modl


zafiyet barndran servisleri tespit edip ardndan istismar aamasna gemektedir. Bunun iin hali
hazrda bir adet Meterpreter oturumu gerekmektedir. Modl iletim sisteminin servis iin ilk bakt
dizine bekledii isimde dosya oluturmay deniyor, eer yazma ilemini baaramaz ise denemeyi
brakyor. Bu modln yapsndan kaynakland iin alt dizinlere manuel olarak baklmas yararl
olacaktr. Yukardaki rnekte C:\ dizini altna yazma izni olmad iin servisin bulunduu dizine
dosya yklenmitir.

Zafiyetin servisin altrlabilir dosyasnn dizin yolunun trnak iaretleri arasna alnmadndan
kaynakland yukarda belirtilmiti. Aadaki ekran grntsnde servis ile ilgili kayt defteri
durumu verilmitir.
ekil 10 - Servis in Gerekli Ayarn Yaplmas

Zafiyetin tespiti iin Windows iletim sistemlerinde aadaki komut altrlarak, zafiyet barndran
servislerin listesi elde edilebilir.

Komut

wmic service get name,displayname,pathname,startmode |findstr /i "auto" |findstr /i /v


"c:\windows\\" |findstr /i /v """
3.5. Getsystem Komutu le Hak Ykseltmek

Herhangi bir Windows iletim sisteminde Meterpreter oturumu elde edildikten sonra eer hedef
kullanc Local Administrators grubuna dahil ise Meterpreter zerinde getsystem komutu
kullanlarak NT AUTHORITY\SYSTEM haklarna klabilir. Peki, arka planda bu komut tam olarak ne
yapyor da en yksek hak seviyesine ulayoruz?

Meterpreterde getsystem komutu altrldnda modl farkl yntemden birisinin baarl


olmas durumunda oturumu NT AUTHORITY\SYSTEM haklarna karmaktadr. Bu yntemler ve
detaylar aada verilmitir.

o Service - Named Pipe Impersonation (In Memory/Admin)


o Named Pipe Impersonation (Dropper/Admin)
o Service - Token Duplication (In Memory/Admin)

lk iki yntem named pipe impersonation dier yntem ise token duplication yntemi olarak
gemektedir.

o Service - Named Pipe Impersonation (In Memory/Admin)


o Bu yntemde Meterpreter hedef sistemde named pipe oluturur ve cmd.exe /c
echo some data >\\.\pipe\[random pipe here] ieren bir servis oluturarak
oluturduu servisi balatr. Ardndan Meterpreter oluturduu cmd.exeye spawn
olup oluturduu named pipea balanmaktadr. Bylece Meterpreter named
pipelarn Impersonation of Clients zelliini kullanabilecek ve NT
AUTHORITY\SYSTEM haklarna kabilecektir.
o Named Pipe Impersonation (Dropper/Admin)
o Bu yntem birinci yntem ile benzerlik gstermektedir. Meterpreter yine hedef
sistem zerinde named pipe oluturmakta ve token impersonation ilemini
gerekletirmektedir. Ancak bu yntemin farkll oluturulan named pipea bir
istemcinin balanmas gerekliliidir. Meterpreter bunun iin hedef sisteme DLL
ykler ardndan rundll32.exeyi bir servis olarak tetikler ve yklenen DLLi
altrmasn bekler. DLL altrldktan sonra oluturulan named pipea balanr ve
ilem tamamlanr. Bu yntemin bir tane dezavantaj bulunmaktadr. Meterpreter
sisteme DLL ykledii iin bu durum antivirus vb. yazlmlarnn dikkatini ekebilir ya
da forensic almalar esnasnda iz brakma durumu ortaya kabilir.
o Service - Token Duplication (In Memory/Admin)
o Bir dier yntem olan token duplication yntemi dierlerinden biraz farkldr.
Meterpreterdeki bu yntemin dezavantaj x86 mimarisine ve SeDebugPrivilegea
ihtiya duymasdr. Meterpreter burada sistemdeki tm alan servisleri tarayp
SYSTEM haklarnda alanlar tespit etmekte ve Reflective DLL yntemini kullanarak
alan servislerden birisine DLL enjekte etmektedir. Enjekte ilemi baarl olduktan
sonra DLL, SYSTEM tokenn elde etmektedir. Bylece Meterpreter oturumu NT
AUTHORITY\SYSTEM haklarna km olmaktadr.
4. Sonu
Genelde iletim sistemleri sklatrlrken gzden karlan veya nem verilmeyen yaplandrma
eksikleri/hatalar tm gncelletirmeler geilmi, son versiyon yazlmlar kullanlsa dahi iletim
sistemini savunmasz brakmaktadr. Byle sistemler iin yaplandrma eksikliklerini/hatalarn
istismar etmek szma testlerinde en avantajl saldr vektrdr diyebiliriz. Yaz ierisinde bu duruma
dikkat ekilmeye allmtr.

Tekrardan hatrlatmakta fayda olduunu dndm bir nokta, yaz ierisinde anlatlan zafiyetler
iletim sistemi bamszdr ve yaplandrma ile ilgilidir. Bu yaz konu ile alakal ilk versiyon olup bir st
seviye teknikleri ieren yntemler dier versiyonda yer alacaktr.
5. Referanslar
Symantec pcAnywhere - Insecure File Permissions Local Privilege Escalation
o https://www.exploit-db.com/exploits/18823/
What happens when I type getsystem?
o http://blog.cobaltstrike.com/2014/04/02/what-happens-when-i-type-getsystem/
Elevating privileges by exploiting weak folder permissions
o http://www.greyhathacker.net/?p=738
CreateProcess function MSDN
o https://msdn.microsoft.com/en-
us/library/windows/desktop/ms682425(v=vs.85).aspx
Windows Services All roads lead to SYSTEM
o https://labs.mwrinfosecurity.com/system/assets/760/original/Windows_Services_
-_All_roads_lead_to_SYSTEM.pdf
Windows Privilege Escalation Fundamentals
o http://www.fuzzysecurity.com/tutorials/16.html
Encyclopaedia Of Windows Privilege Escalation (Brett Moore)
o http://www.youtube.com/watch?v=kMG8IsCohHA
Well, That Escalated Quickly
o http://toshellandback.com/2015/11/24/ms-priv-esc/

You might also like