The Nmap Scripting Engine
NSE scripts.
The Nmap Scripting Engine is a free Ethical Hacking Academy lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Ethical Hacking Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
What Is the NSE?
The Nmap Scripting Engine (NSE) extends Nmap with scripts written in Lua. It turns Nmap from a port scanner into a flexible automation platform for discovery, version detection, vulnerability checks, and more.
Thousands of community scripts ship with Nmap, covering an enormous range of services and tasks.
Script Categories
NSE scripts are grouped into categories that describe their behavior and risk:
- safe: unlikely to harm the target.
- intrusive: may crash or disrupt services.
- vuln: checks for known vulnerabilities.
- auth, brute, discovery, exploit, malware: focused purposes.
Categories let you run a whole class of scripts at once.
Default Scripts
The -sC flag runs the default script set, a curated group of safe, useful scripts. It is equivalent to --script=default.
This is a great first pass: it grabs banners, enumerates basic info, and finds low-hanging detail without being intrusive.
nmap -sC 192.168.1.10
# Runs the default safe script setRunning Specific Scripts
Use --script to run a named script, a comma list, a category, or even a wildcard pattern.
nmap --script http-title 192.168.1.10
nmap --script 'http-*' 192.168.1.10Running by Category
You can launch entire categories. Running the vuln category checks the target against many known-vulnerability scripts at once.
Combine categories with boolean expressions to control exactly what runs.
nmap --script vuln 192.168.1.10
nmap --script 'safe and discovery' 192.168.1.10Script Arguments
Many scripts accept arguments via --script-args, for example credentials, wordlist paths, or target URLs.
nmap --script http-brute \
--script-args http-brute.path=/admin 192.168.1.10Vulnerability Scanning
NSE includes powerful vuln scripts. vulners queries a CVE database based on detected versions, while service-specific scripts test exact flaws like smb-vuln-ms17-010 (EternalBlue).
These checks must be authorized; vuln scripts can be intrusive and may affect fragile systems.
nmap -sV --script vulners 192.168.1.10
nmap --script smb-vuln-ms17-010 -p445 192.168.1.10Where Scripts Live
Scripts are stored in Nmap's scripts directory, typically /usr/share/nmap/scripts. An index database lets Nmap resolve categories and names.
After adding new scripts, refresh the index so they are recognized.
ls /usr/share/nmap/scripts | grep smb
nmap --script-updatedbFinding the Right Script
To discover useful scripts, search the scripts directory or read help text. The --script-help flag prints a script's description and arguments before you run it.
nmap --script-help http-enum
# Shows what the script does and its argsCombining NSE With Other Flags
NSE shines when combined with version detection so scripts know which services to target. A typical thorough scan pairs -sV with scripts and saves output.
Use intrusive categories cautiously and always within your authorized scope.
nmap -sV -sC -p- -oA full_scan 192.168.1.10Writing Your Own Scripts
Because NSE uses Lua, you can write custom scripts for unusual services or repeated checks. A script defines which ports/services it targets (a rule) and an action function that runs against matches.
You do not need to write scripts to be effective, but knowing the engine is extensible explains why NSE keeps growing and why a script likely exists for almost any service you meet.
Quick Check
Reason about script categories and risk.
Recap
You learned the Nmap Scripting Engine:
- NSE runs Lua scripts grouped into categories (safe, intrusive, vuln, brute, etc.).
-sCruns the safe default set;--scriptruns names, patterns, or categories.- Pass
--script-argsfor credentials and options; check--script-helpfirst. - Vuln scripts like vulners and smb-vuln-ms17-010 find known flaws.
- Combine with
-sVand save with-oA; use intrusive scripts only when authorized.
This completes Nmap Deep Dive and the EthicalHacking extra modules.
Frequently asked questions
Is the “The Nmap Scripting Engine” lesson free?
Yes — the full text of “The Nmap Scripting Engine” is free to read here on the web, and the Ethical Hacking Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Ethical Hacking Academy course, upgrade to CoddyKit PRO.
What will I learn in “The Nmap Scripting Engine”?
NSE scripts. You practise Ethical Hacking Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Ethical Hacking Academy?
No prior experience is required. Ethical Hacking Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “The Nmap Scripting Engine” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Ethical Hacking Academy lesson?
Yes. Every Ethical Hacking Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Host Discovery
- Port Scanning Techniques
- Service and OS Detection
- The Nmap Scripting Engine