> For the complete documentation index, see [llms.txt](https://mhzcyber.gitbook.io/vulnerability-research-ar/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mhzcyber.gitbook.io/vulnerability-research-ar/hackthebox-ar/legacy-ar.md).

# Legacy - بالعربي

حل legacy box

![](https://548817836-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK6emPkt7Vmvi_L4pYE%2F-MM6XSd33U1NWkRPzzo-%2F-MM6Xx3-sd9y5a1wSav2%2Fimage.png?alt=media\&token=19b51c78-8a87-4331-b763-7963705bfa52)

\
\
السلام عليكم و رحمة الله و بركاته\
\
1- تبدأ الاول بعمل Scan على الماشين ب nmap عشان نشوف ال Open Ports الموجودة و ال services/الخدمات و شو منهم فيه ثغرة/vulnerable فتستغله و طبعا بدون عمل استطلاع/recon او enumeration ما ممكن تبدأ اي عملية Pentesting او Hacking<br>

![](https://548817836-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK6emPkt7Vmvi_L4pYE%2F-MM6XSd33U1NWkRPzzo-%2F-MM6YGekp-rd49KbzAIT%2Fimage.png?alt=media\&token=dd97b929-88c2-4b19-859d-29d9145cd60a)

2- نبدأ بالبحث اذا كان اي خدمة / service مصابة و اول شيء لدينا هو ال 139 & 445 \
بعد شوية بحث عن الثغرات الي ممكن يكون ال smb مصاب فيها و خاصة الي بتستهدف win xp لقيت ms08-067 و ممكن تتسغلها بال metasploit  بسهولة جدا\ <br>

```
use exploit/windows/smb/ms08_067_netapi
```

بعد ما تزبط ال options و تعمل run المفروض يظهرلك كلاتي :&#x20;

![](https://548817836-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK6emPkt7Vmvi_L4pYE%2F-MMARt2kNp4tRjmR8kzV%2F-MMAUKQZTaAQ4NLyj4re%2Fimage.png?alt=media\&token=742c9f7e-efc5-4bc8-82a7-db62123f576e)

ما في اي داعي لل privesc هون لان انت بالاصل بسبب الاستغلال هاد بتدخل ك root&#x20;

هلئ نحصل ال root flag&#x20;

```
type Administrator\Desktop\root.txt
```

و الان ال user flag

```
type john\Desktop\user.txt
```

بهيك انتهت الماشين بس كيف حصل الاستغلال / exploit ؟!!!

{% hint style="info" %}
الامر كله بسبب خطأ بمعالجة / handling طلب / request بال RPC service !

بحصل عن طريق اي طلب خاص بال UUID&#x20;

4B324FC8-1670-01D3-1278-5A47BF6EE188

ال RPC فيه function اسمها NetprPathCanonicalize و الي بدورها بتستخدم ال library NETAPI32.DLL\
الكود :

`long NetprPathCanonicalize(`\
`[in] [string] [unique] wchar_t *ServerName,`\
`[in] [string] [ref] wchar_t *PathName,`\
`[in] long OutBufLen;`\
`[in] [string] [ref] wchar_t *Prefix,`\
`[in] [out] [ref] long *PathType;`\
`[in] long PathFlags;`\
`);`

المشكلة بان المتغير variable الي اسمه PathName ما بتم معالجته بشكل صح فبسبب&#x20;

buffer overflow

&#x20;هو بياخد  ال path بالشكل الاتي :&#x20;

/pathpart1/../../pathpart2

فبياخد منه على قدر ال calculated buffer فالمفروض ان رح ياخد منه حد معين و الباقي يكون كلاتي

/../pathpart2

بمعنى اخر هو اخد هي المقدمة

/pathpart1/..

طيب هون لما رح يرجع ياخد التاني بما ان مافي شي قبل ال path او ال input ف رح يبحث عن اول /  بهي الحال و حسب فهمي رح يكون ال / بمكان بالذاكرة / memory عند شغلة اسمها ال designated buffer&#x20;

فلو اجا ال / بال stack على مكان vulnerable  فرح يحصل نسخ لل source string للمكان الي هو واقف عليه.

طيب لحد الان هي تعتبر الثغرة بدون الاستغلال , فكيف بستغلها المهاجم ؟&#x20;

بيقدر المهاجم يتلاعب بال stack عن طريق ان يرسل الطلب / request  مرتين او يعمل call على ال RPC مرتين&#x20;

بالمرة التانية رح يحصل overwrite لل stack buffer .&#x20;
{% endhint %}

كنت بتمنى اقدر اعمل الامر عملي بشكل يدوي اكتر و احللللكم (يا اخي اخت الكلمة ما بقى اعرف اكتبا ولا الفظها 😂) الي بحصل مع توضيح اكتر و اكتب python script يستغل الموضوع , بس للاسف رح ياخد وقت, فبتمنى للوقت الحالي يكون هيك الشرح قرب فكرة ال exploit و شو بصير ورا ال Enter الي بتضغطها.

السلام عليكم.

Resources:

<https://labs.f-secure.com/assets/BlogFiles/hello-ms08-067-my-old-friend.pdf>\
<https://blog.rapid7.com/2014/02/03/new-ms08-067/>\
<https://www.mysonicwall.com/sonicalert/searchresults.aspx?ev=article&id=74>\
<https://docs.microsoft.com/en-us/security-updates/securitybulletins/2008/ms08-067>
