Date
November 1, 2026
Author
Karan Patel
,
CEO

Every bank and fintech that stores, processes, or transmits cardholder data eventually meets the same reality: the PCI DSS audit does not care how good your internal security team feels. It cares about evidence. And one of the hardest pieces of evidence to produce correctly is a penetration test that actually satisfies Requirement 11.4 rather than a vulnerability scan dressed up in a nicer PDF.

This guide walks through how penetration testing for banks and fintech maps to PCI DSS, what a Qualified Security Assessor (QSA) looks for, and the practical commands and workflows that separate an audit-ready engagement from a checkbox exercise. If you are preparing for an assessment and want this handled end to end, Redfox Cybersecurity runs PCI DSS aligned penetration tests that are scoped specifically for cardholder data environments.

Why Does PCI DSS Require Penetration Testing in the First Place?

A vulnerability scan tells you a port is open or a library is outdated. A penetration test tells you whether an attacker can chain those weaknesses together to reach cardholder data. PCI DSS draws a hard line between the two, and auditors fail organizations that confuse them.

Under PCI DSS v4.0, Requirement 11.4 mandates that penetration testing be performed:

  • At least once every 12 months and after any significant infrastructure or application change.
  • From both outside the network perimeter (external) and inside it (internal).
  • Against the application layer and the network layer.
  • With segmentation controls validated separately if you rely on network segmentation to reduce scope.

The methodology must be documented, repeatable, and based on an industry-accepted approach such as the PTES or the OWASP testing guides. For banks and fintech, this is not optional paperwork. A single missed segmentation gap can pull your entire internal network into the cardholder data environment (CDE), ballooning both the audit scope and the cost.

How Do You Scope a PCI DSS Penetration Test Correctly?

Scoping is where most failed audits are quietly decided. The goal is to define the cardholder data environment and everything connected to it, then prove that nothing outside that boundary can reach in.

Start by mapping every system that touches primary account numbers (PANs): payment gateways, tokenization services, batch processing jobs, backup repositories, and any admin workstation with CDE access. Then map the connected-to systems: jump hosts, logging servers, and identity providers.

A clean first pass is host discovery across the suspected CDE and adjacent ranges. Nmap remains the workhorse here.

# Discover live hosts across the CDE and connected segments
nmap -sn -PE -PP -PS21,22,80,443,3389 \
 -oA cde_discovery 10.50.0.0/22 10.60.10.0/24

# Full TCP service and version enumeration on confirmed CDE hosts
nmap -sS -sV -p- --min-rate 2000 -oA cde_services \
 -iL confirmed_cde_hosts.txt

[cta]

The output of this discovery phase becomes the backbone of your scope document. If a host appears that nobody expected to be routable from the CDE, you have just found a segmentation problem before the QSA does. Redfox Cybersecurity treats this scoping phase as a formal deliverable, because an accurately drawn boundary is the difference between a two-week test and a two-month one. Our network penetration testing engagements start with exactly this kind of reconciliation between what the documentation claims and what the network actually permits.

What Does External Penetration Testing Look Like for a Fintech?

External testing simulates an attacker with no prior access, probing the internet-facing perimeter of your payment infrastructure. For banks and fintech, the perimeter usually includes customer portals, API gateways, VPN concentrators, and partner integration endpoints.

Begin with attack surface discovery. Subdomain enumeration often reveals forgotten staging environments that still carry production credentials.

# Passive and active subdomain discovery
subfinder -d examplebank.com -all -silent -o subs.txt
amass enum -passive -d examplebank.com -o amass_subs.txt

# Resolve and probe for live HTTP services
cat subs.txt amass_subs.txt | sort -u | \
 httpx -silent -status-code -title -tech-detect -o live_hosts.txt

[cta]

Once live services are mapped, move to templated vulnerability detection with Nuclei, which is fast, maintainable, and far more audit-friendly than one-off scripts because its templates are versioned and reviewable.

# Run curated templates against discovered perimeter hosts
nuclei -l live_hosts.txt \
 -t cves/ -t exposures/ -t misconfiguration/ \
 -severity medium,high,critical \
 -rate-limit 50 -o nuclei_external.txt

[cta]

For the TLS configuration that regulators scrutinize heavily, validate cipher suites and protocol support directly. Weak or deprecated TLS is one of the most common perimeter findings in financial environments.

# Audit TLS configuration on the payment API endpoint
testssl.sh --severity HIGH --protocols --vulnerable \
 https://api.examplebank.com:443

[cta]

A finding of TLS 1.0 still being accepted, or a server still negotiating weak ciphers, will not just appear in your pentest report. It will cascade into other PCI DSS requirements around strong cryptography. Catching it during the external phase lets you remediate before the assessor arrives. If your perimeter has grown organically through acquisitions and partner integrations, Redfox Cybersecurity's external penetration testing service is built to surface exactly these forgotten assets.

How Do You Test the Application Layer for Payment Systems?

