Penetration Testing Pre-Engagement: Scoping and Agreements

Scope Pre-engagement checklist, engagement objectives, agreement types (NDA, MSA, SoW, ToS), target selection with ownership validation, assessment types, cloud shared-responsibility scoping, scope-change workflow, worked appendix, and pitfalls. RoE operational detail lives in the companion rules of engagement guide. Does not replace legal counsel.
Related guides Proxmox pentest lab setup
Pentest lab setup on VirtualBox
Short on time?Beta Get the gist of this 14-minute read in seconds, then ask follow-up questions

Pre-engagement is the discovery pass that happens before anyone runs nmap. You clarify what the client wants to learn, list the assets, pick an assessment style, and confirm who owns each target. Only after that does penetration testing rules of engagement turn the scope into day-to-day testing rules.

This is a planning and documentation lesson; there are no exploitation commands to run. It matches what CompTIA PenTest+ tests under engagement management: objectives, agreements, target selection, and shared responsibility. It is not legal advice and it is not a substitute for your firm's counsel.

IMPORTANT
Technical testing should not begin until authorization from an organization or representative with authority over the in-scope systems is documented.

What is penetration testing pre-engagement?

PTES pre-engagement and NIST SP 800-115 both treat planning as a gate: define goals, boundaries, and deliverables before tools touch production.

The PTES customer interaction phase opens with questions about why the test is happening, what the client wants tested, and what type of testing they expect. Initial conversations establish why the customer wants the test and what they expect. The exact commercial sequence varies: preliminary scoping may occur before contracting, while detailed technical scoping may happen after an NDA or agreement is already in place.

The output is a scope package you can attach to the RoE. If you skip straight to scanning, you will eventually hit a subnet, SaaS integration, or third-party API nobody intended to include.

NOTE
CompTIA PenTest+ engagement-management objectives emphasize documentation and decision-making, not live exploitation. Your home lab still benefits from the same habits: when you document Kali at 192.168.56.120 and Metasploitable at 192.168.56.127 in pentest lab requirements, you are practicing scope discipline without a client SoW.

Penetration testing pre-engagement checklist

Use this list during kickoff calls and scoping workshops. Testing windows, allowed techniques, stop conditions, and escalation belong in the companion rules of engagement guide, not here.

  • What business or security question should the test answer?
  • Is testing required for compliance, assurance, a release, or incident follow-up?
  • Which IPs, CIDRs, domains, APIs, apps, cloud accounts, and physical locations are in scope?
  • Which tester source IP addresses, VPN ranges, or assessment infrastructure should the client expect traffic from?
  • Who owns each target?
  • Which assets and third parties are explicitly excluded?
  • Is production included, or staging only?
  • Is the assessment black-box, gray-box, or white-box?
  • Which credentials, VPN access, source code, or diagrams will the tester receive?
  • Are WAFs, IDS/IPS, load balancers, and other intermediary systems part of the assessment?
  • What deliverables are expected (report format, executive summary, retest window)?
  • Are provider approvals or SaaS/cloud testing policies required?
  • Are there blackout periods or operational constraints that must be carried into the RoE?
  • Who can approve scope changes?
  • Is retesting included, and for how long after delivery?

Close every open item or document it as an explicit assumption before active testing starts.


Define the engagement objective

Scope depends on what the client actually wants to learn. PTES asks why the penetration test is being performed, whether compliance drives it, and what the customer expects to be tested before you finalize boundaries.

Common objectives:

  • External exposure: Can an unauthenticated Internet attacker gain access?
  • Internal assessment: What can a compromised employee account reach?
  • Web application: Can users cross authorization boundaries or reach sensitive data?
  • Compliance-driven: Assess systems or controls required by a particular compliance or assurance program, according to that program's testing requirements.
  • Pre-release: Find exploitable issues before a new application goes live.

The objective determines what belongs in scope. A broad /24 network test and a deep assessment of one business-critical application may involve similar effort even though the target counts look very different. PTES emphasizes that mismatch because clients often underestimate it during sales.

Document the objective in the SoW. When the objective shifts mid-engagement, treat that as a scope change (see below), not an informal expansion.


Choose an assessment type

The assessment type drives credentials, starting position, and what "success" looks like in the report.

