
Ein modulares Asset-Discovery-Framework, geschrieben in Python, um die sich wiederholende manuelle Arbeit zu automatisieren.
Cygor ist ein modulares Asset-Discovery-Framework, das Scannen, Parsen und Service-Enumeration in einem Workflow vereint. Es ersetzt das Flickwerk separater Tools durch einen automatisierten Prozess, der Discovery, Anreicherung und gezielte Enumeration nahtlos handhabt – so wird manueller Aufwand reduziert und Sie können sich auf Ergebnisse statt auf Tool-Verwaltung konzentrieren.
Die Web-Oberfläche von Cygor nimmt das Chaos roher Scandaten und organisiert es in einer einzigen, visuellen Kommandozentrale. Anstatt endlose XML-, JSON- oder Klartextdateien durchzugehen, werden Ergebnisse automatisch geparst, angereichert und in einem Bereich angezeigt, der für schnelle Triage und Entscheidungsfindung ausgelegt ist.
Angetrieben von FastAPI und Bootstrap 5 macht das Dashboard Folgendes einfach:
Die Web-Oberfläche dient nicht nur der Präsentation – sie dient der Effizienz und Klarheit. Indem alle gesammelten Daten in einem einzigen, interaktiven Arbeitsbereich zusammengeführt werden, reduziert sie die Zeit, die für das Parsen von Dateien oder das Abgleichen von Ausgaben aufgewendet wird, und ermöglicht es Testern, sich auf das Wesentliche zu konzentrieren: das Verständnis der Umgebung und das Handeln darin.
Viele Tools, Techniken und Vorgehensweisen, die ich erstelle, sind vom Spawn-Universum inspiriert. Falls du noch nie einen Spawn-Comic gelesen hast, ist das in Ordnung – ich werde einige Informationen dazu geben, warum ich den Charakter als Namen für dieses Tool ausgewählt habe.
Der Name Cygor leitet sich von Cy-Gor ab, einem tragischen Antihelden im Spawn-Universum. Einst war er Michael Konieczny – ein Regierungsagent und enger Freund von Al Simmons –, der versuchte, Korruption aufzudecken, nachdem Simmons ermordet worden war. Er wurde jedoch gefangen genommen und in Project Sim gezwungen, die Affenexperimente von Dr. Frederick Willheim, bei denen ein Gorillakörper mit Koniecznys Geist durch invasive Kybernetik verschmolzen wurde. Das Ergebnis war die Bestie namens Cy-Gor – kurz für Cybernetic Gorilla (Kybernetischer Gorilla).
Nach der Flucht aus der Gefangenschaft begab sich Cy-Gor auf gewalttätige Amokläufe und riss sogar Regierungsrechenzentren in Anfällen von Verwirrung und Wut nieder. Obwohl er mehrfach gejagt und wieder eingefangen wurde, wehrte er sich schließlich gegen die Systeme, die ihn kontrollieren wollten – entfernte Tracking-Implantate und befreite sich, um seinen eigenen Weg zu gehen, zerrissen zwischen Maschine, Bestie und Mensch.
webenum orchestriert (nur die installierten Tools werden ausgeführt).Es gibt mehrere unterstützte Methoden, um Cygor zu installieren: pip, pipx, uv und Docker.
Einige Abhängigkeiten (z. B. gssapi für Kerberos/WinRM) bauen C-Erweiterungen, also installieren Sie zuerst das Build-Toolchain und die Kerberos-Header:
# Debian/Ubuntu/Kali:
sudo apt install -y build-essential python3-dev libkrb5-dev
# Stabile Version:
pipx install cygor
# Installation aus dem Quellcode:
git clone https://github.com/tjnull/cygor
cd cygor
pipx install .
Das Docker-Setup von Cygor umfasst sowohl die Anwendung als auch einen PostgreSQL-Datenbankdienst. Das System fällt automatisch auf SQLite zurück, wenn PostgreSQL nicht verfügbar ist.
Produktion (empfohlen):
# Option 1: Verwenden Sie das Wrapper-Skript (behandelt automatisch Portkonflikte)
./docker-compose-up.sh up --build
# Option 2: Direktes docker compose (verwendet Standard-Ports)
docker compose up --build
Entwicklung (mit eingebundenem Quellcode):
# Option 1: Verwenden Sie das Wrapper-Skript (behandelt automatisch Portkonflikte)
./docker-compose-up.sh dev up --build
# Option 2: Direktes docker compose (verwendet Standard-Ports)
docker compose -f docker-compose-dev.yaml up --build
Das Docker-Compose-Setup umfasst:
results/: Scan-Ergebnisse, credrecon-Ergebnisse und Datenbankdateiencygor-config/: Lokales Konfigurations-Volume (wird automatisch erstellt)Standardmäßig:
5432 freigegeben (falls verfügbar)5434 freigegeben (falls verfügbar)5432 intern (Docker-Netzwerk)Wenn Ports bereits belegt sind, können Sie:
Das Wrapper-Skript verwenden (empfohlen - erkennt automatisch verfügbare Ports):
./docker-compose-up.sh up --build
Den Port manuell setzen:
export POSTGRES_HOST_PORT=5435
docker compose up --build
Port-Mapping entfernen (wenn Sie keinen externen PostgreSQL-Zugriff benötigen):
Kommentieren Sie den Abschnitt ports: in docker-compose.yaml aus
So erstellen Sie das Docker-Image manuell:
docker build -t cygor .
Einen einzelnen Container ausführen (ohne PostgreSQL-Dienst):
docker run --rm -v ./results:/opt/cygor/results \
-e CYGOR_RESULTS_DIR=/opt/cygor/results \
cygor web --host 0.0.0.0 --port 8080 --load-dir /opt/cygor/results