For most fintechs, the application is the product, and the API is the attack surface. PCI DSS Requirement 11.4 explicitly calls for application-layer testing, and this is where the OWASP Top 10 and OWASP API Security Top 10 become your checklist.

Burp Suite Professional is the standard here for intercepting, manipulating, and replaying requests against authentication flows, payment endpoints, and session logic. For injection testing against parameters that interact with the database, sqlmap provides depth and repeatable evidence.

# Test a payment lookup endpoint for SQL injection
sqlmap -u "https://api.examplebank.com/v2/transactions?ref=1001" \
 --headers="Authorization: Bearer <jwt_token>" \
 --level=4 --risk=2 --batch \
 --technique=BEUST --dbms=postgresql \
 --tamper=space2comment

[cta]

Broken object level authorization, known as BOLA or IDOR, is the single most damaging flaw in fintech APIs. It occurs when a user can access another user's records by changing an identifier. This is trivial to demonstrate and devastating in a cardholder context, because it can expose transaction histories or account details across tenants.

# Enumerate account objects to detect broken authorization (BOLA)
ffuf -w account_ids.txt \
 -u "https://api.examplebank.com/v2/accounts/FUZZ/statement" \
 -H "Authorization: Bearer <low_priv_jwt>" \
 -mc 200 -fr "access denied" -o bola_results.json

[cta]

When a low-privilege token returns another customer's statement, you have a reportable, high-severity finding that directly threatens cardholder data confidentiality. Document the request, the response, and the affected identifiers precisely, because the QSA will want to see the exact evidence, not a summary. Redfox Cybersecurity's API and web application testing focuses heavily on authorization logic, since that is where financial platforms most often leak data that scanners never detect.

What Is Involved in Internal Penetration Testing for Banks?

Internal testing assumes an attacker has already landed inside the network, perhaps through a phished employee or a compromised vendor. The question PCI DSS wants answered is simple: from a standard internal foothold, can an attacker reach the CDE?

Active Directory is almost always the path. Start by understanding the lay of the land. NetExec (the maintained successor to CrackMapExec) is excellent for sweeping SMB, enumerating shares, and spotting weak configurations across a domain.

# Enumerate SMB hosts, signing status, and null sessions
netexec smb 10.60.0.0/16 --gen-relay-list relay_targets.txt

# Check for accessible shares with a standard domain user
netexec smb 10.60.0.0/16 -u j.smith -p 'Autumn2026!' \
 --shares --filter-shares READ WRITE

[cta]

Next, map the Active Directory attack paths with BloodHound. In a bank, the finding that matters most is whether any path exists from a workstation subnet into a host inside the CDE. Collect the data with a legitimate domain account and let the graph reveal the shortest route to privilege.

# Collect Active Directory data for attack path analysis
bloodhound-python -d corp.examplebank.com -u j.smith \
 -p 'Autumn2026!' -c All -ns 10.60.0.10 \
 --zip -o bh_collection

[cta]

If BloodHound shows a path from a help-desk group to a server that sits inside the CDE, that is a direct PCI DSS failure waiting to happen, because it means the segmentation you claimed on paper does not hold under real identity relationships. Kerberoasting is another classic internal technique that frequently yields service account credentials with excessive rights.

# Request service tickets and extract hashes for offline cracking
netexec ldap 10.60.0.10 -u j.smith -p 'Autumn2026!' \
 --kerberoasting kerb_hashes.txt

# Crack extracted TGS hashes offline
hashcat -m 13100 kerb_hashes.txt rockyou.txt \
 -r rules/best64.rule

[cta]

The point of internal testing is not to pop every box. It is to prove whether the cardholder data environment is genuinely isolated from the broader corporate network. When an engagement demonstrates that a normal employee account can pivot into the CDE, that becomes the headline of the report, and the one finding that most shapes remediation priorities.

How Do You Validate Network Segmentation for PCI DSS?

If you rely on segmentation to keep systems out of scope, PCI DSS requires you to test that segmentation explicitly, and for service providers, at least every six months. The test is conceptually simple: from an out-of-scope network, attempt to reach the CDE across every protocol and confirm that the controls block you.

# From an out-of-scope segment, probe the CDE for any reachable service
nmap -sS -Pn -p- --reason \
 -oA segmentation_test 10.50.0.0/24

# Confirm expected deny behavior on common pivot ports
for port in 22 135 139 445 1433 3306 3389 5432; do
 nc -zv -w3 10.50.0.15 $port 2>&1 | tee -a seg_results.txt
done

[cta]

The desired result is that every probe is dropped or rejected. Any open port from an out-of-scope segment into the CDE is a segmentation failure that must be remediated and retested before the audit can pass. This is precisely the kind of control validation that Redfox Cybersecurity documents with before-and-after evidence, so your QSA can see both the gap and the fix. Our segmentation testing deliverables are structured to slot directly into your Report on Compliance.

