Tryhackme - Mr Robot CTF
"Cậu là số một hay số không?", đó chính là câu nói vô cùng nổi tiếng mà bất kì ai xem bộ phim Mr.Robot đều biết. Và challenge hôm nay cũng sẽ là chủ đề liên quan đến Mr.Robot và có tên là "Mr.Robot CTF". Háo hức quá rồi, đến lúc chúng ta sẽ hóa thân thành "Elliot Alderson" thứ hai. OK let's start!!!!!
Việc đầu tiên không gì khác đó chính là thăm dò đối phương, tìm kiếm thông tin nào:
OK ở đây thì chúng ta thấy có 3 cổng, và mình sẽ truy cập vào cổng 80 tức http trước, và xuất hiện trên màn hình là 1 chiếc web vô cùng xịn sò đúng chất hacker trong phim luôn :3
Cái web khá là đẹp khiến mình đứng hình khá lâu đến nỗi quên mất mình phải giải challenge hihi. OK, không lan man nữa, thì với chiếc web đẹp như này thì mình cũng phải pentest sao cho thật ngầu thì mới xứng với cái web được :>. Thì mình nhìn thấy là challenge nói về Mr.Robot, và mình liền nghĩ ngay tới 1 file là robots.txt, và đúng thật, có file robots.txt:
Và ở đây ta thấy có file tên là key-1-of-3.txt và nó cũng chính là đáp án cho câu hỏi đầu tiên: "What is key 1?". Việc bây giờ rất đơn giản ta chỉ việc thay /robots.txt bằng /key-1-of-3.txt là xong:
Tiếp theo ta lại thấy có file fsociety.dic, mình thấy lạ nên mình cứ download về thôi, có còn hơn không mà đúng không mọi người. Sau khi download xong thì mình tiến hành bước thứ 2: tìm hidden directory và trừ cái robots.txt vừa nãy ra, ở đây mình sử dụng công cụ dirsearch và cho ra 1 số kết quả:
- /login (status: 302)
- /wp-content (status: 301)
- /admin (status 301)
- /wp-login (status: 200)
- /license (status: 200)
- /wp-includes (status: 301)
Thì bản thân mình thấy có 1 số directory khá là thú vị như wp-login, wp-includes và license. Và mình quyết định ghé vào license trước, và khi kéo xuống dưới thì mình thấy có đoạn mã base64: "ZWxsaW90OkVSMjgtMDY1Mgo=". Và sau khi mình decode nó thì mình nhận được kết quả: "elliot:ER28-0652". Hmmmmm ở đây ta có cặp username password và mình lại nhớ đến wp-admin mà mình tìm được bằng dirsearch, vậy mình sẽ thử dùng cái này đăng nhập vào và đây là kết quả:
Yeah. mình đã truy cập thành công vào wordpress của nó, bây giờ hướng tấn công của mình là mình sẽ thay đổi nội dung của 1 file nào đó thành reverse shell, và mình sẽ vào Appearance > Editor và mình chỉnh sửa file 404.php thành đoạn php reverse shell + tạo cổng listener mà mình mong muốn + điều hướng đến file 404.php và kết quả:
Yeah, truy cập thành công, thì ở đây ta thấy bản thân đang là user daemon, và mình tìm thấy đường dẫn robot ở /home/robot:
Ở đây ta có hai file: key-2-of-3.txt và password.raw-md5. Ta nhận thấy file key-2-of-3.txt ta không thể đọc và file password.raw-md5 có thể đọc, mình quyết định đọc file này và đây là kết quả:
Ầu như ta thấy ở đây ta có username:password trong đó username là robot, mà tên file có từ "raw-md5". Vậy đồng nghĩa với việc password được mã hóa bằng md5. Với tình huống như này chúng ta có thể sử dụng hai công cụ, thứ nhất là hashcat, thứ hai là john, ở đây mình sẽ sử dụng hashcat, và kết quả nhận được. Ta có thể thực hiện các bước sau:
- Copy username:password bên máy nó
- Tạo 1 file tên hash.txt bằng lệnh nano hash.txt và ta paste nguyên username:password của họ vào
- Ở đây ta sử dụng hashcat và cú pháp lệnh là: hashcat -m 0 hash.txt /usr/share/wordlist/rockyou.txt
Và đây là kết quả:
Yeah, ta đã crack được mật khẩu, và với mật khẩu này mình sẽ dùng để leo từ daemon -> robot bằng cách nhập lệnh su - robot và nhập password. Nhưng khi mình nhập su - robot thì nó hiện lên 1 dòng: "su: must be run from a terminal" tức có nghĩa là với cái giao diện terminal như này thì việc thực hiện lệnh su là không hợp lệ, vậy nên mình sẽ sử dụng python để cải tiến giao diện cho terminal, và mình nhập lệnh which python3:
Success! Bây giờ hãy quay trở lại mục tiêu ban đầu, leo từ daemon -> robot: su - robot:
Yeah thành công!!!!! Và bây giờ ta hoàn toàn có thể đọc file key-2-of-3.txt để trả lời cho câu hỏi thứ hai của challenge: "What is key 2?":
Được rồi và bây giờ hãy đến với key cuối cùng của challenge, luôn luôn là vậy, đến cuối challenge luôn là khó nhằn nhất, vậy nên mình quyết định sẽ tìm cách để có được quyền root. Mình sẽ sử dụng lệnh find: find / -type f -perm -u=s 2>/dev/null. Sau khi tìm kiếm xong thì ta sẽ thấy có 1 thứ đáng để ý: /usr/local/bin/nmap. Thường thì những phiên bản nmap cũ mới dính phải cái này, và với điều này thì mình hoàn toàn có thể lấy được quyền root bằng việc bật nmap ở interactive mode: nmap --interactive và nhập lệnh !sh và đây là kết quả:
YEAHHHH, I'm ROOT!!! Và nhiệm vụ cuối cùng là tìm key thứ 3, và mình tìm thấy nó ở chính thư mục root:
Ok vậy là mình đã giải xong challenge Mr Robot CTF. Quả thực là 1 challenge rất là hay và bổ ích, rất mong mọi người ủng hộ và đón nhận những bài writeup của mình. Writeup đến đây là hết, hẹn gặp lại mọi người trong những bài writeup lần sau !!!!!
Nhận xét
Đăng nhận xét