[Machines] Mr Robot CTF – TryHackMe Writeup

Mr Robot là một machine mức độ Trung bình trên nền tảng TryHackMe. Người chơi phải tìm 3 key bí mật được giấu để có thể hoàn thành bài tập này.

Như thường lệ, chúng ta bắt đầu với việc quét các cổng đang mở:

nmap -A -T4 10.10.125.248

Ở đây chúng ta có cổng 80 HTTP và cổng 443 HTTPS đang mở, còn cổng 22 SSH thì đang đóng. Truy cập địa chỉ IP của machine trong trình duyệt, ta sẽ thấy một giả lập console bằng Javascript và CSS rất xịn:

Console này đơn giản chỉ là front-end, không hề tương tác với hệ thống server. Tiếp tới mình sẽ dùng Gobuster để dò các file và thư mục ẩn:

gobuster dir -u 'http://10.10.125.248/' -w /usr/share/dirb/wordlists/common.txt

Từ kết quả fuzz của gobuster, ta có thể thấy một số directory ẩn như robots, license, … Truy cập vào /robots, ta có thêm thông tin về key thứ nhất:

Truy cập file key-1-of-3.txt, ta có key đầu tiên:

Truy cập vào /license, chúng ta sẽ thấy một đoạn mã hóa base64:

Đoạn base64 giải mã ra elliot:ER28-0652, chắc hẳn đây là thông tin đăng nhập ở đâu đó.

Truy cập vào /wp-admin, ta có thể thấy ngay một form đăng nhập vào CMS của WordPress:

Sử dụng elliot:ER28-0652 là ta đã có thể đăng nhập thành công vào CMS:

Vào được admin panel, bước tiếp theo ta sẽ tìm cách truy cập vào server. Trong mục Appearance, ta có thể tìm thấy mục Theme Editor. Tại đó ta có thể chỉnh sửa mã nguồn của các trang mặc định:

Như trong hình là mã nguồn của trang 404.php, và ta có thể chỉnh sửa cả những đoạn code php. Mình sẽ thử chèm thêm dòng system(‘id’); vào. Dòng đó sẽ thực thi lệnh ‘id‘ trên server:

Sau đó truy cập vào 404.php:

Vậy là server đã thực thi lệnh id. Lần tới ta sẽ chèn vào một reverse shell:

Đổi IPPort ta muốn server kết nối đến, ở đây mình đặt port 9999. Sau đó mở port này ở máy tấn công:

nc -nvlp 9999

Lưu code php và thực hiện request đến 404.php là ta đã có một reverse shell:

Tại thư mục /home/robot có 2 file:

Đây chính là key thứ 2, tuy nhiên với user hiện tại ta chưa thể đọc được file này:

Vậy là trước tiên ta cần đăng nhập bằng robot để có thể đọc được key thứ 2. Tuy nhiên ta vẫn có thể đọc được file còn lại:

Như vậy c3fcd3d76192e4007dfb496cca67e13b chính là đoạn hash md5 cho mật khẩu của user robot. Đoạn hash này rất phổ biến nên ta dễ dàng crack được mật khẩu ban đầu là abcdefghijklmnopqrstuvwxyz. Sử dụng mật khẩu này bằng lệnh su:

su robot

su cần chạy trong terminal, nên ta sẽ dùng python để spawn một tty shell:

python -c 'import pty; pty.spawn("/bin/sh")'

Sau đó ta có thể đăng nhập vào user robot:

Giờ thì key thứ 2 đã có thể được đọc:

Cuối cùng, chúng ta cần tìm cách leo quyền lên root. Kiểm tra các binary được gán SUID với dòng lệnh:

find / -perm -u=s -type f 2>/dev/null

Ta có một danh sách:

Đập ngay vào mắt là nmap. Với nmap được gán SUID, ta có thể leo quyền qua chế độ interactive của nó, từ đó sinh ra một shell với quyền root. Khởi chạy interactive mode của nmap với dòng lệnh:

nmap --interactive

Nhập lệnh !sh để sinh ra một shell, kết hợp với SUID được gán cho nmap, ta có một root shell:

Việc còn lại chỉ là lấy key cuối thôi:

2 bình luận về “[Machines] Mr Robot CTF – TryHackMe Writeup

Trả lời

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s