Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/h4wkst3r/dop2mop
Sécurité de l'Infrastructure CloudReconnaissanceSécurité des ConteneursAnalyse des VulnérabilitésCollecte d'InformationsTests d'IntrusionSécurité CloudDevSecOpsGestion des Identités et des Accès (IAM)Sécurité de la Chaîne LogistiqueRed Teaming
4120il y a 5 moisPas encore vérifié
GitHubh4wkst3r/dop2mop

Dop2Mop

Collecteur OpenGraph pour BloodHound qui cartographie les chemins d'attaque de l'infrastructure DevOps à l'infrastructure MLOps, en collectant les ressources de pipeline CI/CD, de principal de service et de plateforme ML pour l'analyse des mouvements latéraux.

Voir le dépôt

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

Dop2Mop

Un collecteur OpenGraph de preuve de concept pour BloodHound qui cartographie les chemins d'attaque entre l'infrastructure DevOps et MLOps.

Basé sur Pipelines of Privilege: Attack Paths from DevOps to MLOps Infrastructure par Brett Hawkins (@h4wkst3r).

Table des matières

  • Remerciements
  • Aperçu
    • Plateformes prises en charge
    • Périmètres de confiance cartographiés
  • Installation
    • Dépendances optionnelles
  • Démarrage rapide
    • Générer des données de démonstration
    • Importer dans BloodHound
  • Configuration
    • Fichier de configuration
    • Validation des identifiants
  • Référence CLI
    • Aperçu des commandes
    • Options globales
    • dop2mop collect
    • dop2mop demo
  • Exemples d'utilisation CLI
    • Collecte de base
    • Collecte sur une seule plateforme
    • Collecte sur plusieurs plateformes
    • Exemples de collecte GitHub
    • Exemples de collecte Azure DevOps
    • Exemples de collecte Azure ML
    • Exemples de collecte AWS SageMaker
    • Collecte complète de l'environnement
  • Variables d'environnement
  • Types de nœuds
    • Nœuds DevOps
    • Nœuds MLOps
    • Nœuds d'identité
    • Nœuds d'artefact
  • Types d'arêtes
    • Arêtes de chemin d'attaque
    • Arêtes structurelles
  • Exemples de requêtes
  • Icônes personnalisées
    • Téléchargement des icônes dans BloodHound
  • API Python
    • Utilisation des collecteurs individuels
    • Construction de graphes personnalisés
  • Dépannage
    • Problèmes courants
  • Licence

Remerciements

  • SpecterOps pour BloodHound et OpenGraph

Aperçu

Dop2Mop collecte des données provenant des plateformes DevOps et MLOps afin d'identifier les chemins d'attaque permettant un mouvement latéral depuis les pipelines CI/CD vers l'infrastructure d'entraînement de machine learning. Il génère du JSON OpenGraph compatible avec BloodHound pour la visualisation et l'analyse.

Plateformes prises en charge

Plateformes DevOpsPlateformes MLOpsFournisseurs d'identité
GitHub (Actions, Repos, Secrets)Azure Machine LearningPrincipaux de service Azure AD
Azure DevOps (Pipelines, Service Connections)Amazon SageMakerRôles IAM AWS
Identité OIDC/Fédérée

Périmètres de confiance cartographiés

Dop2Mop modélise les cinq périmètres de confiance critiques identifiés dans la recherche :

  1. P1 : Dépôt de code vers pipeline CI/CD - Déclenchement automatique des pipelines à partir des commits de code
  2. P2 : Authentification du principal de service - Identifiants NHI utilisés par les pipelines pour accéder aux plateformes ML
  3. P3 : Confiance dans les artefacts conteneurisés - Confiance implicite dans les images conteneur provenant de registres internes
  4. P4 : Exécution des définitions de tâches - Les plateformes ML exécutent des définitions de tâches sans validation
  5. P5 : Désérialisation de code - Désérialisation non sécurisée des ensembles de données (pickle, joblib)

