Service Enumeration is the process of identifying and gathering detailed information about the services running on open ports. This is essential for understanding what software is running on a target system, what versions are installed, and any potential vulnerabilities associated with those services.

Nmap provides several options to perform service enumeration and version detection. This helps determine specific details like the software name, version, and any potential misconfigurations that could pose a security risk.

-sV (Service Version Detection)

The -sV option enables Nmap to detect service versions by probing open ports with specific service probes. It attempts to determine the exact version of the services running on those ports.

nmap -sV 192.168.1.10

--version-all (Full Version Detection)

The --version-all option is more aggressive and instructs Nmap to attempt every probe it can to detect the version of the services running. This increases the scan time but provides more detailed version information.

nmap -sV --version-all 192.168.1.10

--version-intensity (Adjust Version Detection Intensity)

The --version-intensity option allows you to control the intensity of the version detection. It can range from 0 (lowest) to 9 (highest). Higher intensity levels increase the number of probes sent, which may yield more detailed results but take longer.

nmap -sV --version-intensity 5 192.168.1.10

-sC (Default Scripts for Service Detection)

The -sC option runs the default Nmap scripts, which includes service enumeration and version detection scripts. It’s a quick way to identify running services and their versions with common Nmap scripts.

nmap -sC 192.168.1.10

Example of Full Service Enumeration Scan

This command performs a full service enumeration on all ports with aggressive version detection and default scripts:

nmap -sV -sC --version-intensity 9 192.168.1.10

Key points

  • -sV: Service version detection
  • -sC: Default script scanning
  • --version-intensity 9: Highest level of version detection probes
  • Comprehensive scan for services and versions

Service Enumeration Output Example

Here’s an example of the output when running nmap -sV:

Nmap scan report for 192.168.1.10
Host is up (0.00023s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.29
443/tcp open  https   OpenSSL 1.0.2g
8080/tcp open  http    Apache Tomcat/Coyote JSP engine 9.0.14
 
Nmap done: 1 IP address (1 host up) scanned in 1.34 seconds

Service Enumeration Options Summary

OptionWhat It DoesUse Case
-sVDetects services and their versionsGeneral-purpose service enumeration
--version-allPerforms aggressive version detectionWhen maximum version detail is needed
--version-intensityAdjusts intensity of version detection probesTo fine-tune the speed vs. detail of scans
-sCRuns default service detection scriptsQuick service and version detection
-pLimits scan to specified portsWhen focusing on specific ports
--scriptRuns custom NSE scripts for service enumerationFor deep or specific service queries