
MAD-CAT (Meow Attack Data Corruption Automation Tool) es una herramienta de seguridad integral diseñada para simular ataques de corrupción de datos contra múltiples sistemas de bases de datos. La herramienta admite tanto ataques a un solo objetivo como campañas de ataque masivas basadas en CSV, con soporte para escenarios de ataque con credenciales y sin credenciales.
MAD-CAT (Herramienta de Automatización de Corrupción de Datos Meow Attack) es una herramienta de seguridad integral diseñada para simular ataques de corrupción de datos contra múltiples sistemas de bases de datos. La herramienta soporta tanto ataques de objetivo único como campañas de ataque masivo basadas en CSV, con soporte para escenarios de ataque con y sin credenciales.
The tool currently supports the following database services:
# Clonar el repositorio
git clone https://github.com/karlvbiron/MAD-CAT.git
# Navegar al directorio de la herramienta
cd MAD-CAT
# Configurar el entorno virtual
python3 -m venv venv
source venv/bin/activate
# Instalar dependencias
pip install -r requirements.txt
| Argumento | Descripción |
|---|---|
-l, --list | Listar servicios de base de datos soportados |
-c, --csv | Archivo CSV que contiene la lista de objetivos (formato: ip,service,port,username,password) |
-t, --target | Dirección IP del host objetivo (para modo de objetivo único) |
-s, --service | Servicio de base de datos a atacar (ej., mongodb, elasticsearch, cassandra, redis, couchdb, hadoop) |
-p, --port | Número de puerto (si no es el predeterminado) |
-u, --username | Nombre de usuario para autenticación |
-pw, --password | Contraseña para autenticación |
-v, --verbose | Habilitar salida detallada |
python mad_cat.py -l
python mad_cat.py -t 192.168.1.11 -s mongodb -u root -pw example
python mad_cat.py -t 192.168.1.12 -s elasticsearch
python mad_cat.py -t 192.168.1.13 -s cassandra
python mad_cat.py -t 192.168.1.14 -s redis
python mad_cat.py -t 192.168.1.15 -s couchdb -u admin -pw password
python mad_cat.py -t 192.168.1.16 -s hadoop
Atacar múltiples objetivos usando un archivo CSV:
python mad_cat.py -c list.csv
El archivo CSV debe contener un objetivo por línea con el siguiente formato:
192.168.1.11,mongodb,27017,"root","example"
192.168.1.12,elasticsearch,9200,"",""
192.168.1.13,cassandra,9042,"",""
192.168.1.14,redis,6379,"",""
192.168.1.15,couchdb,5984,"admin","password"
192.168.1.16,hadoop,9870,"",""
Formato: ip,service,port,username,password
"") para ataques sin credencialesMAD-CAT/
├── __init__.py
├── core/
│ ├── __init__.py
│ ├── base_attacker.py # Clase base abstracta para todos los atacantes
│ └── attack_factory.py # Patrón de fábrica para creación de atacantes
├── attackers/
│ ├── __init__.py # Registro de atacantes
│ ├── mongodb.py # Implementación del atacante MongoDB
│ ├── elasticsearch.py # Implementación del atacante Elasticsearch
│ ├── cassandra.py # Implementación del atacante Cassandra
│ ├── redis.py # Implementación del atacante Redis
│ ├── couchdb.py # Implementación del atacante CouchDB
│ └── hadoop.py # Implementación del atacante Hadoop HDFS
├── utils/
│ ├── __init__.py
│ └── logging.py # Configuración de registro
├── dockerized-database-infrastructure/
│ ├── docker-compose.yml # Configuración de Docker Compose
│ └── init-scripts/
│ ├── mongodb/
│ │ └── mongodb-init.js
│ ├── elasticsearch/
│ │ ├── es-custom-entrypoint.sh
│ │ └── es-bulk_data.json
│ ├── cassandra/
│ │ ├── cassandra-entrypoint.sh
│ │ └── cassandra-init.cql
│ ├── couchdb/
│ │ ├── couchdb-entrypoint.sh
│ │ └── couchdb-init.sh
│ ├── hadoop/
│ │ ├── hadoop-entrypoint.sh
│ │ └── hadoop-init.sh
│ └── redis/
│ ├── redis-entrypoint.sh
│ └── redis-init.sh
├── mad_cat.py # Punto de entrada principal
├── fetch_data.py # Utilidad para obtener y verificar datos de la base de datos
├── list.csv # Archivo CSV de ejemplo para ataques masivos
├── requirements.txt # Dependencias de Python
└── README.md # Este archivo
logs/MAD-CAT simula un ataque de corrupción de datos al:
Target → Connect → List Databases → For Each Database:
├─ List Collections
└─ For Each Collection:
├─ Fetch All Records
├─ Replace Values with {random}-MEOW
└─ Update Records
| Servicio | Puerto Predeterminado |
|---|---|
| MongoDB | 27017 |
| Elasticsearch | 9200 |
| Cassandra | 9042 |
| Redis | 6379 |
| CouchDB | 5984 |
| Hadoop HDFS | 9870 |