Windows Ortamında Servislerin İncelenmesi ve Yapılandırılması

0
3420
views
Windows ortamında servisler oldukça büyük bir öneme sahiptir. Windows sızma testleri sırasında hak yükseltmek için kullanılan yöntemlerin başında güvenilir olmayan servislerin istismarı yatmaktadır. Bu sebeple Windows ortamındaki servislerin güvenliğini sağlayabilmek oldukça önemlidir. Bu yazıda, Windows ortamında hak yükseltme zafiyetlerini barındıran bir ortam kurabilmek için Windows servislere ait özelliklerin incelenmesi, yapılandırılması ve yeni servislerin oluşturulması gibi temel konular incelenecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Uyarı: Bu yazıda belirtilen işlemlerin (özellikle yetkilendirmelerin) bir çoğu sızma testi için eğitim ortamı hazırlayabilmek amacı ile yanlış yapılandırma ayarları içermektedir. Yani, “Best Practice” olan durumları belirtmemektedir.

Windows ortamında kullanıcı arayüzü olmayan ve işletim sisteminin arka planında çalışan uygulamalara servis adı verilir. Servisleri listelemek için “services.msc” konsolu kullanılabilir.

 

Windows ortamında servislerin yönetiminden Service Control Manager (SCM) adı verilen araç sorumludur. Bir servis hakkında sorgulama yapılırken, yeni bir servis oluşturulurken, bir servis ayağa kalkarken,… SCM ile iletişime geçilir. Bir servis başlarken öncelikle SCM’e bu durumu bildirir ve oluşturacağı thread’i SCM’a bağlar. SCM de uygun yapılandırılmış olan bu servisi çalıştırır ve ImagePath ile belirtilen uygulama üzerinden hizmet verir.

 

1) Servislerin Listelenmesi

Windows ortamında servisler Service Control Manager ile iletişim kurmak için Windows Vista ve sonrasında yerleşik olarak gelen “sc.exe” aracı bulunmaktadır. Mevcut sistemde çalışan (running) durumda olan servislerin temel özelliklerini (adı, tanımı, tipi ve durumu gibi) almak için “sc” aracı kullanılabilir.

sc query

 

Belli bir servis ile ilgili bilgi de alınabilir.

sc query termservice

 

Bu komut çıktısındaki servis durumu (STATE) alanı 3 şekilde olabilir.

  • NOT_STOPPABLE & STOPPABLE: Servisin durdurulabilir olduğunu ifade eder.
  • NOT_PAUSABLE & PAUSABLE: Servisin duraklatılabilir olduğunu ifade eder.
  • IGNORES_SHUTDOWN & ACCEPTS_SHUTDOWN: Servisin kapatılabilir olduğunu ifade eder.

Aynı komutun çıktısında görülen servis tipi (TYPE) alanı ise 2 şekilde olabilir.

  • Win32_SHARE_PROCESS: Servisin aynı tipteki diğer servisler ile beraber ortak olarak adres uzayını paylaşabileceğini belirtir.
  • Win32_OWN_PROCESS: Servisin tekil (standalone) olarak çalıştığını ifade eder.

Benzer temel özellikleri, o anda çalışan ve çalışmayan tüm servisler için elde etmek isteniyorsa “STATE” alanı ayarlanabilir.

sc query state= all

 

Eğer bu özelliklere Proses ID değeri de eklenmek isteniyorsa “sc query” yerine “sc queryex” kullanılabilir.

sc queryex

 

Mevcut sistemde bulunan servislerin detaylarını listelemek için “wmic” aracı kullanılabilir.

wmic service get Caption, Name, ProcessId, PathName, ServiceType, Started, StartMode, StartName, State

 

Bu komutun çıktısında görülen servis başlangıç modu (StartMode) alanı ise 4 şekilde olabilir.

  • Automatic (Delayed Start): Windows servisinin gecikmeli olarak başlayacağını fade eder.
  • Automatic: Oturum açılmış olmasa bile, servisin bilgisayar her yeniden başladığında otomatik olarak başlayacağını ifade eder.
  • Manual: Servisin, bir kullanıcı veya uygulama tarafından el ile başlatılacağını ifade eder.
  • Disabled: Başlangıç türü değiştirilmeden servisin başlatılamayacağını ifade eder.

