Scanning Infrastructure with Nessus
Overview
Tenable Nessus is the industry-leading vulnerability scanner used to identify security weaknesses across network infrastructure including servers, workstations, network devices, and operating systems. This skill covers configuring scan policies, running authenticated and unauthenticated scans, interpreting results, and integrating Nessus into continuous vulnerability management workflows.
When to Use
- When conducting security assessments that involve scanning infrastructure with nessus
- When following incident response procedures for related security events
- When performing scheduled security testing or auditing activities
- When validating security controls through hands-on testing
Detection Gaps & Validation
- Unauthenticated-only scans — miss 45-60% of vulns. Validate credentials with plugin 19506 (Scan Information) showing authenticated checks ran.
- Host discovery gaps — hosts not answering the ping method are skipped. Validate the scanned-host count against the expected target range.
- Excluded fragile systems — SCADA/medical exclusions become blind spots; validate they're covered by a safe policy rather than dropped.
- Stale plugins — validate plugins updated before each scan so recent CVEs are tested.
- Plugin tuning false positives — validate critical findings manually before escalating.
- Network reachability — firewall rules between scanner and target cause silent misses; validate connectivity to management ports first.
Prerequisites
- Nessus Professional or Essentials license installed and activated
- Network access to target systems (firewall rules allowing scanner IP)
- Administrative credentials for authenticated scanning
- Understanding of TCP/IP networking and common services
- Written authorization for scanning target environments
Core Concepts
Nessus Architecture
Nessus operates as a client-server application where the Nessus scanner engine runs as a service (nessusd) on the host system. It uses a plugin-based architecture with over 200,000 plugins updated weekly by Tenable's research team. Each plugin tests for a specific vulnerability, misconfiguration, or compliance check.
Scan Types
- Host Discovery - Identifies live hosts using ICMP, TCP, UDP, and ARP
- Basic Network Scan - Default policy covering common vulnerabilities
- Advanced Scan - Custom policy with granular plugin selection
- Credentialed Patch Audit - Authenticated scan checking installed patches
- Web Application Tests - Scans for web-specific vulnerabilities
- Compliance Audit - Checks against CIS, DISA STIG, PCI DSS benchmarks
Plugin Families
Nessus organizes plugins into families including:
- Operating Systems: Windows, Linux, macOS, Solaris
- Network Devices: Cisco, Juniper, Palo Alto, Fortinet
- Web Servers: Apache, Nginx, IIS, Tomcat
- Databases: Oracle, MySQL, PostgreSQL, MSSQL
- Services: DNS, SMTP, FTP, SSH, SNMP
Workflow
Step 1: Initial Configuration
# Start Nessus service
sudo systemctl start nessusd
sudo systemctl enable nessusd
# CLI management with nessuscli
/opt/nessus/sbin/nessuscli update --all
/opt/nessus/sbin/nessuscli fix --list
# Verify plugin count
/opt/nessus/sbin/nessuscli update --plugins-only
Step 2: Create Scan Policy
Configure a custom scan policy through the Nessus web UI at https://localhost:8834:
- Navigate to Policies > New Policy > Advanced Scan
- Configure General settings: name, description, targets
- Set Discovery settings:
- Host Discovery: Ping methods (ICMP, TCP SYN on ports 22,80,443)
- Port Scanning: SYN scan on common ports or all 65535 ports
- Service Discovery: Probe all ports for services
- Configure Assessment settings:
- Accuracy: Override normal accuracy (reduce false positives)
- Web Applications: Enable if scanning web servers
- Select Plugin families relevant to target environment
Step 3: Configure Credentials
For authenticated scanning, configure credentials under the Credentials tab:
- SSH: Username/password or SSH key pair
- Windows: Domain credentials via SMB, WMI
- SNMP: Community strings (v1/v2c) or USM credentials (v3)
- Database: Oracle, MySQL, PostgreSQL connection strings
- VMware: vCenter or ESXi credentials
Step 4: Run the Scan
# Using Nessus REST API via curl
# Authenticate and get token
curl -k -X POST https://localhost:8834/session \
-d '{"username":"admin","password":"password"}' \
-H "Content-Type: application/json"
# Create scan
curl -k -X POST https://localhost:8834/scans \
-H "X-Cookie: token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"uuid": "<TEMPLATE_UUID>",
"settings": {
"name": "Infrastructure Scan Q1",
"text_targets": "192.168.1.0/24",
"enabled": true,
"launch": "ON_DEMAND"
}
}'
# Launch scan
curl -k -X POST https://localhost:8834/scans/<SCAN_ID>/launch \
-H "X-Cookie: token=<TOKEN>"
# Check scan status
curl -k -X GET https://localhost:8834/scans/<SCAN_ID> \
-H "X-Cookie: token=<TOKEN>"
Step 5: Analyze Results
Nessus categorizes findings by severity:
- Critical (CVSS 9.0-10.0): Immediate remediation required
- High (CVSS 7.0-8.9): Remediate within 7-14 days
- Medium (CVSS 4.0-6.9): Remediate within 30 days
- Low (CVSS 0.1-3.9): Remediate during next maintenance window
- Informational: No immediate action required
Step 6: Export and Report
# Export via REST API
curl -k -X POST "https://localhost:8834/scans/<SCAN_ID>/export" \
-H "X-Cookie: token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"format":"nessus"}'
# Supported formats: nessus (XML), csv, html, pdf
Best Practices
- Schedule scans during maintenance windows to minimize production impact
- Use authenticated scanning for 45-60% more vulnerability detection
- Exclude fragile systems (medical devices, legacy SCADA) from aggressive scans
- Maintain separate scan policies for different network segments
- Update plugins before every scan to catch recently disclosed CVEs
- Validate critical findings manually before escalating to remediation teams
- Implement scan result trending to track remediation progress over time
- Store scan results in Tenable.sc or Tenable.io for centralized management
Common Pitfalls
- Running unauthenticated scans only (misses 45-60% of vulnerabilities)
- Scanning without written authorization (legal and ethical violations)
- Ignoring scan performance impact on production systems
- Failing to tune plugins leading to excessive false positives
- Not validating scanner network connectivity before launching scans
- Using default scan policies without customization for the environment
Related Skills
- performing-authenticated-vulnerability-scan
- prioritizing-vulnerabilities-with-cvss-scoring
- implementing-continuous-vulnerability-monitoring
- performing-network-vulnerability-assessment
1---2name: scanning-infrastructure-with-nessus3description: Tenable Nessus is the industry-leading vulnerability scanner used to identify security weaknesses across network infrastructure including servers, workstations, network devices, and operating systems.4license: Apache-2.05---6# Scanning Infrastructure with Nessus
7
8## Overview
9Tenable Nessus is the industry-leading vulnerability scanner used to identify security weaknesses across network infrastructure including servers, workstations, network devices, and operating systems. This skill covers configuring scan policies, running authenticated and unauthenticated scans, interpreting results, and integrating Nessus into continuous vulnerability management workflows.
10
11
12## When to Use
13
14- When conducting security assessments that involve scanning infrastructure with nessus
15- When following incident response procedures for related security events
16- When performing scheduled security testing or auditing activities
17- When validating security controls through hands-on testing
18
19## Detection Gaps & Validation
20
21- **Unauthenticated-only scans** — miss 45-60% of vulns. Validate credentials with plugin 19506 (Scan Information) showing authenticated checks ran.
22- **Host discovery gaps** — hosts not answering the ping method are skipped. Validate the scanned-host count against the expected target range.
23- **Excluded fragile systems** — SCADA/medical exclusions become blind spots; validate they're covered by a safe policy rather than dropped.
24- **Stale plugins** — validate plugins updated before each scan so recent CVEs are tested.
25- **Plugin tuning false positives** — validate critical findings manually before escalating.
26- **Network reachability** — firewall rules between scanner and target cause silent misses; validate connectivity to management ports first.
27
28## Prerequisites
29- Nessus Professional or Essentials license installed and activated
30- Network access to target systems (firewall rules allowing scanner IP)
31- Administrative credentials for authenticated scanning
32- Understanding of TCP/IP networking and common services
33- Written authorization for scanning target environments
34
35## Core Concepts
36
37### Nessus Architecture
38Nessus operates as a client-server application where the Nessus scanner engine runs as a service (nessusd) on the host system. It uses a plugin-based architecture with over 200,000 plugins updated weekly by Tenable's research team. Each plugin tests for a specific vulnerability, misconfiguration, or compliance check.
39
40### Scan Types
411. **Host Discovery** - Identifies live hosts using ICMP, TCP, UDP, and ARP
422. **Basic Network Scan** - Default policy covering common vulnerabilities
433. **Advanced Scan** - Custom policy with granular plugin selection
444. **Credentialed Patch Audit** - Authenticated scan checking installed patches
455. **Web Application Tests** - Scans for web-specific vulnerabilities
466. **Compliance Audit** - Checks against CIS, DISA STIG, PCI DSS benchmarks
47
48### Plugin Families
49Nessus organizes plugins into families including:
50- **Operating Systems**: Windows, Linux, macOS, Solaris
51- **Network Devices**: Cisco, Juniper, Palo Alto, Fortinet
52- **Web Servers**: Apache, Nginx, IIS, Tomcat
53- **Databases**: Oracle, MySQL, PostgreSQL, MSSQL
54- **Services**: DNS, SMTP, FTP, SSH, SNMP
55
56## Workflow
57
58### Step 1: Initial Configuration
59```bash
60# Start Nessus service
61sudo systemctl start nessusd
62sudo systemctl enable nessusd
63
64# CLI management with nessuscli
65/opt/nessus/sbin/nessuscli update --all
66/opt/nessus/sbin/nessuscli fix --list
67
68# Verify plugin count
69/opt/nessus/sbin/nessuscli update --plugins-only
70```
71
72### Step 2: Create Scan Policy
73Configure a custom scan policy through the Nessus web UI at https://localhost:8834:
74
751. Navigate to Policies > New Policy > Advanced Scan
762. Configure General settings: name, description, targets
773. Set Discovery settings:
78 - Host Discovery: Ping methods (ICMP, TCP SYN on ports 22,80,443)
79 - Port Scanning: SYN scan on common ports or all 65535 ports
80 - Service Discovery: Probe all ports for services
814. Configure Assessment settings:
82 - Accuracy: Override normal accuracy (reduce false positives)
83 - Web Applications: Enable if scanning web servers
845. Select Plugin families relevant to target environment
85
86### Step 3: Configure Credentials
87For authenticated scanning, configure credentials under the Credentials tab:
88- **SSH**: Username/password or SSH key pair
89- **Windows**: Domain credentials via SMB, WMI
90- **SNMP**: Community strings (v1/v2c) or USM credentials (v3)
91- **Database**: Oracle, MySQL, PostgreSQL connection strings
92- **VMware**: vCenter or ESXi credentials
93
94### Step 4: Run the Scan
95```
96# Using Nessus REST API via curl
97# Authenticate and get token
98curl -k -X POST https://localhost:8834/session \
99 -d '{"username":"admin","password":"password"}' \
100 -H "Content-Type: application/json"
101
102# Create scan
103curl -k -X POST https://localhost:8834/scans \
104 -H "X-Cookie: token=<TOKEN>" \
105 -H "Content-Type: application/json" \
106 -d '{
107 "uuid": "<TEMPLATE_UUID>",
108 "settings": {
109 "name": "Infrastructure Scan Q1",
110 "text_targets": "192.168.1.0/24",
111 "enabled": true,
112 "launch": "ON_DEMAND"
113 }
114 }'
115
116# Launch scan
117curl -k -X POST https://localhost:8834/scans/<SCAN_ID>/launch \
118 -H "X-Cookie: token=<TOKEN>"
119
120# Check scan status
121curl -k -X GET https://localhost:8834/scans/<SCAN_ID> \
122 -H "X-Cookie: token=<TOKEN>"
123```
124
125### Step 5: Analyze Results
126Nessus categorizes findings by severity:
127- **Critical (CVSS 9.0-10.0)**: Immediate remediation required
128- **High (CVSS 7.0-8.9)**: Remediate within 7-14 days
129- **Medium (CVSS 4.0-6.9)**: Remediate within 30 days
130- **Low (CVSS 0.1-3.9)**: Remediate during next maintenance window
131- **Informational**: No immediate action required
132
133### Step 6: Export and Report
134```bash
135# Export via REST API
136curl -k -X POST "https://localhost:8834/scans/<SCAN_ID>/export" \
137 -H "X-Cookie: token=<TOKEN>" \
138 -H "Content-Type: application/json" \
139 -d '{"format":"nessus"}'
140
141# Supported formats: nessus (XML), csv, html, pdf
142```
143
144## Best Practices
1451. Schedule scans during maintenance windows to minimize production impact
1462. Use authenticated scanning for 45-60% more vulnerability detection
1473. Exclude fragile systems (medical devices, legacy SCADA) from aggressive scans
1484. Maintain separate scan policies for different network segments
1495. Update plugins before every scan to catch recently disclosed CVEs
1506. Validate critical findings manually before escalating to remediation teams
1517. Implement scan result trending to track remediation progress over time
1528. Store scan results in Tenable.sc or Tenable.io for centralized management
153
154## Common Pitfalls
155- Running unauthenticated scans only (misses 45-60% of vulnerabilities)
156- Scanning without written authorization (legal and ethical violations)
157- Ignoring scan performance impact on production systems
158- Failing to tune plugins leading to excessive false positives
159- Not validating scanner network connectivity before launching scans
160- Using default scan policies without customization for the environment
161
162## Related Skills
163- performing-authenticated-vulnerability-scan
164- prioritizing-vulnerabilities-with-cvss-scoring
165- implementing-continuous-vulnerability-monitoring
166- performing-network-vulnerability-assessment