
MAD-CAT (Meow Attack Data Corruption Automation Tool) ist ein umfassendes Sicherheitstool zur Simulation von Datenkorruptionsangriffen auf mehrere Datenbanksysteme. Das Tool unterstützt sowohl Einzelziel-Angriffe als auch CSV-basierte Massenangriffskampagnen und bietet Unterstützung für Angriffsszenarien mit und ohne Anmeldedaten.
MAD-CAT (Meow Attack Data Corruption Automation Tool) ist ein umfassendes Sicherheitstool, das entwickelt wurde, um Datenkorruptionsangriffe gegen mehrere Datenbanksysteme zu simulieren. Das Tool unterstützt sowohl Einzelziel-Angriffe als auch Massenangriffskampagnen auf CSV-Basis sowie Angriffsszenarien mit und ohne Anmeldedaten.
Das Tool unterstützt derzeit die folgenden Datenbankdienste:
# 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 | Beschreibung |
|---|---|
-l, --list | Unterstützte Datenbankdienste auflisten |
-c, --csv | CSV-Datei mit der Zielliste (Format: ip,service,port,username,password) |
-t, --target | IP-Adresse des Zielhosts (für den Einzelzielmodus) |
-s, --service | Datenbankdienst, der angegriffen werden soll (z. B. mongodb, elasticsearch, cassandra, redis, couchdb, hadoop) |
-p, --port | Portnummer (falls nicht Standard) |
-u, --username | Benutzername für die Authentifizierung |
-pw, --password | Passwort für die Authentifizierung |
-v, --verbose | Ausführliche Ausgabe aktivieren |
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
Greifen Sie mehrere Ziele mithilfe einer CSV-Datei an:
python mad_cat.py -c list.csv
Die CSV-Datei sollte ein Ziel pro Zeile im folgenden Format enthalten:
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
\"\").MAD-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 simuliert einen Datenkorruptionsangriff, indem es:
Target → Connect → List Databases → For Each Database:
├─ List Collections
└─ For Each Collection:
├─ Fetch All Records
├─ Replace Values with {random}-MEOW
└─ Update Records
| Dienst | Standardport |
|---|---|
| MongoDB | 27017 |
| Elasticsearch | 9200 |
| Cassandra | 9042 |
| Redis | 6379 |
| CouchDB | 5984 |
| Hadoop HDFS | 9870 |
Ein Hilfsskript zum Abrufen und Anzeigen von Daten aus allen unterstützten Datenbanken:
# Fetch from all databases and verify consistency
python fetch_data.py all
# Fetch from specific database
python fetch_data.py mongo
python fetch_data.py elasticsearch
python fetch_data.py cassandra
python fetch_data.py redis
python fetch_data.py couchdb
python fetch_data.py hadoop