mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 09:03:30 +00:00
165 lines
8.3 KiB
Markdown
165 lines
8.3 KiB
Markdown
# Análise de Malware
|
||
|
||
{% hint style="success" %}
|
||
Aprenda e pratique Hacking AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Treinamento AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Treinamento GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Apoie o HackTricks</summary>
|
||
|
||
* Verifique os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
||
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Compartilhe truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
## Folhas de Dicas de Forense
|
||
|
||
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
|
||
|
||
## Serviços Online
|
||
|
||
* [VirusTotal](https://www.virustotal.com/gui/home/upload)
|
||
* [HybridAnalysis](https://www.hybrid-analysis.com)
|
||
* [Koodous](https://koodous.com)
|
||
* [Intezer](https://analyze.intezer.com)
|
||
* [Any.Run](https://any.run/)
|
||
|
||
## Ferramentas de Antivírus e Detecção Offline
|
||
|
||
### Yara
|
||
|
||
#### Instalação
|
||
```bash
|
||
sudo apt-get install -y yara
|
||
```
|
||
#### Preparar regras
|
||
|
||
Utilize este script para baixar e mesclar todas as regras de malware yara do github: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](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.
|
||
```bash
|
||
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
|
||
mkdir rules
|
||
python malware_yara_rules.py
|
||
```
|
||
#### Verificação
|
||
```bash
|
||
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**](https://github.com/Neo23x0/yarGen) para gerar regras yara a partir de um binário. Confira estes tutoriais: [**Parte 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Parte 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Parte 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
|
||
```bash
|
||
python3 yarGen.py --update
|
||
python3.exe yarGen.py --excludegood -m ../../mals/
|
||
```
|
||
### ClamAV
|
||
|
||
#### Instalação
|
||
```
|
||
sudo apt-get install -y clamav
|
||
```
|
||
#### Verificação
|
||
```bash
|
||
sudo freshclam #Update rules
|
||
clamscan filepath #Scan 1 file
|
||
clamscan folderpath #Scan the whole folder
|
||
```
|
||
### [Capa](https://github.com/mandiant/capa)
|
||
|
||
**Capa** deteta potencialmente **capacidades maliciosas** em executáveis: PE, ELF, .NET. Portanto, irá encontrar coisas como táticas Att\&ck, ou capacidades suspeitas como:
|
||
|
||
- verificar erro de OutputDebugString
|
||
- executar como um serviço
|
||
- criar processo
|
||
|
||
Obtenha-o no [**repositório do Github**](https://github.com/mandiant/capa).
|
||
|
||
### 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 Defesa (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 Defesa (Blue Teams) podem usá-lo para identificar o malware mais rapidamente.
|
||
|
||
Uma ferramenta para criar ou modificar IOCs é o [**Editor de IOC**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
|
||
Você pode usar ferramentas como o [**Redline**](https://www.fireeye.com/services/freeware/redline.html) para **procurar por IOCs definidos em um dispositivo**.
|
||
|
||
### Loki
|
||
|
||
[**Loki**](https://github.com/Neo23x0/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)**](https://www.rfxn.com/projects/linux-malware-detect/) é um scanner de malware para Linux lançado sob a licença GNU GPLv2, projetado em torno das ameaças enfrentadas em ambientes de hospedagem compartilhada. Ele utiliza dados de ameaças de sistemas de detecção de intrusão na borda da rede para extrair malware que está sendo ativamente usado 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 verificação do LMD e de recursos da comunidade de malware.
|
||
|
||
### rkhunter
|
||
|
||
Ferramentas como [**rkhunter**](http://rkhunter.sourceforge.net) podem ser usadas para verificar o sistema de arquivos em busca de possíveis **rootkits** e malware.
|
||
```bash
|
||
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
|
||
```
|
||
### FLOSS
|
||
|
||
[**FLOSS**](https://github.com/mandiant/flare-floss) é uma ferramenta que tentará encontrar strings obfuscadas dentro de executáveis usando diferentes técnicas.
|
||
|
||
### PEpper
|
||
|
||
[PEpper](https://github.com/Th3Hurrican3/PEpper) verifica algumas coisas básicas dentro do executável (dados binários, entropia, URLs e IPs, algumas regras yara).
|
||
|
||
### PEstudio
|
||
|
||
[PEstudio](https://www.winitor.com/download) é uma ferramenta que permite obter informações de executáveis do Windows, como imports, exports, headers, mas também verificar o virus total e encontrar potenciais técnicas Att\&ck.
|
||
|
||
### Detect It Easy(DiE)
|
||
|
||
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) é uma ferramenta para detectar se um arquivo está **criptografado** e também encontrar **empacotadores**.
|
||
|
||
### NeoPI
|
||
|
||
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) é um script Python que usa uma variedade de **métodos estatísticos** para detectar conteúdo **obfuscado** e **criptografado** em arquivos de texto/script. O objetivo do NeoPI é auxiliar na **detecção de códigos de shell web ocultos**.
|
||
|
||
### **php-malware-finder**
|
||
|
||
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) faz o melhor possível para detectar código **obfuscado**/**suspeito** e arquivos que usam funções **PHP** frequentemente usadas em **malwares**/webshells.
|
||
|
||
### 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 estar **relacionado** a **malwares**.
|
||
```bash
|
||
#Get signer
|
||
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
|
||
|
||
#Check if the app’s 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ê souber que alguma pasta contendo os **arquivos** de um servidor web foi **atualizada pela última vez em alguma data**. **Verifique** a **data** em que todos os **arquivos** no **servidor web foram criados e modificados** e se alguma data for **suspeita**, verifique esse arquivo.
|
||
|
||
### Linhas de Base
|
||
|
||
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 modificação 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, pois um web shell pode ser um dos mais**.
|