Tất cả tài liệu: https://drive.google.com/drive/folders/1nBWniC3Q5ulu5cJZO2HIEufUtcEUC6k1?usp=sharing
TÌM HIỂU VỀ CÔNG CỤ METASPLOIT[1]
Giới thiệu về metasploit[1]
Metasploit Framework là một môi trường kiểm thử xâm nhập mã nguồn mở, dựa trên Ruby, cho phép viết, kiểm thử và thực thi mã khai thác Nó cung cấp bộ công cụ toàn diện để kiểm tra lỗ hổng bảo mật, quét mạng và tấn công, đồng thời hỗ trợ xóa dấu vết Mục đích chính của Metasploit là cung cấp các module khai thác.
1.2 Các tính năng chính của Metasploit:
Quét cổng để xác định các dịch vụ đang hoạt động trên server.
Xác định các lỗ hổng dựa trên phiên bản của hệ điều hành và các phiên bản phần mềm dựa trên lỗ hổng đó
Thử nghiệm khai thác các lỗ hổng đã được xác định.
1.3 Các thành phần của metasploit:
Giao diện dòng lệnh Metasploit (msfconsole) cho phép cấu hình và kiểm tra nhanh chóng, linh hoạt hơn nhờ sử dụng file msfconsole.bat.
Web interface: Giao tiếp với người dùng thông qua giao diện web Sử dụng file msfweb.bat.
Armitage: Armitage là một công cụ quản lý tấn công mạng có đồ họa cho
Metasploit Framework, cung cấp chức năng trực quan hóa mục tiêu khai thác và gợi ý khai thác [3]
DataStore (Kho chứa dữ liệu/tùy chọn):
Hệ thống Datastore là thành phần cốt lõi của Metasploit Framework, cho phép cấu hình hành vi thông qua bảng giá trị đặt tên Datastore hỗ trợ thiết lập cài đặt, payloads, opcodes và tham số khai thác.
Datastore cũng cho phép Metasploit Framework truyền các tùy chọn nội bộ giữa các module Datastore bao gồm 2 loại:
Global Datastore sử dụng hai lệnh `setg` và `unsetg` để thiết lập các tùy chọn toàn cục áp dụng cho mọi module.
Module Datastore sử dụng hai lệnh `set` và `unset`, chỉ hoạt động trong module đang tải, không ảnh hưởng đến các module khác.
Lệnh `save` đồng bộ dữ liệu Global và Module Datastore vào bộ nhớ, lưu cấu hình vào thư mục HOME/.msf3/config và tự động tải khi ứng dụng chạy.
Metasploit Utilities (Các tiện ích):
MSFpayload là thành phần Metasploit tạo shellcode, file thực thi và hỗ trợ khai thác ngoài Framework Shellcode được tạo ở nhiều định dạng như C, Ruby, Javascript, và VBA.
MSFencode: Metasploit bao gồm một số bộ mã hóa khác nhau cho một số tình huống cụ thể
Nasm Shell, cụ thể là tiện ích `nasm_shell.rb`, hỗ trợ hiểu rõ mã assembly, đặc biệt hữu ích khi phát triển exploit để xác định opcode tương ứng với lệnh assembly.
1.4 Nền tảng/Hệ điều hành:
Metasploit, một framework đa nền tảng, hoạt động trên hầu hết hệ điều hành Unix và Windows, nhưng phổ biến nhất và được cài đặt sẵn trên Kali Linux.
Ưu nhược điểm Metasploit
Metasploit Framework nhận được nhiều đánh giá trái chiều Mọi framework đều có ưu điểm và hạn chế riêng, bài viết này sẽ tóm tắt một số nhận xét phổ biến.
Mã nguồn mở nên nhận được sự hỗ trợ lớn của cộng đồng.
Cộng đồng sử dụng đông đảo, dễ tiếp cận với các diễn đàn, cộng đồng để tìm kiếm sự trợ giúp.
Cập nhật liên tục cho các khai thác với các lỗ hổng mới.
Dễ dàng cho việc triển khai một khai thác cụ thể.
Một công cụ tương đối hoàn chỉnh cho công việc kiểm thử xâm nhập.
Metasploit, với quy mô lớn và nhiều module, đòi hỏi sự kiên trì để thành thạo Kiến thức sâu rộng về phát triển khai thác là cần thiết, vì không phải lúc nào các module sẵn có cũng đáp ứng được mọi nhu cầu.
Nhiều module Metasploit, đặc biệt là các module phụ trợ như quét lỗ hổng, fuzzing và tấn công DoS, ít được sử dụng vì các chuyên gia an ninh thường ưu tiên các công cụ chuyên biệt hiệu quả hơn.
Hướng dẫn sử dụng
3.1 Một số thuật ngữ cơ bản [5]
Trước khi sử dụng metasploit, chúng ta cần nắm vững một số thuật ngữ, khái niệm cơ bản sau:
Module: là một phần mềm có thể được sử dụng bởi Metasploit Framework Module trong metasploit bao gồm 3 loại chính:
Exploit modules open a shell on a target system to launch attacks, such as buffer overflows, code injection, and web application exploits.
Auxiliary module : là một module dùng để thực hiện một hành động như scanning (rà quét) hay system enumeration (liệt kê các mục tiêu tấn công).
Post-exploitation module : Module cho phép thu thập các thông tin sau khai thác hoặc có thêm quyền truy cập tới mục tiêu đã được khai thác
Exploit là hành vi kẻ tấn công hoặc pen tester lợi dụng lỗ hổng hệ thống, ứng dụng hoặc dịch vụ để đạt mục đích bất hợp pháp Các phương pháp exploit phổ biến gồm tràn bộ đệm (buffer overflows), chèn mã SQL (SQL injection) và lỗi cấu hình.
Discovery scan trên Metasploit kết hợp Nmap và các module Metasploit để liệt kê và xác định mục tiêu.
Payload là mã độc được framework lựa chọn và phân phối, có thể là reverse shell, bind shell hoặc các lệnh thực thi trên máy tính bị tấn công.
Reverse shell là một payload tạo kết nối từ máy tính nạn nhân trở về máy tính của kẻ tấn công.
Bind shell là một payload tạo kết nối ngược từ máy tính mục tiêu về máy tấn công thông qua một cổng nghe (listening port).
Meterpreter là một payload mạnh mẽ cung cấp giao diện dòng lệnh tương tác, cho phép tải file, thu thập mã băm tài khoản người dùng và thực hiện pivoting mạng.
Một shell là một môi trường thực thi dòng lệnh cung cấp cho bạn quyền truy nhập vào một mục tiêu từ xa.
Listener trong Metasploit chờ kết nối đến từ hệ thống mục tiêu hoặc máy tấn công, sau đó quản lý kết nối này Đây là bước cơ bản trong quá trình khai thác hệ thống.
Hình 1 1 Tổng quan về quy trình khai thác với metasploit
5 bước cơ bản để khai thác một hệ thống dùng metasploit bao gồm:
Bước 1: Lựa chọn và cấu hình một khai thác (exploit)
Bước 2: Tùy chọn kiểm tra xem hệ thống mục tiêu dự định có dễ bị khai thác hay phù hợp với khai thác đã chọn hay không
Bước 3: Chọn payload phù hợp (ví dụ: meterpreter cho hệ thống Windows) và cấu hình để thực thi trên hệ thống mục tiêu sau khi truy cập thành công.
Bước 4: Chọn kỹ thuật mã hóa phù hợp để loại bỏ opcode (ký tự xấu) khỏi payload, đảm bảo khai thác thành công.
Bước 5: Thực thi exploit để tiến hành khai thác.
Phương pháp module trong Metasploit cho phép kết hợp tùy ý exploit và payload, hỗ trợ tấn công hiệu quả Việc lựa chọn exploit và payload cần thông tin về hệ điều hành, dịch vụ mạng và lỗ hổng mục tiêu, thu thập qua port scanning, OS fingerprinting và các công cụ như Nessus/OpenVAS Metasploit tự động so sánh lỗ hổng đã xác định với các module sẵn có, tối ưu quá trình lựa chọn khai thác.
3.3 Sử dụng các lệnh cơ bản trong Metasploit [7] Để khởi tạo Metasploit Framework chúng ta có thể dùng lệnh msfconsole trên cửa sổ terminal.
Hình 1 2 Màn hình khởi động metasploit
Metasploit Framework sở hữu hàng trăm module Lệnh `show exploits` trong msfconsole giúp lọc và hiển thị chỉ các module khai thác (exploits), thay vì toàn bộ module sẵn có.
`msfconsole` cho phép thực thi các exploit đã phát hiện trong quá trình kiểm thử thâm nhập Danh sách module exploit liên tục được cập nhật Lệnh `msf> show auxiliary` hiển thị toàn bộ exploit sẵn có trong Metasploit Framework.
Module phụ trợ trong Metasploit đa năng, đóng vai trò như máy quét, công cụ tấn công từ chối dịch vụ (DoS), fuzzer, và nhiều chức năng khác Lệnh `msf> show options` hiển thị danh sách module phụ trợ và các tùy chọn của chúng.
Metasploit's `show options` lệnh hiển thị các tùy chọn cấu hình Khi một module được chọn, lệnh này chỉ hiển thị các tùy chọn áp dụng cho module đó; ngoài module, nó hiển thị các tùy chọn toàn cục, ví dụ như `LogLevel` để điều chỉnh mức độ chi tiết của log.
Bạn cũng có thể dùng lệnh back để quay lại trong một module: msf > use windows/smb/ms08_067_netapi msf exploit(ms08_067_netapi) > back msf >
Câu lệnh `search` trong Metasploit hữu ích cho việc tìm kiếm các module, payload và exploit cụ thể Ví dụ: tìm kiếm module tấn công SQL bằng lệnh `msf > search mssql`.
[*] Searching loaded modules for pattern 'mssql'
Hình 1 3 Tìm kiếm các khai thác liên quan đến Microsoft SQL server ùy chọn tìm kiếm với nhiều tham số cũng có thể áp dụng với lệnh search
Demo Metasploit
Bài viết này hướng dẫn khai thác lỗ hổng bảo mật MS08-067 NetAPI trên hệ điều hành Windows, một lỗ hổng liên quan đến việc triển khai gọi thủ tục từ xa RPC qua giao thức SMB, ảnh hưởng đến nhiều phiên bản Windows từ Windows 2000 trở lên.
Windows 7 Trong hướng dẫn này, chúng ta sẽ sử dụng Kali linux và Windows XP chạy trên VMWare. Để bắt đầu, chúng ta sẽ khởi động metasploit bằng lệnh: msfconsole.
Ban đầu sử dụng lệnh search để tìm kiếm module khai thác lỗ hổng này, có rất nhiều cách sử dụng khác nhau cho lệnh search.
Metasploit hiển thị danh sách module; chọn module thứ ba bằng lệnh `use `.
Để xem chi tiết các mục tiêu khả thi của module Metasploit, sử dụng lệnh `show targets` Kết quả hiển thị danh sách mục tiêu trên màn hình Metasploit.
Bài viết hướng dẫn chọn mục tiêu (target) trong hệ điều hành Windows Lệnh `set target` được sử dụng để chọn target thứ 7, phiên bản Windows đang hoạt động.
Hình 1 18 Lựa chọn mục tiêu Để xem các tham số tùy chọn cho việc khai thác, dùng lệnh show options:
Hình 1 19 Liệt kê các tùy chọn đối tượng khai thác
Module options là những tùy chọn thiết lập cho mục tiêu khai thác.
RHOST là địa chỉ ip của mục tiêu RPORT để xác định cổng trên máy mục tiêu chúng ta muốn lắng nghe.
Các tùy chọn `RPORT` và `SMBPIPE` bắt buộc (Required = yes) sẽ được hệ thống tự động thiết lập, không cho phép để trống.
Sau đây ta sẽ thiết lập RHOST và RPORT:
Hình 1 20 Thiết lập các tùy chọn về mục tiêu
Sau khi định cấu hình RHOST và RPORT, chọn payload bằng lệnh `set payload ` Xem danh sách payload bằng `show payloads` Payload `meterpreter` tạo kết nối ngược (reverse connection) từ máy mục tiêu, cho phép thực thi mã lệnh từ xa.
Dùng show options một lần nữa sẽ cập nhật lại danh sách các tùy chọn sau khi thiết lập payload:
Hình 1 22 Danh sách các tùy chọn
Để thực hiện tấn công, cần cấu hình tùy chọn payload, bao gồm LHOST (địa chỉ IP máy tấn công) và LPORT (cổng lắng nghe kết nối từ máy nạn nhân).
Dùng set để thiết lập các tùy chọn LHOST và LPORT:
Hình 1 23 Thiết lập các tùy chọn của máy tấn công
Như vậy là danh sách các tùy chọn đã được thiết lập đầy đủ:
Hình 1 24 Danh sách tùy chọn
Lệnh exploit sẽ khởi tạo khai thác của chúng ta để tấn công mục tiêu.
Nếu tấn công thành công, metasploit sẽ trả về meterpreter payload cho chúng ta như dưới đây:
Hình 1 25 Khơi tạo khai thác
Reverse shell cho phép điều khiển toàn bộ máy tính mục tiêu sau khi khai thác thành công.
Vd như kiểm tra địa chỉ ip bằng ipconfig
Hình 1 26 Kiểm tra địa chỉ Ip Đăng nhập vào shell của nạn nhân bằng lệnh shell.
Hình 1 27 Đăng nhập vào shell của nạn nhân
Chi tiết về các lệnh của meterpreter chúng ta có thể xem lại ở chương I.
TÌM HIỂU VỀ CÔNG CỤ ARMITAGE
Ưu điểm Armitag
Có giao diện dễ sử dụng Người dùng không bắt buộc phải nhớ các cú pháp câu lệnh phức tạp.
Tích hợp thêm một số tính năng so với công cụ Metasploit, cung cấp đầy đủ công cụ hỗ trợ rà quét, tấn công cho người sử dụng.
Nhược điểm Armitag
Armitage, nền tảng dựa trên Metasploit, phức tạp và đồ sộ, đòi hỏi sự kiên trì để làm chủ Khó khăn cho người mới bắt đầu do lượng tài liệu khổng lồ.
Phát triển và khai thác đòi hỏi kiến thức chuyên sâu, cho phép tùy biến linh hoạt khi các module khai thác không luôn sẵn có.
Nhiều module trong Armitage hiếm khi được sử dụng
Khởi chạy công cụ Armitage
Bước 1: Bật armitage lên bằng cách dùng câu lệnh armitage Giao diện đăng nhập như sau
Hình 2 1 Giao diện dăng nhập Armitage
LƯU Ý: Nếu gặp lỗi can not connect to database, có thể fix bằng lệnh msfdb init
Giao diện Armitage hiện ra như sau:
Làm quen với giao diện Armitage
Giao diện người dùng Armitage có 3 phần chính : Modules, Targets và Tabs:
Hình 2 4 Các thành phần trong giao diện người dùng
Phần Modules (bên trái) cho phép thực thi nhiều module Metasploit, bao gồm tạo exploit, payload và kịch bản post-exploitation.
Armitage quét và hiển thị danh sách các host (máy chủ) ở khu vực bên phải, mỗi host được thể hiện bằng địa chỉ IP, hệ điều hành và các thông tin hệ thống khác.
Tabs (Khu vực phía dưới)
Mỗi hành động mà người dùng thực hiện sẽ được hiển thị ở một tab phía dưới
Quét host và khai thác lỗ hổng được thực hiện trên các tab riêng biệt, giúp người dùng theo dõi hoạt động dễ dàng hơn.
Khu vực cung cấp giao diện dòng lệnh cho phép người dùng tương tác với Meterpreter console và giao diện shell.
Tab được mở tự động mỗi khi vào giao diện Armitage,
Quản lý host mạng dễ dàng với công cụ tích hợp Nmap và MSF để quét host Truy cập Host > Nmap Scan để chọn phương pháp quét và hiển thị mục tiêu.
Kế quả sau khi Scan
Hình 2 6 Kết quả sau khi Scan
Phần này cung cấp tính năng tìm các lỗ hổng tương ứng với các host đã tìm được.
Phần này cho phép tạo không gian làm việc và quản lý chúng.
Demo Armitage
4.1 Demo Tấn công một máy victim
Kẻ tấn công sử dụng Armitage quét mạng LAN, xác định nạn nhân, tìm lỗ hổng bảo mật dựa trên phiên bản hệ điều hành, và khai thác lỗ hổng đó để xâm nhập máy tính nạn nhân.
Một máy với vai trò là nạn nhân có địa chỉ ip là 192.168.244.137, chạy hệ điều hành Windows XP3.
Một máy với vai trò là kẻ tấn công có địa chỉ ip là 192.168.244.138, chạy Kali- Linux 2.0 và đã cấu hình sẵn Armitage.
Máy khác có địa chỉ 192.168.244.2
Using Metasploit Framework requires executing commands like `use payload/windows/meterpreter/reverse_tcp` and `use exploit/windows/smb/ms08_067_netapi` to select the vulnerability and payload.
Quá trình 2: Cung cấp thông tin (Ở đây chính là RHOST-IP của victim) set RHOST victim IP
Quá trình 3: Nhập lệnh để bắt đầu tấn công exploit
Cách bước tấn công với công cụ Armitage
Giai đoạn 1: Lựa chọn lỗ hổng ở khung bên trái dưới dạng các Folder
Hình 2 8 Lựa chọn lỗ hổng
Giai đoạn 2: Nhấp đúp chuột vào tên lỗ hổng để hiện ra bảng nhập thông tin
Và cung cấp các thông tin còn thiếu (RHOST) hoặc chỉnh sửa các thông tin khác cho đúng
Hình 2 9 Chọn lỗ hổng tấn công
Giai đoạn 3: Nhấp Launch để bắt đầu việc tấn công, khi đó quá trình tấn công sẽ được diễn ra hoàn toàn tự động
Hình 2 10 bắt đầu tấn công
Khi đó máy bị tấn công sẽ chuyển sang màu đỏ và có tia sét bao quanh
Hình 2 11 Máy bị tấn công
Sau khi bị tấn công, máy nạn nhân có thể bị tấn công khai thác bất cứ lúc nào.
4.2 Khai thác máy victim bị tấn công bởi Armitage
Bạn phải chuột vào biểu tượng máy Victim chọn Interact
Hình 2 12 Quá trình tấn công
Command Shell: Mở Command Prompt trên máy Victim
Hình 2 13 Quá trình tấn công
Meterpreter Shell: Mở phiên Meterpreter
Desktop (VNC): Điều khiển từ xa máy Victim.
B1: Khi Click vào Desktop (VNC) thì nó sẽ cho các ban 1 thông báo, bạn ghi lại chỗ IP và Port được khoanh đỏ (Có dạng 127.0.0.1:xxxx)
Hình 2 14 Địa chỉ ip máy nạn nhân
B2: Truy cập trang https://www.realvnc.com/download/vnc/ Chọn hệ điều hành là Linux Download phiên bản Generic x86 hay x64 là còn tùy máy bạn 32bit hay 64bit
B3:Download về, xả nén ra và kéo thả file VNC Viewer vào Terminal rồi bấm Enter để chạy
B4: Gõ IP mà Armitage cho bạn vào và chọn Continue
Hình 2 17 nhập địa chỉ Ip tấn công
Bạn phải chuột vào biểu tượng máy Victim chọn Explore
Hình 2 20 Khám phá máy nạn nhân
Tìm kiếm và ăn cắp file trong máy victim
Hình 2 21 Khám phá máy nạn nhân
Show Processes: Xem các tiến trình trong máy Victim
Hình 2 22 Xem tiến trình trong máy nạn nhân
Screenshot: Chụp lại ảnh màn hình Victim
Hình 2 23 Chụp lại giao diện máy nạn nhân
Webcam Shot: Chụp lại Webcam của Victim
SO SÁNH METASPLOIT VÀ ARMITAGE
Ưu điểm giữa 2 công cụ
Cả hai ông cụ đề xây dựng dựa trên mã nguồn mở nên nhận được sự hỗ trợ lớn của cộng đồng.
Cộng đồng sử dụng đông đảo, dễ tiếp cận với các diễn đàn, cộng đồng để tìm kiếm sự trợ giúp.
Cập nhật liên tục cho các khai thác với các lỗ hổng mới.
Dễ dàng cho việc triển khai một khai thác cụ thể trong thực tế.
Armitage là một công cụ kiểm thử xâm nhập toàn diện, nổi bật với giao diện đồ họa thân thiện dựa trên Metasploit, khắc phục nhược điểm giao diện dòng lệnh của Metasploit.
Nhược điểm giữa 2 công cụ
Armitage, dựa trên nền tảng Metasploit, đòi hỏi người dùng kiến thức sâu rộng và sự kiên trì để thành thạo do tài liệu đồ sộ và framework quy mô lớn Khả năng tùy biến cao là ưu điểm, nhưng cũng đồng nghĩa với việc người dùng cần kiến thức phát triển khai thác vì không phải lúc nào các module cũng sẵn có.
Nhiều module Metasploit ít được sử dụng vì các chuyên gia an ninh mạng thường ưu tiên các công cụ chuyên biệt hơn cho các chức năng như quét lỗ hổng, fuzzing và tấn công DoS.
Bên cạnh đó giao điện dòng lệnh không thân thiện với người dùng đã quen dùng giao diện đồ họa trước đó.
Hình 3 2 Giao diện dòng lệnh của Metasploit
2.So sánh chức năng giữa hai công cụ
Hai công cụ này có các chức năng chính giống nhau:
Quét cổng để xác định các dịch vụ đang hoạt động trên server.
Xác định các lỗ hổng dựa trên phiên bản của hệ điều hành và các phiên bản phần mềm dựa trên lỗ hổng đó
Thử nghiệm khai thác các lỗ hổng đã được xác định.
3.Nền tảng và cách sử dụng.
Armitage and Metasploit are cross-platform penetration testing frameworks compatible with most Unix and Windows operating systems Metasploit is commonly used and pre-installed on Kali Linux.
Armitage và Metasploit đều khai thác lỗ hổng bảo mật theo cùng nguyên tắc, nhưng Armitage sử dụng giao diện đồ họa, trong khi Metasploit dùng giao diện dòng lệnh.
Bài báo cáo trình bày và so sánh hai công cụ quét lỗ hổng Metasploit và Armitage, bao gồm khái niệm, ưu nhược điểm và hướng dẫn sử dụng Thực nghiệm tấn công vào máy tính Windows XP cho thấy thao tác quét của cả hai công cụ tương tự, nhưng Armitage sử dụng giao diện đồ họa còn Metasploit sử dụng giao diện dòng lệnh.
Thông tin quét hệ thống giúp phòng tránh tấn công mạng, bảo vệ hệ thống khỏi khai thác lỗ hổng bảo mật.
Metasploit và Armitage là hai công cụ mã nguồn mở, đa nền tảng, mạnh mẽ và dễ sử dụng, hỗ trợ người dùng hiệu quả trong nhiều tác vụ.