Vulnerability Scanning Concepts and Scan Types

Tested on Kali GNU/Linux Rolling 2026.2 (kali-rolling)
Package nmap 7.99+dfsg-1kali1
nikto 1:2.6.0-0kali4
Lab environment Pentest lab
Cert prep CompTIA PenTest+ PT0-003 — vulnerability discovery, analysis, and application-testing concepts
Privilege Normal user for connect scans and Nikto; sudo for raw SYN scans and some Nmap NSE scripts
Scope Vulnerability scanning versus assessment and penetration testing; authenticated versus unauthenticated; internal versus external; network versus host and agent-based visibility; scan timing and intensity; compliance-oriented checks; CVE/CWE/CVSS triage; and SAST/DAST/IAST/SCA overviews. Lab demos use unauthenticated Nmap NSE and Nikto against Metasploitable 2. Does not cover full OpenVAS deployment or exploit development.
Related guides Banner grabbing
Short on time?Beta Get the gist of this 12-minute read in seconds, then ask follow-up questions

Vulnerability scanning matches hosts and applications against known weakness signatures—outdated software, unsafe configurations, or plugin checks. A scanner reports a candidate issue; you still validate reachability, business impact, and exploitability before you treat it as a confirmed finding.

PenTest+ expects you to distinguish scan categories that answer different questions: where the scan runs (internal versus external), whether credentials are used (authenticated versus unauthenticated), how the target is inspected (network versus host), and—separately—how application code is tested (SAST, DAST, IAST, SCA). Short lab demos on Metasploitable 2 show unauthenticated network and web scans from Kali.

IMPORTANT
Run vulnerability scans only against hosts and networks defined in your rules of engagement. Automated probes can trip IDS alerts, fill SIEM queues, and affect production performance—even when you never exploit a finding.

Vulnerability scanning vs assessment vs penetration testing

These terms overlap in conversation but mean different depths of work:

Activity What it does Typical output
Vulnerability scan Automated checks against signatures, versions, or baselines A list of possible weaknesses
Vulnerability assessment Scan results plus triage, prioritization, and business context Ranked findings with validation notes
Penetration test Controlled manual testing, chaining, and exploitation within scope Proof of impact and attack paths

A scanner might flag “Apache 2.2.8 appears outdated.” Assessment asks whether that service is exposed on a path you care about and whether compensating controls exist. Penetration testing goes further—proving an attacker could abuse the weakness in your environment.

On Linux, do not judge vulnerability status from the upstream version string alone. Distributions often backport security fixes while retaining an older-looking package version, so scanner version matches need vendor advisory cross-checks—not only CVE text.


Vulnerability scan types at a glance

Infrastructure vulnerability scanning uses several independent axes. They are not interchangeable labels:

Category axis Examples What it describes
Perspective External, internal, DMZ Where the scanner sits relative to trust boundaries
Credentials Unauthenticated, authenticated (credentialed) Whether the engine logs in or probes from the outside only
Inspection Network, host/local, agent-based Remote service probes versus logged-in or agent-collected state
Intensity -T0 polite through -T5 aggressive Probe rate and timing—not a separate scanner product
Compliance CIS, STIG-style baselines Hardening and policy checks beyond CVE-only matching
Application testing SAST, DAST, IAST, SCA How source code, running apps, and dependencies are tested

Use network reconnaissance with Nmap when you still need live hosts and open ports. Vulnerability scanning layers on top of that map.


Internal vs external vulnerability scanning

Internal and external describe where the scan originates—not whether credentials are used.

Scan Scanner location / perspective Typical purpose
External Outside the trusted network (Internet or untrusted WAN) Internet-facing exposure, perimeter services
Internal Inside the corporate or user network Lateral-movement risk, missing patches on internal VLANs
DMZ From a segmented perimeter zone Services reachable after perimeter controls

An internal scan can still be unauthenticated—your scanner might probe SMB on 10.0.0.0/8 without logging in. An internal authenticated scan, by contrast, can read installed packages and local policy settings that no remote port banner reveals.

