progrez.cloud

Metasploit - Tyhackme | Part 1

03 Maret 2021

Metasploit

Belajar menggunakan Metasploit, alat untuk menyelidiki dan mengeksploitasi kerentanan di jaringan dan server.


Task 1 # Intro


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.


Task 2 # Initializing...


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
[sudo] password for cyber: 
[+] Starting database
[i] The database appears to be already configured, skipping initialization


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


Task 3 # Rock 'em to the Core [Commands]


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