• Stars
    star
    446
  • Rank 97,888 (Top 2 %)
  • Language
    C++
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

C++/Win32/Boost Windows RAT (Remote Administration Tool) with a multiplatform Java/Spring RESTful C2 server and Go, C++/Qt5 frontends

serpentine

serpentine is a Windows RAT (Remote Administration Tool) that lets you interact with the clients using a multiplatform RESTful C2 server.

Functionalities:

  • Startup

  • Get files

  • Put files

  • Keylogger (Just get %APPDATA%/svchost/log file)

  • Reverse shell (Using netcat as a client, listen on a port nc -l -p 5555 and request a reverse shell connection to that port)

  • Reverse proxy (Using revp, upload revp to the client and execute it with a reverse shell)

  • Take screenshots

  • Remote desktop (Using qtserpentine frontend) [Work in progress, sending input is still in development]

Dissection

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, currently holds goserpentine terminal client and qtserpentine GUI client.

Building & running

Build server with mvn package and then run the JAR with 2 arguments, first being the client-listening port and second the port RESTful API will be served at. Example: java -jar target/serpentine-0.1.0.jar 2222 8080

Build client with Visual Studio and also include Boost libraries: https://www.boost.org/doc/libs/1_73_0/more/getting_started/windows.html Change client settings in config.h.

Build goserpentine frontend with go build and run the resulting executable to see the list of options.

Build qtserpentine by installing Qt Creator and building through that. Provide QTSERPENTINE_API_ADDRESS environment variable that points to the API server.

API

(To learn more about the endpoints and input parameters check the controllers in server code)

/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

/desktop/{client} GET --> Takes and fetches a screenshot

More Repositories

1

rconn

rconn is a multiplatform program for creating generic reverse connections. Lets you consume services that are behind firewall or NAT without opening ports or port-forwarding.
Go
320
star
2

connmap

connmap is an X11 desktop widget that shows location of your current network peers on a world map
C
311
star
3

sysm

sysm makes your system play custom sounds when any configured system or external event happens
C++
214
star
4

rssnix

Unix-style filesystem-based RSS/Atom/JSON Feed fetcher/reader
Go
171
star
5

modreveal

Utility to find hidden Linux kernel modules
C
144
star
6

clex

clex is a simple lexer generator
C
93
star
7

cppq

Simple, reliable & efficient distributed task queue for C++17
C++
93
star
8

revp

Reverse HTTP proxy that works on Linux, Windows, and macOS. Made with C++ and Boost.
C++
85
star
9

cparse

cparse is an LR(1) and LALR(1) parser generator
C
50
star
10

core86

[WIP] 8086 IBM PC emulator
Rust
25
star
11

eemit

Tiny event emitter library for Java
Java
23
star
12

symposium

Modern discussion forums software. Made with Go, React, and PostgreSQL.
JavaScript
22
star
13

c-skeleton

Boilerplate for basic C projects
C++
17
star
14

ccompile

[WIP] C compiler
C
5
star
15

cppdataloader

cppdataloader is a batching and caching library for C++17
C++
5
star
16

cpreprocess

[WIP] C preprocessor
C
4
star
17

uefi

[WIP] UEFI bootloader
Shell
4
star
18

8086emulate

[WIP] 8086 emulator
C
4
star
19

repotrack

Tracks comments on GitHub issues and PRs assigned to you
Python
3
star
20

dotfiles-old

Personal system configuration files, scripts, etc.
Shell
3
star
21

hnreader

HackerNews reader app for Wear OS
Kotlin
2
star
22

file-hosting

2
star
23

forumd

[WIP] Modern discussion forums software
TypeScript
2
star
24

mepsitahl

[WIP] x86_64 OS
C
2
star
25

geolocation-service

Go
1
star
26

addressbook

Go
1
star
27

8086assemble

[WIP] 8086 assembler
C
1
star
28

x86nix

[WIP] x86 OS
C
1
star
29

archive

Archived projects
C++
1
star