Penetration Testing Tools Cheat Sheet

Introduction

Penetration testing tools cheat sheet, a quick reference high level overview for typical penetration testing engagements. Designed as a quick reference cheat sheet providing a high level overview of the typical commands a third-party pen test company would run when performing a manual infrastructure penetration test. For more in depth information I’d recommend the man file for the tool or a more specific pen testing cheat sheet from the menu on the right.

The focus of this cheat sheet is infrastructure / network penetration testing, web application penetration testing is not covered here apart from a few sqlmap commands at the end and some web server enumeration. For Web Application Penetration Testing, check out the Web Application Hackers Hand Book, it is excellent for both learning and reference.

If I’m missing any pen testing tools here give me a nudge on twitter.

Changelog

16/09/2020 - fixed some formatting issues (more coming soon I promise). 17/02/2017 - Article updated, added loads more content, VPN, DNS tunneling, VLAN hopping etc - check out the TOC below.

  • Introduction

    • Changelog

  • Pre-engagement

    • Network Configuration

      • Set IP Address

      • Subnetting

  • OSINT

    • Passive Information Gathering

      • DNS

        • WHOIS enumeration

        • Perform DNS IP Lookup

        • Perform MX Record Lookup

        • Perform Zone Transfer with DIG

  • DNS Zone Transfers

    • Email

      • Simply Email

    • Semi Active Information Gathering

      • Basic Finger Printing

      • Banner grabbing with NC

    • Active Information Gathering

      • DNS Bruteforce

        • DNSRecon

      • Port Scanning

        • Nmap Commands

          • Nmap UDP Scanning

          • UDP Protocol Scanner

          • Other Host Discovery

  • Enumeration & Attacking Network Services

    • SAMB / SMB / Windows Domain Enumeration

      • Samba Enumeration

        • SMB Enumeration Tools

        • Fingerprint SMB Version

        • Find open SMB Shares

        • Enumerate SMB Users

        • Manual Null session testing:

        • NBTScan unixwiz

    • LLMNR / NBT-NS Spoofing

      • Metasploit LLMNR / NetBIOS requests

      • Responder.py

    • SNMP Enumeration Tools

      • SNMPv3 Enumeration Tools

    • R Services Enumeration

      • RSH Enumeration

        • RSH Run Commands

        • Metasploit RSH Login Scanner

        • rusers Show Logged in Users

        • rusers scan whole Subnet

    • Finger Enumeration

      • Finger a Specific Username

      • Solaris bug that shows all logged in users:

    • rwho

  • TLS & SSL Testing

    • testssl.sh

  • Vulnerability Assessment

  • Database Penetration Testing

    • Oracle

      • Fingerprint Oracle TNS Version

      • Brute force oracle user accounts

      • Oracle Privilege Escalation

        • Identify default accounts within oracle db using NMAP NSE scripts:

        • How to identify the current privilege level for an oracle user:

        • Oracle priv esc and obtain DBA access:

        • Run the exploit with a select query:

        • Remove the exploit using:

        • Get Oracle Reverse os-shell:

    • MSSQL

      • Bruteforce MSSQL Login

      • Metasploit MSSQL Shell

  • Network

    • Plink.exe Tunnel

    • Pivoting

      • SSH Pivoting

      • Meterpreter Pivoting

    • TTL Finger Printing

    • IPv4 Cheat Sheets

      • Classful IP Ranges

      • IPv4 Private Address Ranges

      • IPv4 Subnet Cheat Sheet

    • VLAN Hopping

    • VPN Pentesting Tools

      • IKEForce

      • IKE Aggressive Mode PSK Cracking

        • Step 1: Idenitfy IKE Servers

        • Step 2: Enumerate group name with IKEForce

        • Step 3: Use ike-scan to capture the PSK hash

        • Step 4: Use psk-crack to crack the PSK hash

      • PPTP Hacking

        • NMAP PPTP Fingerprint:

        • PPTP Dictionary Attack

    • DNS Tunneling

      • Attacking Machine

  • BOF / Exploit

  • Exploit Research

    • Searching for Exploits

    • Compiling Windows Exploits on Kali

    • Cross Compiling Exploits

    • Exploiting Common Vulnerabilities

      • Exploiting Shellshock

        • cat file (view file contents)

        • Shell Shock run bind shell

        • Shell Shock reverse Shell

  • Simple Local Web Servers

  • Mounting File Shares

  • HTTP / HTTPS Webserver Enumeration

  • Packet Inspection

  • Username Enumeration

    • SMB User Enumeration

    • SNMP User Enumeration

  • Passwords

    • Wordlists

  • Brute Forcing Services

    • Hydra FTP Brute Force

    • Hydra POP3 Brute Force

    • Hydra SMTP Brute Force

  • Password Cracking

    • John The Ripper - JTR

  • Windows Penetration Testing Commands

  • Linux Penetration Testing Commands

  • Compiling Exploits

    • Identifying if C code is for Windows or Linux

    • Build Exploit GCC

    • GCC Compile 32Bit Exploit on 64Bit Kali

    • Compile Windows .exe on Linux

  • SUID Binary

    • SUID C Shell for /bin/bash

    • SUID C Shell for /bin/sh

    • Building the SUID Shell binary

  • Reverse Shells

  • TTY Shells

    • Python TTY Shell Trick

    • Spawn Interactive sh shell

    • Spawn Perl TTY Shell

    • Spawn Ruby TTY Shell

    • Spawn Lua TTY Shell

    • Spawn TTY Shell from Vi

    • Spawn TTY Shell NMAP

  • Metasploit Cheat Sheet

    • Meterpreter Payloads

    • Windows reverse meterpreter payload

    • Windows VNC Meterpreter payload

    • Linux Reverse Meterpreter payload

  • Meterpreter Cheat Sheet

  • Common Metasploit Modules

    • Remote Windows Metasploit Modules (exploits)

    • Local Windows Metasploit Modules (exploits)

    • Auxilary Metasploit Modules

    • Metasploit Powershell Modules

    • Post Exploit Windows Metasploit Modules

  • ASCII Table Cheat Sheet

  • CISCO IOS Commands

  • Cryptography

    • Hash Lengths

    • Hash Examples

  • SQLMap Examples