Aynı çıktıda “StartName” kolonu temel olarak 4 farklı değer olabilir.

  • Local System: Yerel bilgisayarın tüm kaynaklarına ve bilgisayarın bulunduğu etki alanındaki ağ kaynaklarına erişebilir. Bu hesap, yerel makinede “LocalSystem” olarak, etki alanında ise DOMAIN\<BilgisayarAdi> olarak gözükür.
  • Local Service: Yerel kaynaklara yetkisi dahilinde erişilebilirken, ağ üzerinde ise sadece anonim kaynaklara erişim sağlayabilir. Bu hesap, yerel makinede “NT AUTHORITY\LocalService” olarak gözükür.
  • Network Service: Ağ kaynaklarına yetkisi dahilinde erişilebilir. Bu hesap, yerel makinede “NT AUTHORITY\NetworkService” olarak gözükür.
  • Kullanıcı Hesapları: Yerleşik kullanıcılar haricinde bir servis hesabı yerel kullanıcı veya etki alanı kullanıcısı yetkisi ile de çalışabilir. Yerel ve ağ kaynaklarına yetkisi dahilinde erişilebilir. Diğer servis hesapları için kimlik doğrulaması işletim sistemi tarafından gerçekleştirilirken, kullanıcı hesabı kullanımı sırasında yazılan kimlik bilgilerinin doğrulaması Serive Control Manager (SCM) tarafından gerçekleştirilir. Bu sebeple parola yönetimi önem arz etmektedir. Parola değişikliği sonrasında ilgili servis çalıştığı sürece kimlik doğrulama kontrolü yapılmayacağı için sorun hissedilmeyecektir. Ancak servis yeniden başlatılmak istendiğinde kimlik doğrulaması başarısız olacağı için servis üzerinde de parolanın güncellenmesi gerekecektir.

Belirli bir servis için listeleme yapılmak istendiği durumunda ise “Where” ifadesi ile filtreleme yapılabilir.

wmic service where Name=”termservice” GET Caption, PathName, StartMode, Started, StartName

 

Hizmetler konsolunun üçüncü sekmesinde (Recovery / Kurtarma) servis bir sebepten ötürü devre dışı kalırsa veya durursa gerçekleşecek eylemi belirtir.

  • Take No Action: Bu durumun görmezden gelineceğini belirtir.
  • Restart The Service: Servisin yeniden başlatılacağını belirtir.
  • Run A Program: Belirtilecek programın otomatik olarak çalışacağını belirtir.
  • Restart the Computer: Bilgisayarın yeniden başlayacağını belirtir.

 

2) Mevcut Servislerin Yapılandırılmasının Değiştirilmesi

Remote Desktop Services (“termservice”) adlı servisin başlangıç tipi “Manual” olarak belirtilmiştir. Bu servisin başlangıç tipi “Disabled” olarak değiştirilebilir. Bu değişiklik “sc config” komutu ile gerçekleştirilebilir.

wmic service where Name=”aspnet_state” GET Caption, PathName, StartMode, StartName, Started
sc config termservice start= disabled
wmic service where Name=”aspnet_state” GET Caption, PathName, StartMode, StartName, Started

 

Bir servisin çalıştıracağı uygulamayı değiştirmek için “binpath= ” seçeneği kullanılabilir. Normalde çalıştırdığı uygulama “C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_state.exe” olan ASP.NET State Service (aspnet_state) adlı servisin, SNMPTRAP servis, gibi çalışması sağlanabilir.

wmic service where Name=”aspnet_state” GET Caption, PathName, StartMode, StartName, Started
sc config aspnet_state binpath= “C:\Windows\System32\snmptrap.exe”
wmic service where Name=”aspnet_state” GET Caption, PathName, StartMode, StartName, Started

 

Bir servisin çalıştığı yetkiyi değiştirmek için ise “obj= ” ve “password= ” seçenekleri kullanılabilir. Normalde “NT AUTHORITY\NetworkService” yetkisi ile çalışan ASP.NET State Service (aspnet_state) adlı servisin yetkilendirmesi “LocalSystem” olarak değiştirilebilir.

wmic service where Name=”aspnet_state” GET Caption, PathName, StartMode, StartName, Started
sc config aspnet_state obj= “.\LocalSystem” password= “”
wmic service where Name=”aspnet_state” GET Caption, PathName, StartMode, StartName, Started

 