Should Fintechs Test Mobile Apps for PCI DSS?

If your fintech ships a mobile app that handles payment data, the app is part of your attack surface and your assessors will expect it to be tested. Mobile testing combines static analysis of the compiled application with dynamic, runtime inspection.

The Mobile Security Framework (MobSF) handles the static pass, flagging hardcoded secrets, insecure storage, and weak cryptographic calls. For the dynamic side, Frida and Objection let you hook into a running app to bypass certificate pinning and observe how sensitive data moves at runtime.

# Static analysis of the Android package
mobsf -f examplebank.apk

# Runtime inspection: bypass SSL pinning and inspect keystore use
objection -g com.examplebank.app explore \
 -s "android sslpinning disable; android keystore list"

[cta]

A common and serious finding is a PAN or token written to local storage or app logs in plaintext. That is a clear violation of PCI DSS expectations around protecting stored account data, and it is exactly the kind of issue that static scanning alone will often miss without runtime confirmation.

Which Findings Most Often Cause a PCI DSS Audit to Fail?

Across financial engagements, a handful of findings recur so often that they are worth calling out directly. If you remediate these before testing, you dramatically improve your odds of a clean assessment:

  • Exploitable application-layer flaws in the CDE. Injection, broken authorization, and authentication bypasses that expose cardholder data are the highest-impact failures.
  • Segmentation leaks. Any route from an out-of-scope network into the CDE. This is the most common structural failure for larger banks.
  • Weak or deprecated cryptography. TLS 1.0 or 1.1 support, weak cipher suites, or self-signed certificates on in-scope systems.
  • Default or weak credentials. Service accounts, network devices, and database instances still using vendor defaults.
  • Unremediated prior findings. PCI DSS requires that exploitable vulnerabilities found in a pentest be corrected and the test repeated to verify the fix. Skipping retesting is a documentation failure in itself.

The last point deserves emphasis. A penetration test that finds critical issues is not a failure. A penetration test that finds critical issues and shows no evidence of remediation and retesting is what fails an audit. The retest cycle is the proof the QSA wants.

How Do You Document a Pentest So the QSA Accepts It?

A technically brilliant test with poor documentation will still cause friction with your assessor. The report needs to stand on its own as audit evidence. At minimum, it should include:

  • The scope statement, listing in-scope IP ranges, applications, and the explicit boundary of the CDE.
  • The methodology referenced, such as PTES or the OWASP testing guides, so the approach is defensibly industry-accepted.
  • A findings section with severity ratings, reproduction steps, affected assets, and screenshots or request captures as evidence.
  • Remediation guidance tied to each finding.
  • Retest results confirming that exploitable issues were corrected.
  • The tester's qualifications and organizational independence from the team that built the systems.

That independence requirement matters more than teams expect. PCI DSS wants assurance that the tester is organizationally separate from the people who configured the environment, which is a strong reason many banks and fintechs use an external firm rather than relying solely on internal staff. If you want a report that is written from the outset to satisfy a QSA, Redfox Cybersecurity delivers PCI DSS penetration testing with evidence packages mapped directly to Requirement 11.4 sub-controls, so your compliance team is not left translating technical output into audit language.

How Often and When Should You Schedule These Tests?

The baseline cadence is annual, but the "after any significant change" clause is where organizations get caught. A significant change includes a new payment integration, a major application release, a cloud migration, or a network redesign. Each of those can reset your compliance posture and trigger a required retest.

A practical approach for a fast-moving fintech is to combine a comprehensive annual test with lighter, targeted assessments tied to major release cycles. This keeps you continuously defensible rather than scrambling in the weeks before an annual audit. Segmentation checks, for service providers, run on their own six-month clock and should be calendared independently so they never slip.

Building this cadence into your release and change management process means penetration testing stops being an annual fire drill and becomes a steady, predictable control. Redfox Cybersecurity works with financial clients to align testing schedules to both the compliance calendar and the product roadmap, so a major launch never leaves a gap in your coverage.

Key Takeaways

Passing a PCI DSS audit as a bank or fintech is not about running a scanner and hoping for the best. It is about proving, with real evidence, that an attacker cannot reach cardholder data from outside your perimeter, from inside your network, through your applications, or across your segmentation boundaries.

The work is methodical: scope the CDE accurately, test the external perimeter and internal Active Directory paths, hammer the application and API authorization logic, validate segmentation from out-of-scope networks, and document every finding with the reproduction steps and retest results a QSA expects. Remediate the recurring killers, which are exploitable app flaws, segmentation leaks, weak cryptography, and default credentials, before the assessor ever sees your environment.

Do that, and the audit becomes a confirmation of work already done rather than a source of surprises. If you want a partner that handles the full cycle, from scoping through retest and audit-ready reporting, Redfox Cybersecurity builds penetration testing programs for banks and fintech that are designed to pass PCI DSS, not just to generate a report.

Copy Code