Pre-engagement

Network Configuration

Set IP Address

Subnetting

OSINT

Passive Information Gathering

DNS

WHOIS enumeration

Perform DNS IP Lookup

Perform MX Record Lookup

Perform Zone Transfer with DIG

DNS Zone Transfers

Email

Simply Email

Use Simply Email to enumerate all the online places (github, target site etc), it works better if you use proxies or set long throttle times so google doesn’t think you’re a robot and make you fill out a Captcha.

Simply Email can verify the discovered email addresss after gathering.

Semi Active Information Gathering

Basic Finger Printing

Manual finger printing / banner grabbing.

Active Information Gathering

DNS Bruteforce

DNSRecon

DNS Enumeration Kali - DNSRecon

root:~# dnsrecon -d TARGET -D /usr/share/wordlists/dnsmap.txt -t std --xml ouput.xml

Port Scanning

Nmap Commands

For more commands, see the Nmap cheat sheet (link in the menu on the right).

Basic Nmap Commands:

I’ve had a few people mention about T4 scans, apply common sense here. Don’t use T4 commands on external pen tests (when using an Internet connection), you’re probably better off using a T2 with a TCP connect scan. A T4 scan would likely be better suited for an internal pen test, over low latency links with plenty of bandwidth. But it all depends on the target devices, embeded devices are going to struggle if you T4 / T5 them and give inconclusive results. As a general rule of thumb, scan as slowly as you can, or do a fast scan for the top 1000 so you can start pen testing then kick off a slower scan.

Nmap UDP Scanning

UDP Protocol Scanner

Scan a file of IP addresses for all services:

Scan for a specific UDP service:

Other Host Discovery

Other methods of host discovery, that don’t use nmap…

Enumeration & Attacking Network Services

Penetration testing tools that spefically identify and / or enumerate network services:

SAMB / SMB / Windows Domain Enumeration

Samba Enumeration

SMB Enumeration Tools

Also see, nbtscan cheat sheet (right hand menu).

Fingerprint SMB Version

Find open SMB Shares

Enumerate SMB Users

RID Cycling:

Metasploit module for RID cycling:

Manual Null session testing:

Windows:

Linux:

NBTScan unixwiz

Install on Kali rolling:

LLMNR / NBT-NS Spoofing

Steal credentials off the network.

Metasploit LLMNR / NetBIOS requests

Spoof / poison LLMNR / NetBIOS requests:

Capture the hashes:

