Tryhackme - Basic Pentesting
Chào mọi người, lại là mình đây, và hôm nay ta sẽ lại tiếp tục giải những challenge ở Tryhackme, thì ngày hôm nay sẽ là challenge mang tên Basic Pentesting. Đây là 1 challenge với mức độ dễ sẽ giúp cho chúng ta hiểu 1 cách tổng quát và cơ bản nhất quá trình pentest diễn ra như nào.
Và trong challenge này chúng ta sẽ học được 4 thứ:
- Brute forcing
- Hash cracking
- Service enumeration
- Linux enumeration
OK, tới luôn nào!!!!!!!!!!!!!!
Bước đầu tiên luôn là bước quan trọng nhất, đó chính là tìm kiếm thông tin về đối tượng, các bạn phải thật hiểu về đối tượng thì mới có thể attack được, và mình sẽ sử dụng công cụ Nmap: nmap -sC -sV <target> (với 1 số bài có thể sẽ có rất nhiều cổng, vậy để tránh quét thiếu cổng mình khuyên các bạn nên set chế độ quét toàn bộ cổng và set min-rate là 500: nmap -sC -sV -p- <target> --min-rate 500)
Hmmmmm, ta thấy ở đây có 5 cổng, trong đó có 1 số cổng chúng ta phải để ý: cổng ssh và cổng smb, và cũng không thể không quên port 80, là port của web. Ok vậy là mình đã biết machine như nào + machine có cổng 80, vậy thì ta sẽ vào web của nó:
Khi nhìn vào web ta sẽ thấy nó không có gì, cho đến khi ta nhìn vào source code:
Ở đây họ để lại cho chúng ta 1 thông điệp: "hãy kiểm tra thông điệp mà dev để lại nếu bạn muốn biết mình cần làm gì tiếp theo". Với thông điệp này chúng ta cần phải tìm kiếm nhiều hơn, và mình quyết định sẽ tìm xem web có đường dẫn nào bị ẩn đi không bằng công cụ dirsearch:
Và ở đây ta sẽ thấy có đường dẫn đáng nghi là development, và nó cũng chính là đáp án cho câu hỏi: "What is the name of hidden directory on the web server(enter name without /)?"
Với thông tin mình vừa tìm được ở trên thì mình sẽ truy cập vào đường dẫn development và đây là kết quả ta thu được:
Và ở đây ta sẽ thấy có hai file text, và ta sẽ thử đọc nội dung của nó:
Ta thấy có một người dùng dùng tên Jan, và nếu sử dụng kiến thức ngữ văn thì ta sẽ thấy đoạn message này mang tính chất cảnh báo, và tức là người dùng Jan này có gì đó rất mờ ám. Ngoài ra mình chợt nhớ tới việc hai đoạn text dev.txt và j.txt đều nói về việc đổi mật khẩu, vậy có khả năng cao là người dùng jan này có mật khẩu yếu và dễ bị crack, và mình còn 1 cổng mình chưa sử dụng đến đó là cổng 22 - ssh.
Và ở trong Kali Linux chúng ta có 1 list mật khẩu huyền thoại mang tên rockyou.txt, và mình sẽ sử dụng công cụ hydra + rockyou.txt để tìm xem người dùng jan này có đúng như những gì mình đang nghĩ hay không, và mình nhập lệnh: hydra -l jan -P /usr/share/wordlists/rockyou.txt ssh://<target>. Và đây chính là kết quả ta nhận được:
Yeah, mình biết ngay mà!!!!!!!! Và với kết quả như này ta có thể trả lời được 3 câu hỏi:
Yeahhhhhh. Và ta đã vào được hệ thống của nó. Với câu hỏi tiếp theo: "What is the name of the other user you found?" thì mình sẽ lại phải đi tìm người dùng khác trong hệ thống này, thì cách dễ nhất là ta sẽ điều hướng đến thư mục home, vì ở thư mục home sẽ chứa toàn bộ tất cả tên người dùng có trong hệ thống, hoặc các bạn có thể đọc file /etc/passwd để có thể tìm kiếm, và đây là kết quả (other user: kay):
- What is the username?
- What is the password?
- What service do you use to access the server?
Và việc của chúng ta bây giờ là truy cập vào machine thông qua cổng ssh với cặp username:password vừa tìm được: ssh username@<target>và nhập password và đây là kết quả:
Ở đây ta có thể truy cập được vào directory tên kay, và có 1 file tên pass.bak, và nó cũng chính là đáp án ta cần tìm cho câu hỏi cuối cùng của ngày hôm nay: "What is the final password you obtain?"
Ta thử nhập cat pass.bak nhưng nó lại hiện lên: "Permission Denied", vậy tức là để có thể đọc được file này chúng ta phải là người dùng kay, và mình tìm kiếm nhiều hơn ở trong thư mục này, mình nhập lệnh ls -la và mình thấy có 1 đường dẫn tên .ssh. Ồ có vẻ là miếng mồi ngon đây, và mình truy cập vào đường dẫn này thì mình thấy có file id_rsa. Quá ngon luôn, vì chúng ta có thể truy cập vào hệ thống thông qua file id_rsa. Và mình thử nhập lệnh: ssh -i id_rsa kay@<target>, và kết quả mình nhận được:
Oh, nó bắt mình phải nhập passphrase cho cái id_rsa đó, và nhiệm vụ bây giờ của mình là đi tìm passphrase đó, thì mình sẽ sử dụng ssh2john để dò ra passphrase của nó. Việc đầu tiên mình làm là mình sẽ check xem machine có python3 hay không, và như ảnh trên, có python3. Và tiếp theo mình sẽ tạo 1 webserver bằng python trên máy nạn nhân: python3 -m http.server và nó sẽ mặc định là port 8000:
Tiếp theo mình sẽ dùng ssh2john để tìm passphrase của nó: python3 /john/run/ssh2john.py id_rsa > key.key. Và kết quả mình nhận được là 1 đoạn hash khá là dài, và mình sử dụng John the Ripper + rockyou.txt để crack đoạn hash này, và đây là kết quả mình nhận được:
Vui quá, mình là kay rồi! Giờ mình có thể đọc file pass.bak và kết quả nhận được cũng chính là đáp án cho câu cuối cùng:
Ồ, vui rồi, khi mình nhập người dùng kay và password vừa tìm được thì chứng tỏ một điều: với người dùng kay hiện tại mình có thể leo thang lên root, và việc cuối cùng là mình chỉ cần nhập sudo su và yeah, LÊN ROOT go go go !!!!!!!
Ok, thì đây chính là toàn bộ đáp án của Basic Pentesting, hi vọng các bạn sẽ thu được cho mình nhiều kiến thức hay thông qua challenge này, hẹn gặp lại mọi người trong những writeup sau!!!!!! Bye bye
Nhận xét
Đăng nhận xét