
MAD-CAT (Meow Attack Data Corruption Automation Tool) est un outil de sécurité complet conçu pour simuler des attaques de corruption de données contre plusieurs systèmes de bases de données. L'outil prend en charge à la fois les attaques sur cible unique et les campagnes d'attaque en masse basées sur des fichiers CSV, avec le support de scénarios d'attaque avec et sans identifiants.
MAD-CAT (Meow Attack Data Corruption Automation Tool) est un outil de sécurité complet conçu pour simuler des attaques de corruption de données contre plusieurs systèmes de bases de données. L'outil prend en charge à la fois les attaques sur cible unique et les campagnes d'attaque groupées basées sur des fichiers CSV, avec une prise en charge des scénarios d'attaque avec et sans identification.
L'outil prend actuellement en charge les services de bases de données suivants :
# Clone the repository
git clone https://github.com/karlvbiron/MAD-CAT.git
# Navigate to the tool directory
cd MAD-CAT
# Set up the virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
| Argument | Description |
|---|---|
-l, --list | Liste les services de bases de données pris en charge |
-c, --csv | Fichier CSV contenant la liste des cibles (format : ip,service,port,username,password) |
-t, --target | Adresse IP de l'hôte cible (pour le mode cible unique) |
-s, --service | Service de base de données à attaquer (par ex., mongodb, elasticsearch, cassandra, redis, couchdb, hadoop) |
-p, --port | Numéro de port (si non par défaut) |
-u, --username | Nom d'utilisateur pour l'authentification |
-pw, --password | Mot de passe pour l'authentification |
-v, --verbose | Activer le mode verbeux |
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
Attaquez plusieurs cibles à l'aide d'un fichier CSV :
python mad_cat.py -c list.csv
Le fichier CSV doit contenir une cible par ligne avec le format suivant :
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,"",""
Format : ip,service,port,username,password
"") pour les attaques sans identificationMAD-CAT/
├── __init__.py
├── core/
│ ├── __init__.py
│ ├── base_attacker.py # Abstract base class for all attackers
│ └── attack_factory.py # Factory pattern for attacker creation
├── attackers/
│ ├── __init__.py # Attacker registration
│ ├── mongodb.py # MongoDB attacker implementation
│ ├── elasticsearch.py # Elasticsearch attacker implementation
│ ├── cassandra.py # Cassandra attacker implementation
│ ├── redis.py # Redis attacker implementation
│ ├── couchdb.py # CouchDB attacker implementation
│ └── hadoop.py # Hadoop HDFS attacker implementation
├── utils/
│ ├── __init__.py
│ └── logging.py # Logging configuration
├── dockerized-database-infrastructure/
│ ├── docker-compose.yml # Docker Compose configuration
│ └── 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 # Main entry point
├── fetch_data.py # Utility to fetch and verify database data
├── list.csv # Example CSV file for bulk attacks
├── requirements.txt # Python dependencies
└── README.md # This file
logs/MAD-CAT simule une attaque de corruption de données en :
Target → Connect → List Databases → For Each Database:
├─ List Collections
└─ For Each Collection:
├─ Fetch All Records
├─ Replace Values with {random}-MEOW
└─ Update Records
| Service | Port par défaut |
|---|---|
| MongoDB | 27017 |
| Elasticsearch | 9200 |
| Cassandra | 9042 |
| Redis | 6379 |
| CouchDB | 5984 |
| Hadoop HDFS | 9870 |