ASP.NET State Service (aspnet_state) adlı servisin başlatacağı “snmptrap.exe” uygulaması UDP/162‘den hizmet vermeye başlayacaktır. Servis başlatılmadan önceki durumda UDP/162 portunun çalışmadığı görülmektedir.

wmic service where Name=”aspnet_state” GET PathName, StartName, Started
netstat -anobp UDP
tasklist /FI “SERVICES eq aspnet_state” /V

 

Servis başlatıldığında ise “snmptrap.exe” uygulaması UDP/162’den “NT AUTHORITY\SYSTEM” yetkisi ile hizmet vermeye başladığı görülmektedir. Servis başlatmak için “net start“, durdurmak için ise “net stop” komutu kullanılabilir.

net start aspnet_state
wmic service where Name=”aspnet_state” GET PathName, StartName, Started
netstat -anobp UDP
tasklist /FI “SERVICES eq aspnet_state” /V

 

3) Yeni Bir Servis Oluşturma

Windows ortamında servis oluşturmak için “sc” aracı kullanılabilir. Bu servis çalıştığında başlayacak uygulama için çalıştırılabilir bir dosya seçilmesi gereklidir. Bu amaçla “C:\Windows\System32\calc.exe” gibi bir uygulama kullanılabileceği gibi bir yazılım da servis olarak kurulabilir. Windows servisler başlarken başlatıldıktan belli bir süre sonra Service Control Manager (SCM)’a başladığını belirtmezse, bu servis SCM tarafından durdurulur. Hesap makinesi (“C:\Windows\System32\calc.exe”) gibi bir uygulama, doğrudan servis olarak başlatılmak istendiğinde SCM ile beklendiği gibi iletişim kuramayacağı için duracaktır. Bu sebeple servis kurulumu için özel araçlar kullanılması gerekecektir. Biraz daha gerçekçi olması açısından bir web uygulaması servis olarak kurulacaktır.

3.1) NodeJS Kurulumu ve Ayarlanması

Sunucu taraflı Javascript geliştirmek için kullanılan platform kendi sitesinden indirilebilir.

https://nodejs.org/en/download/

 

İndirilen bu dosya kurulur.

 

Kurulum sırasında dizin seçilir.

 

Not: Varsayılan kurulum dizini (C:\Program Files\) değiştirilerek “C:\Program Files\Yeni Programlar” olarak belirtilmiştir. Bunun sebebi sonraki adımlarda yapılacak hatalı dizin yetkilendirmelerini gösterebilmektir.

Sonraki adımlar varsayılan olarak ilerletilebilir.

 

Gerekli paketlerin kurulumu varsayılan olarak gerçekleştirilebilir.

 

Böylece kurulum tamamlanmıştır. Kurulum ile birlikte çevresel değişkenlere uygulama dizini eklenmiş olur.

node -v

 

Kurulan bu uygulama ile IIS gibi bir web hizmeti verilmesi amaçlanmaktadır. Bunun için uygulamayı çalıştıracak JS komutları verilmelidir. Ekranda sadece “Merhabalar” yazan bir betik (ilkbetik.js) aşağıdaki gibidir.

 

“node” aracına hazırlanan bu betiğin parametre olarak verilmesi ile TCP\5555 portunda bir web uygulaması başlamaktadır.

“C:\Program Files\Yeni Programlar\nodejs\node.exe” C:\ProgramData\Egitim\ilkbetik.js

http://127.0.0.1:5555/

 

Her defasında bu komutu çalıştırmak yerine bilgisayar açıldığında otomatik olarak web hizmetinin ayağa kalkması için servis olarak çalışması gerekir. Bu işlem çeşitli yöntemlerle harici araçlar veya yazılımsal olarak sağlanabilir. Bu başlık altında ise örnek 2 yöntem incelenecektir.

 

3.2) “sc” Aracı ile NodeJS Servisi Oluşturulması

Manuel olarak başlatılan bu web uygulamasını bir Windows servis olarak başlatmak için “sc” aracı kullanılabilir.

sc create YeniWebServis-sc binPath= “\”C:\Program Files\Yeni Programlar\nodejs\node.exe\” \”C:\ProgramData\Egitim Dizini\ilkbetik.js\”” type= “OWN” error= “Normal” DisplayName= “Servis Olusturma Denemesi – sc Araci” start= auto

 

