From scope to sign-off.
60 practical procedures. Six phases. Clear evidence at every step.
This is an external network engagement workflow with web and identity checks where agreed. Internal, cloud, mobile and detailed application assessments need their own defined scope and test cases. Confirm written authorisation before active testing.
Plan the engagement
Agree the boundaries before testing begins.
10 procedures. Open a step for instructions and the record to keep.
1.01Define the outcome
Start with the business question the test should answer.
- Ask which services, data and business activities matter most. Identify realistic threats to those services.
- Agree measurable goals, such as whether an unauthenticated user can reach a restricted service or read another test user’s record.
- Record the test approach: white box, grey box or black box. State what each tester knows and which accounts will be provided.
A short brief with objectives, assumptions and agreed success criteria.
1.02Build an exact scope
Make it clear which systems and actions are allowed.
- List IP addresses, CIDR ranges, domains, URLs, API endpoints and approved environments. Include IPv6 where it is used.
- Identify exclusions, shared hosting, outsourced services and fragile systems. A wildcard domain does not automatically authorise testing every related address.
- Confirm ownership and obtain written approval before adding newly discovered assets. Keep an approved target list separate from research results.
A versioned target list with an owner, inclusions, exclusions and approval dates.
1.03Set permissions and test limits
Turn the brief into written rules of engagement.
- Obtain written permission from an authorised client representative before active testing. Check the conditions of relevant hosting and cloud providers.
- Agree which actions require additional permission: credential attacks, social engineering, data access, privilege changes, pivoting, persistence and disruptive tests.
- Set testing windows with a time zone, source addresses, rate limits and the process for scope changes. Name the person who may approve those changes.
Signed or otherwise formally approved rules of engagement and applicable provider conditions.
1.04Agree communications and stop conditions
Decide how testers and the client will respond to problems.
- Name a primary contact, backup contact and an emergency contact. Verify the contact route before testing.
- Agree urgent finding notification times, progress updates and a secure way to share evidence.
- Define stop conditions such as service instability, unexpected personal data, a suspected live incident or access to an out-of-scope system. Stop the affected activity, record what happened and get approval before resuming.
A communication plan, escalation route and clear pause and restart procedure.
1.05Plan technical coverage
Allow enough time for both broad discovery and manual investigation.
- Map the objectives to test areas, such as internet exposure, authentication, access control, transport security and supported software.
- Agree whether authenticated checks, a full TCP port range, selected UDP services and web or API testing are included. Record any sampling approach.
- Identify constraints such as WAF blocking, unavailable accounts or restricted time. Define when to report a coverage gap rather than silently omit it.
A coverage plan showing planned checks, test accounts, dependencies and limits.
1.06Set up a clean working environment
Make your results traceable and keep client data protected.
- Use a separate workspace or test machine for the engagement. Patch it, encrypt storage and restrict access to the testing team.
- Synchronise clocks and record the time zone. Capture tool and plugin versions and verify downloads from the official project.
- Prepare an asset inventory, activity log, finding register and change log. Keep credentials in an approved secret store, rather than command histories or shared notes.
A ready test environment and an evidence folder structure with agreed access controls.
1.07Plan data handling
Collect only the evidence needed to support each finding.
- Agree what may be collected, where it may be held and who may access it. Set retention and deletion dates for evidence and backups.
- Choose approved secure channels for transferring reports and raw evidence. Decide how secrets and personal data will be redacted.
- Confirm whether any hosted tool sends targets, results or telemetry to another service. Do not submit client data to public AI, cloud analysis or interaction services without approval.
A documented evidence handling plan covering collection, transfer, retention and deletion.
1.08Prepare accounts and recovery
Know how you will test access and undo changes.
- Where required, request separate test users for each relevant role, plus two users with the same role for ownership checks.
- Agree account lockout limits, test data, MFA arrangements and the allowed number of failed attempts. Do not weaken production controls merely to make testing easier.
- Ask the client to confirm recovery readiness for risky checks. Define who restores service and how changes or test artefacts will be removed.
An account and role matrix, agreed test records and a recovery contact.
1.09Choose and review automation
A tool’s default options may exceed the agreed brief.
- Inspect scan policies, templates, wordlists, recursion, redirects and any checks that write data or call external services.
- Pin tool and template versions for repeatability. Try unfamiliar or risky checks in an isolated lab before client use.
- Set scope allowlists and exclusions at each stage. Review output before passing it to another tool. Keep a human approval step before exploit execution or changes.
A reviewed tool plan with configuration, versions, approved targets and expected effects.
1.10Hold the start meeting
Resolve the final gaps before requests reach the client’s systems.
- Walk through the target list, test window, emergency contacts and exclusions with the client.
- Confirm source addresses, connectivity, account access and whether monitoring teams should expect the activity.
- Record approval to start. If a dependency is missing, agree a revised plan and state the effect on coverage.
A start record and a confirmed, current scope baseline.
Before you move on
Gather information
Build a reliable picture of the approved attack surface.
10 procedures. Open a step for instructions and the record to keep.
2.01Gather public leads
Use public information to build a candidate asset list.
- Review the organisation’s public sites, registration records, certificate transparency records and public technology references.
- Use passive discovery sources to identify names and infrastructure. Record the source and observation date, as records may be old.
- Treat discovered assets as leads. Confirm ownership and scope before making direct requests to them.
A candidate asset list with evidence sources, dates and ownership confidence.
2.02Review DNS and registration data
Understand how approved names connect to services.
- Record relevant A, AAAA, CNAME, MX, NS and TXT responses. Distinguish authoritative responses from cached resolver results.
- Check whether names point to a CDN, reverse proxy, third-party service or an old environment. A shared IP address may serve many unrelated customers.
- Only perform zone transfer attempts, dictionary discovery or takeover validation when allowed. Do not register third-party resources to prove a suspected takeover without approval.
A DNS map with resolved addresses, aliases, provider context and unresolved questions.
2.03Map external services
Correlate the available records before scanning.
- Compare the approved asset list with passive search results and client records. Include externally reachable VPNs, remote administration, mail and development services.
- Check IPv4 and IPv6 coverage and note which paths are reachable from your agreed test location.
- Keep public search-engine observations separate from current direct observations. A historic banner is not proof that a system is still exposed.
An external service inventory with the basis for each observation.
2.04Check the target list before discovery
Catch scope mistakes before automation multiplies them.
- Review host files for duplicate targets, expanded ranges and accidental third-party entries.
- Confirm how tools handle DNS changes and redirects. Stop a redirect or resolution chain from expanding testing outside approved systems.
- Start with a small agreed sample and check traffic, output and client service health before broadening.
A reviewed active target list and a record of the initial discovery checks.
2.05Discover TCP services
Identify reachable ports without confusing reachability with security.
- Begin with the agreed port set, then expand to the full TCP range if it is in scope and time permits. Use documented timing and concurrency settings.
- Confirm whether failed host discovery hides reachable services. Use no-ping scanning only where suitable and authorised.
- Record open, closed and filtered states separately. Recheck unexpected results and distinguish a blocked scan from a closed service.
Timestamped TCP results with exact options, source address and untested port ranges.
2.06Discover relevant UDP services
UDP needs its own coverage and careful interpretation.
- Select UDP ports based on the agreed brief and likely services, such as DNS, NTP, SNMP or VPN endpoints.
- Use modest concurrency and client-agreed limits. UDP checks can be slow and silence alone does not prove a port is closed.
- Confirm open or ambiguous results with a suitable protocol request where allowed. Record open-or-filtered results as uncertain.
A UDP coverage record showing confirmed services, uncertain results and omitted ports.
2.07Identify the actual service
A port number and a version banner are clues, not conclusions.
- Use a normal protocol exchange and selective version detection to identify the software and protocol.
- Record banners, TLS certificates and the observed behaviour. Distinguish direct observations from a tool’s guesses.
- Review service-specific options before running scripts. Do not run all discovery or vulnerability scripts as a blanket default.
An inventory of observed services with confidence, evidence and version assumptions.
2.08Map web and API entry points
Find the routes and roles that need deeper investigation.
- For each approved web origin, record redirects, virtual hosts, login points, API documentation and available test roles.
- Crawl within explicit host and path boundaries. Exclude logout, delete, payment and other state-changing actions unless agreed.
- Record each endpoint, method, parameters and required role. Include alternate API versions and test environments that are explicitly in scope.
A web and API surface map with role requirements and coverage gaps.
2.09Review public files and metadata
Look for useful exposure without collecting unrelated data.
- Inspect relevant public documents, robots.txt, sitemaps, scripts and obvious exposed backup or configuration paths within the agreed limits.
- Look for internal names, software references, repository links or secrets. Do not assume an unlinked path is access controlled.
- Record a small redacted sample. If a live secret is suspected, notify the client and agree any validation rather than using it across other services.
A record of relevant disclosures, their public location and the agreed response.
2.10Create the test plan from the findings
Use the observed attack surface to guide the next phase.
- Group assets by service, technology and business purpose. Mark high-value access paths and externally exposed management systems.
- Develop testable hypotheses, such as whether an old VPN service is affected by a relevant vendor advisory.
- Reconcile discoveries with the client. Turn unresolved access problems, missing accounts and unconfirmed assets into explicit limitations.
A prioritised test queue with assets, hypotheses, permissions and required evidence.
Before you move on
Identify vulnerabilities
Use automation for coverage and manual checks for confidence.
10 procedures. Open a step for instructions and the record to keep.
3.01Build a coverage matrix
Track checks so that omissions remain visible.
- For each asset or service group, list applicable checks, test user or role, tool or manual method and evidence reference.
- Use statuses such as planned, tested, not applicable, blocked and not tested. Explain blocked or skipped work.
- Reconcile the matrix with the inventory throughout the engagement, including newly approved assets.
A current coverage matrix that supports the final scope and limitations statement.
3.02Run controlled vulnerability scans
Use scans to identify leads and improve coverage.
- Update feeds before the agreed scan, then record the engine and feed or template versions used. Select only relevant approved checks.
- Set scope, timeouts and concurrency. Exclude disruptive checks unless explicitly approved, and watch for errors or service impact.
- For authenticated scans, verify that authentication actually succeeded and the expected permissions were available. Mark partial or failed authentication.
Raw scan results, configuration and evidence of successful authentication where used.
3.03Assess patch and software exposure
Confirm applicability before reporting a known vulnerability.
- Compare observed products with vendor advisories, supported release information and CVE records. Identify the affected component and its prerequisites.
- Consider vendor backports and hidden version details. Seek authorised configuration evidence or a non-destructive validation when a banner is insufficient.
- Check CISA KEV and FIRST EPSS for additional prioritisation context. These signals do not prove that a particular target is exploitable.
A validated mapping between affected assets, conditions, advisory references and confidence.
3.04Review TLS and SSH
Check the way exposed services protect communication and remote access.
- Review certificate trust, validity, hostname matching and chain handling using the actual service hostname.
- Assess supported protocols, cipher choices and key exchange against the client’s agreed baseline and current vendor guidance.
- For SSH, review algorithms, key strength and permitted authentication methods. State whether the finding is an observed negotiation result or a configuration fact.
Protocol negotiation evidence and a clear explanation of the practical weakness.
3.05Review other exposed network services
Choose checks that fit the protocol and business purpose.
- For DNS and mail, assess permitted access, information exposure, transport protection and relevant configuration. Relay tests must use controlled addresses and agreed limits.
- For SMB, RDP, databases and management interfaces, check exposure, access restrictions, authentication and encryption. Avoid writing or enumerating production data unless needed and approved.
- Review VPN and edge devices using vendor advisories and the allowed methods. Do not apply an intrusive check simply because a service looks old.
A service-by-service record of the check, observed result and supporting evidence.
3.06Test authentication and session controls
Check the complete sign-in journey, not only the password field.
- Use test accounts to assess login, password reset, MFA, session expiry, logout and account recovery where these paths are in scope.
- Check that rate limiting, lockout and error messages behave as agreed. Keep failed-attempt tests within the documented account limits.
- Review token handling, cookie attributes and invalidation after logout or credential changes. Never put reusable tokens in report screenshots.
Reproducible observations of authentication and session behaviour, with secrets redacted.
3.07Test authorisation by role and ownership
Prove that access is enforced on the server.
- Use two test users with the same role to check whether one can read or change the other’s agreed test record.
- Compare lower-privilege and higher-privilege roles across endpoints, methods and sensitive fields. Check APIs as well as browser pages.
- Test only approved records and tenants. A hidden button or client-side restriction is not proof that access is enforced.
An expected-versus-actual access matrix and a minimal reproducible example for any failure.
3.08Review web inputs and business rules
Follow a structured method for the web coverage that was agreed.
- Select relevant OWASP WSTG test cases and record their versioned references. Assess input handling, file upload, path handling, request processing and server-side access to other services.
- Check workflow rules using test data, including whether steps can be skipped or restricted fields changed. Avoid production transactions.
- Agree any out-of-band callback service and data destination before use. Stop if validation would reach an unapproved internal or external target.
Test-case references, request and response evidence and a clear statement of application coverage.
3.09Review cloud and identity boundaries
Keep an external test distinct from an internal or cloud configuration review.
- Check approved internet-facing storage, development endpoints, remote access and identity entry points for unintended exposure.
- For authenticated cloud, directory or tenant testing, agree a separate permission set and exact account, subscription, project or tenant boundaries.
- Do not treat linked cloud resources, federation partners or internal systems reached through a weakness as automatically in scope.
Boundary findings and a list of separate assessments needed for untested areas.
3.10Validate, deduplicate and prioritise
Turn scanner output into defensible findings.
- Reproduce each issue with the least disruptive reliable check. Classify it as confirmed, unverified or false positive, and explain the reason.
- Group repeated instances where the root cause and fix are shared, while preserving every affected asset. Keep distinct attack paths understandable.
- Use the agreed severity scheme. Where CVSS is used, include the version, vector and rationale, then add business context and exploitation evidence.
A reviewed findings register with severity, confidence, affected assets and urgent notifications.
Before you move on
Validate impact
Demonstrate realistic impact within the agreed limits.
10 procedures. Open a step for instructions and the record to keep.
4.01Choose the proof of impact
Test the hypothesis that matters to the client.
- Define the suspected weakness, access needed, expected outcome and the smallest proof that would support it.
- Check that exploitation, any privilege change and the target asset are permitted by the rules of engagement.
- Agree any extra approval, recovery steps or monitoring needed before execution. If proof is too risky, document the limitation and supporting evidence.
A test plan for the proof, including preconditions, limits and expected changes.
4.02Review the method in a lab
Understand unfamiliar code before it touches client infrastructure.
- Read the relevant exploit or module and its dependencies. Check for destructive behaviour, unrelated callbacks and data collection.
- Match the method to the observed product, architecture and configuration. A CVE name alone is not enough.
- Where possible, test against a comparable isolated environment. Record the source, version or hash and the settings selected.
A reviewed method and a record of the expected side effects and limitations.
4.03Run a minimal proof
Demonstrate the weakness without unnecessary access.
- Execute the agreed check against a confirmed in-scope asset during the approved window.
- Use a benign marker, test record or limited response to prove the result. Avoid bulk extraction or production changes.
- Record the exact steps and outcome. Stop once the required evidence is obtained, and notify the client if the result meets the urgent escalation criteria.
A repeatable proof tied to the asset, time, identity and observed result.
4.04Establish the access obtained
Describe what the proof actually allowed.
- Identify the account, role, host and service context available after the successful test.
- Check a limited set of agreed capabilities using test data or safe read-only actions.
- Separate demonstrated access from assumptions. Do not claim administrator access, broad data exposure or full compromise without evidence.
An access summary with demonstrated rights and untested possibilities clearly separated.
4.05Assess privilege changes when approved
Find whether the access boundary can be crossed.
- Review relevant configuration, assigned rights and trust relationships within the approved host or directory scope.
- Choose a controlled validation rather than running every local enumeration or exploitation script.
- Use a benign proof for any approved privilege change and record all changes. Do not collect unrelated secrets merely because the new role allows it.
An evidenced privilege path, its preconditions and the affected security boundary.
4.06Assess lateral paths when approved
A path to another system still needs its own scope check.
- Confirm each destination, identity and technique against the approved target list before making a connection.
- Assess whether existing permissions, trust or network access allow a controlled action on the destination.
- Limit pivoting and remote execution to the agreed proof. Record the complete chain and remove temporary routes, tunnels or sessions afterwards.
An attack-path record linking the entry point, intermediate access and final approved result.
4.07Handle exposed credentials carefully
A discovered secret creates a handling task as well as a finding.
- Record the location and a redacted identifier for the secret. Do not paste the full value into shared notes or report drafts.
- Get approval for any credential validation or offline password assessment. Agree the target, attempt limit and handling of recovered values.
- Ask the client to rotate or revoke exposed secrets and record the recommendation. Do not test them against unrelated services.
A controlled secret exposure record and an agreed remediation and validation plan.
4.08Check detection if included
Help the client understand what its monitoring observed.
- Agree whether detection validation is part of the engagement and which team will review the logs.
- Give the team timestamps, source addresses and agreed indicators for the actions performed.
- Record what was detected, missed or not reviewed. A penetration test alone does not establish complete monitoring effectiveness.
A joint detection record with evidence sources and the limits of the exercise.
4.09Respond to unexpected events
Keep the engagement controlled when the result differs from the plan.
- Pause the affected activity if there is instability, unexplained access, out-of-scope exposure or evidence of a possible live incident.
- Preserve a limited audit record and notify the named contact. Avoid further investigation beyond the testing authorisation.
- Agree who will restore service or handle the incident. Resume only after the agreed authority confirms the revised plan.
An event log, notification record and explicit approval for any restart.
4.10Close the proof and record the chain
Make the result useful for remediation and later verification.
- End test sessions and remove temporary artefacts as agreed. Record outstanding changes for the client.
- Link each step in the attack path to a finding and evidence reference. Explain any alternative conditions that could change the result.
- State which fixes would break the path, then carry the verified evidence into the report.
A concise attack narrative, evidence links and an updated change log.
Before you move on
Report and clean up
Turn technical evidence into clear decisions and fixes.
10 procedures. Open a step for instructions and the record to keep.
5.01Build the report structure
Make it useful for both decision-makers and technical teams.
- Include document control, classification, recipients, testing dates, objectives and an executive summary.
- Document scope, methodology, coverage, limitations, a findings summary and the detailed technical findings.
- Include remediation priorities, retesting arrangements, cleanup status and supporting references. Keep confidential raw evidence in an agreed separate location if needed.
A report outline that matches the client’s delivery and confidentiality requirements.
5.02Write the executive summary
Explain the business meaning of the results.
- State the main risks in plain English and describe the most important demonstrated attack paths.
- Identify the changes that would reduce the most exposure. Explain where immediate action is needed.
- Describe material limitations and any positive controls observed without implying that untested systems are secure.
A short management summary with clear priorities and an honest statement of assurance.
5.03Write each technical finding
Give the client enough detail to reproduce and fix it.
- Record a stable finding ID, title, affected assets, prerequisites, description and observed result.
- Include reproducible steps, redacted evidence, the impact demonstrated and a clear severity rationale.
- Recommend a practical fix and a verification method. Link vendor guidance and relevant CVE, CWE or versioned test-case references.
A complete finding that separates fact, inference and untested impact.
5.04Explain severity and priority
Use scores consistently without letting them replace judgement.
- Use the client’s agreed rating method. For CVSS, show the version and full vector as well as the score.
- Explain how exposure, privileges, business importance, demonstrated access and existing controls affect the result.
- Use KEV or EPSS as dated prioritisation inputs where relevant. Do not describe EPSS as certainty or a CVSS score as the whole business risk.
A consistent rating rationale and an ordered remediation plan.
5.05Document coverage and limits
Make the boundaries of the conclusion visible.
- Compare the final target list with the coverage matrix and state which checks were completed.
- List unreachable assets, blocked scans, missing roles, time restrictions and excluded techniques.
- Describe whether WAF or allowlisting conditions affected testing and whether internal, cloud or dedicated application testing was outside scope.
A coverage statement that the client can reconcile with the authorised brief.
5.06Check evidence and reproducibility
A finding should survive independent review.
- Ask a qualified reviewer to follow the reproduction steps where practical, using the agreed environment or retained evidence.
- Confirm asset identifiers, timestamps, severity, request and response details and the proposed fix.
- Remove secrets, personal data and client identifiers that are not needed by the intended recipient. Use evidence references consistently.
A reviewed report with traceable evidence and a record of quality checks.
5.07Complete technical cleanup
Leave no untracked test changes behind.
- Reconcile the change log against test accounts, files, scheduled jobs, agents, sessions, tunnels and configuration changes.
- Remove approved test artefacts and verify the result. Coordinate secret rotation, account removal or restoration with the client.
- Do not delete security logs or evidence of the test from client systems. State any item that remains, who owns it and when it will be resolved.
A cleanup register with removed, verified and outstanding items.
5.08Give remediation instructions
Make the next action clear and achievable.
- Describe the root cause and the recommended configuration, code change or vendor update.
- Where an immediate fix is not possible, explain an interim control and its limits.
- Identify the service owner where known, the agreed target date and the evidence needed to confirm the fix. Avoid claiming a universal remediation deadline.
A prioritised action list with ownership, target dates and verification criteria.
5.09Deliver and explain the report
Check that the intended recipients can act on the result.
- Send the final version through the agreed secure route and confirm receipt.
- Walk management through priorities and the technical team through findings, evidence and remediation.
- Answer questions, record accepted corrections and issue a controlled revision if needed. Keep a record of which version each recipient received.
A delivery record, discussion notes and a final controlled report version.
5.10Agree the retest baseline
Set a clear boundary for the follow-up.
- Agree which finding IDs, assets, roles and attack paths will be retested and when.
- Record changes to the environment and whether regression checks are included.
- Keep the original result intact. Retest outcomes should reference it rather than silently rewrite the original assessment.
An approved retest plan linked to the delivered report.
Before you move on
Close the engagement
Confirm the handover and carry lessons into the next test.
10 procedures. Open a step for instructions and the record to keep.
6.01Confirm remediation readiness
Check that the client is ready for a meaningful retest.
- Ask the client which fixes are in place and request relevant change references.
- Confirm target addresses, application versions, accounts and test data. Recheck that the retest permission and window are current.
- If an asset is unavailable or a fix is incomplete, agree whether to defer the test or record it as not retested.
A retest start record showing the current environment and agreed scope.
6.02Repeat the original check
Test the same security boundary that failed previously.
- Follow the original reproduction steps with equivalent privileges and conditions.
- Check that the root cause is addressed rather than only the original input or path being blocked.
- Where agreed, test a small set of related paths and regression cases. Record any limitations caused by a changed environment.
Fresh evidence that can be compared with the original finding.
6.03Record each retest outcome
Use terms that do not overstate what was verified.
- Mark each issue resolved, partially resolved, unresolved or not retested.
- State the date, test method, evidence and remaining exposure. Explain any changed severity rather than silently replacing it.
- Record newly discovered issues separately and follow the agreed process for additional scope and urgent notifications.
A retest register with finding IDs, outcomes and supporting evidence.
6.04Retest important attack paths
A fixed component may not remove every route to the same outcome.
- Where included, repeat the key steps that connected the original entry point to the demonstrated impact.
- Confirm which changes broke the path and whether equivalent authorised routes remain.
- Explain any parts that could not be retested. Avoid claiming that all routes are closed after checking one route.
An updated attack-path explanation and a clear statement of what was verified.
6.05Issue the retest report
Keep the original assessment and follow-up easy to compare.
- Reference the original report version and list the retest dates, scope and environment changes.
- Summarise resolved, partially resolved, unresolved and not retested findings, with evidence links.
- State that the result applies to the checks and conditions observed at that time. Do not present it as a guarantee of future security.
A controlled retest report and updated remediation status.
6.06Revoke temporary access
End the access that was granted for the engagement.
- Reconcile supplied accounts, API keys, VPN profiles, certificates and allowlist entries with the client.
- Have the responsible owner remove or expire them and rotate shared or exposed secrets where appropriate.
- Verify revocation using an agreed check. Record any remaining access and its named owner.
An access closure record with verification and outstanding items.
6.07Close evidence handling
Apply the retention plan across all working copies.
- Review working machines, shared folders, report drafts, cloud storage and backups used during the engagement.
- Delete or retain each category according to the agreement and record any permitted exception.
- Confirm who owns any retained evidence and when it will be reviewed or deleted. Do not claim secure erasure of backups you cannot verify.
A retention and deletion record with locations, dates and accountable owners.
6.08Complete the client handover
Make sure no operational task is left without an owner.
- Confirm receipt of final reports, cleanup records and the retest results where included.
- Record open questions, accepted risks and client actions without treating silence as acceptance.
- Close the engagement administration, including invoices or internal approvals where relevant.
A handover record and a list of remaining actions with owners.
6.09Capture lessons learnt
Improve the method without carrying client secrets into future work.
- Review estimation, test coverage, tool performance, communication and the usefulness of the report.
- Record repeated root causes and procedural improvements using anonymised examples.
- Update checklists, lab tests or report guidance. Keep client-specific evidence in the agreed engagement records.
A small set of practical improvements assigned to the testing team.
6.10Plan the next assurance step
Help the client decide what should happen after this test.
- Recommend checks for material changes, newly exposed services and systems that were outside scope.
- Suggest a focused reassessment or specialist application, identity or cloud review where the evidence supports it.
- Agree follow-up responsibility and timing based on the client’s risk and obligations, rather than assuming one test covers everything.
A proportionate follow-up plan linked to the engagement’s findings and limitations.
Before you move on
No matching content. Try a different search term.
Choose checks by service.
Port numbers are common conventions, not proof of the protocol in use. Select checks from observed behaviour and the agreed brief.
| Service | What to assess | Evidence and interpretation |
|---|---|---|
| DNS | Authoritative and recursive behaviour, permitted transfers, stale aliases and public records. | Record exact query, server and response. A discovered name is not automatically in scope. |
| TLS services | Certificate trust and hostname, chain, protocols and encryption choices. | Use the intended hostname and SNI. Check against the agreed baseline and current vendor guidance. |
| SSH | Negotiated algorithms, key strength, authentication and access restrictions. | Distinguish a remotely observed capability from a setting confirmed through authorised configuration review. |
| HTTP / HTTPS | Virtual hosts, redirects, exposed files, session controls and in-scope application functions. | Capture redacted requests and responses. Missing headers alone do not establish a high-severity vulnerability. |
| API | Identity, object and field access, role boundaries, input handling and resource limits. | Use agreed test objects and roles. Avoid uncontrolled bulk requests or production transactions. |
| SMTP / mail | Relay restrictions, transport protection and relevant domain records. | Use controlled senders and recipients. Mail-domain record checks do not prove complete phishing resistance. |
| SMB / RDP | Unexpected exposure, authentication, encryption or signing requirements where applicable. | Record the actual negotiated behaviour. Do not infer a weakness solely from an open management port. |
| VPN / edge devices | Reachability, supported releases, relevant advisories, authentication and recovery paths. | Match the product and prerequisites. Restrict intrusive checks and account attempts to the agreed limits. |
| Databases / management | Network restrictions, identity controls, encryption and unintended unauthenticated access. | Prefer a test record or metadata proof. Do not extract production tables just to demonstrate read access. |
| Cloud / storage | Approved public resources, unintended data access and identity boundaries. | A configuration or tenant review needs its own permission set and coverage plan. |
Understand each request.
These examples are for Linux or a compatible shell. They use documentation targets, not permission to scan them. Replace targets only with approved assets and check options against your installed version.
Nmap’s scan-rate options do not provide a universal traffic limit for every probe or script. Agree tool-specific settings, monitor the service and stop if needed. Commands here are reference text and are not run by this website.
dig example.com AReplace example.com with an approved domain. Keep the response, resolver and timestamp.
dig example.com AAAACheck IPv6 coverage separately. An IPv4-only test may miss an exposed IPv6 service.
dig example.com MXRecord mail routing without assuming that a third-party provider is authorised for active testing.
nmap -sT -p 22,80,443 --max-rate 25 -oA tcp-selected 192.0.2.10Documentation address only. Replace it with an authorised target. This requests TCP connections on three ports. Agree the actual rate for the environment.
nmap -sT -sV --version-light -p 22,80,443 -oA service-review 192.0.2.10Run after confirming the ports and permission. Version probes add traffic and may affect fragile services. A banner does not prove vulnerability.
nmap -sT -p- --max-rate 25 -oA tcp-full 192.0.2.10Use only when full-range coverage is agreed. Port 1 through 65535 is covered; port 0 is not. This may take substantial time.
sudo nmap -sU -p 53,123,161 --max-rate 5 -oA udp-selected 192.0.2.10Requires suitable privileges. Use only approved UDP checks. Silence may produce open|filtered, which needs further validation.
curl --head --max-time 10 https://example.com/Replace with an approved origin. HEAD does not fully assess the application. No redirect-following or disabled certificate verification is included.
openssl s_client -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error </dev/nullUse an approved hostname. Review the trust and hostname result; this command alone does not assess all TLS protocols or ciphers. Shell syntax is for Linux or a compatible shell.
sha256sum evidence-file.txtLocal file only. A checksum helps identify a particular file; access control and a reliable audit trail are still needed.
Keep the evidence useful.
Store client records in your approved engagement workspace. The guide only saves checkpoint ticks locally, and has no fields for targets, notes or secrets.
| Record | Useful fields |
|---|---|
| Scope register | Asset ID; approved hostname, address or range; owner; environment; inclusion or exclusion; approver; approval date. |
| Coverage matrix | Asset; test case and version; role; method; date; tested, blocked, not applicable or not tested; reason; evidence reference. |
| Activity log | Timestamp and time zone; tester; source; destination; command or action; tool version; options; outcome; evidence reference. |
| Change and cleanup log | Change ID; host; account, file, session or setting; time; purpose; removal action; verification; outstanding owner. |
| Finding register | Finding ID; title; affected assets; status and confidence; severity; evidence; owner; target date; retest outcome. |
Technical finding structure
| Finding field | What to include |
|---|---|
| Identifier and title | Use a stable ID and a specific title describing the failed control. |
| Affected systems | Identify the exact host, URL, endpoint and role or configuration. List all confirmed instances. |
| Description and conditions | Explain the expected control, observed failure, prerequisites and assessment date. |
| Reproduction and evidence | Give precise steps and redacted request, response or configuration evidence. Link to protected originals if needed. |
| Impact and confidence | State what was demonstrated. Label inferred consequences and unverified paths explicitly. |
| Severity and rationale | Use the agreed scheme. If using CVSS, give its version, vector and score. Add the business context. |
| Remediation and verification | Explain the root-cause fix, any interim control and the exact result expected in a retest. |
| References | Link applicable vendor guidance, CVE or CWE entries and versioned test-case references. |
Retest outcomes
| Outcome | Meaning |
|---|---|
| Resolved | The agreed check no longer demonstrates the original issue under the tested conditions. |
| Partially resolved | Some instances or conditions are fixed, but material exposure remains. |
| Unresolved | The original issue remains reproducible. |
| Not retested | The issue was outside the retest scope, unavailable or otherwise not checked. State why. |
Methodology and review notes.
This guide combines established lifecycle principles with practical testing guidance. It does not claim certification, exhaustive coverage or endorsement by the organisations below. Technology-specific vendor guidance and the signed brief take precedence when choosing a test.
- NIST SP 800-115 ↗Assessment planning, execution and reporting.
- PTES ↗Engagement lifecycle and scoping principles.
- OWASP WSTG ↗Detailed web testing scenarios. Record the release and versioned scenario IDs you actually use.
- OWASP ASVS ↗Application control requirements. Agree the release and verification level.
- OWASP API Security ↗Common API risk areas; use with a complete test plan.
- Nmap documentation ↗Port scanning, service detection, options and timing behaviour.
- FIRST CVSS v4.0 ↗Technical severity scoring and vectors.
- FIRST EPSS ↗Dated exploitation-likelihood input for published CVEs.
- CISA KEV ↗Known exploitation context for prioritisation.
- Original gPenTest ↗The original six-phase structure behind this guide.
Reviewed on 22 October 2026. Source editions, tool options and provider conditions may change. Record the exact releases and requirements used for each engagement. Some reference sites may require an account or restrict automated access.