Skip to content

iss4cf0ng/OpenShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenShell

status language license release

OpenShell is a lightweight, open-source reverse shell management server written in Go.
It allows users to establish reverse shell channels and interact with them through a simple web-based graphical user interface (GUI).

If you encounter bugs or have suggestions, feel free to open an issue.

If you find this project useful or informative, a ⭐ on the repository would be greatly appreciated! Your support would be a great motivation for me to continue improving this tool.

Disclaimer

This project was developed as part of my personal interest in studying cybersecurity. However, it may potentially be misused for malicious purposes.
Please do NOT use this tool for any illegal activities.
The author is not responsible for any misuse of this software.

Background

The idea of this project originated while I was learning web penetration testing and working on one of my side projects, Eden-RAT.

Compared to Eden-RAT, OpenShell focuses only on establishing reverse shell channels and providing a simple interactive interface.
Additional features may be added in the future.

Features

  • Lightweight reverse shell server written in Go
  • Web-based GUI for interactive shell sessions
  • Simple reverse shell command to connect
  • Designed for learning and research purposes

Installation

Download the lastest release:

$ wget https://github.com/iss4cf0ng/OpenShell/releases/latest/download/openshell-server-linux-amd64.tar.gz
$ tar -xzf openshell-server-linux-amd64.tar.gz
$ ./openshell-server

Quick Start

  1. Create key.pem and cert.pem:
$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
  1. Start the server
$ ./openshell-server
  1. Open your browser and navigate to:
https://localhost:8080
  1. Login using the default password (Please change it in production):
123456
  1. Generate a reverse shell command and execute it on the target machine.
  2. Have fun!

Architecture

OpenShell consists of two main components:

  • Go Server

    • Handles reverse shell connections
    • Manages sessions
    • Provides WebSocket interface
  • Web GUI

    • Built with xterm.js
    • Allows interactive shell sessions in browser
    • Supports multiple terminal tabs

Tech Stack

  • Go
  • WebSocket
  • xterm.js
  • PTY (github.com/creack/pty)

Roadmap

Future improvements may include:

  • File upload / download
  • Agent management
  • Session persistence
  • Authentication improvements

ScreenShot

Server

Login (Default Password: 123456. Please change it in production)

Create Reverse Shell Command

Sessions

Interactive Reverse Shell (capable to use vim, ssh, nano, nslookup, nc, etc.)

vim

nslookup

License

This project is licensed under the MIT License.

Acknowledgement