Ancak bu şekilde oluşturulan bir servis başlatılmak istendiğinde “The service is not responding to the control function.” şeklinde bir hata alınabilir.

net start YeniWebServis-sc

 

Servis konsolundan deneme yapıldığında da “Error 1053: The service did not respond to the start or control request in a timely fashion” şeklinde bir hata alınabilmektedir.

 

Windows ortamında bir servisin ayağa kalkması için Service Control Manager ile belli bir süre (30 saniye gibi) iletişime geçmesi gereklidir. Yukarıda alınan hatanın sebebi de, Microsoft Windows Service Control Manager tarafından gönderilen “SERVICE_CONTROL_START“, “SERVICE_CONTROL_INTERROGATE” gibi komutlara cevap verilememesi veya geç cevap verilmesi olabilmektedir.

Not: Bir servisi silmek için “sc delete” kullanılabilir.

sc delete YeniServis

 

3.3) “nssm” Aracı ile NodeJS Servisi Oluşturulması

Bir servis oluşturmak için “sc” aracı yerine “NSSM – the Non-Sucking Service Manager” aracı da kullanılabilir.

https://nssm.cc/download

 

Bu araç kuruluma gerek duymamaktadır. Uygulama çalıştırıldığında bir arayüz (GUI) ile temel kullanımı görülebilir.

 

Bu araç ile basit bir servis kurulabilir. Gelen ekrana gerekli parametreler yazılabilir.

nssm.exe install YeniWebServis-nssm

Path: C:\Program Files\Yeni Programlar\nodejs\node.exe
Arguments: C:\ProgramData\Egitim\ilkbetik.js
Display Name (Details Sekmesinde): Servis Olusturma Denemesi – nssm Araci

 

Böylece yeni servis kurulmuş olur. Özel bir ayar yapılmadı ise bu servis LocalSystem yetkisi ile çalışmaktadır.

 

Oluşturulan servis başlatıldığında web hizmeti otomatik olarak başlayacaktır.

net start YeniWebServis-nssm

 

4) Servis Yetkilendirmesinin İncelenmesi

Sysinternals Process Explorer aracı ile de servis yetkilendirmesi incelenebilir.

https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

Bir prosese kaydolmuş olan servis seçilerek, “Services” sekmesi ile gelen pencerede servis izinleri li,stelenebilir veya değiştirilebilir.

 

Servis yetkilendirmesini arayüzden gerçekleştirmek yerine Sysinternals “accesschk” komut satırı aracı da kullanılabilir.

https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk

Örneğin, oluşturulan NodeJS web servisinin yetkilendirmesi incelendiğinde, “NT AUTHORITY\SYSTEM” ve “BUILTIN\Administrators” için tam kontrol verildiği, “NT AUTHORITY\INTERACTIVE” ve “NT AUTHORITY\SYSTEM” için ise sadece sorgulama yapılabildiği görülmektedir.

accesschk.exe -ucv YeniWebServis-nssm

 

Everyone, Authenticated Users, Interactive veya Users için bir servisin çalıştırdığı dosya üzerinde tam yetki (SERVICE_ALL_ACCESS) veya yazma yetkisi (WRITE_DAC, WRITE_OWNER, GENERIC_WRITE veya GENERIC_ALL gibi) varsa servis güvenliğinin tam olarak sağlanamadığından bahsedilebilir. Tam yetki haricinde ilgili servis üzerinde yapılandırma değiştirme yetkisi (SERVICE_CHANGE_CONFIG) bulunması da servis güvenliğini zafiyete sokabilir.

Tüm servislerin yetkilendirmesini sorgulamak için servis adı belirtmek yerine “*” ifadesi kullanılabilir. Ayrıca servisler üzerindeki yazma iznini tespit edebilmek için “w” de parametre olarak eklenebilir.

accesschk.exe -ucvw *

 

Belli bir grup veya kullanıcının servis üzerindeki yetkilendirmesini kontrol etmek için de “accesschk” aracı kullanılabilir. “Authenticated Users” tarafından yazma yetkisi olan tüm servisler listelendiğinde sadece “CVPND” adlı servisin geldiği görülmektedir.

