Skip to content

iNihilistx/RascalShell

Repository files navigation

RascalShell

🖥️ About the Project

Developed for my Computer Science degrees Final Year Project. This reverse shell does something unique by implementing a command center through the use of the customtkinter library. Packaged along with this shell are two client projects. CLI - Allows for the standard reverse shell functionality for executing commands and flying under the radar. GUI - Allows the shell to function more like a remote machine handler. This project uses a mixture of GUI development, encryption and socket programming using the OOP paradigm.

❗ Disclaimer:

This reverse shell software is intended for educational and learning purposes only. By accessing and using this software, you agree that:

  1. You understand the potential risks and consequences associated with running and executing code from untrusted sources.

  2. You will only use this software in environments where you have proper authorization and legal permission to do so. Unauthorized or unlawful use of this software is strictly prohibited.

  3. The author of this software takes no responsibility for any misuse, damage, or illegal activities conducted using this software.

  4. You acknowledge that this software may be used to access systems and resources without proper authorization, which may violate applicable laws and regulations. It is your responsibility to ensure compliance with all relevant laws and ethical standards.

  5. You agree to use this software at your own risk. The author shall not be liable for any direct, indirect, incidental, special, or consequential damages arising from the use of this software.

  6. This software is provided "as is," without warranty of any kind, express or implied. The author makes no representations or warranties regarding the accuracy, reliability, or completeness of the software.

By using this software, you acknowledge that you have read, understood, and agreed to the terms and conditions outlined in this disclaimer. If you do not agree with these terms, you are not authorized to use this software.

🔎 Features

  • Secure communication between host and intended target through use of socket programming
  • fully python, with use of libraries
  • Graphical User Interface (GUI)
  • Network indicator (shell application) - informs you of network speed and status
  • Encrypted login (shell application)
  • User friendly applications with secure login and connection
  • Custom command implementation ~ Pressing the help button on the bottom of the right panel will display the commands
  • Unsecure command blockage (commands that alter the flow of the application or deemed dangerous are within a blocked array)

📖 Getting Started

Prerequisites

  • Python 3.x
  • libraries:
    • login:
      • subprocess, customtkinter, cryptography Fernet, signal
    • shell:
      • socket, subprocess, threading, tkinter, customtkinter
    • image receiver:
      • socket, pyautogui, io
    • client:
      • socket, subprocess, customtkinter, os
    • image_sender:
      • socket, io, pillow
  • stable internet connection

Installation

  1. Clone the repository: git clone https://github.com/iNihilistx/ReverseShellGUI.git
  2. unzip the folder
  3. follow below steps to create listener and establish connection

Usage

Host(shell):

  1. Navigate to the project directory: example: cd app/ReverseShellGUI
  2. Open terminal in directory
  3. Start the host using the command: python3 portal.py - python portal.py
  4. default user/pass: rascal
  5. run pwdchange.py to change the password for the application.

Client CLI:

  1. Navigate to the project directory: example: cd app/ReverseShellGUI
  2. Open terminal in directory
  3. Start the client using the command: python3 client-cli.py

Client GUI:

  1. Navigate to the project directory: example: cd app/ReverseShellGUI
  2. Open terminal in directory
  3. start the client using the command python3 portal.py - python portal.py
  4. After entering server details (IP and PORT). The window will redirect you to the connected page where you can see incoming an outbound commands

Tools Used