PEN is a modular, interactive penetration testing tool written in Go. It automates the scanning and exploitation of common web application security tests including IDOR enumeration, file upload testing, SQL injection detection, lateral movement checks, GraphQL endpoint discovery, WebSocket security testing, Git repository exposure scanning, server fingerprinting, and misconfiguration checks. Designed for authorized security assessments.
/api/users/{id} style endpoints for unauthorized profile access.git/HEAD, dumps repository, scans for secrets (patterns + CI/CD files)~/.pen_config.jsonjohn – password cracking (sudo apt install john)git-dumper – repository dumping (pip install git-dumper)websocat – WebSocket connections (sudo apt install websocat)git clone https://github.com/ekomsSavior/PEN.git
cd PEN
go mod init pen
go mod tidy
go build -o pen main.go
./pen
On first run, you will be prompted for the target base URL (e.g., https://example.com) and an optional Bearer token. The tool saves this configuration for future runs.
After starting, the main menu presents 12 options:
1. IDOR Enumeration (user profiles)
2. File Upload Test (requires token)
3. SQL Injection Test
4. Lateral Movement (other users' uploads)
5. Exploitation (crack hashes, privilege escalation)
6. GraphQL Testing
7. WebSocket Testing
8. Git Repository Exposure & Secret Scanning
9. Server & Framework Fingerprinting
10. Common Misconfigurations
11. Run All Scans
12. Exit
Select a number and press Enter. Most modules provide real‑time feedback with status indicators:
[+] – positive finding or successful operation[-] – error or negative result[*] – informational message[!] – vulnerability confirmed or important warning./pen
Enter target base URL (e.g., https://example.com): https://target.com
Enter Bearer token (if any, leave empty for none): eyJhbGciOiJIUzI1NiIs...
After configuration, choose option 1 to enumerate user profiles, or option 11 to run all tests sequentially.
.git/HEAD is accessible, the tool will dump the repository and scan for secret patterns (Google OAuth, AWS keys, GitHub tokens, Stripe keys, Slack tokens, private keys) and CI/CD configuration files.success:true indicates the endpoint accepts the file. A path traversal test that returns 200 indicates a high‑severity vulnerability..env, web.config, phpinfo.php).The tool stores your settings in ~/.pen_config.json:
{
"target": "https://example.com",
"token": "your_bearer_token"
}
To reset, delete the file or choose not to use saved configuration when prompted.
/api/users/{id}, /api/upload/csv, /api/networks, /api/my-uploads). For targets with custom paths, manual adjustment of the source code may be required.sqlmap for deeper analysis.createMultipart function for other file types.websocat to be installed and may not work over TLS if the certificate is self‑signed.This tool is intended for authorized security testing and educational purposes only. Use it only on systems you own or have explicit permission to test. The author assumes no liability for misuse.