Catatan ini merangkum konsep dan perintah umum pada Metasploit Framework, terutama penggunaan msfconsole, modul auxiliary, pengelolaan session, database workspace, Meterpreter, pemilihan payload, dan post-exploitation.
Seluruh perintah hanya boleh digunakan pada lab, sistem milik sendiri, atau assessment yang telah memperoleh izin.
Konteks Shell#
Metasploit menggunakan beberapa konteks shell yang memiliki command dan fungsi berbeda:
- Linux shell: Shell sistem operasi seperti Bash.
- MSF shell: Console utama Metasploit yang ditandai dengan prompt seperti
msf6 >. - Module context: Konteks setelah modul dimuat dengan command
use. Opsi modul dapat dilihat dan diubah dari konteks ini. - Meterpreter shell: Shell interaktif dari session Meterpreter pada host target yang telah diakses secara sah.
- Remote shell: Shell biasa pada sistem remote, misalnya Bash atau Command Prompt, dengan kemampuan yang lebih terbatas daripada Meterpreter.
Command dari satu konteks tidak selalu dapat dijalankan pada konteks lainnya. Prompt yang tampil perlu diperhatikan sebelum menjalankan command.
Jenis Modul#
Metasploit mengelompokkan fungsi utamanya ke dalam beberapa jenis modul:
exploits: Modul yang memanfaatkan kerentanan tertentu.auxiliary: Modul pendukung, seperti scanner, enumerasi, dan pengujian layanan.payloads: Kode atau fungsi yang dijalankan setelah modul exploit berhasil.post: Modul untuk aktivitas lanjutan setelah session tersedia.encoders: Modul untuk mengubah format payload agar sesuai dengan kebutuhan tertentu.NOPs: Modul yang menghasilkan instruksi no-operation untuk kebutuhan payload tertentu.evasion: Modul yang berfokus pada penghindaran deteksi dalam konteks assessment berizin.
Perintah Dasar msfconsole#
Perintah berikut digunakan untuk memilih modul, mengatur opsi, dan menjalankan modul.
| Perintah | Kegunaan |
|---|---|
use <module> | Memuat modul dan masuk ke module context. |
set <OPTION> <VALUE> | Mengatur opsi untuk modul atau payload aktif. |
setg <OPTION> <VALUE> | Mengatur opsi global untuk session msfconsole. |
unset <OPTION> | Menghapus nilai opsi pada modul aktif. |
unsetg <OPTION> | Menghapus nilai opsi global. |
show options | Menampilkan opsi yang tersedia pada modul aktif. |
show payloads | Menampilkan payload yang kompatibel dengan modul aktif. |
info | Menampilkan informasi dan dokumentasi modul. |
check | Memeriksa kemungkinan kerentanan jika modul mendukung fungsi tersebut. |
run | Menjalankan modul aktif. |
exploit | Menjalankan modul exploit. |
set payload <PAYLOAD> | Memilih payload untuk modul exploit. |
Contoh alur umum pada module context:
msf6 > use <module_path>
msf6 auxiliary(...) > info
msf6 auxiliary(...) > show options
msf6 auxiliary(...) > set RHOSTS <authorized_target>
msf6 auxiliary(...) > runNilai <authorized_target> hanya boleh diganti dengan alamat sistem yang berada dalam ruang lingkup pengujian.
Pencarian Modul#
Command search digunakan untuk mencari modul berdasarkan nama, layanan, platform, tipe, atau referensi kerentanan.
Filter yang umum digunakan antara lain:
type:<type>: Memfilter berdasarkan jenis modul, misalnyatype:auxiliary.cve:<id>: Mencari modul berdasarkan ID CVE.platform:<platform>: Memfilter berdasarkan platform target.
Contoh pencarian:
msf6 > search type:auxiliary <service_name>
msf6 > search type:auxiliary <service_or_cve>
msf6 > search cve:<cve_id>
msf6 > search platform:<platform>Sebelum modul dijalankan, informasi dari info, opsi wajib, target, dan ruang lingkup assessment perlu diperiksa.
Manajemen Session#
Session merupakan koneksi interaktif yang dibuat oleh modul dan payload. Session dapat dikelola dari msfconsole menggunakan command berikut:
sessions -l: Menampilkan daftar session yang tersedia.sessions -i <id>: Melanjutkan atau berinteraksi dengan session berdasarkan ID.sessions -n <id> <name>: Memberikan nama pada session.sessions -k <id>: Menghentikan session berdasarkan ID.backgroundatauCtrl+Z: Mengembalikan session ke background dan kembali kemsfconsole.-z: Menjalankan session secara langsung di background pada alur command yang mendukung opsi tersebut.
Contoh pengelolaan session:
meterpreter > background
msf6 > sessions -l
msf6 > sessions -n <session_id> <session_name>
msf6 > sessions -i <session_id>Auxiliary Scanner#
Metasploit menyediakan banyak modul auxiliary/scanner untuk membantu enumerasi layanan. Nama modul tidak perlu dihafalkan karena pencarian dapat dilakukan berdasarkan layanan atau karakteristik target.
Pola penggunaan scanner:
- Identifikasi port dan layanan dari hasil pemindaian yang berizin.
- Cari modul scanner yang relevan dengan
search type:auxiliary <service_name>. - Jalankan
infountuk memahami fungsi dan opsi modul. - Atur parameter yang diperlukan, seperti
RHOSTSdanRPORT. - Jalankan modul menggunakan
run.
Contoh struktur command:
msf6 > search type:auxiliary <service_name>
msf6 > use <auxiliary_scanner_module>
msf6 auxiliary(scanner/...) > info
msf6 auxiliary(scanner/...) > set RHOSTS <authorized_target>
msf6 auxiliary(scanner/...) > runPola Vulnerability Scanning#
Hasil enumerasi layanan dapat digunakan untuk memilih scanner yang lebih sesuai:
- Periksa versi layanan dari data
db_nmapmenggunakanservicesatauservices -S. - Cari modul scanner berdasarkan nama layanan atau CVE dengan
search type:auxiliary <service_or_cve>. - Muat modul dan atur
RHOSTSsecara manual atau dari database menggunakanhosts -Ratauservices -R. - Jalankan modul dan tinjau hasil yang tercatat menggunakan
vulns.
Informasi versi layanan tidak selalu cukup untuk membuktikan adanya kerentanan. Hasil scanner perlu divalidasi berdasarkan versi, konfigurasi, dan bukti yang tersedia.
Database dan Workspace#
Database Metasploit dapat menyimpan host, layanan, kerentanan, credential, dan hasil import dari tool lain. Workspace membantu memisahkan data berdasarkan proyek atau assessment.
Inisialisasi Database#
msfdb merupakan command sistem yang digunakan di luar prompt msfconsole.
msfdb initCommand Database di msfconsole#
| Perintah | Kegunaan |
|---|---|
workspace | Menampilkan atau memilih workspace. |
db_nmap <options> <authorized_target> | Menjalankan Nmap dan menyimpan hasilnya ke database Metasploit. |
hosts | Menampilkan host yang tersimpan. |
services | Menampilkan layanan yang ditemukan. |
vulns | Menampilkan kerentanan yang tercatat. |
creds | Menampilkan credential yang tersimpan pada workspace. |
db_import <file> | Mengimpor hasil dari tool atau format yang didukung. |
db_export <file> | Mengekspor data dari database Metasploit. |
hosts -R | Menggunakan host yang tersimpan sebagai nilai RHOSTS bila didukung modul. |
services -R | Menggunakan layanan yang tersimpan untuk mengatur target bila didukung alur kerja. |
Contoh alur pengelolaan data:
msf6 > workspace
msf6 > workspace <workspace_name>
msf6 > db_nmap <authorized_target>
msf6 > hosts
msf6 > services
msf6 > vulnsShell Biasa dan Meterpreter#
Shell biasa memberikan command dasar dari sistem operasi, sedangkan Meterpreter menyediakan command khusus untuk interaksi yang lebih terintegrasi dengan Metasploit.
| Aspek | Shell biasa | Meterpreter |
|---|---|---|
| Antarmuka | Bash, sh, Command Prompt, atau shell sejenis. | Prompt meterpreter >. |
| Command | Mengikuti command sistem operasi. | Mengikuti command Meterpreter dan extension yang tersedia. |
| Fitur | Bergantung pada program dan permission di host. | Menyediakan fitur tambahan untuk informasi sistem, file, proses, dan session. |
| Perpindahan konteks | Umumnya tetap berada pada shell sistem operasi. | Dapat menggunakan shell untuk membuka shell sistem operasi. |
Perbedaan konteks ini penting karena ls atau ipconfig pada shell biasa tidak sama dengan command Meterpreter yang memiliki nama serupa atau fungsi yang berbeda.
Command Meterpreter#
Command Meterpreter berikut digunakan untuk pemeriksaan dan pengelolaan session pada sistem yang diizinkan:
| Perintah | Kegunaan umum |
|---|---|
getpid | Menampilkan process ID yang digunakan oleh session. |
sysinfo | Menampilkan informasi sistem. |
idletime | Menampilkan waktu idle sistem jika tersedia. |
migrate <pid> | Memindahkan session ke proses lain yang sesuai dan diizinkan. |
hashdump | Mengambil hash akun lokal jika permission dan platform mendukung. |
getsystem | Mencoba memperoleh konteks privilege yang lebih tinggi jika modul mendukungnya. |
search | Mencari berkas berdasarkan pola tertentu. |
download <remote_file> | Mengunduh berkas dari host remote. |
upload <local_file> | Mengunggah berkas ke host remote. |
ifconfig | Menampilkan informasi interface jaringan. |
netstat | Menampilkan koneksi jaringan. |
shell | Membuka shell sistem operasi. |
execute | Menjalankan program pada konteks yang tersedia. |
Contoh pemeriksaan dasar:
meterpreter > getpid
meterpreter > sysinfo
meterpreter > idletime
meterpreter > ifconfig
meterpreter > netstatCommand seperti hashdump, getsystem, dan extension kiwi dapat mengakses informasi sensitif atau mengubah konteks privilege. Penggunaannya harus dibatasi oleh izin, ruang lingkup, dan aturan penyimpanan data assessment.
Extension kiwi#
Extension kiwi menyediakan command tambahan pada platform yang didukung. Beberapa contoh command yang umum dibahas dalam assessment berizin:
load kiwi: Memuat extension.creds_all: Menampilkan credential yang dapat diakses oleh extension.lsa_dump_sam: Mengambil data SAM sesuai privilege yang tersedia.lsa_dump_secrets: Mengambil secret LSA sesuai privilege yang tersedia.golden_ticket_create: Membuat golden ticket pada skenario lab atau assessment yang secara eksplisit mengizinkannya.
Pemilihan Payload Meterpreter#
Pemilihan payload perlu disesuaikan dengan kondisi target dan tujuan pengujian. Faktor yang perlu dipertimbangkan meliputi:
- Sistem operasi target: Payload harus kompatibel dengan platform target.
- Aplikasi atau runtime yang tersedia: Beberapa payload membutuhkan lingkungan seperti PHP, Python, atau Java.
- Jenis koneksi: Pilihan dapat mencakup reverse TCP, reverse HTTPS, atau bind TCP.
- Arah koneksi jaringan: Firewall, NAT, routing, dan kebijakan jaringan menentukan arah koneksi yang dapat digunakan.
- Stabilitas dan kebutuhan session: Payload dipilih berdasarkan kebutuhan durasi dan fitur session, bukan hanya keberhasilan koneksi.
Payload harus diuji pada lingkungan terisolasi sebelum digunakan pada assessment yang disetujui. Nilai LHOST, LPORT, RHOSTS, dan parameter jaringan lain perlu disesuaikan dengan topologi lab atau ruang lingkup yang telah ditentukan.
Post-Exploitation Module#
Modul post digunakan setelah session tersedia untuk mengumpulkan informasi atau melakukan aktivitas lanjutan yang telah disetujui dalam assessment.
Pola penggunaan umum:
- Kembalikan Meterpreter ke background menggunakan
backgroundatauCtrl+Z. - Muat modul post dengan
use. - Atur parameter
SESSIONke ID session yang sesuai. - Tinjau opsi dan informasi modul.
- Jalankan modul menggunakan
run.
Contoh struktur command:
meterpreter > background
msf6 > use <post_module>
msf6 post(...) > show options
msf6 post(...) > set SESSION <session_id>
msf6 post(...) > runHasil post-exploitation perlu dicatat secara terbatas, disimpan sesuai kebijakan assessment, dan dibersihkan dari sistem pengujian setelah pekerjaan selesai.