You’ll end up with NTLMv2 hash, use john or hashcat to crack it.

Responder.py

Alternatively you can use responder.

Run Responder.py for the whole engagement

Run Responder.py for the length of the engagement while you're working on other attack vectors.

SNMP Enumeration Tools

A number of SNMP enumeration tools.

Fix SNMP output values so they are human readable:

SNMPv3 Enumeration Tools

Idenitfy SNMPv3 servers with nmap:

Rory McCune’s snmpwalk wrapper script helps automate the username enumeration process for SNMPv3:

Use Metasploits Wordlist

Metasploit's wordlist (KALI path below) has common credentials for v1 & 2 of SNMP, for newer credentials check out Daniel Miessler's SecLists project on GitHub (not the mailing list!).

R Services Enumeration

This is legacy, included for completeness.

nmap -A will perform all the rservices enumeration listed below, this section has been added for completeness or manual confirmation:

RSH Enumeration

RSH Run Commands

Metasploit RSH Login Scanner

rusers Show Logged in Users

rusers scan whole Subnet

e.g rlogin -l root TARGET-SUBNET/24

Finger Enumeration

Finger a Specific Username

Solaris bug that shows all logged in users:

rwho

Use nmap to identify machines running rwhod (513 UDP)

TLS & SSL Testing

testssl.sh

Test all the things on a single host and output to a .html file:

Vulnerability Assessment

Install OpenVAS 8 on Kali Rolling:

Verify openvas is running using:

Login at https://127.0.0.1:9392 - credentials are generated during openvas-setup.

Database Penetration Testing

Attacking database servers exposed on the network.

Oracle

Install oscanner:

Run oscanner:

Fingerprint Oracle TNS Version

Install tnscmd10g:

Fingerprint oracle tns:

Brute force oracle user accounts

Identify default Oracle accounts:

Run nmap scripts against Oracle TNS:

Oracle Privilege Escalation

Requirements:

  • Oracle needs to be exposed on the network

  • A default account is in use like scott

Quick overview of how this works:

  1. Create the function

  2. Create an index on table SYS.DUAL

  3. The index we just created executes our function SCOTT.DBA_X

  4. The function will be executed by SYS user (as that’s the user that owns the table).

  5. Create an account with DBA priveleges

In the example below the user SCOTT is used but this should be possible with another default Oracle account.

Identify default accounts within oracle db using NMAP NSE scripts:

Login using the identified weak account (assuming you find one).

How to identify the current privilege level for an oracle user:

Oracle priv esc and obtain DBA access:

Run netcat: netcat -nvlp 443code>

Run the exploit with a select query:

You should have a DBA user with creds user1 and pass1.

Verify you have DBA privileges by re-running the first command again.

Remove the exploit using:

Get Oracle Reverse os-shell:

MSSQL

Enumeration / Discovery:

Nmap:

Metasploit:

Use MS SQL Servers Browse For More

Try using "Browse for More" via MS SQL Server Management Studio

Bruteforce MSSQL Login

Metasploit MSSQL Shell

Network

Plink.exe Tunnel

PuTTY Link tunnel

Forward remote port to local address:

Pivoting

SSH Pivoting

Add socks4 127.0.0.1 1010 in /etc/proxychains.conf

SSH pivoting from one network to another:

Add socks4 127.0.0.1 1010 in /etc/proxychains.conf

Add socks4 127.0.0.1 1011 in /etc/proxychains.conf

Meterpreter Pivoting

TTL Finger Printing

IPv4 Cheat Sheets

Classful IP Ranges

E.g Class A,B,C (depreciated)

IPv4 Private Address Ranges

IPv4 Subnet Cheat Sheet

Subnet cheat sheet, not really realted to pen testing but a useful reference.

VLAN Hopping

Using NCCGroups VLAN wrapper script for Yersina simplifies the process.

VPN Pentesting Tools

Identify VPN servers:

Scan a range for VPN servers:

IKEForce

Use IKEForce to enumerate or dictionary attack VPN servers.

Install:

Perform IKE VPN enumeration with IKEForce:

Bruteforce IKE VPN using IKEForce:

IKE Aggressive Mode PSK Cracking

  1. Identify VPN Servers

  2. Enumerate with IKEForce to obtain the group ID

  3. Use ike-scan to capture the PSK hash from the IKE endpoint

  4. Use psk-crack to crack the hash

Step 1: Idenitfy IKE Servers

Step 2: Enumerate group name with IKEForce

Step 3: Use ike-scan to capture the PSK hash

Step 4: Use psk-crack to crack the PSK hash

Some more advanced psk-crack options below:

PPTP Hacking

Identifying PPTP, it listens on TCP: 1723

NMAP PPTP Fingerprint:

PPTP Dictionary Attack

DNS Tunneling

Tunneling data over DNS to bypass firewalls.

dnscat2 supports β€œdownload” and β€œupload” commands for getting files (data and programs) to and from the target machine.

Attacking Machine

Installtion:

Run dnscat2:

Target Machine:

https://downloads.skullsecurity.org/dnscat2/ https://github.com/lukebaggett/dnscat2-powershell/

BOF / Exploit

Exploit Research

Find exploits for enumerated hosts / services.

Searching for Exploits

Install local copy of exploit-db:

Compiling Windows Exploits on Kali

Cross Compiling Exploits

Exploiting Common Vulnerabilities

Exploiting Shellshock

A tool to find and exploit servers vulnerable to Shellshock:

cat file (view file contents)

Shell Shock run bind shell

Shell Shock reverse Shell

Simple Local Web Servers

Python local web server command, handy for serving up shells and exploits on an attacking machine.

How to mount NFS / CIFS, Windows and Linux file shares.

HTTP / HTTPS Webserver Enumeration

Packet Inspection

Username Enumeration

Some techniques used to remotely enumerate users on a target system.

SMB User Enumeration

SNMP User Enumeration

Passwords

Wordlists

Brute Forcing Services

Hydra FTP Brute Force

Hydra POP3 Brute Force

Hydra SMTP Brute Force

Use -t to limit concurrent connections, example: -t 15

Password Cracking

Password cracking penetration testing tools.

John The Ripper - JTR

Windows Penetration Testing Commands

See Windows Penetration Testing Commands.

Linux Penetration Testing Commands

See Linux Commands Cheat Sheet (right hand menu) for a list of Linux Penetration testing commands, useful for local system enumeration.

Compiling Exploits

Some notes on compiling exploits.

Identifying if C code is for Windows or Linux

C #includes will indicate which OS should be used to build the exploit.

Build Exploit GCC

Compile exploit gcc.

GCC Compile 32Bit Exploit on 64Bit Kali

Handy for cross compiling 32 bit binaries on 64 bit attacking machines.

Compile Windows .exe on Linux

Build / compile windows exploits on Linux, resulting in a .exe file.

SUID Binary

Often SUID C binary files are required to spawn a shell as a superuser, you can update the UID / GID and shell as required.

below are some quick copy and pate examples for various shells:

SUID C Shell for /bin/bash

SUID C Shell for /bin/sh

Building the SUID Shell binary

For 32 bit:

Reverse Shells

See Reverse Shell Cheat Sheet for a list of useful Reverse Shells.

TTY Shells

Tips / Tricks to spawn a TTY shell from a limited shell in Linux, useful for running commands like su from reverse shells.

Python TTY Shell Trick

Spawn Interactive sh shell

Spawn Perl TTY Shell

Spawn Ruby TTY Shell

Spawn Lua TTY Shell

Spawn TTY Shell from Vi

Run shell commands from vi:

Spawn TTY Shell NMAP

A basic metasploit cheat sheet that I have found handy for reference.

Basic Metasploit commands, useful for reference, for pivoting see - Meterpreter Pivoting techniques.

Meterpreter Payloads

Windows reverse meterpreter payload

Windows VNC Meterpreter payload

Linux Reverse Meterpreter payload

Meterpreter Cheat Sheet

Useful meterpreter commands.

Top metasploit modules.

Remote Windows Metasploit Modules (exploits)

Local Windows Metasploit Modules (exploits)

Auxilary Metasploit Modules

Metasploit Powershell Modules

Post Exploit Windows Metasploit Modules

Windows Metasploit Modules for privilege escalation.

ASCII Table Cheat Sheet

Useful for Web Application Penetration Testing, or if you get stranded on Mars and need to communicate with NASA.

CISCO IOS Commands

A collection of useful Cisco IOS commands.

Cryptography

Hash Lengths

Hash Examples

Likely just use hash-identifier for this but here are some example hashes:

SQLMap Examples

A mini SQLMap cheat sheet:

Last updated

Was this helpful?