Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
antnium — Ein C2-Framework für den Erstzugriff in Go | Kitploit
Tools/GitHubGitHub/dobin/antnium
DatenexfiltrationPost-ExploitationCommand and ControlRed TeamingPayload-EntwicklungRemote-Access-TrojanerArchived
GitHubdobin/antnium

antnium

Ein C2-Framework für den Erstzugriff in Go

Repository anzeigen
2003720vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Antnium

Anti Tanium

Ein C2-Framework und RAT, geschrieben in Go.

Dieser Quellcode ist als Referenz für meinen Vortrag Develop your own RAT - AV & EDR Defense öffentlich veröffentlicht worden. Antnium ist dazu gedacht, meine eigenen Anforderungen zu erfüllen, und nicht die anderer. Es funktioniert für die Kampagnen, die ich durchgeführt habe, ist aber nicht unbedingt als generisches C2-Framework gedacht.

Es gibt zwei Komponenten:

  • client.exe: Der eigentliche RAT / Beacon / Agent / Implant
  • server.exe: C2-Server

Features

  • HTTP/S- und Websocket-Kommunikationskanal
  • Proxy-Unterstützung (manuell, Windows, authentifiziert und Kerberos)
  • Befehlsausführung
    • Direkte LOLbins
      • Datei zuerst kopieren
      • Process Hollowing
    • Interaktive cmd.exe/PowerShell-Shell
    • Remote verwalteter und nicht verwalteter Code
      • Verwendung von Donut
      • PE zu Shellcode
      • Verschlüsselt
      • AMSI-Bypass
  • EDR-Bypass mit Reflexxion (Wiederherstellung von ntdll.dll)
  • Verschlüsselte Kommunikation
  • Malleable C2
  • Datei-Upload/-Download
  • Dateibrowser

Kurzanleitung

Lade Go (und Git) herunter und installiere es.

Wir verwenden hier 127.0.0.1:8080 als C2-Domäne (localhost, da wir sowohl client.exe als auch server.exe auf demselben Host starten). Dies ist auch die Standardeinstellung, es muss nichts geändert werden.

Kampagne in campaign/campaign.go prüfen:

  • serverUrl = "http://127.0.0.1:8080"

Unter Windows bauen:

> .\makewin.bat deploy

Unter Linux bauen:

$ make deploy

Server und Client starten:

cd build\
.\server.exe
.\static\client.exe

Ruf die WebUI auf, indem du nach dem Start von server.exe die folgende URL im Browser öffnest:

http://localhost:8080/webui/

Verzeichnisse

static/: Öffentliches Verzeichnis für Tools

Lege dort Dateien ab, die du auf anderen Maschinen herunterladen möchtest, z. B. client.exe, wingman.exe. Und deine Tools wie mimikatz.exe oder seatbelt.exe. Verwende aber unauffälligere Dateinamen.

Die Dateien sind auch über die /secure-API verfügbar, die mit verschlüsselten Dateinamen aufgerufen wird und als Antwort eine verschlüsselte, base64-kodierte Datei liefert.

dotNet-Dateien können mithilfe der Ausführungsoption remote ausgeführt werden (Zugriff über /secure).

upload/: Privates Verzeichnis für Datenexfiltration

Datei-Uploads vom Client werden dort gespeichert.

Detaillierte Build-Anleitung

Go-Installation:

  • Windows: https://golang.org/doc/install
  • Linux: apt install golang gcc-mingw-w64

Kompiliere client.exe und server.exe:

> .\makewin.bat deploy

Dies erstellt:

  • /build/server.exe
  • /build/server.elf
  • /build/static/client.exe
  • /build/static/client.elf
  • /build/static/wingman.exe
  • /build/upload/
  • /build/webui/

Starte server.exe:

> cd build
> .\server.exe

Antnium 0.1
Loaded 0 packets from db.packets.json
Loaded 0 clients from db.clients.json 
Periodic DB dump enabled
Starting webserver on 127.0.0.1:8080  

Starte client.exe:

> .\build\static\client.exe

Antnium 0.1
time="2021-09-02T21:48:16+02:00" level=info msg="UpstreamHttp: Use WS"
time="2021-09-02T21:48:16+02:00" level=info msg="Connecting to WS succeeded"
time="2021-09-02T21:48:16+02:00" level=info msg=Send 1_computerId=c4oil02sdke2sp3nfngg 2_packetId=0 3_downstreamId=client 4_packetType=ping 5_arguments="map[]" 6_response=...
time="2021-09-02T21:48:16+02:00" level=info msg=Send 1_computerId=c4oil02sdke2sp3nfngg 2_packetId=0 3_downstreamId=client 4_packetType=ping 5_arguments="map[]" 6_response=...

Hinweise zum Cross-Compilieren

