Tryhackme - RootMe

Ây dzô quát sắp, và lại là Đăng đây. Ngay bây giờ sẽ là writeup của challenge có tên là RootMe, thì challenge lần này sẽ giúp cho các bạn hiểu rõ hơn và biết thêm 1 số kĩ thuật tấn công mới trong quá trình pentest, bắt đầu thôi!!!!!!!

Đầu tiên luôn là bước quan trọng nhất: tìm kiếm thông tin của đối tượng:


Ở đây sau khi nmap sẽ cho ra kết quả là 2 port đang mở: 22 và 80 và đó cũng là câu trả lời cho câu hỏi đầu tiên của challenge: "Scan the machine, how many ports are open?"

Với câu hỏi thứ hai liên quan đến phiên bản của Apache thì ta có thể dễ dàng thấy trong quá trình nmap, đó là Apache 2.4.29. Và câu hỏi thứ 3, cổng gì đang chạy ở port 22, thì rất đơn giản, đó là ssh. Vậy là quá trình tìm kiếm thông tin về hệ thống cũng đã được 1 phần. Phần tiếp theo sẽ là tìm hidden directory của web này, nhưng trước khi làm ta sẽ nhìn qua web của nó một chút:


Nhìn qua web thì thấy nó cũng khá đơn giản và cũng không có gì, và mình dò source code của nó cũng không có gì đặc biệt. Vậy thì mình sẽ tìm hidden directory có trên web này:


Ồ ta thấy ở đây có 1 số directory khá là đáng nghi: uploads và panel. Và panel chính là câu trả lời cho câu hỏi cuối cùng của part 1

Bây giờ ta sẽ bắt đầu đào sâu vào hidden directory mình vừa tìm được; đó là panel:


Hmmmmm ở đây ta thấy có thể upload file, vậy thì mình nghĩ ngay đến hướng tấn công file upload, đó chính là upload 1 con reverse shell lên server của nó. Và bây giờ mình sẽ thử test với file có đuôi .php trước:


Ầu mình không thể upload file .php, nhưng điều này cũng không thể làm khó mình cho lắm, vì trên thực tế có rất nhiều cách để bypass những trường hợp như này, và mình nghĩ ngay đến việc đổi từ php sang php5 và mình upload thử shell với đuôi file php5 và kết quả là:


Ồ bypass thành công rồi nè, và việc bây giờ rất đơn giản là mình sẽ vào /uploads và tìm đến file php5 vừa tìm được + tạo listener mà mình đã cài cho con shell. Sau khi các bạn làm xong thì đây là thành quả:


Yeah, một con shell. Và bây giờ mình sẽ tìm file user.txt để trả lời cho câu hỏi tiếp theo, và mình đã tìm thấy file user.txt ở /var/www/user.txt bằng lệnh find: find / -type f -name "user.txt" 2>/dev/null


Và bây giờ đến với câu hỏi tiếp theo, họ yêu cầu chúng ta phải tìm xem có file SUID permission nào khả nghi hay không, thì mình sẽ dùng lệnh rất quen thuộc đó là: find / -type f -perm -u=s 2>/dev/null


Ta thấy có /usr/bin/python và đó chính là thứ mà chúng ta sẽ dùng để leo thang + trả lời cho câu hỏi vừa nãy. Và do là có python nên ta có thể hoàn toàn leo thang bằng cách nhập đoạn script sau: python -c 'import os; os.setuid(0); os.system("/bin/bash")' và đây là kết quả:


Yeah, ROOT!!!! Và bây giờ nhiệm vụ cuối cùng sẽ là tìm file root.txt, và file này ở /root:


Và ở đây mình muốn cho các bạn biết thêm 1 cách nữa leo thang đặc quyền, đó là sử dụng file /etc/passwd:


Ta có thể thấy ở đây ở ngay dòng đầu tiên user root có 1 đoạn hash, và chắc chắn đó chính là mật khẩu, và việc bây giờ của mình là copy đoạn này và lưu vào file tên là hash.txt + crack password bằng john the ripper:


OK, vậy là mật khẩu bị crack thành công, chốt lại ta có cặp username:password là root:Password123 và các bạn có thể đăng nhập bằng cách nhập su - root và nhập password vào và xong.... leo thang thành công 

Và đó chính là toàn bộ quá trình giải challenge RootMe. Và hi vọng các bạn đã có thêm cho mình những kiến thức bổ ích và thú vị. Bye bye mọi người !!!!!!!! Hẹn gặp lại mọi người trong những writeup tiếp theo!!!!!!!!



















Nhận xét

Bài đăng phổ biến