Installation```bash

git clone https://github.com/h4wkst3r/dop2mop.git cd dop2mop pip install -r requirements.txt pip install -e .

## Ce qui est collecté

Chaque collecteur rassemble des ressources spécifiques à la plateforme et cartographie les limites de confiance entre elles :

| Collecteur | Ressources collectées |
|-----------|-------------------|
| **GitHub** | Organisations, dépôts, workflows, secrets, règles de protection de branches, configurations OIDC, références d'images de conteneurs, références de buckets S3 |
| **Azure DevOps** | Organisations, projets, pipelines (YAML), connexions de service (avec détails de portée), groupes de variables, pools d'agents, dépôts |
| **Azure ML** | Espaces de travail, clusters/instances de calcul, magasins de données, environnements ML, modèles enregistrés, jobs/expériences, endpoints en ligne et par lots |
| **SageMaker** | Jobs d'entraînement, modèles, endpoints, domaines, instances de notebooks, rôles d'exécution IAM (avec analyse de politique), dépôts/images ECR, buckets S3 (filtrés pour le ML) |

## Démarrage rapide

### Générer des données de démonstration

Le moyen le plus rapide de voir Dop2Mop en action est de générer des données de démonstration montrant les scénarios d'attaque issus de la recherche :```bash
dop2mop demo -o demo.json

Ingestion dans BloodHound

  1. Ouvrir BloodHound CE (v8.0+)

  2. Naviguer vers Administration → Import de fichiers

  3. Télécharger le fichier JSON généré

  4. Interroger avec Cypher :

    MATCH (g:Group {highvalue: true})
    OPTIONAL MATCH (g)-[:Contains*1..]->(n:User)
    RETURN g.name, COUNT(n) AS MemberCount
    ``````cypher
    

// Azure DevOps to Azure ML Lateral Movement MATCH p=(repo)-[:TriggersPipeline]->(pipeline)-[:UsesServiceConnection]->(svcconn)-[:AuthenticatesAs]->(workspace)-[:CodeExecution]->(compute) RETURN p

// Container Image Poisoning (Supply Chain Attack) MATCH p=(workflow)-[:CanPoisonImage]->(image)<-[:PullsImage]-(job) RETURN p

// OIDC/Federated Identity Abuse (confirmed edges) MATCH p=(workflow)-[:OIDCTrust]->(oidc)-[:CanAssumeRole]->(role)-[:SubmitsJob]->(job) RETURN p

// OIDC abuse including inferred paths MATCH p=(workflow)-[:OIDCTrust]->(oidc)-[:InferredCanAssumeRole]->(role) RETURN p

// Dataset Poisoning via Pickle Deserialization MATCH p=(workflow)-[:CanPoisonDataset]->(dataset)<-[:LoadsDataset]-(job) RETURN p

// Find repos with weak/no branch protection (TB1 exploitable) MATCH (repo)-[:BypassesProtection]->(repo) RETURN repo.name, repo.default_branch

// Find overprivileged SageMaker IAM roles MATCH (role:IAMRole) WHERE role.is_admin = true OR role.has_s3_full_access = true RETURN role.name, role.attached_policies

// Find SageMaker notebooks with root + internet access MATCH (nb:SMNotebook) WHERE nb.root_access = 'Enabled' AND nb.direct_internet_access = 'Enabled' RETURN nb.name, nb.status

// Find self-hosted ADO agent pools MATCH (agent:ADOAgent) WHERE agent.is_hosted = false RETURN agent.name, agent.pool_type

---

## Configuration

### Fichier de configuration

Au lieu de passer les identifiants à chaque exécution, vous pouvez les sauvegarder dans un fichier de configuration. Copiez l'exemple inclus et remplissez vos valeurs :```bash
cp dop2mop.yaml.example dop2mop.yaml
# Edit dop2mop.yaml with your credentials

Dop2Mop vérifie ces emplacements dans l'ordre :

  1. Chemin spécifié par --config
  2. dop2mop.yaml / dop2mop.yml / .dop2mop.yaml dans le répertoire courant
  3. ~/.dop2mop.yaml

Note : dop2mop.yaml est dans .gitignore pour éviter de commettre accidentellement des informations d'identification. Le fichier d'exemple (dop2mop.yaml.example) peut être commité en toute sécurité.

Télécharger l’outil