Penetration Testing Phases
OpenSploit follows a structured penetration testing methodology with five phases. The agent automatically transitions between phases based on findings, though you can override this manually.
Phase Overview
Reconnaissance → Enumeration → Exploitation → Post-Exploitation → Reporting
1. Reconnaissance
Goal: Discover what's running on the target
The first phase focuses on understanding the attack surface:
- Port scanning (TCP/UDP)
- Service detection and version identification
- OS fingerprinting
- Web technology detection
Key Tools:
nmap- Port scanning and service detectionweb-fingerprint- Web technology identificationwhatweb- Additional web fingerprinting
Example:
> Perform reconnaissance on 10.10.10.1
Running nmap full port scan...
Found open ports: 22/tcp (SSH), 80/tcp (HTTP), 443/tcp (HTTPS)
Detected OS: Linux (Ubuntu)
Web server: nginx 1.18.0
2. Enumeration
Goal: Gather detailed information about discovered services
With services identified, enumerate them deeply:
- Directory and file discovery
- Vulnerability scanning
- Version-specific CVE research
- Application mapping
Key Tools:
ffuf/gobuster- Directory bruteforcingnikto- Web vulnerability scanningnuclei- Template-based scanningcve-lookup- CVE research
Example:
> Enumerate the web application on port 80
Running directory scan...
Found: /admin, /api, /uploads, /backup
Running nuclei vulnerability scan...
Found: CVE-2021-XXXXX in detected CMS
3. Exploitation
Goal: Gain initial access to the target
Attempt to exploit discovered vulnerabilities:
- SQL injection testing
- Credential attacks
- Known vulnerability exploitation
- Custom exploit execution
Key Tools:
sqlmap- SQL injectionhydra- Credential brute-forcingmetasploit- Exploitation frameworkexploit-runner- Custom exploits
Example:
> Test the login form for SQL injection
Running sqlmap on /login endpoint...
Vulnerability found: time-based blind SQL injection
Extracting database schema...
Found credentials in users table
4. Post-Exploitation
Goal: Escalate privileges and maintain access
After gaining initial access:
- Privilege escalation
- Credential harvesting
- Lateral movement
- Persistence mechanisms
Key Tools:
privesc- Privilege escalation enumerationssh- Remote accesstunnel- Port forwarding and pivotingmysql/mongodb- Database access
Example:
> I have SSH access as www-data. Escalate privileges.
Running privilege escalation checks...
Found: SUID binary /usr/bin/find
Exploiting via: find . -exec /bin/sh \; -quit
Gained root access
5. Reporting
Goal: Document findings and generate reports
Aggregate all findings into a professional report:
- Finding categorization by severity
- Evidence collection
- Remediation recommendations
- Multiple output formats
Output Formats:
- Markdown
- HTML
- PDF (planned)
Severity Levels:
- Critical - Immediate exploitation possible
- High - Significant security impact
- Medium - Moderate risk
- Low - Minor issues
- Info - Informational findings
Phase Transitions
OpenSploit automatically transitions phases based on:
| Trigger | Transition | |---------|------------| | Ports/services discovered | Recon → Enumeration | | Vulnerabilities identified | Enumeration → Exploitation | | Initial access gained | Exploitation → Post-Exploitation | | Objectives completed | Any → Reporting |
You can manually override with:
/phase exploitation
Phase-Appropriate Tools
Each phase has recommended and discouraged tools:
| Phase | Recommended | Discouraged | |-------|-------------|-------------| | Reconnaissance | nmap, web-fingerprint | sqlmap, metasploit | | Enumeration | ffuf, nuclei, nikto | exploitation tools | | Exploitation | sqlmap, hydra | reconnaissance tools | | Post-Exploitation | privesc, tunnel | scanning tools |
OpenSploit will warn if you try to use a tool inappropriate for the current phase.