This article provides a technical guide to ten essential Nmap Scripting Engine (NSE) scripts used in professional penetration testing workflows, demonstrating how to move beyond basic port scanning to automated vulnerability detection and enumeration across multiple service categories including SMB, HTTP, FTP, SSL, and SMTP. The article argues that mastering these specific scripts—rather than all 600+ available NSE scripts—enables penetration testers to complete significant reconnaissance work in single commands while identifying critical vulnerabilities like EternalBlue, anonymous access, and dangerous HTTP methods. The material matters because it bridges the gap between foundational Nmap knowledge and professional assessment practices, offering concrete command examples and explaining wh
- The ten core NSE scripts replace manual workThe article identifies ten scripts that consistently appear across professional assessments and replace separate manual tools: smb-vuln-ms17-010 (EternalBlue detection), smb-enum-users (user enumeration), http-enum (directory discovery), http-methods (dangerous HTTP method detection), ssl-heartbleed (Heartbleed vulnerability), ftp-anon (anonymous FTP login), smtp-open-relay (mail relay misconfiguration), vulners (CVE lookup by version), http-title (web server fingerprinting), and ssh-auth-methods (authentication discovery). Each script automates a check that would otherwise take minutes per ho
- smb-vuln-ms17-010 detects EternalBlue safelyDespite being patched in 2017, EternalBlue (MS17-010) remains prevalent in production environments, as evidenced by the article's author account of finding three unpatched Windows 7 machines on an internal assessment in 2026. The script checks for SMB vulnerability without exploiting it, making it safe to run during vulnerability assessments using the command nmap -p 445 --script smb-vuln-ms17-010 TARGET, and can scan entire subnets with output indicating VULNERABLE state when present.
- Distinction between -sC and --script=vulnThe article explains that -sC runs all 'default' category scripts—safe, commonly useful enumeration like banner grabbing and HTTP title detection—while --script=vuln runs all 'vuln' category scripts that perform active vulnerability probing including EternalBlue detection, Heartbleed testing, and CVE checks. Vuln scripts are significantly more intrusive, generate more network traffic, and trigger more IDS alerts than default scripts, making the distinction critical for choosing appropriate scan intensity based on engagement type and authorization level.
- HTTP method detection reveals misconfigurationsThe http-methods script identifies potentially risky HTTP methods—PUT for file upload, DELETE for file deletion, and TRACE for Cross-Site Tracing (XST) attacks—revealing server misconfigurations. The article demonstrates expected output showing supported methods and labels potentially risky ones, enabling rapid identification of dangerous HTTP implementations without manual testing of each method.
- Service version enumeration enables CVE matchingThe vulners script queries the Vulners.com database to identify CVEs matching detected service versions, requiring version detection via the -sV flag. The article provides example output showing cpe:/a:vsftpd:vsftpd:2.3.4 matched to CVE-2011-2523 with CVSS scores, enabling prioritization by score (9.0+ findings prioritized). This automates the manual process of cross-referencing version numbers against CVE databases.
- SMTP open relay detection identifies spam risksThe smtp-open-relay script detects mail servers configured to forward email for arbitrary senders, creating infrastructure risks for spam and phishing campaigns. The article shows detection output indicating '14/16 tests' passed for open relay status and notes that enabled VRFY commands allow user enumeration, demonstrating how a single script identifies multiple related misconfigurations in mail infrastructure.
- Script categories determine safety and noise levelsNSE scripts are categorized as default (safe enumeration), safe (low risk), vuln (active probing), intrusive (network scanning), exploit (active exploitation), dos (denial of service), and brute (credential testing). The article emphasizes checking script category via nmap --script-help before execution and notes that default scripts are generally appropriate for production assessment while exploit and dos categories should never run without explicit authorization, understanding what the script does, and lab testing beforehand.
- Single combined command replaces multiple tool runsThe article demonstrates running all ten scripts against a target in one command: nmap -sV -p 21,22,25,80,443,445,3306 --script ftp-anon,ftp-vsftpd-backdoor,smb-vuln-ms17-010,smb-enum-users,http-enum,http-methods,http-title,ssl-heartbleed,smtp-open-relay,vulners TARGET, providing reconnaissance output that previously required running separate enumeration tools. The -oN flag saves results to file for report evidence, and the --script vuln category shortcut runs all vulnerability detection scripts simultaneously for comprehensive coverage.
Bottom line: Professional penetration testers differentiate themselves by mastering ten targeted NSE scripts that automate enumeration and vulnerability detection across common service categories—reducing assessment time significantly while finding critical vulnerabilities that persistent in production despite age. Before running any NSE script, verify authorization type matches script category (default scripts for standard scans, vuln scripts only for authorized assessments) and understand that dangerous mi
🎯 What You’ll Learn
⏱️ 40 min read · 3 exercises
📊 How do you currently use Nmap?
📋 The 10 Nmap scripts Ethical Hackers Must Know
- smb-vuln-ms17-010 — EternalBlue Detection
- smb-enum-users — SMB User Enumeration
- http-enum — Web Directory Discovery
- http-methods — Dangerous HTTP Method Detection
- ssl-heartbleed — Heartbleed Vulnerability
- ftp-anon — Anonymous FTP Login
- smtp-open-relay — Mail Relay Misconfiguration
- vulners — CVE Lookup per Service Version
- http-title — Web Server Title and Header Fingerprinting
- ssh-auth-methods — SSH Authentication Discovery
1. smb-vuln-ms17-010 — EternalBlue Detection
MS17-010 (EternalBlue) is the SMB vulnerability that powered WannaCry and NotPetya. Despite being patched in 2017, it remains present in unpatched systems encountered on internal network assessments. This script checks for the vulnerability without attempting exploitation — safe to run during a vulnerability assessment.
2. smb-enum-users — SMB User Enumeration
3. http-enum — Web Directory Discovery
4. http-methods — Dangerous HTTP Method Detection
5. ssl-heartbleed — Heartbleed Detection
6. ftp-anon — Anonymous FTP Login
⏱️ Time: 15 minutes · Kali terminal · Metasploitable running
📸 Screenshot your NSE scan output showing VULNERABLE findings and share in #nmap-scripts on Discord.
7. smtp-open-relay — Mail Relay Misconfiguration
8. vulners — CVE Lookup per Service Version
9. http-title — Web Server Title Fingerprinting
10. ssh-auth-methods — SSH Authentication Discovery
⏱️ Time: 8 minutes · No tools required
you would run. Time and stealth matter.
SCENARIO A: Quick triage of 50 Windows servers.
You have 30 minutes. Primary concern: unpatched SMB.
Write the single Nmap command.
SCENARIO B: Full web application pre-assessment.
30 web servers, multiple ports. Need: directories,
titles, methods, SSL status. No IDS concern.
Write the command.
SCENARIO C: Targeted single-host deep scan.
One Linux server, all services. Maximum finding density.
IDS present — need to keep noise moderate.
Write the command — and explain one flag you add for
stealth.
📸 Share your three NSE commands in #nmap-scripts on Discord.
⏱️ Time: 10 minutes · Browser · nmap.org
Step 2: Pick any 3 services you recently found open in a scan
(e.g. RDP, MySQL, MongoDB, Redis, Elasticsearch)
Step 3: For each service, find its NSE scripts in the NSEDoc
Step 4: Note: which category is each script? (safe/intrusive/vuln)
Step 5: Also run on Kali terminal:
ls /usr/share/nmap/scripts/ | grep -i [servicename]
Compare what’s installed vs what NSEDoc lists
Step 6: For one of your three services, run:
nmap –script-help [script-name]
Note what arguments are accepted
📸 Share your three service script discoveries in #nmap-scripts on Discord. Tag #nmapscripts2026
🧠 QUICK CHECK — NSE Scripts
📋 The 10 Scripts — Quick Reference
❓ Frequently Asked Questions
What is the Nmap Scripting Engine (NSE)?
What is the difference between -sC and –script=vuln?
How do I find Nmap scripts for a specific service?
Which scripts are most useful for penetration testing?
Are Nmap scripts safe for production servers?
Nmap Commands — Complete Reference 2026
180-Day Kali Linux Course
📚 Further Reading
- Nmap Commands Complete Reference 2026 — The complete Nmap command reference with every flag and scan type — the companion guide to NSE that covers port scanning, OS detection, and timing options alongside script usage.
- Enum4linux Tutorial 2026 — Day 15 covers dedicated SMB enumeration — use Enum4linux after smb-enum-users confirms user accounts exist for deeper RID cycling and share enumeration that Nmap scripts do not perform.
- 180-Day Kali Linux Mastery Course — The complete course hub — NSE scripts appear throughout the Kali course from Day 1 Nmap foundations through advanced service exploitation in Days 30+.
- Nmap NSEDoc — Official Script Database — The official NSE script documentation — every script with description, category, arguments, and example output. The definitive reference before running any NSE script on an authorised target.
- Vulscan — Enhanced NSE Vulnerability Scanner — A community NSE script that extends Nmap’s vulnerability detection by querying multiple CVE databases simultaneously — more comprehensive than vulners alone for version-based vulnerability lookup.