Type Tester knowledge Typical starting point Common goal
Black-box No internal docs; may know only the company name or root domain Internet-facing attack surface External-attacker perspective
Gray-box Partial docs, read-only user, or network diagram VPN segment or named app URL Balance realism with assessment efficiency
White-box Full architecture, extensive documentation, source code and/or privileged test access Inside the environment Maximize depth and coverage

Credentialed versus unauthenticated is orthogonal to black-box or gray-box labeling. A gray-box internal test might supply standard user accounts but not domain admin. A white-box code review might include repository access without network penetration.

Document the type in the SoW and repeat it in the RoE. If the client expects a black-box test but hands you domain admin on day one, clarify whether post-exploitation from that account is in scope.

Common engagement shapes:

  • External network: black-box or gray-box against perimeter IPs and VPN portals
  • Internal network: credentialed or unauthenticated inside the LAN or zero-trust segment
  • Web application: URL list, authenticated and unauthenticated roles, API endpoints
  • Wireless: named SSIDs and sites; physical presence may need separate authorization
  • Social engineering: only when the SoW and RoE explicitly include phishing, vishing, or physical tests

Do not assume a technique is permitted when the governing documents do not address it; carry the question into the RoE or approved change process before using it.


Penetration testing agreement types

Commercial pentests stack several documents. Each answers a different question.

Document Primary purpose Typical contents
Non-disclosure agreement (NDA) Protect confidential information exchanged during sales and delivery Definition of confidential data, term, permitted recipients, return or destroy on exit
Master service agreement (MSA) Ongoing legal relationship between client and firm Liability caps, insurance, indemnity, payment terms, governing law; may include confidentiality
Statement of work (SoW) This engagement's work package Objectives, services, timeline, deliverables, responsibilities, fee, reference to scope appendix
Scope statement / appendix Technical inventory of what may be tested CIDR blocks, domains, URLs, cloud IDs, exclusions
Rules of engagement (RoE) How testing may run day to day Techniques, hours, contacts, escalation, data handling (detailed in the companion RoE guide)
Authorization letter Short written permission to test named assets Signatory, tester identity, date range, scope summary

Confidentiality does not authorize testing. Detailed technical target lists are normally better placed in the engagement-specific SoW or scope appendix than in the overarching MSA. The SoW might say "external network penetration test, ten business days, PDF report" while the scope appendix carries 198.51.100.0/24 and app.example.com.

Confidentiality before sensitive exchange

Put appropriate confidentiality terms in place before architecture diagrams, credentials, or internal hostnames change hands. That may be a standalone mutual NDA or confidentiality clauses already in the MSA or procurement agreement.

Watch for one-way NDAs that only bind the tester. Mutual NDAs are common when both sides share architecture details. Confidentiality terms by themselves do not authorize testing; explicit testing authorization must appear in the governing engagement documents.

MSA versus SoW

The MSA is the umbrella. You might perform quarterly retests under one MSA with a fresh SoW each time.

When an MSA governs the engagement, the SoW commonly references it and points to the applicable scope appendix or target list.

Terms of service (ToS) and acceptable use

Cloud consoles, SaaS admin panels, and some security appliances carry provider ToS or acceptable-use policies. Client authorization to test a tenant does not override those provider rules.

When scope includes Microsoft 365, AWS, Salesforce, or a hosted WAF, note in the SoW that the client confirms provider testing policies are satisfied. The companion rules of engagement guide walks provider-specific nuances; pre-engagement is where you flag that the check is required.


Define and validate the scope

Ambiguous scope causes more disputes than any single missed vulnerability. Replace slogans with inventories, then confirm the client owns or may test each entry.

Weak scope lines:

  • "All public-facing systems"
  • "The corporate website and related infrastructure"
  • "Anything in the DMZ"

Defensible scope lines:

Target type Example in-scope entry
IPv4 CIDR 198.51.100.0/24 (external perimeter)
IPv6 prefix 2001:db8:1234::/48
Single IP 203.0.113.50 (legacy app server)
FQDN www.example.com, api.example.com, vpn.example.com
URL path https://shop.example.com/checkout (web app assessment only)
Cloud subscription Azure subscription aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee, resource group prod-web
Mobile app Android package com.example.retail build 4.2.1 (APK hash in appendix)
Wireless SSID CORP-GUEST at HQ building 3 only

