Vẫn như thông thường thôi, việc đầu tiên cần làm là quét cổng. Tôi sẽ dùng rustscan cho nhanh và thêm vài tùy chọn của nmap.
Có 3 port đang mở:
Port 21 chạy ftp-vsftpd 3.0.3 có thể login với Anonymous
Port 22 chạy ssh service trên Ubuntu server
Port 80 chạy web service với Apache 2.4.18 trên Ubuntu
Tôi thử login vào ftp server với anonymous.
Tôi có 2 file txt ở đây. Clone nó về máy để xem có thông tin gì không.
get locks.txt /home/neo/locks.txt
get task.txt /home/neo/task.txt
Tôi có 1 cái tên ở đây: lin
Với file locks.txt, tôi có 1 list mà tôi nghĩ sẽ dùng để brute-force. Vậy là tôi có 1 cái tên và 1 wordlist. Thử vào web xem có nơi nào để login không.
Tôi có 1 trang html về 1 cuộc hội thoại và vài cái tên. Không có gì đặc biệt hay kỳ lạ ở đây, mấy dir cơ bản cũng không có. Tôi dùng dirsearch để tìm dir nhưng cũng không thu được gì.
Vậy thì login vào đâu? Chỉ còn ssh thôi. Hail Hydra!!!
Login vào ssh và tôi có user flag nằm trong desktop.
Thử tìm xem có thư mục nào chạy với quyền root không.
Vẫn như thường lệ, việc đầu tiên cần làm là quét cổng. Tôi sẽ dùng rustscan cho nhanh. Ưu điểm của thằng này là quét full port rất nhanh, ngoài ra nó cũng có thể tích hợp nmap.
Có 3 port đang mở:
Port 21 chạy ftp-vsftpd 3.0.3
Port 80 chạy web service với Apache 2.4.18 trên Ubuntu
Port 2222 chạy ssh service
Với port 21, chúng ta có thể login với Anonymous.
Tuy nhiên khi tôi thử list file, server timeout. Tôi thử tìm trên exploit-db để xem có exploit nào cho phiên bản 3.0.3 này không, chỉ có 1 exploit về DoS.
Để lại đó vậy. Chúng ta sẽ check qua web xem sao.
Tôi có 1 robots.txt với 2 disallow enties. Nhưng có vẻ như không vào được.
Tuy nhiên tôi tìm được 1 cái tên ở đây: mike.
Tôi cũng không chắc nhưng cứ lưu lại vậy.
Tôi thấy có chút kỳ lạ ở entry thứ 2 nên đã check gg. Ầu, ra rồi! Openemr là một phần mềm quản lý y tế và phiên bản 5.0.1.3 có CVE-2018-15139. Nhưng có vẻ như không có tác dụng lắm do không có username và password.
Lại dirsearch để tìm directory thôi.
Tôi tìm ra 1 path mới dẫn đến 1 cms khác - CMS Made Simple với phiên bản 2.2.8.
Thử check qua CVE và tôi có CVE-2019-9053 sử dụng SQLi để login mà không cần password. Check searchsploit và tôi có sploit 46635.
Check qua exploit thì tôi tự hỏi tại sao vào năm 2019 mà nghệ sĩ này vẫn còn dùng python2 nhỉ??? Anyway, thử exploit nào.
Và tôi tìm được password: secret. Login vào và dạo qua 1 vòng để tìm xem có chỗ nào upload shell được không, nhưng site này nhiều thứ quá, tôi hơi lười.
Tôi nhớ ra mình còn port 2222 ssh nữa mà.
Thử ssh với user và password ở port 2222 xem sao.
Tada! Ở đây tôi có user.txt
Ở thư mục /home, tôi có 2 user mitch và sunbath.
Bây giờ thử tìm xem có cái gì chạy với root không.
Vim chạy với quyền root không cần password. Qua GTFOBins tìm vim nào.
Chúng ta có 2 cách để lấy được root flag. 1 là dùng vim để mở file luôn, cách này thì phải xác định được vị trí của file, và thường thì root flag sẽ nằm trong thư mục root rồi. Còn cách thứ 2 là chiếm quyền root thôi.
“This Rick and Morty themed challenge requires you to exploit a webserver to find 3 ingredients that will help Rick make his potion to transform himself back into a human from a pickle.”
Vẫn như thông thường thôi, việc đầu tiên cần làm là quét cổng. Tôi sẽ dùng rustscan cho nhanh.
Chúng ta có 2 port đang mở:
port 22 cổng ssh trên ubuntu server
port 80 với Apache httpd 2.4.18 trên ubuntu server
Cùng check qua site với port 80 nào.
Hmmm… Cũng không có gì đặc biệt lắm. Thử check qua source xem sao.
Tôi có thêm 1 link ảnh và 1 username.
Thường thì để tránh mất thời gian tôi sẽ check thử qua các uri phổ biến: robots.txt, admin, login.php, upload.php, vân vân mây mây…
Sau 1 lúc loay hoay thì tôi có thêm 2 uri là robots.txt và login.php.
Và với robots.txt “huyền thoại”, tôi có thêm 1 dòng text “Wubbalubbadubdub” mà tôi cũng chưa hiểu lắm nhưng thôi cứ lưu lại, coi như hint.
Với login site, tôi đã thử và SQLi và XSS nhưng không có gì đặc sắc lắm.
Vậy là chúng ta có 1 site login, có 1 username và 1 đoạn text. Sao không thử lấy đoạn text kia làm password? Bingo!!!
Ta có 1 dashboard đơn giản và chỉ dùng được mục commands, các mục khác cần phải đăng nhập bằng “REAL rick” chăng???
Quay lại Command Panel, tôi nhận ra nó giống như 1 terminal kết nối server khi nhập “whoami” và nó trả lại “www-data”.
Thử list file và tôi có 1 file txt khá đặc biệt.
Và vì nó nằm trong thư mục web nên thử mở nó như 1 uri, chúng ta có flag đầu tiên.
“ls” 1 lúc thì tôi tìm được 2 user ở trong /home là rick và ubuntu, trong user rick chúng ta tìm được file chứa flag thứ 2.
Tuy nhiên chúng ta không thể dùng “cat” để mở được file này. Sau một lúc google thì tôi tìm được “less” cũng tương tự như “cat”.
Sử dụng less và chúng ta có flag thứ 2.
Đến đây thì thực sự tôi chưa nghĩ ra được cách tìm flag thứ 3. Tôi đã thử tìm file bằng tên với hi vọng tên file flag thứ 3 cũng giống như flag 2: second ingredients nhưng không có gì.
Thông thường, để có được flag cuối chúng ta phải leo thang đặc quyền lên root, và đa số flag cuối nằm trong thư mục root.
Trong 1 phút ngáo ngơ tôi quên mất sudo -l =))))
Điều này có nghĩa là chúng ta có toàn quyền root mà không cần password.