hacktricks/forensics/basic-forensic-methodology/malware-analysis.md

143 lines
7.7 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
- **Compartilhe suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>
2022-05-01 16:32:23 +00:00
2023-06-06 18:56:34 +00:00
# Folhas de dicas de Forense
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/#)
2023-06-06 18:56:34 +00:00
# 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)
2023-06-06 18:56:34 +00:00
# Ferramentas Offline de Antivírus e Detecção
2022-05-01 16:32:23 +00:00
## Yara
2023-06-06 18:56:34 +00:00
### Instalar
2020-12-21 20:50:30 +00:00
```bash
sudo apt-get install -y yara
```
2023-06-06 18:56:34 +00:00
### Preparar regras
2023-06-06 18:56:34 +00:00
Use 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.
2020-12-21 20:50:30 +00:00
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
2023-06-06 18:56:34 +00:00
### Verificação
2020-12-21 20:50:30 +00:00
```bash
yara -w malware_rules.yar image #Scan 1 file
2022-09-08 08:47:03 +00:00
yara -w malware_rules.yar folder #Scan the whole folder
```
2023-06-06 18:56:34 +00:00
### YaraGen: Verificar malware e criar regras
2023-06-06 18:56:34 +00:00
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/)
2021-08-18 23:59:47 +00:00
```bash
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
```
2022-05-01 16:32:23 +00:00
## ClamAV
2023-06-06 18:56:34 +00:00
### Instalação
```
sudo apt-get install -y clamav
```
2023-06-06 18:56:34 +00:00
### Verificação
2020-12-21 20:50:30 +00:00
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
2022-09-08 08:47:03 +00:00
clamscan folderpath #Scan the whole folder
```
2022-05-01 16:32:23 +00:00
## IOCs
2021-08-16 23:29:43 +00:00
2023-06-06 18:56:34 +00:00
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.
2021-08-16 23:29:43 +00:00
2023-06-06 18:56:34 +00:00
Uma ferramenta para criar ou modificar IOCs é o [**IOC Editor**](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**.
2021-08-16 23:29:43 +00:00
2022-05-01 16:32:23 +00:00
## Loki
2023-06-06 18:56:34 +00:00
[**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
2022-09-08 08:47:03 +00:00
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)
```
2022-05-01 16:32:23 +00:00
## Linux Malware Detect
2023-06-06 18:56:34 +00:00
[**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, 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.
2022-05-01 16:32:23 +00:00
## rkhunter
2020-12-23 19:52:25 +00:00
2023-06-06 18:56:34 +00:00
Ferramentas como [**rkhunter**](http://rkhunter.sourceforge.net) podem ser usadas para verificar o sistema de arquivos em busca de possíveis **rootkits** e malware.
2020-12-23 19:52:25 +00:00
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
2022-05-01 16:32:23 +00:00
## PEpper
2020-12-23 19:52:25 +00:00
2023-06-06 18:56:34 +00:00
[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).
2020-12-23 19:52:25 +00:00
2022-05-01 16:32:23 +00:00
## NeoPI
2023-06-06 18:56:34 +00:00
[**NeoPI**](https://github.com/CiscoCXSecurity/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**.
2022-05-01 16:32:23 +00:00
## **php-malware-finder**
2023-06-06 18:56:34 +00:00
[**PHP-malware-finder**](https://github.com/nbs-system/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.
2023-06-06 18:56:34 +00:00
## Assinaturas Binárias da Apple
2023-06-06 18:56:34 +00:00
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**.
```bash
#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
```
2023-06-06 18:56:34 +00:00
# Técnicas de Detecção
2023-06-06 18:56:34 +00:00
## Empilhamento de Arquivos
2023-06-06 18:56:34 +00:00
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.
2022-05-01 16:32:23 +00:00
## Baselines
2023-06-06 18:56:34 +00:00
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**.
2022-05-01 16:32:23 +00:00
2023-06-06 18:56:34 +00:00
## Análise Estatística
2022-05-01 16:32:23 +00:00
2023-06-06 18:56:34 +00:00
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**.