hacktricks/forensics/basic-forensic-methodology/malware-analysis.md
2023-06-06 18:56:34 +00:00

7.7 KiB
Raw Blame History

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Folhas de dicas de Forense

https://www.jaiminton.com/cheatsheet/DFIR/#

Serviços Online

Ferramentas Offline de Antivírus e Detecção

Yara

Instalar

sudo apt-get install -y yara

Preparar regras

Use este script para baixar e mesclar todas as regras de malware yara do github: https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9
Crie o diretório rules e execute-o. Isso criará um arquivo chamado malware_rules.yar que contém todas as regras yara para malware.

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py

Verificação

yara -w malware_rules.yar image  #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder

YaraGen: Verificar malware e criar regras

Você pode usar a ferramenta YaraGen para gerar regras yara a partir de um binário. Confira estes tutoriais: Parte 1, Parte 2, Parte 3

 python3 yarGen.py --update
 python3.exe yarGen.py --excludegood -m  ../../mals/

ClamAV

Instalação

sudo apt-get install -y clamav

Verificação

sudo freshclam      #Update rules
clamscan filepath   #Scan 1 file
clamscan folderpath #Scan the whole folder

IOCs

IOC significa Indicador de Comprometimento. Um IOC é um conjunto de condições que identificam algum software potencialmente indesejado ou malware confirmado. As equipes de segurança (Blue Teams) usam esse tipo de definição para procurar por esse tipo de arquivos maliciosos em seus sistemas e redes.
Compartilhar essas definições é muito útil, pois quando um malware é identificado em um computador e um IOC para esse malware é criado, outras equipes de segurança podem usá-lo para identificar o malware mais rapidamente.

Uma ferramenta para criar ou modificar IOCs é o IOC Editor.
Você pode usar ferramentas como o Redline para procurar por IOCs definidos em um dispositivo.

Loki

Loki é um scanner para Indicadores Simples de Comprometimento.
A detecção é baseada em quatro métodos de detecção:

1. File Name IOC
   Regex match on full file path/name

2. Yara Rule Check
   Yara signature matches on file data and process memory

3. Hash Check
   Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
   
4. C2 Back Connect Check
   Compares process connection endpoints with C2 IOCs (new since version v.10)

Linux Malware Detect

Linux Malware Detect (LMD) é um scanner de malware para Linux lançado sob a licença GNU GPLv2, que é projetado em torno das ameaças enfrentadas em ambientes hospedados compartilhados. Ele usa dados de ameaças de sistemas de detecção de intrusão de borda de rede para extrair malware que está sendo usado ativamente em ataques e gera assinaturas para detecção. Além disso, os dados de ameaças também são derivados de envios de usuários com o recurso de checkout LMD e recursos da comunidade de malware.

rkhunter

Ferramentas como rkhunter podem ser usadas para verificar o sistema de arquivos em busca de possíveis rootkits e malware.

sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]

PEpper

PEpper verifica algumas coisas básicas dentro do executável (dados binários, entropia, URLs e IPs, algumas regras yara).

NeoPI

NeoPI é um script Python que usa uma variedade de métodos estatísticos para detectar conteúdo ofuscado e criptografado dentro de arquivos de texto/script. O objetivo do NeoPI é ajudar na detecção de código de shell da web oculto.

php-malware-finder

PHP-malware-finder faz o seu melhor para detectar código ofuscado/suspeito e arquivos que usam funções PHP frequentemente usadas em malwares/shell da web.

Assinaturas Binárias da Apple

Ao verificar alguma amostra de malware, você sempre deve verificar a assinatura do binário, pois o desenvolvedor que o assinou pode já estar relacionado com malware.

#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"

#Check if the apps contents have been modified
codesign --verify --verbose /Applications/Safari.app

#Check if the signature is valid
spctl --assess --verbose /Applications/Safari.app

Técnicas de Detecção

Empilhamento de Arquivos

Se você sabe que uma pasta contendo os arquivos de um servidor web foi atualizada pela última vez em uma determinada data. Verifique a data em que todos os arquivos do servidor web foram criados e modificados e se alguma data for suspeita, verifique esse arquivo.

Baselines

Se os arquivos de uma pasta não deveriam ter sido modificados, você pode calcular o hash dos arquivos originais da pasta e compará-los com os atuais. Qualquer coisa modificada será suspeita.

Análise Estatística

Quando as informações são salvas em logs, você pode verificar estatísticas como quantas vezes cada arquivo de um servidor web foi acessado, já que um web shell pode ser um dos mais.