
MAD-CAT (Meow Attack Data Corruption Automation Tool) é uma ferramenta de segurança abrangente projetada para simular ataques de corrupção de dados contra múltiplos sistemas de banco de dados. A ferramenta suporta tanto ataques a alvos únicos quanto campanhas de ataque em lote baseadas em CSV, com suporte para cenários de ataque com e sem credenciais.
MAD-CAT (Ferramenta de Automação de Corrupção de Dados Meow Attack) é uma ferramenta de segurança abrangente projetada para simular ataques de corrupção de dados contra vários sistemas de banco de dados. A ferramenta suporta ataques a um único alvo e campanhas de ataque em lote baseadas em CSV, com suporte para cenários de ataque com e sem credenciais.
A ferramenta atualmente suporta os seguintes serviços de banco de dados:
# 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
| Argumento | Descrição |
|---|---|
-l, --list | Listar serviços de banco de dados suportados |
-c, --csv | Arquivo CSV contendo lista de alvos (formato: ip,service,port,username,password) |
-t, --target | Endereço IP do host alvo (para modo de alvo único) |
-s, --service | Serviço de banco de dados para atacar (ex.: mongodb, elasticsearch, cassandra, redis, couchdb, hadoop) |
-p, --port | Número da porta (se não for padrão) |
-u, --username | Nome de usuário para autenticação |
-pw, --password | Senha para autenticação |
-v, --verbose | Habilitar saída detalhada |
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 vários alvos usando um arquivo CSV:
python mad_cat.py -c list.csv
O arquivo CSV deve conter um alvo por linha com o seguinte 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 sem credenciaisMAD-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 simula um ataque de corrupção de dados ao:
Target → Connect → List Databases → For Each Database:
├─ List Collections
└─ For Each Collection:
├─ Fetch All Records
├─ Replace Values with {random}-MEOW
└─ Update Records
| Serviço | Porta Padrão |
|---|---|
| MongoDB | 27017 |
| Elasticsearch | 9200 |
| Cassandra | 9042 |
| Redis | 6379 |
| CouchDB | 5984 |
| Hadoop HDFS | 9870 |
Um script utilitário para buscar e exibir dados de todos os bancos de dados suportados:
# 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
Esta ferramenta é fornecida APENAS PARA FINS EDUCACIONAIS. É projetada para demonstrar um tipo de ataque cibernético em um ambiente controlado para ajudar a melhorar a conscientização de segurança e medidas defensivas. Usar esta ferramenta contra sistemas sem a devida autorização é ilegal e antiético. Os autores e contribuidores não são responsáveis por qualquer uso indevido deste software.
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Criado por Karl Biron