CTF - Mr Robot: Part 1
Mr Robot là một bộ phim truyền hình kinh dị của Mỹ được tạo bởi Sam Esmail. Phim có sự tham gia của Rami Malek trong vai Elliot Alderson, một kỹ sư an ninh mạng và tin tặc mắc chứng rối loạn lo âu xã hội và trầm cảm lâm sàng. Elliot được tuyển mộ bởi một người theo chủ nghĩa vô chính phủ nổi dậy là "Mr. Robot", do Christian Slater thủ vai, để tham gia vào một nhóm những kẻ tấn công được gọi là "fsociety".
Máy chủ ảo hóa này được dựa trên phim truyền hình ăn khách Mr Robot. Máy chủ ảo hóa này có ba khóa ẩn ở các vị trí khác nhau. Mục tiêu của bạn là tìm thấy cả ba. Mỗi chìa khóa sẽ có mức độ từ dễ đến khó.
Máy chủ ảo hóa này phù hợp với những bạn ở mức beginner. Máy chủ ảo hóa này không có bất kỳ kiểu khai thác tiên tiến nào hoặc kỹ thuật đảo ngược.
Đầu tiên, chúng ta cần phải biết địa chỉ IP của máy chủ Mr Robot. Điều này có thể thực hiện dễ dàng thông qua công cụ quét mạng cực mạnh mà tôi muốn giới thiệu cho các bạn - đó là công cụ netdiscover. Nó thực hiện việc tìm địa chỉ IP thông qua việc sử dụng card mạng mà máy tính bạn đang sử dụng, từ đó bắt đầu gửi request các dãy IP khác nhau để xem IP nào đang live.
Như hình dưới là mình sử dụng card mạng eth0 để quét mạng và tìm thấy IP lạ là 192.168.226.158 và khá chắc đó là IP mình đang cần tìm.
Mở trình duyệt Firefox truy cập vào địa chỉ 192.168.226.158 và sẽ vào trang web có giao diện như hình.
Chúng ta sẽ kiểm tra website thông qua công cụ Nikto - công cụ quét lỗ hổng website mã nguồn mở cho phép quét các máy chủ web thực hiện kiểm tra toàn diện đối với máy chủ web cho nhiều mục. Để sử dụng công cụ này chúng ta có thể gõ lệnh như sau:
Thông tin website sẽ hiển thị như hình dưới đây:
Mr Robot sử dụng nền tảng Wordpress - nền tảng khá phổ biến hiện nay được dùng để làm blog cá nhân. Ngoài ra, nikto còn quét được các đường dẫn nhạy cảm như /admin, /wp-login, /wp-admin, ...
Chúng ta thử kiểm tra xem có file robots.txt hay không bằng cách gõ trên trình duyệt như sau: http://192.168.226.158/robots.txt và kết quả như hình dưới đây.
Kiểm tra thử file key-1-of-3.txt và sẽ thấy có một đoạn code đã bị mã hóa. Mình đã thử kiểm tra các mã hash nhưng không tìm được kết quả nên mình sẽ thực hiện tải file fsocity.dic bằng câu lệnh dưới đây:
Kiểm tra file tải về bằng lệnh dưới đây và sẽ thấy một loạt các từ khóa ngẫu nhiên.
Chúng ta cũng tải file key-1-of-3.txt với cách thức cũng giống như trên.
Để có thể sử dụng cơ chế bruteforce để đăng nhập vào website Wordpress, cần phải biết các trường của form đăng nhập (hay còn gọi là các parameter). Chúng ta sẽ sử dụng một công cụ để thực hiện công việc này là OWASP - ZAP.
OWASP Zed Attack Proxy (ZAP) là công cụ được sử dụng cho việc pentest các ứng dụng web. Nó được thiết kế để sử dụng bởi các chuyên gia bảo mật và người phát triển, kiểm thử chức năng những người mới tham gia pentest sẽ có thêm những trải nghiệm mới, bổ sung cho các toolbox kiểm thử.
Chúng ta mở công cụ này bằng câu lệnh sau: owasp-zap. Sau đó, nhập vào đường dẫn của liên kết đến trang đăng nhập của Wordpress có dạng như sau: http://192.168.226.158/wp-login.
Menu bên trái là danh sách các file mà công cụ đã quét được, chúng ta sẽ chọn form có tên như sau: POST:wp-login.php(log,pwd,redirect_to,rememberme,testcookie,wp-submit). Phía bên phải, chúng ta chọn tab Request và sẽ thấy các parameter như hình dưới.
Để có thể bruteforce cần có một bộ từ điển, ở đây chúng ta đã có file từ điển là fsocity.dic. Chúng ta sử dụng công cụ brutforce khá nổi tiếng đó là Hydra.
Hydra là một công cụ dạng cracker có thể đăng nhập song song hỗ trợ nhiều giao thức để tấn công. Nó rất nhanh và linh hoạt, và các mô-đun mới rất dễ dàng để thêm. Công cụ này giúp các nhà nghiên cứu và chuyên gia tư vấn bảo mật có thể cho thấy việc truy cập trái phép vào hệ thống từ xa dễ dàng như thế nào.
Trước tiên, cần phải sắp xếp lại file từ điển của chúng ta bằng câu lệnh sau:
Chúng ta sẽ thực hiện việc bruteforce đăng nhập vào trang web thông qua dãy lệnh như sau:
Chúng ta sẽ thấy tài khoản có tên Elliot có thể sử dụng để bruteforce.
Chúng ta thử đăng nhập vào trang wordpress và thông báo hiển thị là bạn quên mật khẩu cho tài khoản elliot.
Chúng ta sử dụng một công cụ khác để bruteforce các trang đăng nhập wordpress là Wpscan.
WPScan là một trình quét lỗ hổng WordPress blackbox có thể được sử dụng để quét các cài đặt WordPress từ xa để tìm các vấn đề bảo mật.
Chúng ta bruteforce mật khẩu tài khoản bằng câu lệnh như sau:
Chúng ta đã tìm được mật khẩu của tài khoản Elliot. Bây giờ chúng ta thử đăng nhập vào trang web và kết quả như hình dưới đây:
Qua đây, chúng ta đã thực hiện các bước khác nhau để có thể thực hiện việc tấn công vào trang đăng nhập của máy chủ Mr Robot. Qua các phần tiếp theo, chúng ta sẽ thực hiện các bước tiếp theo để tìm ra các chìa khóa còn lại.
Giới thiệu
Máy chủ ảo hóa này được dựa trên phim truyền hình ăn khách Mr Robot. Máy chủ ảo hóa này có ba khóa ẩn ở các vị trí khác nhau. Mục tiêu của bạn là tìm thấy cả ba. Mỗi chìa khóa sẽ có mức độ từ dễ đến khó.
Máy chủ ảo hóa này phù hợp với những bạn ở mức beginner. Máy chủ ảo hóa này không có bất kỳ kiểu khai thác tiên tiến nào hoặc kỹ thuật đảo ngược.
Thực hành
Bước 1: Quét hệ thống máy chủ Mr Robot
Đầu tiên, chúng ta cần phải biết địa chỉ IP của máy chủ Mr Robot. Điều này có thể thực hiện dễ dàng thông qua công cụ quét mạng cực mạnh mà tôi muốn giới thiệu cho các bạn - đó là công cụ netdiscover. Nó thực hiện việc tìm địa chỉ IP thông qua việc sử dụng card mạng mà máy tính bạn đang sử dụng, từ đó bắt đầu gửi request các dãy IP khác nhau để xem IP nào đang live.
Như hình dưới là mình sử dụng card mạng eth0 để quét mạng và tìm thấy IP lạ là 192.168.226.158 và khá chắc đó là IP mình đang cần tìm.
netdiscover -i eth0
Hình 01: Quét mạng và tìm thấy IP máy chủ |
Bước 2: Truy cập host
Mở trình duyệt Firefox truy cập vào địa chỉ 192.168.226.158 và sẽ vào trang web có giao diện như hình.
Hình 02: Giao diện website Mr Robot |
Bước 3: Kiểm tra website Mr Robot
Chúng ta sẽ kiểm tra website thông qua công cụ Nikto - công cụ quét lỗ hổng website mã nguồn mở cho phép quét các máy chủ web thực hiện kiểm tra toàn diện đối với máy chủ web cho nhiều mục. Để sử dụng công cụ này chúng ta có thể gõ lệnh như sau:
nikto -h 192.168.226.158
Thông tin website sẽ hiển thị như hình dưới đây:
Hình 03: Sử dụng Nikto quét lỗ hổng website |
Mr Robot sử dụng nền tảng Wordpress - nền tảng khá phổ biến hiện nay được dùng để làm blog cá nhân. Ngoài ra, nikto còn quét được các đường dẫn nhạy cảm như /admin, /wp-login, /wp-admin, ...
Bước 4: Kiểm tra file robots.txt
Chúng ta thử kiểm tra xem có file robots.txt hay không bằng cách gõ trên trình duyệt như sau: http://192.168.226.158/robots.txt và kết quả như hình dưới đây.
Hình 04: File robots.txt |
Kiểm tra thử file key-1-of-3.txt và sẽ thấy có một đoạn code đã bị mã hóa. Mình đã thử kiểm tra các mã hash nhưng không tìm được kết quả nên mình sẽ thực hiện tải file fsocity.dic bằng câu lệnh dưới đây:
wget http://192.168.226.158/fsocity.dic
Kiểm tra file tải về bằng lệnh dưới đây và sẽ thấy một loạt các từ khóa ngẫu nhiên.
more fsocity.dic
Hình 05: File fsocity |
Chúng ta cũng tải file key-1-of-3.txt với cách thức cũng giống như trên.
Bước 5: Bruteforce Wordpress login
Để có thể sử dụng cơ chế bruteforce để đăng nhập vào website Wordpress, cần phải biết các trường của form đăng nhập (hay còn gọi là các parameter). Chúng ta sẽ sử dụng một công cụ để thực hiện công việc này là OWASP - ZAP.
OWASP Zed Attack Proxy (ZAP) là công cụ được sử dụng cho việc pentest các ứng dụng web. Nó được thiết kế để sử dụng bởi các chuyên gia bảo mật và người phát triển, kiểm thử chức năng những người mới tham gia pentest sẽ có thêm những trải nghiệm mới, bổ sung cho các toolbox kiểm thử.
Chúng ta mở công cụ này bằng câu lệnh sau: owasp-zap. Sau đó, nhập vào đường dẫn của liên kết đến trang đăng nhập của Wordpress có dạng như sau: http://192.168.226.158/wp-login.
Hình 06: OWASP ZAP |
Menu bên trái là danh sách các file mà công cụ đã quét được, chúng ta sẽ chọn form có tên như sau: POST:wp-login.php(log,pwd,redirect_to,rememberme,testcookie,wp-submit). Phía bên phải, chúng ta chọn tab Request và sẽ thấy các parameter như hình dưới.
Hình 07: Form login Wordpress |
Để có thể bruteforce cần có một bộ từ điển, ở đây chúng ta đã có file từ điển là fsocity.dic. Chúng ta sử dụng công cụ brutforce khá nổi tiếng đó là Hydra.
Hydra là một công cụ dạng cracker có thể đăng nhập song song hỗ trợ nhiều giao thức để tấn công. Nó rất nhanh và linh hoạt, và các mô-đun mới rất dễ dàng để thêm. Công cụ này giúp các nhà nghiên cứu và chuyên gia tư vấn bảo mật có thể cho thấy việc truy cập trái phép vào hệ thống từ xa dễ dàng như thế nào.
Trước tiên, cần phải sắp xếp lại file từ điển của chúng ta bằng câu lệnh sau:
cat fsocity.dic | sort -u | uniq > wordlist.dic
Chúng ta sẽ thực hiện việc bruteforce đăng nhập vào trang web thông qua dãy lệnh như sau:
hydra -V -L wordlist.dic -p 123 192.168.226.158 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=Invalid username'
Chúng ta sẽ thấy tài khoản có tên Elliot có thể sử dụng để bruteforce.
Hình 08: Tài khoản đăng nhập Wordpress |
Chúng ta thử đăng nhập vào trang wordpress và thông báo hiển thị là bạn quên mật khẩu cho tài khoản elliot.
Hình 09: Đăng nhập thất bại với username elliot |
Chúng ta sử dụng một công cụ khác để bruteforce các trang đăng nhập wordpress là Wpscan.
WPScan là một trình quét lỗ hổng WordPress blackbox có thể được sử dụng để quét các cài đặt WordPress từ xa để tìm các vấn đề bảo mật.
Chúng ta bruteforce mật khẩu tài khoản bằng câu lệnh như sau:
wpscan --url 192.168.226.158 --passwords /home/user/Downloads/wordlist.dic --usernames Elliot --wp-content-dir wp-content
Hình 10: Bruteforce thành công |
Chúng ta đã tìm được mật khẩu của tài khoản Elliot. Bây giờ chúng ta thử đăng nhập vào trang web và kết quả như hình dưới đây:
Hình 11: Trang quản trị wordpress |
Tóm tắt
Qua đây, chúng ta đã thực hiện các bước khác nhau để có thể thực hiện việc tấn công vào trang đăng nhập của máy chủ Mr Robot. Qua các phần tiếp theo, chúng ta sẽ thực hiện các bước tiếp theo để tìm ra các chìa khóa còn lại.