External plus unauthenticated modeling is what the Nmap and Nikto demos below represent: Kali on a lab network probing Metasploitable without credentials.


Authenticated vs unauthenticated vulnerability scanning

Dimension Unauthenticated Authenticated (credentialed)
Attacker model No valid login—remote probes only Valid SSH, SMB/WinRM, SNMPv3, or scanner API credentials
Visibility Open ports and remotely reachable services Installed packages, registry data, local policies
Blind spots Cannot see patch state behind authenticated management May miss network-only issues if scope is host-inventory only
Operational risk Lower account impact Credential handling, lockout risk, host load

On an engagement, credentialed scanning uses RoE-supplied accounts. The engine logs in remotely—SSH on Linux, SMB or WinRM on Windows—and compares inventories to CVE feeds. That is different from installing a permanent agent on the endpoint.

Authenticated does not automatically mean complete. Credentialed scan depth depends on the supplied account. A low-privilege login may expose package information on Linux but still miss protected registry, patch, or configuration data on Windows.

The Nikto demo later shows Apache 2.2.8 is reachable without credentials. A credentialed host scan could add whether other packages share the same patch gap and whether local baselines fail compliance checks.


Network, host, and agent-based scanning

Approach How it works Example
Network vulnerability scan Probes services over the network from a scanner host nmap --script smb-vuln* from Kali
Host / local assessment (credentialed) Scanner logs in remotely and runs local checks—no agent required OpenVAS/GVM SSH task, Nessus credentialed scan
Agent-based monitoring Endpoint agent reports state continuously Wazuh, OSSEC, EDR compliance modules

Network scans scale across subnets quickly. Host/local assessment sees installed software and configuration that never appears on a port banner. Agent-based tools suit continuous monitoring; credentialed remote scans suit periodic assessment windows.


Run an unauthenticated network vulnerability scan

Export your lab target once per shell session. Replace the IP if your lease differs:

bash
TARGET=192.168.56.127
LAB=/tmp/vuln-scan-lab
mkdir -p "$LAB"

An unauthenticated network scan probes services from Kali without logging into the target. It mirrors an external attacker who only has network reachability.

Run a targeted SMB vulnerability script against Metasploitable port 445:

bash
nmap -Pn -p445 --script smb-vuln-ms10-061,smb-vuln-ms17-010 "$TARGET"

Sample output:

output
Starting Nmap 7.99 ( https://nmap.org ) at 2026-08-31 10:08 -0700
Nmap scan report for 192.168.56.127
Host is up (0.0012s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
|_smb-vuln-ms10-061: false

Nmap done: 1 IP address (1 host up) scanned in 1.43 seconds

The script checked for a known SMB print-spooler flaw and reported false on this lab image. That is still useful evidence: the check ran, and the host did not match that signature. Scanning does not mean every test finds a vulnerability. Broader categories such as --script vuln exist, but they run longer and are noisier—match script choice to RoE time and scope. See Nmap NSE scripts for category selection.


Run an unauthenticated web vulnerability scan

DAST-style tools test a running application from the outside without source code. Nikto is useful here as a lightweight external web-server vulnerability scanner. Full DAST platforms such as OWASP ZAP or Burp Suite analyze broader application paths, parameters, and workflows—not just server banners and known risky files.

Cap runtime so a lab sweep does not run for an hour:

bash
nikto -h "http://${TARGET}/" -maxtime 45s -o "$LAB/nikto.txt" -Format txt

Sample output (trimmed):

output
+ Server: Apache/2.2.8 (Ubuntu) DAV/2
+ Apache/2.2.8 appears to be outdated (current is at least 2.4.66).
+ PHP/5.2.4-2ubuntu5.10 appears to be outdated (current is at least 8.5.1).
+ /: Suggested security header missing: x-content-type-options.
+ /: HTTP TRACE method is active and replies which suggests the host is vulnerable to XST.
+ /phpinfo.php: Output from the phpinfo() function was found.

Nikto flagged outdated Apache and PHP builds, missing security headers, and an exposed phpinfo.php page. The “current is at least” version text comes from Nikto's local plugin database and may change after updates—treat it as a lead, not a universal current-version fact.

Confirm manually before you call any line a reportable finding. WordPress-specific coverage belongs in WPScan, not a generic Nikto pass.


Scan timing, intensity, and "stealth"

Scan intensity controls probe rate and timing. Nmap labels -T0 through -T5 as timing templates; lower values send fewer packets per second. That can reduce how quickly a scan trips rate-based thresholds—but it is not invisibility.

Compare aggressive versus polite timing on one authorized port:

bash
nmap -Pn -p80 -T4 "$TARGET"

Sample output:

output
Nmap scan report for 192.168.56.127
Host is up (0.0012s latency).
PORT   STATE SERVICE
80/tcp open  http
Nmap done: 1 IP address (1 host up) scanned in 1.29 seconds

Run the same check with a slower template:

bash
nmap -Pn -p80 -T2 "$TARGET"

Sample output:

output
Nmap scan report for 192.168.56.127
Host is up (0.0012s latency).
PORT   STATE SERVICE
80/tcp open  http
Nmap done: 1 IP address (1 host up) scanned in 3.78 seconds

Same open port—the slower template took longer because Nmap waited between probes. Other scan-control options include SYN scanning (-sS with sudo), narrower port lists, --scan-delay, and explicit rate limits. SYN scans are sometimes historically called “stealth scans,” but modern IDS and firewalls still detect them. Match intensity to the RoE.


SAST, DAST, IAST, and SCA

Application security testing uses a separate taxonomy from infrastructure vulnerability scans. These models answer how code and dependencies are inspected—not where the scanner sits on the network.

SAST (Static Application Security Testing)

SAST analyzes source code or bytecode without running the app. It runs in CI pipelines and finds patterns such as hard-coded secrets, unsafe functions, or SQL strings built from user input.

  • Runs before deploy
  • Can produce false positives that require developer or security triage
  • Examples: Bandit (Python), Semgrep, SonarQube

DAST (Dynamic Application Security Testing)

DAST tests the running application from the outside. OWASP describes DAST tools as web application scanners that exercise live HTTP paths against a deployed build.

  • No source code required
  • May miss dead code paths never reachable in the test crawl
  • Examples: OWASP ZAP, Burp Suite active scanning; Nikto for lighter server-focused checks

IAST (Interactive Application Security Testing)

IAST combines runtime monitoring with code instrumentation. An agent watches live requests and maps flaws to source lines when a dangerous sink executes during testing.

  • Runtime context can improve confidence for exercised code paths
  • Requires agent install and purposeful test traffic
  • Common in enterprise SDLC pipelines

SCA (Software Composition Analysis)

SCA scans dependency manifests and lockfiles for known vulnerable third-party components. OWASP frames SCA around vulnerabilities in libraries your application imports—not your own source lines.

  • Critical for supply-chain risk
  • Examples: npm audit, pip-audit
  • Tools such as Trivy can also inspect container images, including OS packages, application dependencies, and image misconfigurations beyond pure manifest SCA

Compliance / configuration scanning

Compliance scanning checks a host against a security baseline or standard such as CIS rather than only matching CVE signatures. Results may include password-policy failures, unnecessary services, filesystem permissions, or other hardening gaps. Many enterprise scanners bundle CVE and compliance checks in one credentialed task.


CVE, CWE, and CVSS for scan results

When a scanner cites a CVE, cross-check it before you report:

Resource Purpose
CVE Public identifier for a specific disclosed flaw
CWE Common weakness type behind many CVEs (for example SQL injection class)
CVSS Standardized severity scoring

CVSS v4.0—the current specification—uses Base, Threat, Environmental, and Supplemental metric groups. Older CVSS v3.x references use the term Temporal metrics for time-varying factors such as exploit availability.

CVSS base score helps prioritize triage; it does not replace validation or business context. A critical CVE on an internal-only lab VM and the same CVE on an Internet-facing payment API do not carry equal risk. Penetration test remediation covers prioritization beyond CVSS alone.


Vulnerability scanning troubleshooting

Symptom Likely cause Fix
Scanner reports nothing Wrong $TARGET, host down, or filtered ports Ping or nmap -sn; confirm lab IP
Thousands of Nikto lines Default deep crawl on old PHP lab Use -maxtime; tune -Tuning; validate manually
Nmap vuln scripts hang Slow or buggy NSE checks on legacy SMB Target specific scripts instead of full vuln category
Credentialed scan fails Bad SSH/SMB creds or account lockout Confirm RoE-supplied accounts; test login manually first
Credentialed scan looks incomplete Low-privilege account on Windows or limited sudo Request higher-scope RoE credentials or document blind spots
Low-intensity scan still alerted SOC Volume or pattern still exceeds threshold Reduce ports, lower -T, narrow time window in RoE
Version match says vulnerable but vendor disagrees Distro backport not reflected in upstream version string Check distribution security advisories, not scanner text alone
SAST noise in CI Pattern matched safe test code Developer triage; scope rules per repo

Summary

Vulnerability scanning finds candidate weaknesses; assessment and penetration testing add triage, context, and proof. The main infrastructure axes are perspective (internal versus external), credentials (authenticated versus unauthenticated), and inspection method (network probe versus host/local or agent-based assessment). Scan timing controls intensity—it is not a separate magical scan mode.

Application work uses a different taxonomy: SAST on source, DAST on running apps, IAST on instrumented runtime paths, and SCA on third-party components. Compliance scans add baseline hardening checks beyond CVE matching.

The lab demos showed honest unauthenticated results: an Nmap SMB check that returned false, and Nikto lines that need manual validation. Separate scanner output from confirmed findings—especially on Linux, where backported patches can make version-based alerts misleading.

On a live engagement, map hosts with Nmap, run scoped vulnerability and web checks, validate the highest-signal items, and chain into exploitation or remediation only where the RoE allows.


References


Frequently Asked Questions

What is the difference between vulnerability scanning and penetration testing?

Scanning automates checks against known signatures and configuration rules. Penetration testing includes manual validation, chaining weaknesses, and proving business impact within scope. Scanners feed the pentest; they do not replace it.

What is the difference between a vulnerability scan and a vulnerability assessment?

A scan produces automated findings. An assessment adds triage, prioritization, business context, and validation notes so stakeholders know what to fix first.

What is the difference between internal and external vulnerability scans?

External scans run from outside the trusted network and model Internet-facing exposure. Internal scans run inside the corporate network and find lateral-movement and patch gaps on internal segments. Either can be authenticated or unauthenticated.

When should I use authenticated instead of unauthenticated scans?

Use unauthenticated scans to model remote exposure without credentials. Use authenticated scans when the RoE provides accounts and you need installed-package, registry, or local-policy visibility. Many programs run both internal and external variants of each.

What does a stealth vulnerability scan mean in practice?

It usually means lowering probe rate and using timing controls—slower Nmap templates, smaller port lists, scan delays—not guaranteed evasion of modern IDS or SIEM correlation.

How do SAST and DAST differ?

SAST reads source or bytecode before deployment. DAST tests the running application over the network. SAST finds code patterns early; DAST finds issues only on reachable live paths.

What is SCA in application security?

SCA (Software Composition Analysis) identifies vulnerable third-party libraries in manifests and lockfiles. Container scanners may also report OS packages and image misconfigurations alongside dependency CVEs.

Does a vulnerability scan prove exploitation is possible?

No. It proves a check matched a signature or heuristic. You still confirm version accuracy (including distro backports), network path, authentication requirements, and compensating controls before calling something exploited or reportable.

Finished reading?Beta Get the key takeaways in seconds, then ask follow-up questions
Deepak Prasad

R&D Engineer

Founder of GoLinuxCloud with 15+ years of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels across development, DevOps, networking, and security, delivering robust and efficient solutions for diverse projects.

  • Go (programming language)
  • Python (programming language)
  • DevOps
  • Computer Security
  • Cloud Computing
  • Kubernetes
  • Linux
  • Ansible (software)