Skip to main content
Metasploit Framework - Command and Module Notes
  1. cysec/

Metasploit Framework - Command and Module Notes

·7 mins·

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.

PerintahKegunaan
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 optionsMenampilkan opsi yang tersedia pada modul aktif.
show payloadsMenampilkan payload yang kompatibel dengan modul aktif.
infoMenampilkan informasi dan dokumentasi modul.
checkMemeriksa kemungkinan kerentanan jika modul mendukung fungsi tersebut.
runMenjalankan modul aktif.
exploitMenjalankan 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(...) > run

Nilai <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, misalnya type: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.
  • background atau Ctrl+Z: Mengembalikan session ke background dan kembali ke msfconsole.
  • -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:

  1. Identifikasi port dan layanan dari hasil pemindaian yang berizin.
  2. Cari modul scanner yang relevan dengan search type:auxiliary <service_name>.
  3. Jalankan info untuk memahami fungsi dan opsi modul.
  4. Atur parameter yang diperlukan, seperti RHOSTS dan RPORT.
  5. 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/...) > run

Pola Vulnerability Scanning
#

Hasil enumerasi layanan dapat digunakan untuk memilih scanner yang lebih sesuai:

  1. Periksa versi layanan dari data db_nmap menggunakan services atau services -S.
  2. Cari modul scanner berdasarkan nama layanan atau CVE dengan search type:auxiliary <service_or_cve>.
  3. Muat modul dan atur RHOSTS secara manual atau dari database menggunakan hosts -R atau services -R.
  4. 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 init

Command Database di msfconsole
#

PerintahKegunaan
workspaceMenampilkan atau memilih workspace.
db_nmap <options> <authorized_target>Menjalankan Nmap dan menyimpan hasilnya ke database Metasploit.
hostsMenampilkan host yang tersimpan.
servicesMenampilkan layanan yang ditemukan.
vulnsMenampilkan kerentanan yang tercatat.
credsMenampilkan 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 -RMenggunakan host yang tersimpan sebagai nilai RHOSTS bila didukung modul.
services -RMenggunakan 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 > vulns

Shell Biasa dan Meterpreter
#

Shell biasa memberikan command dasar dari sistem operasi, sedangkan Meterpreter menyediakan command khusus untuk interaksi yang lebih terintegrasi dengan Metasploit.

AspekShell biasaMeterpreter
AntarmukaBash, sh, Command Prompt, atau shell sejenis.Prompt meterpreter >.
CommandMengikuti command sistem operasi.Mengikuti command Meterpreter dan extension yang tersedia.
FiturBergantung pada program dan permission di host.Menyediakan fitur tambahan untuk informasi sistem, file, proses, dan session.
Perpindahan konteksUmumnya 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:

PerintahKegunaan umum
getpidMenampilkan process ID yang digunakan oleh session.
sysinfoMenampilkan informasi sistem.
idletimeMenampilkan waktu idle sistem jika tersedia.
migrate <pid>Memindahkan session ke proses lain yang sesuai dan diizinkan.
hashdumpMengambil hash akun lokal jika permission dan platform mendukung.
getsystemMencoba memperoleh konteks privilege yang lebih tinggi jika modul mendukungnya.
searchMencari berkas berdasarkan pola tertentu.
download <remote_file>Mengunduh berkas dari host remote.
upload <local_file>Mengunggah berkas ke host remote.
ifconfigMenampilkan informasi interface jaringan.
netstatMenampilkan koneksi jaringan.
shellMembuka shell sistem operasi.
executeMenjalankan program pada konteks yang tersedia.

Contoh pemeriksaan dasar:

meterpreter > getpid
meterpreter > sysinfo
meterpreter > idletime
meterpreter > ifconfig
meterpreter > netstat

Command 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:

  1. Kembalikan Meterpreter ke background menggunakan background atau Ctrl+Z.
  2. Muat modul post dengan use.
  3. Atur parameter SESSION ke ID session yang sesuai.
  4. Tinjau opsi dan informasi modul.
  5. 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(...) > run

Hasil post-exploitation perlu dicatat secara terbatas, disimpan sesuai kebijakan assessment, dan dibersihkan dari sistem pengujian setelah pekerjaan selesai.

Askarhabibulloh
Author
Askarhabibulloh