Methodology
A security assessment should be repeatable, authorized, documented, and risk-aware.
This page summarizes a practical offensive security workflow inspired by NIST SP 800-115, which describes technical security assessments as a process involving planning, execution, and post-execution activities.
Warning
Only perform testing on systems you own or have explicit written permission to assess.
Assessment Phases
NIST SP 800-115 describes a phased assessment methodology with three major phases:
| Phase | Purpose |
|---|---|
| Planning | Define scope, objectives, rules, resources, and constraints |
| Execution | Identify, analyze, and validate vulnerabilities |
| Post-Execution | Analyze findings, recommend mitigations, and report results |
This fieldbook uses that structure as a practical guide for labs, CTFs, internal practice, and authorized assessments.
1. Scope and Authorization
Before any technical testing, define what is allowed.
Important questions:
- What systems are in scope?
- What systems are out of scope?
- What testing methods are allowed?
- Are automated tools allowed?
- Are brute-force attacks allowed?
- Are denial-of-service tests prohibited?
- What time window is approved?
- Who should be contacted if something breaks?
- How should sensitive data be handled?
Example scope statement:
Testing is limited to 10.10.10.10 and target.thm.
No denial-of-service testing.
No persistence.
No testing outside the provided lab network.
2. Reconnaissance
Reconnaissance gathers information about the target.
Common activities:
- Identify hostnames
- Identify IP addresses
- Review public information
- Check DNS records
- Inspect HTTP headers
- Review
robots.txt - Review
sitemap.xml - Identify technologies
- Collect possible usernames or emails when in scope
Useful tools and techniques:
3. Enumeration
Enumeration actively identifies exposed services, paths, users, technologies, and application behavior.
Examples:
- Port scanning
- Service detection
- Web directory discovery
- Virtual host discovery
- Subdomain enumeration
- Login form analysis
- API route discovery
Useful tools:
Example:
4. Vulnerability Testing
Vulnerability testing checks whether discovered services or application features are affected by weaknesses.
Common web tests:
- Access control testing
- IDOR testing
- SQL injection testing
- Path traversal testing
- File upload testing
- SSRF testing
- Authentication testing
- Session handling review
Useful tools:
Good practice:
Change one variable at a time.
Compare responses carefully.
Record exact requests and responses.
Avoid destructive payloads.
5. Exploitation
Exploitation confirms whether a vulnerability has real impact.
Examples:
- Reading another user's data through IDOR
- Extracting limited proof-of-concept data through SQLi
- Reading a harmless local file through path traversal
- Triggering a callback for SSRF
- Uploading a safe proof-of-concept file in a lab
The goal is to prove impact safely, not to cause unnecessary damage.
Danger
Do not delete data, disrupt services, modify production records, or maintain persistence unless explicitly authorized.
6. Post-Exploitation Basics
Post-exploitation is the controlled analysis performed after gaining limited access in a lab or authorized assessment.
Common activities:
- Identify current user
- Identify hostname
- Check operating system
- Review network interfaces
- Understand privilege level
- Locate evidence of impact
- Avoid unnecessary changes
Linux examples:
Windows examples:
7. Documentation
Documentation turns technical activity into useful evidence.
Record:
- Target
- Scope
- Date and time
- Tool commands
- Requests and responses
- Screenshots
- Findings
- Impact
- Reproduction steps
- Recommended remediation
Example finding note:
Finding: Insecure Direct Object Reference
Target: /account?id=123
Evidence: Changing id=123 to id=124 returned another user's email address.
Impact: A normal user can access other users' account data.
Recommendation: Enforce server-side object ownership checks.
8. Reporting
A good report should be understandable and actionable.
Each finding should include:
| Section | Purpose |
|---|---|
| Title | Short issue name |
| Severity | Risk level |
| Summary | What the issue is |
| Impact | Why it matters |
| Evidence | Proof from testing |
| Steps to Reproduce | How to verify |
| Remediation | How to fix |
| References | Supporting material |
Severity should consider:
- Exploitability
- Impact
- Required privileges
- Exposure
- Data sensitivity
- Compensating controls
9. Cleanup
Cleanup depends on the scope and rules of engagement.
Possible cleanup tasks:
- Remove test files
- Remove uploaded proof-of-concept files
- Stop listeners
- Delete temporary accounts if created
- Remove generated artifacts
- Provide hashes or paths of files created
- Confirm cleanup with the system owner
Example cleanup note:
Removed uploaded test file:
/uploads/poc-test.txt
No persistence mechanisms were created.
No production data was modified.
Practical Workflow
A simple workflow for labs:
1. Confirm scope
2. Create scan directory
3. Run initial Nmap scan
4. Review exposed services
5. Enumerate web content
6. Inspect requests with Burp Suite
7. Test likely vulnerabilities manually
8. Use tools carefully when useful
9. Confirm impact safely
10. Document findings
11. Clean up artifacts
12. Write summary
Tool Mapping
| Phase | Tools |
|---|---|
| Reconnaissance | curl, browser, DNS tools |
| Enumeration | nmap, gobuster, Burp Suite |
| Vulnerability testing | Burp Repeater, manual payloads |
| Exploitation validation | Burp Suite, SQLMap, controlled payloads |
| Shell handling | Netcat, rlwrap, socat |
| Authentication testing | Hydra |
| Documentation | Markdown notes, screenshots, logs |
Rules of Thumb
- Get authorization first.
- Define scope before touching the target.
- Start broad, then go deep.
- Prefer manual understanding before automation.
- Use noisy tools carefully.
- Validate findings safely.
- Document exact evidence.
- Report remediation, not just exploitation.
- Clean up after testing.
Notes to Remember
- Methodology keeps testing consistent.
- Planning reduces risk.
- Enumeration drives good exploitation.
- Exploitation should prove impact safely.
- Documentation is part of the work, not an afterthought.
- Reporting should help someone fix the issue.
- Cleanup protects both the tester and the system owner.