## https://sploitus.com/exploit?id=F6F142F3-3C4F-57A3-A265-A7DF88A31A6B
# pocsmith
`pocsmith` generates modular Python proof-of-concept templates from alias flags or YAML profiles.
## Install
From GitHub with `pipx`:
```bash
pipx install git+https://github.com/pr0f94/pocsmith.git
```
For local development:
```bash
git clone https://github.com/pr0f94/pocsmith.git
cd pocsmith
python3 -m pip install -e .
```
## Quick Start
```bash
pocsmith --profile web-callback -o exploit.py
pocsmith --session --auth-form -o exploit.py
pocsmith --local --proof -o callback.py
```
Existing output files are not overwritten unless `--force` is supplied.
## Aliases
```text
--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
Profiles are packaged with `pocsmith` and use alias names:
```yaml
web-callback:
- session
- flask
- cookie
- proof
```
Profiles are capability-based rather than lab- or exam-specific.
## Generated Runtime Args
Generated exploits only include runtime arguments needed by the selected modules. Target-aware modules use host-only targets and default to HTTP:
```bash
python3 exploit.py --target 192.168.1.10:8080
python3 exploit.py --target target.local --https
```
Callback modules require explicit callback values:
```bash
python3 exploit.py --callback-ip 192.168.45.123 --flask-port 8000
```
Netcat modules require an explicit port:
```bash
python3 exploit.py --nc-port 4444
```
## Generated Template Dependencies
`pocsmith` itself has no third-party runtime dependencies. Generated templates may need packages based on selected aliases:
```text
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.
## Color
`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.
## License
MIT