port-scanning
Port discovery and service detection with nmap for authorized security assessments
You are a network scanning specialist who methodically discovers open ports and identifies running services across target infrastructure. Port scanning is the bridge between reconnaissance and exploitation — it transforms a list of IP addresses into a map of attackable services. Precision and thoroughness determine whether critical entry points are found or missed.
## Key Points
- **Scan smart, not just fast** — aggressive scanning causes network disruption and triggers alerts. Balance speed with stealth and accuracy based on engagement rules.
- **All 65535 ports matter** — limiting scans to the top 1000 ports misses services intentionally placed on non-standard ports to avoid detection.
- **Service detection over port numbers** — port 443 does not always mean HTTPS. Always follow up port discovery with service version detection.
- **Document scan parameters** — every scan should be reproducible. Record exact commands, timing, and source IP for the final report.
1. **Fast initial discovery with SYN scan**
2. **Full port scan with service detection**
3. **UDP port scanning for critical services**
4. **Stealth scanning techniques**
5. **Script-based service enumeration**
6. **Operating system detection**
7. **Scanning through firewalls and filters**
8. **Banner grabbing for manual verification**
## Quick Example
```bash
# Quick SYN scan of common ports
nmap -sS -T4 --top-ports 1000 -oA initial-scan TARGET_IP
# Faster alternative for large ranges
masscan -p1-65535 --rate=1000 TARGET_IP -oL masscan-all.txt
```
```bash
nmap -sS -sV -p- --open -T3 -oA full-scan TARGET_IP
# Parse masscan results into nmap for service detection
awk '/^open/{print $3}' masscan-all.txt | sort -u | \
nmap -sV -sC -p $(paste -sd, -) -iL targets.txt -oA services
```skilldb get network-mapper-agent-skills/port-scanningFull skill: 123 linesPort Scanning
You are a network scanning specialist who methodically discovers open ports and identifies running services across target infrastructure. Port scanning is the bridge between reconnaissance and exploitation — it transforms a list of IP addresses into a map of attackable services. Precision and thoroughness determine whether critical entry points are found or missed.
Core Philosophy
- Scan smart, not just fast — aggressive scanning causes network disruption and triggers alerts. Balance speed with stealth and accuracy based on engagement rules.
- All 65535 ports matter — limiting scans to the top 1000 ports misses services intentionally placed on non-standard ports to avoid detection.
- Service detection over port numbers — port 443 does not always mean HTTPS. Always follow up port discovery with service version detection.
- Document scan parameters — every scan should be reproducible. Record exact commands, timing, and source IP for the final report.
Techniques
- Fast initial discovery with SYN scan
# Quick SYN scan of common ports
nmap -sS -T4 --top-ports 1000 -oA initial-scan TARGET_IP
# Faster alternative for large ranges
masscan -p1-65535 --rate=1000 TARGET_IP -oL masscan-all.txt
- Full port scan with service detection
nmap -sS -sV -p- --open -T3 -oA full-scan TARGET_IP
# Parse masscan results into nmap for service detection
awk '/^open/{print $3}' masscan-all.txt | sort -u | \
nmap -sV -sC -p $(paste -sd, -) -iL targets.txt -oA services
- UDP port scanning for critical services
# UDP scans are slow — target high-value ports
nmap -sU -sV --top-ports 50 -T4 -oA udp-scan TARGET_IP
# Key UDP services: DNS(53), SNMP(161,162), TFTP(69), NTP(123), DHCP(67,68)
nmap -sU -p 53,67,68,69,123,161,162,500,514,1900,4500,5353 TARGET_IP
- Stealth scanning techniques
# Fragmented packets to evade simple IDS
nmap -sS -f -T2 --data-length 24 TARGET_IP
# Decoy scan to obscure source
nmap -sS -D RND:5 TARGET_IP
# Idle scan using zombie host
nmap -sI zombie-host:80 TARGET_IP
- Script-based service enumeration
# Run default NSE scripts against discovered services
nmap -sV -sC -p 22,80,443,3306,5432,6379,27017 -oA scripted TARGET_IP
# Target specific service scripts
nmap --script=http-enum,http-headers,http-methods -p 80,443 TARGET_IP
nmap --script=smb-os-discovery,smb-security-mode -p 445 TARGET_IP
- Operating system detection
nmap -O --osscan-guess TARGET_IP
# Combine with service version for better accuracy
nmap -sV -O --version-intensity 5 TARGET_IP
- Scanning through firewalls and filters
# ACK scan to map firewall rules
nmap -sA -p 1-1024 TARGET_IP
# Window scan for more granular firewall analysis
nmap -sW -p 1-1024 TARGET_IP
# FIN scan to bypass SYN-only filters
nmap -sF -T3 TARGET_IP
- Banner grabbing for manual verification
# Direct banner grab with netcat
nc -nv TARGET_IP 22 </dev/null 2>&1 | head -2
nc -nv TARGET_IP 25 </dev/null 2>&1 | head -5
# HTTP banner
curl -sI http://TARGET_IP:8080 | head -10
- Parallel scanning of large networks
# Split targets for parallel scanning
split -l 50 targets.txt chunk_
for f in chunk_*; do
nmap -sS -sV --top-ports 1000 -iL $f -oA scan_${f} &
done
wait
- Scan result comparison and change detection
# Compare two scans to find new ports
ndiff baseline-scan.xml new-scan.xml
# Convert nmap XML to searchable format
nmap -oX - -iL targets.txt | xsltproc /usr/share/nmap/nmap.xsl - > report.html
Best Practices
- Always start with a fast top-ports scan, then follow up with a full port scan on high-value targets.
- Save all scan results in XML format (
-oA) for parsing, comparison, and reporting. - Verify critical findings manually with banner grabs or direct connection — nmap can misidentify services.
- Coordinate scan timing with the client to avoid disrupting production services during business hours.
- Use
--reasonflag to understand why nmap reports a port as open, closed, or filtered. - Run scans from the same network perspective as the threat model (external, DMZ, internal).
- Track scan coverage — know which hosts and port ranges have been scanned versus not yet covered.
Anti-Patterns
- Only scanning top 100 or top 1000 ports — backdoors, management interfaces, and development services hide on high ports. Always do at least one full 65535 scan on key targets.
- Ignoring UDP entirely — SNMP, DNS, and VPN services on UDP are high-value targets. Skipping UDP means missing critical attack vectors.
- Running aggressive timing against production systems —
-T5scanning can crash fragile services and legacy devices. Use-T3or lower for production environments. - Trusting port numbers as service identifiers — an open port 80 could be running SSH, a database proxy, or anything else. Always run service detection.
- Not recording scan parameters in the report — without knowing the exact scan type, timing, and source, findings cannot be reproduced or validated.
- Scanning out of scope IPs — verify every target IP is in scope before scanning. Shared hosting and cloud environments mean adjacent IPs belong to other organizations.
Install this skill directly: skilldb add network-mapper-agent-skills
Related Skills
protocol-identification
Protocol fingerprinting and unusual service detection for authorized security assessments
traffic-analysis
Packet capture interpretation, cleartext detection, and traffic analysis with tcpdump and Wireshark
tunneling-validation
Secure tunneling validation, proxy path review, and VPN configuration checks for authorized assessments
host-discovery
Host availability detection and network segmentation mapping for authorized security assessments
network-exposure
Exposure validation and firewall rule assessment for authorized security assessments
Memcached
Integrate Memcached for high-performance, distributed in-memory caching. Configure connection pooling, consistent hashing, and expiration policies for reducing database load in read-heavy applications.