Out-of-scope examples to name explicitly:

  • payroll.internal.example.com and the HR VLAN
  • Neighbor IPs on shared hosting outside the listed range
  • Production payment gateway (test only the client's integration endpoint)
  • Acquired subsidiary otherco.example unless legal confirms authority

List exclusions with the same precision as inclusions. "Do not test anything else" is weaker than naming the backup datacenter link and the SAP production VLAN.

Validate ownership before finalizing scope

PTES warns that a responding address may belong to another organization. Validate ranges and names before you treat them as in scope:

  • Confirm IP or CIDR ownership or the hosting relationship (whois, client attestation, cloud console export).
  • Confirm domains and subdomains belong to the client or are explicitly delegated for testing.
  • Identify CDN front-ends, shared hosting, SaaS platforms, and managed services where the client controls only a tenant or configuration.
  • Record cloud subscription, project, or account IDs rather than relying on DNS alone.
  • Obtain third-party permission where the asset is not wholly client-owned.
  • Exclude anything whose authorization cannot be established and note it in the out-of-scope column.

Lab scope parallel

On the course VirtualBox lab, a written scope might look like:

Asset Address Scope role
Kali 192.168.56.120 Tester source — not a target
Metasploitable 2 192.168.56.127 In-scope target

In this example, 192.168.56.127 is the only in-scope target. Kali at 192.168.56.120 is tester infrastructure/source traffic. Other addresses on 192.168.56.0/24 are not automatically in scope.


Cloud and SaaS scope

Cloud engagements fail when the SoW says "cloud pentest" but nobody lists who patches the OS, who configures the security group, and who owns the SaaS tenant settings.

Layer Common customer responsibilities Common provider responsibilities Scoping note
IaaS (EC2, Azure VM) Guest OS patching, apps, IAM configuration, security-group configuration Hypervisor maintenance, physical infrastructure List subscriptions, regions, resource groups
PaaS (App Service, RDS) App configuration, DB users, connection strings Platform runtime, underlying OS patching Clarify whether DB fuzzing or platform abuse is allowed
SaaS (M365, Salesforce) Tenant configuration, users, integrations Application stack, multi-tenant isolation Follow provider policy; test tenant only

Exact responsibilities depend on the service model and provider.

Client authorization covers assets the client owns or is contractually permitted to test. It does not override a cloud or SaaS provider's testing restrictions.

Cloud scoping checklist:

  • Subscription IDs, projects, or organization units in the scope appendix
  • Whether production, staging, or both are included
  • Confirmation that provider penetration-testing policies were reviewed
  • Regions, tenants, data stores, or datasets excluded because of residency, privacy, or regulatory requirements

Worked example: scope appendix for a fictional client

The block below is a teaching example for Example Corp. Adapt with legal review before client use.

text
SCOPE APPENDIX A — Example Corp external and web assessment
Effective: 2026-09-01 through 2026-09-15

Objective
  Determine whether an external attacker can gain unauthorized access to
  customer-facing web properties or the external /24 perimeter.

In scope
  IPv4: 198.51.100.0/24
  Hostnames: www.example.com, api.example.com, vpn.example.com
  Web: https://shop.example.com (unauthenticated and customer role)
  Azure: subscription 11111111-2222-3333-4444-555555555555,
         resource groups prod-edge, prod-api (read-only staging creds supplied)

Out of scope
  198.51.101.0/24 (internal WAN — separate SoW)
  payroll.example.com, *.dev.example.com
  Third-party payment processor (client integration URL only if listed later)

Excluded assessment types
  Social engineering
  Denial-of-service testing
  Physical security testing

Tester source
  203.0.113.200/32

Assessment type
  Gray-box external network plus authenticated web application testing

Authorization
  Per MSA dated 2026-06-01 and SoW #EX-2026-091, signed by authorized client representative

The tester source entry helps the client with allowlisting, SOC correlation, and distinguishing tester traffic from unrelated activity.

Pair this appendix with an RoE that names techniques, hours, and escalation. The sample RoE outline in the rules of engagement guide picks up where the scope list ends.


Handle scope changes in writing

Discovering another hostname during recon does not automatically put it in scope. PTES treats scope creep as a documented change, not a silent expansion.

When you find a new asset:

  1. Pause testing against it.
  2. Confirm ownership and whether the client wants it included.
  3. Document the requested change (email, change log, or revised appendix).
  4. Update the SoW, scope appendix, or approved change record before resuming.
  5. Adjust timeline and fee if the added work is material.

The same rule applies when the client asks to "just check one more subnet" on day three. Do not rely on informal verbal approval for a scope expansion; record the approval through the engagement's agreed change process before testing the new asset.


Pre-engagement checks before testing begins

Scoping meetings produce action items that must close before day one:

  • Missing network diagram or asset inventory
  • NDA or SoW countersignature pending
  • Cloud account ownership unclear
  • Staging versus production ambiguity
  • Credential or VPN delivery not completed
  • Third-party permission outstanding
  • WAF or monitoring team notification not confirmed

Tools such as Cervantes help organize findings and reports after testing starts. During pre-engagement, a shared checklist or project ticket is enough. The goal is zero open questions about target lists when the first scan runs.


Common pre-engagement mistakes

Mistake Why it hurts Fix
Scope before objective Wrong test type or depth for what the client needs Document the business question first
SoW signed without CIDR or URL list "I thought staging was included" arguments Attach scope appendix before kickoff
Assuming NDA equals test permission Confidentiality is not authorization Document explicit testing authorization in the SoW, authorization letter, RoE, or other governing agreement
Testing without ownership validation Hitting a neighbor or provider asset Validate CIDR, DNS, and cloud IDs before kickoff
Ignoring acquired subsidiaries Testing entities the signatory does not control Name legal entities in the SoW
"Cloud" in SoW with no subscription ID Wrong tenant or region tested List cloud IDs and regions explicitly
Black-box sold, creds delivered day one Mismatched report expectations Reconcile assessment type in writing
Scope creep without written change Disputes over extra work and liability Pause, document, update SoW or appendix
Skipping provider ToS review Account suspension or incident response Add cloud policy confirmation to scope checklist

Summary

Pre-engagement starts with why the client wants a test, not with a subnet list. Define the objective, walk the checklist, and pick black-box, gray-box, or white-box assessment types before you draft agreements.

NDAs and MSAs protect confidentiality and frame the relationship. The SoW names objectives, deliverables, and scope references. The scope appendix lists CIDR blocks, domains, URLs, cloud IDs, and tester source addresses with validated ownership and explicit exclusions.

When boundaries change, document them in writing before you test new assets. When open scoping questions are closed, draft the RoE for techniques, windows, and escalation. In your own lab, the same discipline is a written IP table before the first scan against Metasploitable.


Frequently Asked Questions

What is the difference between scope and a statement of work?

The SoW defines the work being purchased for a specific engagement: typically the objectives, services, timeline, deliverables, responsibilities, and scope or reference to a scope appendix. The scope itself identifies the exact technical assets and exclusions, such as IP ranges, hostnames, and cloud subscriptions. A signed SoW without a precise scope list still leaves room for disputes about which subnet or SaaS tenant you may touch.

When do I need an NDA before a pentest?

Put appropriate confidentiality terms in place before sensitive information is exchanged. That may be a standalone NDA or confidentiality clauses in the MSA or another governing agreement. An NDA protects confidential information; it does not by itself authorize penetration testing.

How specific should in-scope IP addresses be?

List CIDR blocks, individual IPs, or FQDNs explicitly. Avoid phrases like all company IT or anything on the public Internet. Shared hosting, cloud neighbor tenants, and acquired subsidiaries belong in out-of-scope unless named. For IPv6, attach the prefix the client owns, not only legacy IPv4.

What is gray-box testing?

Gray-box testing gives the tester partial inside knowledge, such as a network diagram, read-only credentials, or a list of applications, while still requiring the tester to discover attack paths. It sits between black-box external testing with no prior access and white-box testing with full documentation and admin accounts.

Does client authorization cover SaaS applications?

Only the tenant or configuration the client controls. The client may need provider permission or may need to follow a published penetration-testing policy. Client authorization never extends to another customer's tenant or the provider's shared infrastructure unless the provider has explicitly permitted that testing.

How does pre-engagement scoping relate to rules of engagement?

Pre-engagement produces the agreements and the asset list. Rules of engagement add operational detail: permitted techniques, hours, escalation contacts, and stop conditions. Finish scope and authorization first, then draft the RoE before any scanning. See penetration testing rules of engagement for RoE sections and templates.


References

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)