Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/h4wkst3r/dop2mop
Seguridad de Infraestructura en la NubeReconocimientoSeguridad de ContenedoresAnálisis de VulnerabilidadesRecopilación de InformaciónPruebas de PenetraciónSeguridad en la NubeDevSecOpsGestión de Identidad y Acceso (IAM)Seguridad de Cadena de SuministroRed Teaming
4120hace 5 mesesAún no revisado
GitHubh4wkst3r/dop2mop

Dop2Mop

Recolector OpenGraph para BloodHound que mapea rutas de ataque desde infraestructura DevOps a MLOps, recopilando recursos de pipeline CI/CD, service principal y plataforma ML para análisis de movimiento lateral.

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Dop2Mop

Un recolector OpenGraph de prueba de concepto para BloodHound que mapea rutas de ataque desde infraestructura DevOps hasta MLOps.

Basado en Pipelines of Privilege: Attack Paths from DevOps to MLOps Infrastructure de Brett Hawkins (@h4wkst3r).

Tabla de Contenidos

  • Agradecimientos
  • Resumen
    • Plataformas Compatibles
    • Límites de Confianza Mapeados
  • Instalación
    • Dependencias Opcionales
  • Inicio Rápido
    • Generar Datos de Demostración
    • Ingestar en BloodHound
  • Configuración
    • Archivo de Configuración
    • Validación de Credenciales
  • Referencia CLI
    • Resumen de Comandos
    • Opciones Globales
    • dop2mop collect
    • dop2mop demo
  • Ejemplos de Uso de CLI
    • Recolección Básica
    • Recolección de una Sola Plataforma
    • Recolección de Múltiples Plataformas
    • Ejemplos de Recolección de GitHub
    • Ejemplos de Recolección de Azure DevOps
    • Ejemplos de Recolección de Azure ML
    • Ejemplos de Recolección de AWS SageMaker
    • Recolección Completa del Entorno
  • Variables de Entorno
  • Tipos de Nodo
    • Nodos DevOps
    • Nodos MLOps
    • Nodos de Identidad
    • Nodos de Artefacto
  • Tipos de Borde
    • Bordes de Ruta de Ataque
    • Bordes Estructurales
  • Consultas de Ejemplo
  • Iconos Personalizados
    • Subir Iconos a BloodHound
  • API de Python
    • Usar Recolectores Individuales
    • Construir Grafos Personalizados
  • Solución de Problemas
    • Problemas Comunes
  • Licencia

Agradecimientos

  • SpecterOps por BloodHound y OpenGraph

Resumen

Dop2Mop recolecta datos de plataformas DevOps y MLOps para identificar rutas de ataque que permiten movimiento lateral desde pipelines CI/CD hasta infraestructura de entrenamiento de machine learning. Genera JSON OpenGraph compatible con BloodHound para visualización y análisis.

Plataformas Compatibles

Plataformas DevOpsPlataformas MLOpsProveedores de Identidad
GitHub (Actions, Repos, Secrets)Azure Machine LearningAzure AD Service Principals
Azure DevOps (Pipelines, Service Connections)Amazon SageMakerAWS IAM Roles
OIDC/Federated Identity

Límites de Confianza Mapeados

Dop2Mop modela los cinco límites de confianza críticos identificados en la investigación:

  1. TB1: Repositorio de Código a Pipeline CI/CD - Activación automática de pipelines a partir de commits de código
  2. TB2: Autenticación de Principal de Servicio - Credenciales NHI usadas por pipelines para acceder a plataformas ML
  3. TB3: Confianza en Artefacto de Contenedor - Confianza implícita en imágenes de contenedor de registros internos
  4. TB4: Ejecución de Definición de Trabajo - Plataformas ML ejecutando definiciones de trabajo sin validación
  5. TB5: Deserialización de Código - Deserialización insegura de datasets (pickle, joblib)

Instalación```bash

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

## Lo que se recopila

Cada recopilador reúne recursos específicos de la plataforma y mapea los límites de confianza entre ellos:

| Recopilador | Recursos Recopilados |
|-----------|-------------------|
| **GitHub** | Organizaciones, repositorios, flujos de trabajo, secretos, reglas de protección de ramas, configuraciones OIDC, referencias de imágenes de contenedores, referencias de buckets S3 |
| **Azure DevOps** | Organizaciones, proyectos, pipelines (YAML), conexiones de servicio (con detalles de ámbito), grupos de variables, pools de agentes, repositorios |
| **Azure ML** | Espacios de trabajo, clústeres/instancias de cómputo, almacenes de datos, entornos de ML, modelos registrados, trabajos/experimentos, endpoints en línea y por lotes |
| **SageMaker** | Trabajos de entrenamiento, modelos, endpoints, dominios, instancias de notebook, roles de ejecución de IAM (con análisis de políticas), repositorios/imágenes de ECR, buckets de S3 (filtrados para relevantes de ML) |

## Inicio Rápido

### Generar Datos de Demostración

La forma más rápida de ver Dop2Mop en acción es generar datos de demostración que muestren los escenarios de ataque de la investigación:```bash
dop2mop demo -o demo.json

Ingesta en BloodHound

  1. Abra BloodHound CE (v8.0+)
  2. Navegue a Administración → Ingesta de archivos
  3. Cargue el archivo JSON generado
  4. Consulte con Cypher:
MATCH (n) RETURN n LIMIT 100
``````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

Configuración

Archivo de configuración

En lugar de pasar credenciales en cada ejecución, puedes guardarlas en un archivo de configuración. Copia el ejemplo incluido y completa tus valores:```bash cp dop2mop.yaml.example dop2mop.yaml

Edit dop2mop.yaml with your credentials

Dop2Mop comprueba estas ubicaciones en orden:

1. Ruta especificada por `--config`
2. `dop2mop.yaml` / `dop2mop.yml` / `.dop2mop.yaml` en el directorio actual
3. `~/.dop2mop.yaml`

> **Nota:** `dop2mop.yaml` está en `.gitignore` para evitar confirmar credenciales accidentalmente. El archivo de ejemplo (`dop2mop.yaml.example`) es seguro para confirmar.

Consulta [dop2mop.yaml.example](https://github.com/h4wkst3r/dop2mop/blob/main/dop2mop.yaml.example) para conocer todas las opciones disponibles con comentarios.

**Orden de prioridad:** Argumentos de CLI > archivo de configuración > variables de entorno.

### Validación de credenciales

Prueba las credenciales antes de ejecutar una recolección completa:```bash
# Validate all configured collectors
dop2mop collect --validate -v
Descargar herramienta