Ambiente Seguro — Antes de Começar
-- NUNCA analisar malware em máquina de produção
-- Ambiente isolado:
-- VM com snapshot limpo (VMware, VirtualBox, QEMU)
-- Host-only networking ou rede isolada
-- Desabilitar clipboard compartilhado e shared folders
-- Ferramentas prontas: REMnux (Linux) ou FlareVM (Windows)
# REMnux — distribuição especializada em análise de malware
# https://remnux.org — todas as ferramentas pré-instaladas
# FLARE VM — ambiente Windows para análise
# https://github.com/mandiant/flare-vmInformações Básicas do Arquivo
# Hash do arquivo (fingerprint único)
md5sum malware.exe
sha256sum malware.exe
# Buscar hash em VirusTotal
curl -X GET https://www.virustotal.com/api/v3/files/HASH \
-H 'x-apikey: SUA_KEY'
# Identificar tipo real do arquivo
file malware.exe
file malware.pdf
# Atenção: extensão não é confiável — usar magic bytes
# Ver magic bytes (header do arquivo)
hexdump -C malware.exe | head -5
# MZ (4D 5A) = PE executável Windows
# PK = ZIP
# %PDF = PDF
# ELF = executável Linux
# Entropia (mede compressão/criptografia)
ent malware.exe
# Alta entropia (>7.5) = payload comprimido ou criptografado dentro
python3 -c "import math; data=open('malware.exe','rb').read(); freq=[data.count(b) for b in range(256)]; e=-sum(f/len(data)*math.log2(f/len(data)) for f in freq if f); print(f'Entropia: {e:.2f}')"Análise de Strings
# Extrair strings ASCII e Unicode
strings malware.exe
strings -e l malware.exe # Unicode (16-bit little-endian)
strings -n 6 malware.exe # strings >= 6 chars
# O que procurar:
strings malware.exe | grep -iE '(http|ftp|https)://'
strings malware.exe | grep -iE '\b[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\b'
strings malware.exe | grep -iE '(password|passwd|secret|key|token|api)'
strings malware.exe | grep -iE '(cmd|powershell|wscript|cscript)'
strings malware.exe | grep -iE '(RegCreateKey|WriteFile|CreateProcess|WinExec)'
strings malware.exe | grep -iE '([A-Za-z0-9+/]{40,}={0,2})' # Base64
# FLOSS — extrai strings ofuscadas e decodifica automaticamente
floss malware.exe
floss --only-decoded malware.exeAnálise de PE (Windows Executável)
# PEStudio — GUI para análise PE (Windows)
# pestudio.com — gratuito
# pecheck (Python)
pip install pefile
python3 -c "
import pefile
pe = pefile.PE('malware.exe')
# Informações gerais
print('Timestamp:', pe.FILE_HEADER.TimeDateStamp)
print('Machine:', pe.FILE_HEADER.Machine)
# Seções
for section in pe.sections:
print(section.Name, section.VirtualAddress, section.SizeOfRawData)
# Imports
if hasattr(pe, 'DIRECTORY_ENTRY_IMPORT'):
for lib in pe.DIRECTORY_ENTRY_IMPORT:
print(lib.dll.decode())
for imp in lib.imports:
print(' ', imp.name)
# Exports
if hasattr(pe, 'DIRECTORY_ENTRY_EXPORT'):
for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols:
print(exp.name)
"
# Seções suspeitas:
# .text com entropia alta = código criptografado/packed
# Seção desconhecida (.rdata com código executável)
# SizeOfRawData muito diferente de VirtualSize
# Imports suspeitos (indicadores de funcionalidade maliciosa):
# VirtualAlloc / VirtualProtect = alocação de memória (shellcode)
# WriteProcessMemory / CreateRemoteThread = injeção de processo
# RegCreateKey / RegSetValue = persistência no registro
# InternetOpen / URLDownloadToFile = download de payloads
# CryptEncrypt / CryptDecrypt = criptografia de dados
# WinExec / CreateProcess / ShellExecute = execução de comandos
# GetAsyncKeyState / SetWindowsHookEx = keyloggingDisassembly e Reversão
# Ghidra (NSA, gratuito e open source)
# https://ghidra-sre.org
# Decompila ASM para pseudo-C
# Analisa: PE, ELF, Mach-O, PDF, shellcode
# IDA Pro (padrão da indústria, pago)
# IDA Free disponível para binários 32-bit
# Binary Ninja (moderno, semi-pago)
# Cutter (GUI do Radare2, gratuito)
# Conceitos fundamentais de reversão:
# Identificar main()
# Seguir chamadas de funções suspeitas
# Procurar loops (decriptação)
# Identificar comparações (anti-debug, anti-VM checks)
# Anti-análise comuns:
# IsDebuggerPresent() / CheckRemoteDebuggerPresent()
# GetTickCount() — detecta execução lenta em debugger
# CPUID — detecta virtualização
# Verificação de registry: HKLM\HARDWARE\ACPI\DSDT\VBOX__
# Verificação de processos: vmware.exe, vboxservice.exe, wireshark.exeDetecção de Packing
# Malware packed: código original comprimido/criptografado
# Unpacker executa primeiro, descomprime na memória
# Detectar packer
ExeinfoPE malware.exe # identifica UPX, MPRESS, Themida, etc.
DIE (Detect It Easy) # mais completo
# Unpack UPX (mais comum)
upx -d malware.exe -o unpacked.exe
# Unpack outros packers:
# Geralmente requer análise dinâmica ou script Python específico
# Alternativa: deixar o unpacker executar em sandbox e capturar dump de memória
# Verificar se empacotado:
strings malware.exe | wc -l # poucas strings = provavelmente packed
# Seção .text com alta entropia (>7) = packedYARA — Escrita de Regras de Detecção
# Instalar YARA
apt install yara
pip install yara-python
# Estrutura de regra YARA
rule MalwareEspecifico {
meta:
author = "CyberZ"
description = "Detecta malware XYZ"
date = "2026-04-02"
hash = "abc123..."
strings:
$s1 = "C:\\ProgramData\\updater.exe" nocase
$s2 = "http://c2.malware.com" nocase
$s3 = { 4D 5A 90 00 03 00 00 00 } // MZ header
$s4 = /[A-Za-z0-9+\/]{40,}={0,2}/ // Base64
$api1 = "VirtualAlloc" nocase
$api2 = "CreateRemoteThread" nocase
condition:
uint16(0) == 0x5A4D and // É PE file
($s1 or $s2) and
any of ($api*) and
filesize < 5MB
}
# Executar YARA
yara regra.yar malware.exe
yara -r regra.yar /diretorio/
# Bases de regras prontas:
# https://github.com/Yara-Rules/rules
# https://github.com/Neo23x0/signature-base
# VirusTotal usa YARA internamenteIoCs — Indicadores de Comprometimento
# O que extrair de análise estática:
# Hashes (MD5, SHA1, SHA256)
# IPs e domínios de C2
# URLs de download de payload
# Mutexes (evitar dupla execução)
# Registry keys de persistência
# File paths e nomes
# Strings únicas do malware
# Certificados de assinatura de código
# Formatos de compartilhamento de IoC:
# MISP (Malware Information Sharing Platform)
# STIX/TAXII
# OpenIOC
# CSV simples para import em SIEM Quer testar isso na prática?
A CyberZ realiza testes autorizados de segurança usando as técnicas descritas neste artigo — e muito mais. Identifique suas vulnerabilidades antes que os invasores o façam.
Falar com Especialista