Skip to content
/ RSPET Public
forked from panagiks/RSPET

RSPET (Reverse Shell and Post Exploitation Tool) is a Python based reverse shell equipped with functionalities that assist in a post exploitation scenario.

License

Notifications You must be signed in to change notification settings

gxskar/RSPET

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RSPET

MIT Licence Python 2.7 v0.2.7 Maintained Twitter

RSPET (Reverse Shell and Post Exploitation Tool) is a Python based reverse shell equipped with functionalities that assist in a post exploitation scenario.

DISCLAIMER: This software is provided for educational and PenTesting purposes and as a proof of concept. The developer(s) do not endorse, incite or in any other way support unauthorised computer access and networks disruption.

NOTE: min folder has been removed. The added overhead of maintaining two versions lead to min not recieving bug-fixes and important updates. If there is interest, both in using and maintaining, a more bare-bone and simplistic version, a new branch will be created to host it.

Current Version: v0.2.7

Follow: @TheRSPET on Twitter for updates.

Documentation : rspet.readthedocs.io

Features

  • Remote Command Execution
  • Trafic masking (XORed instead of cleartext); for better results use port 443[1]
  • Built-in File/Binary transfer (both ways) over the masked traffic
  • Built-in UDP Flooding tool
  • Built-in UDP Spoofing tool[2]
  • Multiple/All Hosts management; order File/Binary transfer and UDP Flood from Multiple/All connected Hosts
  • Modular Code Design to allow easy customization
  • Client script is tested and is compatible with PyInstaller (can be made into .exe)[3]
  • Full server side plug-in support.[4]
  • RESTful API for the Server Module.

*[1]The idea for XORing as well as the skeleton for the client came from primalsecurity.net so if you like this pack of scripts you'll probably love what they do

*[2]UDP Spoofing uses RAW_SOCKETS so in order to utilize it, the client has to run on an OS that supports RAW_SOCKETS (most Unix-Based) and with root privilages. Finally, most of the ISPs have implementations in place that will either drop or re-structure spoofed packets

*[3]Again check primalsecurity.net's perfect blogpost about producing an .exe

*[4]Detailed documentation on creating plugins available in Online Documentation!

Deployment:

  • rspet_server.py is situated at the attacker's machine and running to accept connections
  • rspet_client.py is situated in the infected machine(s) and will initiate the connection and wait for input.

Execution:

  • Server:
python rspet_server.py (max_connections) 

max_connections defaults to 5 if left blank

  • RESTful API:

    • Install Flask with pip (only the first time)

      pip2 install Flask
    • Start the API

      python rspet_server_api.py
  • Client:

python rspet_client.py server_ip

Many changes can be made to fit individual needs.

As always if you have any suggestion, bug report or complain feel free to contact me.

ASCIICAST

asciicast

Distros

A list of Distros that contain RSPET

As Featured in

Todo

  • Fix logic bug where if a direct command to Host OS has no output Server displays command not recognized
  • Fix logic bug where if a direct command's to Host OS execution is perpetual the Server deadlocks
  • Add client version and type (min or full) as a property when client connects and at List_Hosts
  • Replace XORing with private key encryption (with random private key generated and traded upon connection)
  • Must find a way that does not require any extra installation on the client
  • Add a NoSQL (at least server-side) to store and handle traded keys
  • Add public key encryption in order to:
    • Encrypt the exchange of the private key
    • Verify the "authenticity" of clients
  • Add client update mechanism (initial thought was the use of execv but it acts up)
  • Add a plugin system to client (a more compact one)
  • Add remote installation of plugins to client
  • Add installed plugins report from client to server
  • Add UDP Reflection functionality
  • Provide more settings via config file
  • Re-introduce multythreading when handling multiple hosts.
  • Make commands available with 'Tab' automatically generated based on loaded plugins.
  • Fix logical bug when deleting a client. (Client still shows up on List_Hosts)
  • Create comprehensive plug-in creation guide.

Styleguide

This project is following Google's Python Styleguide with a minor variation on the use of whitespaces to align ":" tokens.

Contribution Opportunities

This project is open for contributors. If you have implemented a new feature, or maybe an improvement to the current code feel free to open a pull request. If you want to sugest a new feature open an issue. Additionally Testers are needed to run a few standard scenarios (and a few of their own maybe) to decrease the chance a bug slips into a new version. Should there be any interest about testing a beta branch will be created (where code to be tested will be uploaded) along with a list of scenarios. For a full guide on contribution opportunities and guides check out the "Contributing" chapter on RSPET's Online Documentation

Author - Project Owner/Manager

panagiks

Co-Author

dzervas -- Code (Server OO-redesign, Server Plug-in system implementation, bug reports, bug fixes)

Contributors

  • b3mb4m -- Code (tab.py and bug fixes)
  • junzy -- Docstings (udp_spoof & udp_spoof_send)

License

MIT

About

RSPET (Reverse Shell and Post Exploitation Tool) is a Python based reverse shell equipped with functionalities that assist in a post exploitation scenario.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%