serpentine is a Windows RAT (Remote Administration Tool) that lets your interact with the clients using a multiplatform RESTful server.
Functionalities:
-
Startup
-
Get files
-
Put files
-
Keylogger
-
Reverse shell (Using
netcat
as a client, listen on a portnc -l -p 5555
and request a reverse shell connection to that port) -
Reverse proxy (Using
revp
, uploadrevp
to the client and execute it with a reverse shell)
client
directory holds the Windows portion of the RAT made with C++ and Boost.
server
holds the RESTful server portion made with Java and Spring.
frontend
can hold any number of frontends that consume the RESTful API but currently holds only a terminal client made with Go.
/client
GET --> Returns list of currently connected clients (clients that pinged in the last 10 seconds)
/client
POST --> Changes name associated with a client
/file/{client}
POST --> Fetches a file from a client
/file/{client}
PUT --> Uploads a file to a client
/shell/{client}
POST --> Makes a client initiate a reverse shell connection