accesschk.exe -uwcv “Authenticated Users” *
accesschk.exe -ucv CVPND

 

CVPND adlı servis Cisco VPN Client 5.0.07 uygulamasına aittir. Bu uygulamadaki zafiyet sonraki sürümlerde giderilmiştir.

https://www.ibm.com/developerworks/community/files/app#/file/399d61c9-4ec9-4e40-a8f7-cb7c5b9cb056

SACL (System Access Control List), Windows ortamında korunabilen bir nesneye olan tüm erişim girişimlerine ait kayıt bilgisinin tutulmasında kullanılır. Böylece nesneler üzerinde başarılı veya başarısız kayıt bilgisi üretilmesi sağlanabilir. DACL (Discretionary Access Control Lists) ise, bir Windows nesnesi üzerindeki erişim yetkilendirmesinin listesidir. Böylece nesnelere erişim yetkileri (okuma, yazma, değiştirme, öznitelikleri güncelleme, sahipliği değiştirme,… gibi) sınırlandırılabilir.

Bir servis üzerindeki SACL ve DACL kayıtlarını görmek için “sc sdshow” ifadesi kullanılabilir.

sc sdshow YeniWebServis-nssm

 

Mevcut durumdaki yetkilendirmenin aşağıdaki gibi olduğu görülmektedir.

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Listenin “D:” ile başlayan ilk yarısı DACL’i yani yetkilendirmeyi, “S:” ile başlayan ikinci yarısı ise SACL’i yani kayıt tutulma durumunu ifade eder.

  • Yetkilendirme –> D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)
  • Kayıt Altına Alma –> S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Yetkilendirme ile ilgili olan kısımdaki ilk harf “A” ise sonraki eylemlere izin verildiğini (Allow); “D” ise sonraki eylemlere izin verilmediğini (Deny) ifade eder. Detaylı bilgi için MSDN’deki ACE (Access Control Entries) kaynağı incelenebilir.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa374928(v=vs.85).aspx

Servis yetkilendirmesindeki uzun harflendirmeler de izinleri belitir. Bu değerler ve sağladığı izinler aşağıdaki gibi sıralanabilir.

  • CC (SERVICE_QUERY_CONFIG): SCM’den servis ayarlarını sorgulayabilme
  • LC (SERVICE_QUERY_STATUS): SCM’den servisin mevcut durumunu sorgulayabilme
  • SW (SERVICE_ENUMERATE_DEPENDENTS): Bağımlı servisleri listeleyebilme
  • LO (SERVICE_INTERROGATE): Servise, o servisin mevcut durumunu sorabilme
  • CR (SERVICE_USER_DEFINED_CONTROL): Servis sahibi tarafından servis kontrolü gönderebilrme
  • RC (READ_CONTROL): Servisin güvenil tanımını okuyabileme
  • RP (SERVICE_START): Servisi başlatabilme
  • WP (SERVICE_STOP): Servisi durdurabilmr
  • DT (SERVICE_PAUSE_CONTINUE): Servisi duraklatabilme veya devam ettirebilme

Detaylı bilgi için Microsoft’un yayınladığı Servis DACL kaynağı incelenebilir.

https://support.microsoft.com/en-us/help/914392/best-practices-and-guidance-for-writers-of-service-discretionary-acces

Parantez içindeki son iki karakter ise SID veya takma ismi (alias) ifade eder. Bu değer “SY” ise LOCAL SYSTEM için, “BA” ise Built-in Administrator; “SU” ise Service User,… için bu eylemlerin belirtildiğini gösterir. Detaylı bilgi için MSDN’deki SID kaynağı incelenebilir.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa379602(v=vs.85).aspx

 

5) Servis Yetkilendirmesinin Değiştirilmesi

Oluşturulan NodeJS web servisinin yetkilendirmesinin değiştirilmesi için “sc sdset” ifadesi kullanılabilir.

sc sdset YeniWebServis-nssm D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

 

Servis yetkilendirmesi yeniden incelendiğinde “(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)” eklendiği için “Authenticated Users” hesabına tam yetkinin verildiği görülmektedir.

sc sdshow YeniWebServis-nssm
accesschk.exe -ucv YeniWebServis-nssm

 

6) Servisin Çalıştırdığı Uygulamanın ve Uygulama Dizininin Yetkilendirmesinin Değiştirilmesi

Servisin çalıştırdığı uygulamanın yetkilendirmesini incelemek için “icacls” aracı kullanılabilir.

icacls “C:\Program Files\Yeni Programlar\nodejs\node.exe”

 

Mevcut durumda SYSTEM ve Administrators’ın bu uygulamada tam yetkisi, Users grubunun ise okuma ve çalıştırma yapabildiği görülmektedir.

NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)

“Users” ve “Everyone” gruplarına tam yetki (yazma yetkisi dahil) vermek için yine “icacls” aracı kullanılabilir.

icacls “C:\Program Files\Yeni Programlar\nodejs\node.exe” /grant Users:F
icacls “C:\Program Files\Yeni Programlar\nodejs\node.exe” /grant Everyone:F

 

Benzer olarak bu uygulamanın bulunduğu dizinin veya üst dizininin yetkilendirmesi için de “icacls” aracı kullanılabilir.

icacls “C:\Program Files\Yeni Programlar\nodejs”
icacls “C:\Program Files\Yeni Programlar”

 

“Users” grubuna bu dizin üzerinde tam yetki (yazma yetkisi dahil) tanımlanması aşağıdaki gibidir.

icacls “C:\Program Files\Yeni Programlar\nodejs” /grant Users:F
icacls “C:\Program Files\Yeni Programlar\nodejs”

 

Üst dizinde de benzer işlem yapılabilir.

icacls “C:\Program Files\Yeni Programlar” /grant Everyone:F
icacls “C:\Program Files\Yeni Programlar”

 

7) Servis Bilgilerinin Tutulduğu Kayıt Defteri Değerinin Yetkilendirmesinin Değiştirilmesi

Windows işletim sistemindeki servislere ait bilgiler kayıt defterinde tutulmaktadır. Kayıt Defteri Düzenleyicisi (regedit.exe) ile servis kayıtları incelenebilir.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

 

Bir servise ait anahtarın izinleri değiştirilebilir.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\YeniWebServis-nssm > Permissions

 

Kayıt defterinde yetkilendirmesini arayüzden gerçekleştirmek yerine Sysinternals “SubInACL” komut satırı aracı da kullanılabilir.

https://www.microsoft.com/en-us/download/details.aspx?id=23510

İndirilen MSI paketi kurulduğunda varsayılan olarak “C:\Program Files (x86)\Windows Resource Kits\Tools” dizininde “subinacl.exe” dosyası oluşur.

 

Mevcut durumda bu anahtar üzerinde Everyone için tam yetki verildiği görülmektedir.

subinacl.exe /keyreg “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\YeniWebServis-nssm” /display

 

Bu aşamada istenirse yetkilendirme değiştirilerek “Authenticated Users” grubuna tam yetki ataması yapılabilir.

subinacl.exe /verbose=1 /keyreg “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\YeniWebServis-nssm” /grant=”Authenticated Users”=F

 

Not: subinacl aracı ile bir servis üzerinde Authentication Users’a tam yetki vermek için aşağıdaki gibi bir komut kullanılabilr.

subinacl.exe /service AppMgmt /grant=”Authenticated Users”=F

 

Yetkilendirme ile ilgili detaylı bilgi için araç çıktısı incelenebilir.

subinacl.exe /help /grant

 

Kaynaklar:

https://www.cozumpark.com/blogs/windows_server/archive/2012/05/06/servisler-ve-servis-hesaplarinin-guvenligi.aspx
https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-windows-services-all-roads-lead-to-system-whitepaper.pdf

Elevating privileges by exploiting weak folder permissions


https://www.sans.org/reading-room/whitepapers/threats/managing-vulnerabilities-exposed-windows-services-1247

Penetration Testing: Stopping an Unstoppable Windows Service


https://labs.mwrinfosecurity.com/assets/1089/original/Windows_Services_-_All_roads_lead_to_SYSTEM-1.1-oct15.pdf

Windows Privilege Escalation Methods for Pentesters


Running Node as a Service using NSSM
http://www.buraksenyurt.com/post/Windows-Servislerine-Giris-bsenyurt-com-dan
https://blogs.msmvps.com/erikr/2007/09/26/set-permissions-on-a-specific-service-windows/

 

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.