Skip to content
KitploitKITPLOIT
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
coalmine — Plataforma de gestión de orquestación de objetos Cloud Canary | Kitploit
Herramientas/GitHubGitHub/johnearle/coalmine
Herramientas DefensivasSeguridad en la NubeGestión de Identidad y Acceso (IAM)Detección de IntrusionesRespuesta a Incidentes
GitHubjohnearle/coalmine

coalmine

Plataforma de gestión de orquestación de objetos Cloud Canary

Ver Repositorio
82hace 6 mesesAún no revisado

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

Coalmine — Gestión de Tokens Canary

Gestión de tokens canary en la nube — Despliega, monitoriza y rota credenciales señuelo en AWS y GCP para detectar accesos no autorizados.

License

[!WARNING] Versión Alfa — Coalmine está en desarrollo temprano. La funcionalidad básica es la prioridad actual, y la aplicación no debe considerarse completamente probada en seguridad para uso en producción.

Estado

FuncionalDesarrollo (Inestable)Por Hacer
Canarios de Usuario IAM de AWSCanarios de Cuenta de Servicio GCPSoporte de Azure
Canarios de Bucket S3 de AWSCanarios de Bucket GCPIntegración SIEM
Monitoreo de CloudTrailMonitoreo de Registros de Auditoría GCP
Backend de Estado PostgreSQLRotación Automática
API REST (Clave API + Autenticación de Sesión)
Panel WebUI
Alertas por Correo y Webhook
Gestión de Credenciales y Cuentas
RBAC (Casbin)

Resumen

Coalmine despliega y monitoriza automáticamente "tokens canary" — credenciales y recursos señuelo que generan alertas cuando un atacante accede a ellos.

Proveedores soportados:

  • AWS: Usuarios IAM, Buckets S3
  • GCP: Cuentas de Servicio, Buckets de Cloud Storage

Características

  • Soporte Multi-Nube — AWS y GCP desde una única interfaz
  • Modelo de Credenciales y Cuentas — Gestiona credenciales y cuentas en la nube mediante CLI, API o sincronización YAML
  • Rotación Automática — Las credenciales rotan en intervalos configurables
  • Monitoreo Centralizado — Integración con CloudTrail y Registros de Auditoría GCP
  • Alertas Flexibles — Notificaciones por correo, webhook y syslog
  • Infraestructura como Código — Recursos gestionados por OpenTofu
  • API REST — Acceso programático con clave API o autenticación de sesión
  • WebUI — Panel de control basado en navegador en /ui
  • RBAC — Control de acceso basado en roles mediante Casbin
  • CLI — Estructura de subcomandos agrupados (coalmine <recurso> <acción>)

Inicio Rápido

Requisitos Previos

  • Docker y Docker Compose
  • Credenciales de AWS (para canarios de AWS)
  • Credenciales de GCP (para canarios de GCP)

1. Clonar y Configurar

root@kitploit:~
git clone https://github.com/yourorg/coalmine.git
cd coalmine
cp .env.example .env
# Edita .env con tu base de datos y credenciales de la nube

2. Iniciar Servicios

root@kitploit:~
docker compose up -d

Esto inicia la API, el worker de Celery, Redis y PostgreSQL. El WebUI está disponible en http://localhost:8000/ui.

3. Registrar Credenciales y Cuentas

root@kitploit:~
# Añadir una credencial de AWS
docker compose exec app coalmine credentials add my-aws-cred AWS \
  --secrets '{"access_key_id": "...", "secret_access_key": "...", "region": "us-east-1"}'

# Añadir una cuenta bajo esa credencial
docker compose exec app coalmine accounts add prod-east --credential my-aws-cred \
  --account-id 111111111111

# O sincronizar credenciales y cuentas desde configuración YAML
docker compose exec app coalmine credentials sync --dry-run

4. Crear un Recurso de Registro

root@kitploit:~
# Crear destino de registro CloudTrail
docker compose exec app coalmine logs create my-trail AWS_CLOUDTRAIL \
  --account <ACCOUNT_ID>

# Listar recursos de registro
docker compose exec app coalmine logs list

5. Desplegar un Canario

root@kitploit:~
# Crear un canario de Usuario IAM de AWS
docker compose exec app coalmine canary create my-canary AWS_IAM_USER \
  --account <ACCOUNT_ID> --logging-id <LOGGING_ID>

# Listar canarios
docker compose exec app coalmine canary list

6. Verificar Detección

root@kitploit:~
# Disparar una alerta de prueba
docker compose exec app coalmine canary trigger my-canary

# Esperar el ciclo de monitoreo (~1 min) y luego revisar alertas
docker compose exec app coalmine alerts list

Arquitectura

root@kitploit:~
┌─────────────┐   ┌─────────────┐   ┌─────────────┐
│     CLI     │   │  REST API   │   │   WebUI     │
│  (coalmine) │   │  (FastAPI)  │   │  (React)    │
└──────┬──────┘   └──────┬──────┘   └──────┬──────┘
       │                 │                 │
       └────────┬────────┴────────┬────────┘
                │                 │
                │          ┌──────▼──────┐
                │          │Auth / RBAC  │
                │          │  (Casbin)   │
                │          └──────┬──────┘
                │                 │
         ┌──────▼─────────────────▼──────┐
         │         Celery Workers        │
         │  (Canary · Monitoring · Logs) │
         └──────────────┬────────────────┘
                        │
      ┌─────────────────┼─────────────────┐
      │                 │                 │
┌─────▼─────┐   ┌──────▼──────┐   ┌──────▼──────┐
│ OpenTofu  │   │  Monitors   │   │Notifications│
│ Templates │   │(CloudTrail/ │   │(Email/Hook/ │
│           │   │ Audit Logs) │   │   Syslog)   │
└─────┬─────┘   └──────┬──────┘   └─────────────┘
      │                │
