An open API service indexing awesome lists of open source software.

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!

Awesome Lists containing this project

README

          

# 🐚 oh-my-shells

The offline, CLI-first swiss army knife for shell payloads! 🚀

[![Version](https://img.shields.io/badge/version-v0.0.2-blue.svg)](#)

---

## ❓ 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.