
RevSuit ist eine flexible und leistungsstarke Reverse-Connection-Plattform, die entwickelt wurde, um Verbindungen von Zielhosts bei Penetrationstests zu empfangen.
Englisch |简体中文
RevSuit ist eine flexible und leistungsstarke Reverse-Connection-Plattform, die dafür entwickelt wurde, Verbindungen von Zielhosts bei Penetrationstests zu empfangen. Sie unterstützt derzeit die Protokolle HTTP, DNS, RMI, LDAP, MySQL und FTP.
Flexibel:
Leistungsstark:
Laden Sie die neueste Version direkt herunter oder erstellen Sie sie durch die folgenden Schritte:
git clone https://github.com/Li4n0/revsuit.git
cd revsuit/frontend && yarn install && yarn build
cd ../ && go build ./cmd/revsuit/revsuit.go
RevSuit erstellt beim ersten Start eine standardmäßige Konfigurationsdatei. Passen Sie die Konfigurationsdatei nach Ihren Bedürfnissen an und führen Sie sie erneut aus. Eine detaillierte Beschreibung der Konfigurationsdatei finden Sie unter: Konfigurationshinweise
Um den IP-Standort zu bestätigen, muss die IP-Standortdatenbank verwendet werden. Standardmäßig wird QQwry als Datenquelle verwendet. Sie können die Konfiguration auch ändern, um GeoIP zu verwenden. Wenn die ausgewählte Datenbank nicht im aktuellen Verzeichnis vorhanden ist oder die Datenbank seit mehr als einer Woche nicht aktualisiert wurde, lädt RevSuit automatisch die neueste Datenbank herunter. Wenn der Download fehlschlägt, bleibt das IpArea-Feld immer null.
$ ./revsuit
2021/05/16 22:55:10 [ INFO] Downloading qqwry.dat...
____ _____ _ __
/ __ \___ _ __/ ___/__ __(_) /_
/ /_/ / _ \ | / /\__ \/ / / / / __/
/ _, _/ __/ |/ /___/ / /_/ / / /_
/_/ |_|\___/|___//____/\__,_/_/\__/
vBeta0.1
https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Starting HTTP Server at :80, token:your_token
2021/05/16 22:55:22 [ INFO] Start to listen FTP PASV port at :2020, PasvIP is 10.9.8.7
2021/05/16 22:55:22 [ INFO] Starting FTP Server at :21
2021/05/16 22:55:22 [ INFO] Starting MySQL Server at :3306
2021/05/16 22:55:22 [ INFO] Starting RMI Server at :1099
2021/05/16 22:55:22 [ INFO] Starting DNS Server at :53
Nach dem Start können Sie den Pfad /revsuit/admin/ des HTTP-Servers aufrufen und das Token eingeben, um auf das Kontrollzentrum zuzugreifen.
Als Beispiel die Erstellung von HTTP-Regeln:
Einige Hinweise:
name und flagFormat einer Regel sind eindeutig.FlagFormat verwendet reguläre Ausdrücke, und je nach Protokoll unterscheiden sich die Felder, die von flagFormat abgeglichen werden. Beim Erstellen von Regeln können Sie die entsprechenden Hinweise für Details prüfen.flagFormat festlegen, und das Ergebnis der übereinstimmenden Gruppe wird ebenfalls als Template-Variable verwendet.Wie unten gezeigt, erstellen wir eine Regel, die die eingebauten Template-Variablen und benutzerdefinierten Template-Variablen des HTTP-Protokolls verwendet, und nennen sie test_create_rule:

Dann senden Sie eine Anfrage, die der Regel entspricht, und sehen Sie die Antwort.

Die Anfrage wird gleichzeitig auf der Plattform protokolliert.

Wenn Sie über Ihre Bürosoftware über neue Verbindungen benachrichtigt werden möchten, können Sie die Webhook-Adresse der entsprechenden Software in der Konfigurationsdatei konfigurieren und den Schalter Notice für die entsprechende Regel aktivieren. Derzeit werden nur vier Softwaretypen unterstützt: DingTalk, WeChat, Lark, Slack. (Unterstützung für Discord und Telegram ist geplant.)
Wenn Sie Plattformen migrieren oder Daten bereinigen, kann das Neuerstellen von Regeln mühsam sein. Daher unterstützt die Plattform den Import und Export von Regeln.
Der Einstiegspunkt für diese Funktion befindet sich unter Settings>RULES.
Die Regeln werden im YAML-Format für Import und Export gespeichert, wie folgt:
http:
- name: test_create_rule
flag_format: (?P<what>\w+)\?
rank: 0
push_to_client: false
notice: false
response_status_code: "302"
response_headers:
Location: ${query.url}
response_body: ${header.say} ${what}
- name: other_rule
flag_format: other
rank: 1
push_to_client: false
notice: true
response_status_code: "200"
response_headers: { }
response_body: Hello Revsuit!
dns:
... ...
RevSuit wurde aus meinem Scanner-Projekt ausgegliedert, daher ist die native Unterstützung für die Arbeit mit Scannern gegeben.
Aus RevSuit-Perspektive nennen wir einen Scanner einen Client.
RevSuit verwendet HTTP Server-sent Events (SSE), um einen unidirektionalen Kommunikationskanal mit dem Client aufzubauen.
Die API für den Kanal ist: /revsuit/api/events?message. Der Client muss zunächst den Header Token: your token zum Header hinzufügen und dann auf die API zugreifen, um den Kanal einzurichten. Wenn die Plattform eine neue Verbindung empfängt, wird das von der Regel erfasste flag über diesen Kanal an den Client gesendet.

Hier ist eine einfache Demo unter Verwendung der Golang-SSE-Bibliothek als Beispiel.
Wie oben gezeigt, unterstützt RevSuit mehrere Clients, und jeder Client im verbundenen Zustand empfängt einen Push des flag, sodass verteiltes Scannen unterstützt werden kann.
Wenn Sie nicht möchten, dass jeder Client alle flag-Pushes erhält, können Sie beim Erstellen einer SSE-Verbindung den Request-Header Flag-Filter verwenden, um das Format (reguläre Ausdrücke) des flag festzulegen, das dieser Client empfangen soll:
