https://github.com/ordinary-hacker/oh-my-shells
The offline, CLI-first swiss army knife for shell payloads!
https://github.com/ordinary-hacker/oh-my-shells
payloads penetration-testing pentest pentesting red-team redteam shell toml
Last synced: 22 days ago
JSON representation
The offline, CLI-first swiss army knife for shell payloads!
- Host: GitHub
- URL: https://github.com/ordinary-hacker/oh-my-shells
- Owner: ordinary-hacker
- License: mit
- Created: 2025-08-30T02:01:25.000Z (about 1 month ago)
- Default Branch: trunk
- Last Pushed: 2025-08-30T03:17:49.000Z (about 1 month ago)
- Last Synced: 2025-08-30T04:11:13.283Z (about 1 month ago)
- Topics: payloads, penetration-testing, pentest, pentesting, red-team, redteam, shell, toml
- Language: C
- Homepage:
- Size: 83 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🐚 oh-my-shells
The offline, CLI-first swiss army knife for shell payloads! 🚀
[](#)
---
## ❓ Why, What, How?
To learn about why use this tool, and overview of what it is, and how it works, you can read my little article about it [here](https://0rd1n4ry.bearblog.dev/oh-my-shells).
---
## ✨ Features
- 🔍 **Search** and filter hundreds of shell payloads by OS, type, protocol, and language
- 📝 **Generate** ready-to-use payloads and listeners for your target
- 📋 **Show** detailed info for each shell
- 🖨️ **Colorful output** (with `--no-color` option for scripts)
- 🏷️ **Offline**: No internet required
- 🛠️ **Easy to extend** with your own payloads (just add TOML files!)
- 🆓 **Open Source** and hackable---
## 🚦 Usage
```sh
./oh-my-shell [OPTIONS]
```### Commands
- `list` — List payloads with optional filters
- `search ` — Search for payloads
- `show ` — Show details about a specific payload
- `generate ` — Generate a payload### Options
- `-i, --id ` Shell identifier
- `-s, --search ` Search term
- `-H, --lhost ` Local host for payload generation
- `-P, --lport ` Local port (default: 4444)
- `-S, --shell ` Shell to use for payloads
- `-e, --encoding ` Output encoding (url, base64, etc.)
- `-l, --listener` Output only the recommended listener
- `-p, --payload` Output only the generated payload
- `--no-color` Disable ANSI color output
- `--version` Show version information
- `-h, --help` Show help message### Filters (for `list`)
- `--os ` Filter by OS (bsd, linux, osx, unix, windows)
- `--type ` Filter by type (reverse, bind)
- `--proto ` Filter by protocol (tcp, udp, http)
- `--lang ` Filter by language (ruby, go, python, etc.)---
## 🧑💻 Examples
```sh
./oh-my-shell list --os linux --type reverse
./oh-my-shell search "netcat"
./oh-my-shell show bash_read_line
./oh-my-shell generate bash_i -H 192.168.1.100 -P 4444
./oh-my-shell --version
```---
## 📦 Adding Your Own Payloads
Just drop a new `.toml` file in the appropriate `shells/` subdirectory. The tool will pick it up automatically!
---
## 🛠️ Building
```sh
make
```---
## 📥 Installing & Updating
Just run the following command, note you need to have `make` installed:
```sh
curl -fsSL https://raw.githubusercontent.com/ordinary-hacker/oh-my-shells/trunk/install.sh | sudo bash
```Afterwards you can just run the tool as:
```sh
oh-my-shells -h
```---
## 📝 License
MIT License. See [LICENSE](LICENSE) for details.
---
Made with ❤️ by hackers, for hackers.