
Un framework modulaire de découverte d'actifs écrit en python pour automatiser le travail manuel répétitif
Cygor est un framework modulaire de découverte d'actifs qui réunit le scan, l'analyse et l'énumération de services dans un seul flux de travail. Il remplace la juxtaposition d'outils séparés par un processus automatisé qui gère la découverte, l'enrichissement et l'énumération ciblée de manière fluide — réduisant la charge manuelle et vous permettant de vous concentrer sur les résultats plutôt que sur la gestion des outils.
L'interface Web de Cygor transforme le chaos des données de scan brutes en un centre de commandement visuel unique. Au lieu de parcourir d'innombrables fichiers XML, JSON ou texte brut, les résultats sont automatiquement analysés, enrichis et affichés dans un espace unique conçu pour un tri rapide et une prise de décision efficace.
Propulsé par FastAPI et Bootstrap 5, le tableau de bord permet facilement de :
L'interface Web n'est pas seulement une question de présentation — elle vise l'efficacité et la clarté. En regroupant toutes les données collectées dans un espace de travail interactif unique, elle réduit le temps passé à analyser des fichiers ou à recouper les sorties, et permet aux testeurs de se concentrer sur l'essentiel : comprendre l'environnement et agir en conséquence.
Une grande partie des outils, techniques et méthodes que je crée est inspirée de l'univers Spawn. Si vous n'avez jamais lu de comics Spawn, pas de souci : je vais vous expliquer pourquoi j'ai choisi ce personnage pour nommer cet outil.
Le nom Cygor s'inspire de Cy-Gor, un anti-héros tragique de l'univers Spawn. Anciennement Michael Konieczny — un agent gouvernemental et ami proche d'Al Simmons — il a tenté de révéler la corruption après le meurtre de Simmons. Cependant, il a été capturé et contraint de participer au projet Sim, les expériences simiennes du Dr Frederick Willheim, où le corps d'un gorille a été fusionné à l'esprit de Konieczny grâce à des cybernétiques invasives. Le résultat fut la bête connue sous le nom de Cy-Gor — abréviation de Cybernetic Gorilla.
Après s'être échappé de sa captivité, Cy-Gor s'est livré à des raids violents, dévastant même des centres de données gouvernementaux dans des accès de confusion et de rage. Bien qu'il ait été traqué et repris à plusieurs reprises, il a finalement riposté contre les systèmes qui cherchaient à le contrôler — retirant ses implants de localisation et s'affranchissant pour tracer sa propre voie, déchiré entre la machine, la bête et l'homme.
webenum (seuls les outils installés sont exécutés).Plusieurs méthodes sont prises en charge pour installer Cygor : pip, pipx, uv et docker.
Certaines dépendances (par exemple gssapi pour Kerberos/WinRM) compilent des extensions C, installez donc d'abord la chaîne d'outils de compilation et les en-têtes Kerberos :
# Debian/Ubuntu/Kali:
sudo apt install -y build-essential python3-dev libkrb5-dev
# Stable version:
pipx install cygor
# Install from source:
git clone https://github.com/tjnull/cygor
cd cygor
pipx install .
L'installation Docker de Cygor comprend à la fois l'application et un service de base de données PostgreSQL. Le système bascule automatiquement vers SQLite si PostgreSQL n'est pas disponible.
Production (recommandé) :
# Option 1: Use the wrapper script (automatically handles port conflicts)
./docker-compose-up.sh up --build
# Option 2: Direct docker compose (uses default ports)
docker compose up --build
Développement (avec le code source monté) :
# Option 1: Use the wrapper script (automatically handles port conflicts)
./docker-compose-up.sh dev up --build
# Option 2: Direct docker compose (uses default ports)
docker compose -f docker-compose-dev.yaml up --build
La configuration Docker Compose comprend :
results/ : Sorties de scan, résultats credrecon et fichiers de base de donnéescygor-config/ : Volume de configuration local (créé automatiquement)Par défaut :
5432 (si disponible)5434 (si disponible)5432 en interne (réseau Docker)Si les ports sont déjà utilisés, vous pouvez :
Utiliser le script wrapper (recommandé - détecte automatiquement les ports disponibles) :
./docker-compose-up.sh up --build
Définir le port manuellement :
export POSTGRES_HOST_PORT=5435
docker compose up --build
Supprimer le mappage de ports (si vous n'avez pas besoin d'un accès PostgreSQL externe) :
Commentez la section ports: dans docker-compose.yaml
Pour construire l'image Docker manuellement :
docker build -t cygor .
Exécutez un conteneur unique (sans service PostgreSQL) :