I. Giới thiệu
Ở phần trước chúng ta đã được tìm hiểu về các công cụ như: nmap, sqlmap, zphisher, vv... Các bạn có thể đọc lại phần 1 tại đây. Tiếp tục đến với series tìm hiểu về các công cụ khai thác bảo mật trong kali linux
thì hôm nay chúng ta sẽ đến với các công cụ cũng vô cùng hữu ích khác. Bắt đầu thôi!
II. Các công cụ khai thác
1. Password Attacks – John the ripper
Được phát hành lần đầu vào năm 1996, John the Ripper (JtR) là một công cụ bẻ khóa mật khẩu ban đầu được sản xuất cho các hệ thống dựa trên UNIX. Nó được thiết kế để kiểm tra độ mạnh của mật khẩu, mật khẩu được mã hóa (băm) brute-force và bẻ khóa mật khẩu thông qua các cuộc tấn công từ điển. John the Ripper hỗ trợ một danh sách khổng lồ các loại mật mã và băm khác nhau như:
- Mật khẩu người dùng Unix, macOS và Windows
- Ứng dụng web
- Máy chủ cơ sở dữ liệu
- Lưu lượng truy cập mạng ghi lại
- Khóa riêng tư được mã hóa
- Các tài liệu
Giao diện john the ripper:
Bẻ khóa hàm băm md5. Hash dữ liệu 123 với MD5:
Thực hiện tạo 1 file là md5.hash để lưu dữ liệu vừa hash. Để thực hiển bẻ khóa mã hash MD5 trên với John the Ripper, ta thực hiện lệnh:
john --format=raw-md5 md5.hash
với --format=raw-md5
là định dạng file cần hash ở dạng md5.
Sử dụng wordlist để bẻ khoá mật khẩu. Chạy lệnh: john --wordlist=/usr/share/wordlists/rockyou.txt --format-raw-md5 crack.hash
với /usr/share/wordlists/rockyou.txt
là đường dẫn tới file chứa một danh sách các mật
khẩu thường dùng.
Lưu ý : Cần giải nén tệp rockyou.txt
từ đường dẫn: /usr/share/wordlists/rockyou.txt.gz
nếu
gặp lỗi không tìm thấy file rockyou.txt
Bẻ khoá mật khẩu file ZIP. Trong trường hợp này, ta có file password.txt.zip
được mã hóa với mật khẩu không biết trước
Đầu tiên, ta sử dụng lệnh zip2john password.txt.zip > hashZip.txt
để lưu mã
băm của file password.txt.zip ra file hashZip.txt.
Bẻ khóa băm, gõ lệnh: john --format=zip hashZip.txt
trong đó zip
là định
dạng file mã hóa, hashZip.txt
là tên file chứa mã băm cần giải mã.
2. Wireless Attacks – Wifite
Wifite là một công cụ tự động để tấn công nhiều mạng không dây được mã hóa bằng WEP / WPA / WPA2 và WPS. Khi khởi động Wifite yêu cầu một vài tham số để làm việc và Wifite sẽ tự động tấn công vào Wifi được chỉ định bao gồm: bắt tay WPA, tự động khử xác thực các máy khách được kết nối, giả mạo địa chỉ MAC của bạn và bảo vệ mật khẩu bị bẻ khóa. Các options wifite cho ta sử dụng
Thực hiện chạy wifite để kiểm tra wifi xung quanh. Tuy nhiên ở đây ta thấy thông báo không có wifi nào được tìm thấy (cái này do mình chạy máy ảo kết nối vào máy thật nên ko có wifi).
Ta có thể sử dụng wifite
để tấn công brute force vào wifi để lấy được mật khẩu
Chạy đoạn lệnh wifite -mac -aircrack -dict /usr/share/wordlists/rockyou.txt
Trong đó:
- mac để ẩn danh địa chỉ MAC của bạn
- aircrack cho wifite làm 1 aircrack tấn công
- dict là danh sách các password mà ta sử dụng để tấn công brute force
3. Reverse Engineering – Radare2
Radare2 là công cụ dùng để reverse engineering cho tất cả những ai làm việc với hệ điều hành Unix, Linux. Nền tảng radare2 được hình thành bởi nhiều công cụ nhỏ như r2, Rabin, rasm hoặc rax. Với radare2 bạn có thể kiểm tra shellcodes, reverse engineer mã nguồn nhị phân từ các nền tảng khác nhau như pe, elf, match0 và dex hoặc các lớp java, phân tích ảnh đĩa để thực hiện điều tra số (forensics), tìm kiếm các gadget để xây dựng payload ROP (Return Oriented Programming ), debug mã nguồn nhị phân, so sánh sự khác biệt giữa các tập tin nhị phân (bindiffing) hay patch binaries.
Ở đây ta sẽ sử dụng radare2 để reverse 1 file hello. Thực hiện gõ aa
để kiểm tra cờ
Gõ V
để xem file dưới dạng HEX
Bên cạnh đó ta có thể sử dụng –d
để chạy radare2 dưới dạng debug.
4. Sniffing & Spoofing – Wire shark
Wireshark là một công cụ phân tích gói tin. Công cụ phân tích gói tin sẽ bắt các gói tin sao cho dữ liệu trong gói tin càng chi tiết càng tốt. Trong quá khứ, những công cụ như vậy hoặc rất đắt tiền, độc quyền hoặc cả hai. Tuy nhiên, với sự ra đời của của Wireshark, điều đó đã thay đổi. Wireshark được cung cấp miễn phí, là mã nguồn mở và là một trong những công cụ phân tích gói tin tốt nhất hiện nay.
Giao diện Wireshark
Cửa sổ chính của Wireshark bao gồm:
- Menu được sử dụng để bắt đầu các hành động.
- Thanh công cụ chính cung cấp khả năng truy cập nhanh vào các mục thường dùng từ menu.
- Thanh công cụ bộ lọc cho phép người dùng đặt bộ lọc hiển thị để lọc gói nào được hiển thị.
- The packet list pane: hiển thị bản tóm tắt của mỗi gói được chụp. Bằng cách nhấp vào các gói trong ngăn này, bạn kiểm soát những gì được hiển thị trong hai ngăn còn lại.
- The packet details pane: hiển thị chi tiết hơn về gói được chọn trong ngăn danh sách gói.
- The packet bytes pane: hiển thị dữ liệu từ gói được chọn trong ngăn danh sách gói và đánh dấu trường được chọn trong ngăn chi tiết gói.
- Thanh trạng thái hiển thị một số thông tin chi tiết về trạng thái chương trình hiện tại và dữ liệu đã thu thập
Thực hiện bắt 1 lưu lượng bất kỳ.
Ta có thể follow theo giao thức UDP, TCP. Như hình ở dưới ta có thể bắt được request gửi tới địa chỉ của 1 trang wordpress.
5. Exploitation Tools - Metasploit
Metasploit hay còn có thể gọi là Metasploit Project là một dự án liên quan đến bảo mật máy tính, cung cấp những thông tin về các lỗ hổng bảo mật. Đối tượng nhắm đến của Metasploit chính là những quá trình tấn công xâm nhập kiểm thử (Penetration Testing) và phát triển các hệ thống phát hiện xâm nhập (IDS – Intrusion Detection System).
Metasploit Framework có mã nguồn mở, sử dụng các shellcode (payload) để tấn công máy đích có lỗ hổng. Cùng với một số bộ công cụ bảo mật khác, Metasploit có cơ sở dữ liệu chứa hàng ngàn shellcode, exploit của các hệ điều hành, các chương trình hay dịch vụ. Trong quá trình phát triển, Metasploit liên tục cập nhật các exploit vào cơ sở dữ liệu nên càng ngày nó càng trở thành một bộ công cụ mạnh mẽ trong kiểm thử an ninh hệ thống.
Sử dụng các lệnh cơ bản trong Metasploit: Tại giao diện cửa sổ terminal, sử dụng câu lệnh msfconsole để khởi tạo Metasploit Framework.
msf> show options
Với tham số options thì câu lệnh trên sẽ tương đối đặc biệt hơn một chút. Các options kiểm soát các cài đặt cần thiết cho các chức năng riêng biệt trong từng module. Chạy lệnh show options trong khi module được chọn, Metasploit sẽ chỉ hiển thị các options áp dụng được với một module riêng biệt. Khi show options không ở trong một module sẽ hiển thị những options toàn cục có sẵn.
msf> search
Câu lệnh này giúp cho chúng ta tìm kiếm một tấn công cụ thể, module phụ trợ hay payload dựa trên những keywords có sẵn như: aka, author, arch, ... và mỗi keyword đều được giải thích chi tiết ngay bên cạnh.
Ví dụ, nếu chúng ta muốn tìm kiếm tất cả các thông tin liên quan về hình thức tấn công bruteforce, ta sử dụng lệnh: msf> search bruteforce
.
Sau đây là một ví dụ khai thác lỗ hổng Microsoft Security Bulletin - MS06-001 (Lỗ hổng trong Công cụ kết xuất đồ họa cho phép RCE). Setup môi trường cần 1 máy attacker chạy kali linux có metasploit, 1 máy victim chạy hệ điều hành windows XP phiên bản chưa được cập nhật trước 2006 (ở đây mình sử dụng Windows XP Professional 5.1.2600, SP2 bản chưa update).
Thực hiện kiểm tra ping 2 máy trước khi khai thác, địa chỉ ip của máy Windows là 192.168.71.194.
Nhập msf> search ms06_001
để tìm module khai thác:
Sử dụng lệnh use để load được module mong muốn. Thực hiện vào metasploit và setting như trong hình:
Giải thích thêm 1 chút về khai thác. Ta thực hiện khai thác reverse shell thông qua 1 url gửi đến victim nhằm chiếm quyền điều khiển của máy nạn nhân. Reverse payload là một payload để kết nối ngược trở lại đối với máy tính của hacker hoặc người kiểm thử trên một địa chỉ IP và số cổng cụ thể. Tùy vào loại tấn công khai thác mà ở đây sẽ xuất hiện các tham số mà chúng ta cần phải lưu ý như:
- RHOST: Địa chỉ IP của máy nạn nhân mà ta muốn khai thác.
- RPORT: Địa chỉ cổng dịch vụ SMB của máy nạn nhân. Một giao thức quan trọng được sử dụng để giao tiếp giữa các ứng dụng, tiến trình với nhau trong một hệ thống mạng.
- LHOST: Địa chỉ IP local của máy thực hiện khai thác.
- LPORT: Địa chỉ cổng dịch vụ SMB của máy đi khai thác. Trong reverse payloads, kết nối thực sự được kích hoạt bởi máy mục tiêu và nó kết nối với kẻ tấn công. Sử dụng kỹ thuật này khi muốn phá vỡ tường lửa hoặc cài đặt mạng NAT. Hai tham số như RPORT và LPORT thì có thể để nguyên số cổng mặc định mà không cần chỉnh sửa cấu hình thêm.
Thực hiện exploit, metasploit sẽ tạo ra 1 URL
Gửi URL cho máy victim. Khi máy victim truy cập vào URL trên thì shell sẽ được kích hoạt:
Lưu ý: 1 số máy win XP thực hiện chặn việc run DLL trên app để đảm bảo an toàn. Ta cần config để cho phép run DLL thì mới khai thác được.
Kiểm tra máy attacker xác nhận bắt được kết nối ngược trở lại từ máy Windows XP. Thực hiện truy cập vào phiên kết nối (sessions -i 1) và chạy ipconfig
kiểm tra địa chỉ ip của máy đang chiếm quyền, xác nhận địa chỉ ip là của máy victim. Vậy là khai thác thành công.
III. Kết luận
Trên đây là 5 công cụ nữa mà mình hay sử dụng để khai thác bảo mật. Kali linux có rất nhiều công cụ ngon - bổ - free, nếu có công cụ nào mà bạn yêu thích nhưng mình chưa liệt kê trên đây thì các bạn có thể comment ở dưới để cho mình biết nhé!