Every security professional needs a toolbox. Wireshark for traffic analysis, Nmap for reconnaissance, and Metasploit for exploitation. These are the foundational tools of both red team and blue team operations.
Security work without tools is like surgery without instruments. Whether you're defending a network (blue team) or testing its defenses (red team), you need tools for reconnaissance, analysis, exploitation, and reporting.
Discover hosts, services, and vulnerabilities on a network. The first step in any assessment.
Capture and examine network traffic, logs, and artifacts. Find the needle in the haystack.
Validate vulnerabilities by safely exploiting them. Prove impact to stakeholders.
What it does: Captures and analyzes network packets in real-time. Think of it as a microscope for network traffic. Every packet that crosses your network interface is captured, decoded, and displayed — headers, payloads, protocols, everything.
What it does: Discovers hosts and services on a network by sending carefully crafted packets and analyzing responses. Nmap is the Swiss Army knife of network reconnaissance — it can identify live hosts, open ports, running services, OS versions, and even known vulnerabilities.
What it does: A massive open-source framework containing thousands of exploits, payloads, and auxiliary modules for penetration testing. If Nmap finds the unlocked door, Metasploit walks through it. Used by pentesters to safely validate vulnerabilities and demonstrate real-world impact.
Code that takes advantage of a vulnerability (e.g., buffer overflow, SQL injection)
Code that runs after exploitation (reverse shell, Meterpreter, command execution)
Non-exploit modules: scanners, fuzzers, DoS testers, credential checkers
Web application security testing platform. Intercepts HTTP requests, scans for vulnerabilities (XSS, SQLi), fuzzes parameters. The #1 tool for web app pentesters.
Password cracking tools. John is CPU-based, Hashcat leverages GPUs for speed. Used to test password strength and crack captured hashes. Supports hundreds of hash formats.
Directory/file brute-forcing tools. Discover hidden pages, API endpoints, and subdomains on web servers. Essential for web application recon.
Command-line packet analyzer. Lightweight alternative to Wireshark for servers without a GUI. Perfect for capturing traffic on remote Linux servers via SSH.
Online brute-force tool for login services (SSH, FTP, HTTP, RDP). Tests username/password combinations against network services at high speed.
The "Swiss Army knife" of networking. Read/write data across network connections. Used for port listening, file transfer, reverse shells, banner grabbing.
Sends SYN packet. If SYN/ACK comes back, port is open. Sends RST instead of completing the handshake — the connection is never fully established, so it's less likely to be logged.
Completes the full TCP 3-way handshake. More reliable but louder — connections appear in server logs. Used when user doesn't have raw packet privileges.
Scans UDP ports (DNS:53, DHCP:67/68, SNMP:161, TFTP:69). Very slow because UDP is connectionless — no guaranteed response for open ports. ICMP "port unreachable" = closed.
After finding open ports, sends probes to determine the exact service and version running. Turns "port 80 open" into "Apache httpd 2.4.51 (Ubuntu)". Critical for finding exploitable versions.
Nmap has 600+ scripts for vulnerability scanning, brute-forcing,
service enumeration, and more. Categories: vuln, safe, intrusive, discovery, auth.
Understanding packet structure is key to effective analysis. Every captured frame contains nested protocol headers:
Try running common security tool commands in these safe simulators. No real networks are scanned.
Type an Nmap command below. Try: nmap -sS 10.0.0.1, nmap -sV 10.0.0.1, nmap -sn 10.0.0.0/24, nmap -O 10.0.0.1, nmap -A 10.0.0.1
A simulated network capture. Click on any packet to inspect its details — just like Wireshark.
Try: search eternalblue, use exploit/windows/smb/ms17_010_eternalblue, show options, set RHOSTS 10.0.0.5,
exploit
${pkt.detail.replace(/\[!!!\]/g, '[!!!]').replace(/\[!\]/g, '[!]')}`;
detail.innerHTML = html;
}
renderPackets();
// ========== METASPLOIT SIMULATOR ==========
let msfState = { module: null, options: { RHOSTS: '', LHOST: '10.0.0.50', PAYLOAD: 'windows/x64/meterpreter/reverse_tcp' } };
function addMsfLine(text, cls = 'text-slate-400') {
const term = document.getElementById('msfTerminal');
const el = document.createElement('div');
el.className = `term-line ${cls}`;
el.innerHTML = text;
term.appendChild(el);
term.scrollTop = term.scrollHeight;
}
function updateMsfPrompt() {
document.getElementById('msfPrompt').textContent = msfState.module ? `msf6 exploit(${msfState.module.split('/').pop()}) >` : 'msf6 >';
}
function runMsf() {
const input = document.getElementById('msfInput');
const cmd = input.value.trim();
input.value = '';
if (!cmd) return;
addMsfLine((msfState.module ? `msf6 exploit(${msfState.module.split('/').pop()}) > ` : 'msf6 > ') + cmd, 'text-slate-300');
const parts = cmd.split(/\s+/);
const action = parts[0].toLowerCase();
if (action === 'help' || action === '?') {
addMsfLine('Core Commands: search, use, show, set, exploit/run, back, exit', 'text-slate-500');
} else if (action === 'search') {
const term = parts.slice(1).join(' ').toLowerCase();
const results = [
{ name: 'exploit/windows/smb/ms17_010_eternalblue', date: '2017-03-14', rank: 'great', desc: 'MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption' },
{ name: 'exploit/windows/smb/ms17_010_psexec', date: '2017-03-14', rank: 'normal', desc: 'MS17-010 EternalRomance/EternalSynergy SMB RCE' },
{ name: 'auxiliary/scanner/smb/smb_ms17_010', date: '2017-03-14', rank: 'normal', desc: 'MS17-010 SMB RCE Detection' },
];
const matched = results.filter(r => r.name.includes(term) || r.desc.toLowerCase().includes(term));
if (matched.length === 0) { addMsfLine('No results found.', 'text-amber-400'); return; }
addMsfLine('Matching Modules', 'text-emerald-400');
addMsfLine('================', 'text-slate-600');
addMsfLine(' # Name Disclosure Date Rank Description', 'text-slate-500');
addMsfLine(' - ---- --------------- ---- -----------', 'text-slate-700');
matched.forEach((r, i) => {
addMsfLine(` ${i} ${r.name} ${r.date} ${r.rank} ${r.desc}`, 'text-slate-400');
});
} else if (action === 'use') {
msfState.module = parts[1] || '';
addMsfLine(`[*] Using configured payload ${msfState.options.PAYLOAD}`, 'text-blue-400');
updateMsfPrompt();
} else if (action === 'back') {
msfState.module = null;
updateMsfPrompt();
} else if (action === 'show' && parts[1] === 'options') {
if (!msfState.module) { addMsfLine('No module selected. Use "use" first.', 'text-amber-400'); return; }
addMsfLine('Module options (exploit/windows/smb/ms17_010_eternalblue):', 'text-slate-300');
addMsfLine('', '');
addMsfLine(' Name Current Setting Required Description', 'text-slate-500');
addMsfLine(' ---- --------------- -------- -----------', 'text-slate-700');
addMsfLine(` RHOSTS yes Target IP`, 'text-slate-400');
addMsfLine(` RPORT 445 yes Target port (SMB)`, 'text-slate-400');
addMsfLine('', '');
addMsfLine('Payload options (windows/x64/meterpreter/reverse_tcp):', 'text-slate-300');
addMsfLine(` LHOST ${msfState.options.LHOST} yes Listen address`, 'text-slate-400');
addMsfLine(` LPORT 4444 yes Listen port`, 'text-slate-400');
} else if (action === 'set') {
const key = (parts[1] || '').toUpperCase();
const val = parts.slice(2).join(' ');
if (key && val) {
msfState.options[key] = val;
addMsfLine(`${key} => ${val}`, 'text-slate-300');
}
} else if (action === 'exploit' || action === 'run') {
if (!msfState.module) { addMsfLine('No module selected.', 'text-amber-400'); return; }
if (!msfState.options.RHOSTS) { addMsfLine('[!] RHOSTS is not set. Use: set RHOSTS ${qi + 1}. ${q.q}
${pct >= 75 ? 'Great job! You know your security tools.' : 'Review the material above and try again.'}
`; document.getElementById('submitQuizBtn').style.display = 'none'; if (score === quizData.length) { localStorage.setItem('security_tools', 'true'); setTimeout(() => document.getElementById('completionModal').classList.add('show'), 500); } } renderQuiz();All certification names are referenced for educational purposes only. This project is not affiliated with any certification body.