Belajar menggunakan Metasploit, alat untuk menyelidiki dan mengeksploitasi kerentanan di jaringan dan server.
Metasploit, kerangka kerja pentesting sumber terbuka, adalah alat canggih yang digunakan oleh insinyur keamanan di seluruh dunia. Dikelola oleh Rapid 7, Metasploit adalah kumpulan tidak hanya eksploitasi yang diuji secara menyeluruh tetapi juga alat bantu dan pasca-eksploitasi. Sepanjang ruangan ini, kita akan mengeksplorasi dasar-dasar penggunaan framework besar ini dan beberapa modul yang disertakan.
Kali dan sebagian besar distribusi keamanan Linux lainnya menyertakan Metasploit secara default. Jika Anda menggunakan distribusi Linux yang berbeda, pastikan Anda telah menginstalnya atau menginstalnya dari repositori Rapid 7 Github.
Jika ini adalah pertama kalinya Anda menggunakan Metasploit, Anda memiliki beberapa hal yang harus dilakukan sebelum Anda memanfaatkan fungsionalitas penuhnya. Ayo lanjutkan dan mulai semuanya!
Hal pertama yang pertama, kita perlu menginisialisasi database! Mari kita lakukan itu sekarang dengan perintah: msfdb init
Jika Anda menggunakan AttackBox, Anda tidak perlu melakukan ini.
┌─[✗]─[cyber@cyber]─[~] └──╼ $sudo msfdb init [for cyber: [ ] Starting database [ ] The database appears to be already configured, skipping initialization] password
Sebelum memulai Metasploit, kita dapat melihat beberapa opsi lanjutan yang dapat kita picu untuk memulai konsol. Lihat ini sekarang dengan menggunakan perintah: msfconsole -h
┌─[cyber@cyber]─[~] └──╼ $msfconsole -h Usage: msfconsole [options] Common options: -E, --environment ENVIRONMENT Set Rails environment, defaults to RAIL_ENV environment variable or 'production' Database options: -M, --migration-path DIRECTORY Specify a directory containing additional DB migrations -n, --no-database Disable database support -y, --yaml PATH Specify a YAML file containing database settings Framework options: -c FILE Load the specified configuration file -v, -V, --version Show version Module options: --defer-module-loads Defer module loading unless explicitly asked -m, --module-path DIRECTORY Load an additional module path Console options: -a, --ask Ask before exiting Metasploit or accept 'exit -y' -H, --history-file FILE Save command history to the specified file -L, --real-readline Use the system Readline library instead of RbReadline -o, --output FILE Output to the specified file -p, --plugin PLUGIN Load a plugin on startup -q, --quiet Do not print the banner on startup -r, --resource FILE Execute the specified resource file (- for stdin) -x, --execute-command COMMAND Execute the specified console commands (use ; for multiples) -h, --help Show this message
-q, --quiet Do not print the banner on startup
┌─[cyber@cyber]─[~]
└──╼ $sudo msfconsole -q
msf6 >
Answare = -q
Setelah database diinisialisasi, lanjutkan dan mulai Metasploit melalui perintah:msfconsole
Setelah Metasploit dimulai, mari kita lanjutkan dan periksa apakah kita telah terhubung ke database. Lakukan ini sekarang dengan perintah: db_status
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.
msf6 >
Cool! We've connected to the database, which type of database does Metasploit 5 use?.
karna komputer saya menggunakan metasploit 6 jadi msf6 > untuk status database-nya sama saja yaitu Posgresql.
Answer = postgresql
Menggunakan menu bantuan, sekarang mari pelajari perintah dasar dan kategori modul di Metasploit. Hampir semua jawaban atas pertanyaan berikut dapat ditemukan di menu bantuan Metasploit.
Mari lanjutkan dan mulai menjelajahi menu bantuan. Pada prompt Metasploit (di mana kita akan berada setelah kita memulai Metasploit menggunakan msfconsole), ketik perintah: help
Perintah help sama saja hal dengan perintah -h seperti yang terter di awal tadi.
Menu bantuan memiliki alias satu karakter yang sangat pendek, apa itu?
msf6 > ? Core Commands ============= Command Description ------- ----------- ? Help menu banner Display an awesome metasploit banner cd Change the current working directory color Toggle color connect Communicate with a host debug Display information useful for debugging exit Exit the console features Display the list of not yet released features that can be opted in to get Gets the value of a context-specific variable getg Gets the value of a global variable grep Grep the output of another command help Help menu history Show command history load Load a framework plugin quit Exit the console repeat Repeat a list of commands route Route traffic through a session save Saves the active datastores sessions Dump session listings and display information about sessions set Sets a context-specific variable to a value setg Sets a global variable to a value sleep Do nothing for the specified number of seconds spool Write console output into a file as well the screen threads View and manipulate background threads tips Show a list of useful productivity tips unload Unload a framework plugin unset Unsets one or more context-specific variables unsetg Unsets one or more global variables version Show the framework and console library version numbers Module Commands =============== Command Description ------- ----------- advanced Displays advanced options for one or more modules back Move back from the current context clearm Clear the module stack info Displays information about one or more modules listm List the module stack loadpath Searches for and loads modules from a path options Displays global options or for one or more modules popm Pops the latest module off the stack and makes it active previous Sets the previously loaded module as the current module pushm Pushes the active or list of modules onto the module stack reload_all Reloads all modules from all defined module paths search Searches module names and descriptions show Displays modules of a given type, or all modules use Interact with a module by name or search term/index Job Commands ============ Command Description ------- ----------- handler Start a payload handler as job jobs Displays and manages jobs kill Kill a job rename_job Rename a job Resource Script Commands ======================== Command Description ------- ----------- makerc Save commands entered since start to a file resource Run the commands stored in a file Database Backend Commands ========================= notes List all notes in the database services List all services in the database vulns List all vulnerabilities in the database workspace Switch between database workspaces Credentials Backend Commands ============================ Command Description ------- ----------- creds List all credentials in the database Developer Commands ================== Command Description ------- ----------- edit Edit the current module or a file with the preferred editor irb Open an interactive Ruby shell in the current context log Display framework.log paged to the end if possible pry Open the Pry debugger on the current module or Framework reload_lib Reload Ruby library files from specified paths msfconsole ========== `msfconsole` is the primary interface to Metasploit Framework. There is quite a lot that needs go here, please be patient and keep an eye on this space! Building ranges and lists ------------------------- Many commands and options that take a list of things can use ranges to avoid having to manually list each desired thing. All ranges are inclusive. ### Ranges of IDs Commands that take a list of IDs can use ranges to help. Individual IDs must be separated by a `,` (no space allowed) and ranges can be expressed with either `-` or `..`.
Karakter tanda tanya atau (?) di gunakan untuk mencari bantuan untuk di gunakan pada Metasploit dan menginput parameter.
Answare = ?
Menemukan berbagai modul yang kami miliki dalam Metasploit adalah salah satu perintah paling umum yang akan kami manfaatkan dalam kerangka kerja. Apa perintah dasar yang kita gunakan untuk mencari?
search Searches module names and descriptions
msf6 > search
Usage: search [<options>] [<keywords>:<value>]
Prepending a value with '-' will exclude any matching results.
If no options or keywords are provided, cached results are displayed.
OPTIONS:
-h Show this help information
-o <file> Send output to a file in csv format
-S <string> Regex pattern used to filter search results
-u Use module if there is one result
Keywords:
aka : Modules with a matching AKA (also-known-as) name
author : Modules written by this author
arch : Modules affecting this architecture
bid : Modules with a matching Bugtraq ID
cve : Modules with a matching CVE ID
edb : Modules with a matching Exploit-DB ID
check : Modules that support the 'check' method
date : Modules with a matching disclosure date
description : Modules with a matching description
fullname : Modules with a matching full name
mod_time : Modules with a matching modification date
name : Modules with a matching descriptive name
path : Modules with a matching path
platform : Modules affecting this platform
port : Modules with a matching port
rank : Modules with a matching rank (Can be descriptive (ex: 'good') or numeric with comparison operators (ex: 'gte400'))
ref : Modules with a matching ref
reference : Modules with a matching reference
target : Modules affecting this target
type : Modules of a specific type (exploit, payload, auxiliary, encoder, evasion, post, or nop)
Examples:
search cve:2009 type:exploit
search cve:2009 type:exploit platform:-linux
Answare = search
Bagaimana jika kita ingin melihat informasi tentang modul tertentu atau hanya modul aktif yang telah kita pilih?
info Displays information about one or more modules
msf6 > info
Usage: info <module name> [mod2 mod3 ...]
Options:
* The flag '-j' will print the data in json format
* The flag '-d' will show the markdown version with aspool Write console output into a file as well the screen browser. More info, but could be slow.
Queries the supplied module or modules for information. If no module is given,
show info for the currently active module.
Answare = info
Metasploit memiliki fungsi seperti netcat bawaan di mana kita dapat membuat koneksi cepat dengan host hanya untuk memverifikasi bahwa kita dapat 'berbicara' dengannya. Perintah apa ini?
connect Communicate with a host
msf6 > connect
Usage: connect [options] <host> <port>
Communicate with a host, similar to interacting via netcat, taking advantage of
any configured session pivoting.
OPTIONS:
-C Try to use CRLF for EOL sequence.
-P <opt> Specify source port.
-S <opt> Specify source address.
-c <opt> Specify which Comm to use.
-h Help banner.
-i <opt> Send the contents of a file.
-p <opt> List of proxies to use.
-s Connect with SSL.
-u Switch to a UDP socket.
-w <opt> Specify connect timeout.
-z Just try to connect, then return.
Asware = connect
Sepenuhnya salah satu perintah yang murni digunakan untuk bersenang-senang, perintah apa yang menampilkan seni motd / ascii yang kita lihat ketika kita memulai msfconsole (tanpa -q flag)?
┌─[cyber@cyber]─[~] └──╼ $sudo msfconsole , , / ((__---,,,---__)) (_) O O (_)_________ _ / | o_o M S F | _____ | * ||| WW||| ||| ||| =[ metasploit v6.0.16-dev ] + -- --=[ 2074 exploits - 1124 auxiliary - 352 post ] + -- --=[ 592 payloads - 45 encoders - 10 nops ] + -- --=[ 7 evasion ] Metasploit tip: View advanced module options with advanced msf6 >
banner Display an awesome metasploit banner
Asware = banner
Kami akan segera meninjau kembali dua perintah berikutnya ini, namun, itu adalah dua perintah yang paling sering digunakan dalam Metasploit. Pertama, perintah apa yang kita gunakan untuk mengubah nilai variabel?
set Sets a context-specific variable to a value
Answare = set
Metasploit mendukung penggunaan variabel global, sesuatu yang sangat berguna ketika Anda secara khusus berfokus pada satu kotak. Perintah apa yang mengubah nilai variabel secara global?
setg Sets a global variable to a value
Answare = setg
Sekarang setelah kita belajar bagaimana mengubah nilai variabel, bagaimana kita melihatnya? Secara teknis ada beberapa jawaban untuk pertanyaan ini, namun, saya mencari perintah tiga huruf tertentu yang digunakan untuk melihat nilai variabel tunggal.
get Gets the value of a context-specific variable
Answare = get
Bagaimana dengan mengubah nilai variabel menjadi nilai nol / tanpa nilai?
unset Unsets one or more context-specific variables
Answare = unset
Saat melakukan tes penetrasi, cukup umum untuk merekam layar Anda baik untuk ditinjau lebih lanjut atau untuk memberikan bukti tindakan yang diambil. Ini sering digabungkan dengan kumpulan output konsol ke sebuah file karena akan sangat berguna untuk melakukan grep untuk berbagai bagian output informasi ke layar. Perintah apa yang dapat kita gunakan untuk mengatur output konsol kita agar disimpan ke file?
spool Write console output into a file as well the screen
Answare = spool
Membiarkan konsol Metasploit berjalan tidak selalu nyaman dan akan sangat membantu jika semua nilai yang kami tetapkan sebelumnya dimuat saat memulai Metasploit. Perintah apa yang dapat kita gunakan untuk menyimpan pengaturan / datastore aktif dari Metasploit ke file pengaturan? Ini akan disimpan dalam direktori msf4 (atau msf5) Anda dan dapat dibatalkan dengan mudah hanya dengan menghapus file pengaturan yang dibuat.
save Saves the active datastores
Answare = save