Das Kompilieren des Windows-Clients unter Linux funktioniert, erfordert aber etwas manuelles GO-gcc-Kommandozeilen-Know-how, da einige Windows-Abhängigkeiten bestehen. Wenn es nicht sofort funktioniert, kompiliere den Windows-Client unter Windows selbst (makewin.bat client).

Hinweise zur Kampagnenkonfiguration

pkg/campaign/campaign.go verbindet eine kompilierte client.exe mit einer bestimmten server.exe, was eine Kampagne bildet. Eine Kampagne hat individuelle Verschlüsselungs- und Authentifizierungsschlüssel, die zwischen Server und Client geteilt werden.

type Campaign struct {
	ApiKey      string  // Key used to access client facing REST
	EncKey      []byte  // Key used to encrypt packets between server/client

	ServerUrl   string  // URL of the server, as viewed from the clients
}

Und der Admin-UI-/Operator-Schlüssel in pkt/server/config.go:

type Config struct {
	AdminApiKey string
}

Beachte, dass ServerUrl die URL ist, die der Client für die gesamte Interaktion mit dem Server verwendet. Es ist die öffentliche Server-URL, z. B. http://totallynotmalware.ch. Die eigentliche server.exe kann sich hinter einem Reverse-Proxy befinden und mit server.exe --listenaddr 127.0.0.1:8080 gestartet werden (ServerUrl ist also nicht unbedingt gleich listenaddr).

Hinweise zum Serverzugriff

Beim ersten Verbinden mit dem Server musst du zuerst auf die UI zugreifen und sie konfigurieren.

Die Angular-UI-Dateien sind öffentlich zugänglich. Nehmen wir an, ServerUrl="http://localhost:8080" und listenaddr=0.0.0.0:8080. Du kannst entweder:

  • die integrierte antniumui verwenden, verfügbar unter http://localhost:8080/webui in deinem Browser
  • oder ng serve aus dem antniumui-Verzeichnis ausführen und dann http://localhost:4200 in deinem Browser öffnen

Wenn du dich im Browser mit der UI verbindest, musst du zuerst die Server-IP und ihr Passwort konfigurieren:

  • AdminApiKey (Standard: "Secret-AdminApi-Key", wie in der Standardkonfiguration)
  • ServerIP (Standard: "http://localhost:8080")
  • User (optional, kann beliebig gewählt werden)

Client

Getestet auf:

  • Windows 10
  • Ubuntu 20.04 LTS

Unter Windows kompilieren:

> .\makewin.bat client

Setze es auf deinem Zielsystem ein.

Server

Getestet auf:

  • Funktioniert: Ubuntu 20.04 LTS, Go 1.13.8
  • Funktioniert: Windows 10, Go 1.16.6
  • Kompilierung fehlgeschlagen: Ubuntu 16.04 LTS, Go 1.6.2

Unter Linux:

$ make server
$ mkdir -p static upload
$ ./server --listenaddr 0.0.0.0:8080

Das Ergebnis ist server.exe. Stelle sicher, dass du es in dem Verzeichnis ausführst, in dem du Folgendes hast oder erwartest:

  • upload/
  • static/
  • db.*.json als Arbeitsverzeichnis.

Es startet einen REST-Server auf diesem Port, der Folgendes bereitstellt:

  • /: REST für die Clients
  • /ws: Websocket für die Clients
  • /admin: REST für die Admin-Oberfläche (Paket hinzufügen, Clients abrufen)
  • /adminws: Websocket für die Admin-Oberfläche (Pakete pushen)
  • /webui: HTML-Dateien für die Admin-Oberfläche (Angular-Quellcode und HTML, greift auf REST und Websocket zu)

Setze einen Reverse-Proxy davor (stelle sicher, dass er Websockets unterstützt!) oder leite Ports weiter.

Optionen

Für manuellen Proxy verwende die vollständige HTTP-URL:

client.exe -proxy http://proxy:8080

oder über Umgebungsvariablen:

export PROXY http://localhost:8080
./client

Wingman

Wingman ist im Grunde der Client, jedoch ohne direkte Verbindung zum C2. Er kann sich mit einem vorhandenen Client auf localhost:50000 verbinden (stelle sicher, dass er gestartet ist, wenn Campaign.AutoStartDownstreams false ist).

Verbindet sich mit localhost-Port 50000:

wingman.exe

Oder verwende rundll32.exe, um die DLL zu laden (die 64-Bit-rundll32-Version in system32, nicht die 32-Bit-Version in C:\Windows\SysWOW64\rundll32.exe):

C:\Windows\System32\rundll32.exe .\wingman.dll,Start

Es erscheint als Downstream net#0.

Testen

go test ./...

Es können weiterhin Race Conditions auftreten. Wenn es einmal fehlschlägt, führe es einfach erneut aus.

Tool herunterladen