Pentest Checklist
Purpose
Provide a comprehensive checklist for planning, executing, and following up on penetration tests. Ensure thorough preparation, proper scoping, and effective remediation of discovered vulnerabilities.
Inputs/Prerequisites
Clear business objectives for testingTarget environment informationBudget and timeline constraintsStakeholder contacts and authorizationLegal agreements and scope documentsOutputs/Deliverables
Defined pentest scope and objectivesPrepared testing environmentSecurity monitoring dataVulnerability findings reportRemediation plan and verificationCore Workflow
Phase 1: Scope Definition
Define Objectives
[ ] Clarify testing purpose - Determine goals (find vulnerabilities, compliance, customer assurance)[ ] Validate pentest necessity - Ensure penetration test is the right solution[ ] Align outcomes with objectives - Define success criteriaReference Questions:
Why are you doing this pentest?What specific outcomes do you expect?What will you do with the findings?Know Your Test Types
| Type | Purpose | Scope |
|---|
| External Pentest | Assess external attack surface | Public-facing systems |
| Internal Pentest | Assess insider threat risk | Internal network |
| Web Application | Find application vulnerabilities | Specific applications |
| Social Engineering | Test human security | Employees, processes |
| Red Team | Full adversary simulation | Entire organization |
Enumerate Likely Threats
[ ] Identify high-risk areas - Where could damage occur?[ ] Assess data sensitivity - What data could be compromised?[ ] Review legacy systems - Old systems often have vulnerabilities[ ] Map critical assets - Prioritize testing targetsDefine Scope
[ ] List in-scope systems - IPs, domains, applications[ ] Define out-of-scope items - Systems to avoid[ ] Set testing boundaries - What techniques are allowed?[ ] Document exclusions - Third-party systems, production dataBudget Planning
| Factor | Consideration |
|---|
| Asset Value | Higher value = higher investment |
| Complexity | More systems = more time |
| Depth Required | Thorough testing costs more |
| Reputation Value | Brand-name firms cost more |
Budget Reality Check:
Cheap pentests often produce poor resultsAlign budget with asset criticalityConsider ongoing vs. one-time testingPhase 2: Environment Preparation
Prepare Test Environment
[ ] Production vs. staging decision - Determine where to test[ ] Set testing limits - No DoS on production[ ] Schedule testing window - Minimize business impact[ ] Create test accounts - Provide appropriate access levelsEnvironment Options:
Production - Realistic but risky
Staging - Safer but may differ from production
Clone - Ideal but resource-intensive
Run Preliminary Scans
[ ] Execute vulnerability scanners - Find known issues first[ ] Fix obvious vulnerabilities - Don't waste pentest time[ ] Document existing issues - Share with testersCommon Pre-Scan Tools:
# Network vulnerability scan
nmap -sV --script vuln TARGETWeb vulnerability scan
nikto -h http://TARGET
Review Security Policy
[ ] Verify compliance requirements - GDPR, PCI-DSS, HIPAA[ ] Document data handling rules - Sensitive data procedures[ ] Confirm legal authorization - Get written permissionNotify Hosting Provider
[ ] Check provider policies - What testing is allowed?[ ] Submit authorization requests - AWS, Azure, GCP requirements[ ] Document approvals - Keep recordsCloud Provider Policies:
AWS: https://aws.amazon.com/security/penetration-testing/Azure: https://docs.microsoft.com/security/pentestGCP: https://cloud.google.com/security/overviewFreeze Developments
[ ] Stop deployments during testing - Maintain consistent environment[ ] Document current versions - Record system states[ ] Avoid critical patches - Unless security emergencyPhase 3: Expertise Selection
Find Qualified Pentesters
[ ] Seek recommendations - Ask trusted sources[ ] Verify credentials - OSCP, GPEN, CEH, CREST[ ] Check references - Talk to previous clients[ ] Match expertise to scope - Web, network, mobile specialistsEvaluation Criteria:
| Factor | Questions to Ask |
|---|
| Experience | Years in field, similar projects |
| Methodology | OWASP, PTES, custom approach |
| Reporting | Sample reports, detail level |
| Communication | Availability, update frequency |
Define Methodology
[ ] Select testing standard - PTES, OWASP, NIST[ ] Determine access level - Black box, gray box, white box[ ] Agree on techniques - Manual vs. automated testing[ ] Set communication schedule - Updates and escalationTesting Approaches:
| Type | Access Level | Simulates |
|---|
| Black Box | No information | External attacker |
| Gray Box | Partial access | Insider with limited access |
| White Box | Full access | Insider/detailed audit |
Define Report Format
[ ] Review sample reports - Ensure quality meets needs[ ] Specify required sections - Executive summary, technical details[ ] Request machine-readable output - CSV, XML for tracking[ ] Agree on risk ratings - CVSS, custom scaleReport Should Include:
Executive summary for managementTechnical findings with evidenceRisk ratings and prioritizationRemediation recommendationsRetesting guidancePhase 4: Monitoring
Implement Security Monitoring
[ ] Deploy IDS/IPS - Intrusion detection systems[ ] Enable logging - Comprehensive audit trails[ ] Configure SIEM - Centralized log analysis[ ] Set up alerting - Real-time notificationsMonitoring Tools:
# Check security logs
tail -f /var/log/auth.log
tail -f /var/log/apache2/access.logMonitor network
tcpdump -i eth0 -w capture.pcap
Configure Logging
[ ] Centralize logs - Aggregate from all systems[ ] Set retention periods - Keep logs for analysis[ ] Enable detailed logging - Application and system level[ ] Test log collection - Verify all sources workingKey Logs to Monitor:
Authentication eventsApplication errorsNetwork connectionsFile accessSystem changesMonitor Exception Tools
[ ] Track error rates - Unusual spikes indicate testing[ ] Brief operations team - Distinguish testing from attacks[ ] Document baseline - Normal vs. pentest activityWatch Security Tools
[ ] Review IDS alerts - Separate pentest from real attacks[ ] Monitor WAF logs - Track blocked attempts[ ] Check endpoint protection - Antivirus detectionsPhase 5: Remediation
Ensure Backups
[ ] Verify backup integrity - Test restoration[ ] Document recovery procedures - Know how to restore[ ] Separate backup access - Protect from testingReserve Remediation Time
[ ] Allocate team availability - Post-pentest analysis[ ] Schedule fix implementation - Address findings[ ] Plan verification testing - Confirm fixes workPatch During Testing Policy
[ ] Generally avoid patching - Maintain consistent environment[ ] Exception for critical issues - Security emergencies only[ ] Communicate changes - Inform pentesters of any changesCleanup Procedure
[ ] Remove test artifacts - Backdoors, scripts, files[ ] Delete test accounts - Remove pentester access[ ] Restore configurations - Return to original state[ ] Verify cleanup complete - Audit all changesSchedule Next Pentest
[ ] Determine frequency - Annual, quarterly, after changes[ ] Consider continuous testing - Bug bounty, ongoing assessments[ ] Budget for future tests - Plan aheadTesting Frequency Factors:
Release frequencyRegulatory requirementsRisk tolerancePast findings severityQuick Reference
Pre-Pentest Checklist
□ Scope defined and documented
□ Authorization obtained
□ Environment prepared
□ Hosting provider notified
□ Team briefed
□ Monitoring enabled
□ Backups verified
Post-Pentest Checklist
□ Report received and reviewed
□ Findings prioritized
□ Remediation assigned
□ Fixes implemented
□ Verification testing scheduled
□ Environment cleaned up
□ Next test scheduled
Constraints
Production testing carries inherent risksBudget limitations affect thoroughnessTime constraints may limit coverageTester expertise varies significantlyFindings become stale quicklyExamples
Example 1: Quick Scope Definition
Target: Corporate web application (app.company.com)
Type: Gray box web application pentest
Duration: 5 business days
Excluded: DoS testing, production database access
Access: Standard user account provided
Example 2: Monitoring Setup
# Enable comprehensive logging
sudo systemctl restart rsyslog
sudo systemctl restart auditdStart packet capture
tcpdump -i eth0 -w /tmp/pentest_capture.pcap &
Troubleshooting
| Issue | Solution |
|---|
| Scope creep | Document and require change approval |
| Testing impacts production | Schedule off-hours, use staging |
| Findings disputed | Provide detailed evidence, retest |
| Remediation delayed | Prioritize by risk, set deadlines |
| Budget exceeded | Define clear scope, fixed-price contracts |