┌─────▼─────┐   ┌──────▼──────┐
│ AWS / GCP │   │   Alerts    │
│(Resources)│   │    (DB)     │
└───────────┘   └─────────────┘

          ┌─────────────────┐
          │   PostgreSQL    │
          │   (Inventory)   │
          └────────┬────────┘
                   │
          ┌────────▼────────┐
          │   Celery Beat   │
          │   (Scheduler)   │
          └─────────────────┘

Referencia CLI

Los comandos siguen el patrón: coalmine <recurso> <acción> [opciones]

Comandos de Canarios

Comandos de Credenciales

Comandos de Cuentas

Comandos de Registro

ComandoDescripción
logs create <name> <type>Crear recurso de registro
logs listListar recursos de registro
logs scan --account <id>Escanear CloudTrails existentes

Comandos de Alertas

ComandoDescripción
alerts list [--canary <name>]Ver alertas de seguridad

Comandos de Autenticación

ComandoDescripción
auth key listListar claves API
auth key add <name>Añadir una clave API
auth session listListar sesiones activas

Comandos de Usuario

ComandoDescripción
user listListar todos los usuarios
user rolesListar roles disponibles

Comandos de Tareas

ComandoDescripción
task listVer tareas asíncronas recientes
task status <task_id>Consultar resultado de tarea

Ayuda

root@kitploit:~
docker compose exec app coalmine --help
docker compose exec app coalmine canary --help

API REST

La API se ejecuta en http://localhost:8000 y requiere autenticación mediante cabecera de clave API o cookie de sesión.

Configuración (config/api_keys.yaml)

root@kitploit:~
api_keys:
  - key: "your-api-key-here"
    name: "admin"
    permissions: ["read", "write"]
    scopes: ["all"]

Ejemplos de Peticiones

root@kitploit:~
# Listar canarios
curl -H "X-API-Key: your-api-key" http://localhost:8000/api/v1/canaries

# Crear un canario
curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"name": "api-canary", "resource_type": "AWS_IAM_USER", "account_id": "...", "logging_id": "..."}' \
  http://localhost:8000/api/v1/canaries

Documentación de la API

La documentación interactiva de la API está disponible en http://localhost:8000/docs (Swagger UI).

Configuración

Toda la configuración reside en el directorio config/. Consulta config/README.md para más detalles.

Credenciales (config/credentials.yaml)

root@kitploit:~
credentials:
  my-aws-cred:
    provider: AWS
    auth_type: STATIC
    secrets:
      access_key_id: ${AWS_ACCESS_KEY_ID}
      secret_access_key: ${AWS_SECRET_ACCESS_KEY}
      region: ${AWS_DEFAULT_REGION:-us-east-1}
    accounts:
      - name: prod-east
        account_id: "111111111111"

Sincronizar con: docker compose exec app coalmine credentials sync

Salidas de Alertas (config/alert_outputs.yaml)

root@kitploit:~
outputs:
  email_admin:
    type: "email"
    enabled: true
    smtp_host: "smtp.example.com"
    smtp_port: 587
    to_addrs: ["[email protected]"]
  
  webhook_siem:
    type: "webhook"
    enabled: true
    url: "https://siem.example.com/webhook"

Tipos de Recursos

Desarrollo

root@kitploit:~
# Ejecutar todas las pruebas
docker compose run --rm app pytest -v

# Ejecutar solo pruebas unitarias
docker compose run --rm app pytest tests/unit/ -v

# Ejecutar pruebas de integración
docker compose run --rm app pytest tests/integration/ -v

# Ver registros del worker
docker compose logs -f worker

# Reconstruir tras cambios de código
docker compose build && docker compose up -d

Consideraciones de Seguridad

  • Nunca comprometer credenciales — Usa archivos .env o gestores de secretos
  • Rotar credenciales de administrador — Las credenciales en la nube usadas para gestionar los canarios
  • Aislamiento de red — Ejecuta Coalmine en un segmento de red seguro
  • Principio de mínimo privilegio — Las credenciales canario deben tener permisos mínimos
  • Seguridad de claves API — Almacena las claves API de forma segura, rotarlas regularmente

Licencia

Apache License 2.0 — Consulta el archivo LICENSE para más detalles.

Contribuir

Consulta CONTRIBUTING.md para las pautas de contribución.

Descargar herramienta
ComandoDescripción
canary create <name> <type>Crear un nuevo canario
canary listListar todos los canarios
canary delete <name_or_id>Eliminar un canario
canary creds <name>Obtener credenciales del canario
canary trigger <name_or_id>Probar detección del canario
ComandoDescripción
credentials listListar todas las credenciales
credentials add <name> <provider>Añadir una credencial
credentials update <name_or_id>Actualizar una credencial
credentials remove <name_or_id>Eliminar una credencial
credentials validate <name_or_id>Validar estado de la credencial
credentials sync [--dry-run]Sincronizar desde configuración YAML
ComandoDescripción
accounts list [--credential <name>]Listar todas las cuentas
accounts add <name>Añadir una cuenta
accounts update <name_or_id>Actualizar una cuenta
accounts enable <name_or_id>Habilitar una cuenta
accounts disable <name_or_id>Deshabilitar una cuenta
accounts remove <name_or_id>Eliminar una cuenta
accounts validate <name_or_id>Validar estado de la cuenta
TipoProveedorDescripción
AWS_IAM_USERAWSUsuario IAM con claves de acceso
AWS_BUCKETAWSBucket S3 con registro
GCP_SERVICE_ACCOUNTGCPCuenta de servicio con claves
GCP_BUCKETGCPBucket de Cloud Storage