Vulnerability Assessment with Nmap
Learn how to use Nmap for identifying potential security weaknesses in networks and systems
Nmap is a powerful tool for vulnerability assessment, allowing security professionals to identify potential security weaknesses in networks and systems. This guide explores how to use Nmap effectively for vulnerability scanning and assessment.
Basic Vulnerability Scanning
Using the vuln Script Category
nmap --script=vuln 192.168.1.1
Runs all vulnerability detection scripts against the target.
Specific Vulnerability Check
nmap --script=ssl-heartbleed -p 443 192.168.1.1
Checks for the Heartbleed vulnerability on port 443.
Multiple Vulnerability Checks
nmap --script=vuln,exploit -p 1-1000 192.168.1.1
Runs both vulnerability and exploit scripts against ports 1-1000.
Comprehensive Vulnerability Assessment
Assessment Methodology
A systematic approach to vulnerability assessment with Nmap typically follows these steps:
-
Reconnaissance: Gather information about the target
nmap -sn 192.168.1.0/24
-
Service Enumeration: Identify services and versions
nmap -sV -p- 192.168.1.1
-
Vulnerability Scanning: Check for known vulnerabilities
nmap --script=vuln 192.168.1.1
-
Targeted Assessment: Focus on specific services
nmap --script=http-vuln* -p 80,443 192.168.1.1
-
Configuration Analysis: Check for misconfigurations
nmap --script=ssl-enum-ciphers,ssh-auth-methods -p 22,443 192.168.1.1
-
Documentation: Save and analyze results
nmap --script=vuln 192.168.1.1 -oA vulnerability_assessment
This methodical approach ensures thorough coverage and helps prioritize remediation efforts.
Key NSE Scripts for Vulnerability Assessment
The Nmap Scripting Engine includes numerous scripts specifically designed for vulnerability assessment:
General Vulnerability Scripts
vuln
: Category containing all vulnerability detection scriptsexploit
: Scripts that may attempt to exploit vulnerabilitiesintrusive
: Scripts that might disrupt services
Web Application Scripts
http-vuln*
: Detects vulnerabilities in web servers and applicationshttp-enum
: Enumerates directories, files, and potential vulnerabilitieshttp-csrf
: Checks for Cross-Site Request Forgery vulnerabilitieshttp-sql-injection
: Tests for SQL injection vulnerabilities
Network Service Scripts
ssl-heartbleed
: Checks for the Heartbleed vulnerabilityssl-poodle
: Detects POODLE vulnerabilitysmb-vuln*
: Checks for Windows/SMB vulnerabilitiesftp-anon
: Checks for anonymous FTP access
Authentication Scripts
ssh-brute
: Tests for weak SSH credentialshttp-brute
: Tests for weak HTTP authenticationmysql-brute
: Tests for weak MySQL credentials
To see all available vulnerability scripts:
ls /usr/share/nmap/scripts/*vuln*
Or to get help for a specific script:
nmap --script-help=ssl-heartbleed
Output Analysis and Reporting
Analyzing and reporting vulnerability assessment results is crucial:
Saving Results
nmap --script=vuln 192.168.1.0/24 -oA vulnerability_scan
This creates three output files:
vulnerability_scan.nmap
: Human-readable formatvulnerability_scan.xml
: XML format for parsingvulnerability_scan.gnmap
: Grepable format
Converting to HTML Report
xsltproc vulnerability_scan.xml -o vulnerability_report.html
Extracting Specific Vulnerabilities
grep "VULNERABLE" vulnerability_scan.nmap
Prioritizing Findings
When analyzing results, prioritize vulnerabilities based on:
- Severity (critical, high, medium, low)
- Exploitability (how easily it can be exploited)
- Potential impact (data breach, system compromise, etc.)
- Affected systems (critical vs. non-critical)
Remediation Planning
For each vulnerability, document:
- Affected systems
- Vulnerability details
- Recommended remediation steps
- Verification method
Targeted Vulnerability Assessments
Web Application Assessment
# Basic web vulnerability scan
nmap --script=http-vuln* -p 80,443,8080,8443 192.168.1.1
# Comprehensive web application assessment
nmap -sV --script="http-*,(http-*)" -p 80,443,8080,8443 192.168.1.1
# WordPress vulnerability scan
nmap --script=http-wordpress-enum,http-wordpress-users,http-wordpress-brute 192.168.1.1
Network Infrastructure Assessment
# Router/switch vulnerability scan
nmap --script="(vuln and safe)" -p 22,23,80,443 192.168.1.1
# Cisco device assessment
nmap --script=cisco-config,cisco-vuln* 192.168.1.1
# Network device credential check
nmap --script=snmp-brute -p 161 192.168.1.0/24
Database Server Assessment
# MySQL vulnerability assessment
nmap --script="mysql-* and (vuln or brute or auth)" -p 3306 192.168.1.1
# MS SQL Server assessment
nmap --script="ms-sql-* and (vuln or brute or auth)" -p 1433 192.168.1.1
# PostgreSQL assessment
nmap --script="pgsql-* and (vuln or brute or auth)" -p 5432 192.168.1.1
Practical Assessment Scenarios
Initial Discovery and Assessment
# Discover active hosts
nmap -sn 10.0.0.0/16 -oA enterprise_hosts
# Identify services
nmap -sV --top-ports 1000 10.0.0.0/16 -oA enterprise_services
# Vulnerability assessment
nmap --script="vuln and safe" 10.0.0.0/16 -oA enterprise_vulns
Critical Infrastructure Assessment
# Assess core network devices
nmap -sV --script="(vuln or default) and safe" -p 22,23,80,443 10.0.0.1-50
# Assess authentication servers
nmap -sV --script="auth,default,vuln" -p 389,636,88,464 10.0.0.100-110
Best Practices for Vulnerability Assessment
- Obtain proper authorization: Always ensure you have permission to perform vulnerability scans
- Start with safe scripts: Begin with non-intrusive scripts before running potentially disruptive ones
- Scan during off-hours: Schedule intensive scans during periods of low network activity
- Validate findings: Manually verify vulnerabilities to eliminate false positives
- Document everything: Maintain detailed records of scan parameters, findings, and recommendations
- Regular reassessment: Perform vulnerability assessments regularly to identify new issues
Next Steps
Now that you understand how to use Nmap for vulnerability assessment, you can explore:
- Firewall Evasion - Learn techniques for bypassing network security controls
- Best Practices - Discover guidelines for effective and responsible use of Nmap