pocsmith generates modular Python proof-of-concept templates from alias flags or YAML profiles.
From GitHub with pipx:
pipx install git+https://github.com/pr0f94/pocsmith.gitFor local development:
git clone https://github.com/pr0f94/pocsmith.git
cd pocsmith
python3 -m pip install -e .pocsmith --profile web-callback -o exploit.py
pocsmith --session --auth-form -o exploit.py
pocsmith --local --proof -o callback.pyExisting output files are not overwritten unless --force is supplied.
--session
--multi-session
--flask
--cookie
--local
--proof
--netcat
--auth-form
--auth-json
--register-json
--headers
--token-extractor
--html-parser
--csrf
--regex-extract
--base64
--file-upload
--zip-builder
--websocket
--websocket-async
--bruteforce-loop
Aliases automatically include their required dependencies. For example, --cookie adds Flask and queue support, --proof/--local add Flask callback support, and --csrf adds session and HTML parser support.
Profiles are packaged with pocsmith and use alias names:
web-callback:
- session
- flask
- cookie
- proofProfiles are capability-based rather than lab- or exam-specific.
Generated exploits only include runtime arguments needed by the selected modules. Target-aware modules use host-only targets and default to HTTP:
python3 exploit.py --target 192.168.1.10:8080
python3 exploit.py --target target.local --httpsCallback modules require explicit callback values:
python3 exploit.py --callback-ip 192.168.45.123 --flask-port 8000Netcat modules require an explicit port:
python3 exploit.py --nc-port 4444pocsmith itself has no third-party runtime dependencies. Generated templates may need packages based on selected aliases:
requests --session and dependent modules
flask --flask, --cookie, --local, --proof
beautifulsoup4 --html-parser, --csrf
websocket-client --websocket
websockets --websocket-async
Install only what the generated template imports.
pocsmith uses colored help and status output when stdout is an interactive terminal. Use --no-color or NO_COLOR=1 to disable color, or FORCE_COLOR=1 to force it.
MIT