Skip to content

Simple python reverse shell, execute commands remotly on the victim's computer. Multi-client not supported. Open-Source Project

Notifications You must be signed in to change notification settings

wheresryan22/reverse-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Logo

REVERSE SHELL

Reverse Shell Python3, open-source project made with Python3 - Flask

Travis Documentation Status LICENSE

Open-source project in Python3, Simple reverse shell, execute commands remotly and your victim computer

Please use this program only on consenting people, I remind you that it is only for educational purposes and that I am not responsible for your actions

Multi clients not supported, only single client for the moment

How does it work ?

Logo

  • How does a reverse shell work ?

The reverse shell principle is easy to understand, here is an example.

A basic shell, it is the attacker who connects to his victim using various ways

In the case of a reverse shell it is quite the opposite, the attacker sends a script / application or other containing a script which will allow to connect to the server of the attacker in case here, our local IP

The attacker has a script (In this case here it is the "server.py" which contains the whole backend for him to execute remote commands.

Quick explanation with an image :

Logo

To summarize instead of having the attacker who connects to his victim it is the victim who connects to the attacker.

πŸ›  Installation

Logo

Important, you must have the version 3.x of Python installed or higher

  • Clone this repository
git clone https://github.com/zaqoQLF/reverse-shell.git
  • Install the requirements First way :
python3 setup.py

Second way :

pip3 install -r requirements.txt

πŸš€ Running Program

Logo

  • SERVER SIDE :

Once all dependencies are installed, run the server.py script.

It will check for updates & check if all dependencies are correctly installed.

After that you should have a mode selection. If you want to try it locally select the first one. It will run on your localhost IP (http://127.0.0.1:5050/).

Once the server connected, it will listen for incoming requests.

If you select the second mode (Custom mode) your will be asked to choose your IP Address and your port. In order to be able to use this program with other computer (different IP address) you need to open your ports (Port forwarding) Once done you can choose your IP then your port (avoid port 80 etc...)

If the connection is established, it will listening for incoming requests.

  • CLIENT SIDE :

IMPORTANT : In order to connect the client to the server, the server needs to run

Before running the client.py script, you need to configure manually the host & ports parameters

# Change the ip here
self.HOST_IP = "IP HERE"
# Change the port here
self.PORT_SERVER = PORT HERE (INT)
# Example
# self.PORT_SERVER = 5050

Change the self.HOST_IP with your server IP Address & your self.PORT_SERVER with your server port number.

Once all done your can run the server.py first, then it should listening and now run the client.py script with the same port & IP as the server. it will automatically connect to the server.

Commands to connect (Server Side)

  • Commands before connection to the victim :

--connect IP : Connect to the user (specify IP)

--listen : Close current connection then listen for new incoming connections

view -r : View requested connection (Single client handling)

clear : Clear your terminal

exit -f : Force exit the program & end all connections

credits : View project credits

--setup : Setup the IP / port (Automatically closing all connections)

--param --all : View all parameters (IP, PORT)

--param -p : View server port

  • In order to execute commands, you need to accept incoming connection : (In reality, the connection is already accepted, but for the future i will be multi-client handling. So to prevent this i already coded that)
--connect IP HERE

Logo

  • If you want to view requested connection use this command :
    view -r

Logo

Remote Commands

  • Current remote commands available :

disconnect : Disconnect your from the current session (target)

exit : Exit program & end all connections

active -session : Display information about the active session (target)

get_info -name : Display victim Desktop name

get_info -sys : Display victim Desktop system (OS, Version...)

down -f : Download a file (USAGE: down -f NameOfTheFile) [ Avoid png, or jpeg, it will works but instantly crash, need to fix it in the next update]

screenshot : Take a screenshot of the Desktop (will be saved on the victim computer, to get it, use down -f) [ Will fix it in the next update] cd : Basic command

dir : Basic command

mkdir : Create a folder (USAGE: mkdir NameOfTheFolder)

rmdir : Delete a folder (USAGE: rmdir NameOfTheFolder)

rename : Rename a file or a folder

start : Open a Command prompt window (obv spotted)

status : Get the current user connected to you

get_info --all : Get all information system of your victim

  • More command coming soon.

About

Simple python reverse shell, execute commands remotly on the victim's computer. Multi-client not supported. Open-Source Project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages