mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-28 07:31:10 +00:00
251 lines
16 KiB
Markdown
251 lines
16 KiB
Markdown
# Análise de Malware
|
||
|
||
<details>
|
||
|
||
<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>
|
||
|
||
* 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**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||
* 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)
|
||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo 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)**.**
|
||
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|
||
|
||
## CheatSheets de Forensics
|
||
|
||
[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 Offline de Antivírus e Detecção
|
||
|
||
### Yara
|
||
|
||
#### Instalação
|
||
```bash
|
||
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](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
|
||
|
||
A primeira etapa na análise de malware é realizar uma verificação completa do sistema em busca de qualquer sinal de atividade maliciosa. Isso pode ser feito usando ferramentas de segurança, como antivírus e antimalware, para identificar arquivos suspeitos ou comportamentos anormais.
|
||
|
||
Durante a verificação, é importante garantir que as definições de segurança estejam atualizadas para detectar as ameaças mais recentes. Além disso, é recomendável executar a verificação em modo de segurança para evitar que o malware se espalhe ou se esconda.
|
||
|
||
Após a verificação, é necessário revisar os resultados em busca de qualquer indicação de malware. Isso pode incluir arquivos infectados, processos suspeitos em execução ou alterações não autorizadas no sistema.
|
||
|
||
#### Analysis
|
||
|
||
A próxima etapa na análise de malware é a análise detalhada do arquivo suspeito. Isso envolve examinar o código do malware, identificar suas funcionalidades e entender como ele se comporta.
|
||
|
||
Existem várias técnicas de análise que podem ser usadas, como análise estática e análise dinâmica. A análise estática envolve examinar o código-fonte do malware sem executá-lo, enquanto a análise dinâmica envolve executar o malware em um ambiente controlado para observar seu comportamento.
|
||
|
||
Durante a análise, é importante observar as características do malware, como sua capacidade de se espalhar, se comunicar com servidores remotos ou roubar informações confidenciais. Também é importante identificar qualquer técnica de evasão que o malware possa estar usando para evitar a detecção.
|
||
|
||
#### Report
|
||
|
||
Após concluir a análise do malware, é importante documentar todas as descobertas em um relatório detalhado. Isso inclui informações sobre o malware, como seu nome, tipo, funcionalidades e comportamento.
|
||
|
||
O relatório também deve incluir informações sobre as medidas de mitigação recomendadas para proteger o sistema contra o malware. Isso pode incluir a remoção do malware, a atualização de software, a aplicação de patches de segurança ou a implementação de medidas de segurança adicionais.
|
||
|
||
Além disso, o relatório deve ser claro e conciso, fornecendo informações relevantes de forma organizada e compreensível. Isso ajudará os usuários a entenderem a natureza do malware e tomar as medidas necessárias para proteger seus sistemas.
|
||
```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
|
||
|
||
Para instalar o ClamAV, siga as etapas abaixo:
|
||
|
||
1. Abra o terminal e execute o seguinte comando para atualizar a lista de pacotes:
|
||
```
|
||
sudo apt update
|
||
```
|
||
|
||
2. Em seguida, execute o comando abaixo para instalar o ClamAV:
|
||
```
|
||
sudo apt install clamav
|
||
```
|
||
|
||
3. Após a instalação, atualize as definições de vírus executando o seguinte comando:
|
||
```
|
||
sudo freshclam
|
||
```
|
||
|
||
4. Agora você pode verificar arquivos em busca de malware usando o comando abaixo:
|
||
```
|
||
clamscan <caminho_do_arquivo_ou_diretório>
|
||
```
|
||
|
||
Certifique-se de substituir `<caminho_do_arquivo_ou_diretório>` pelo caminho real do arquivo ou diretório que deseja verificar.
|
||
|
||
5. Para remover o ClamAV, execute o seguinte comando:
|
||
```
|
||
sudo apt remove clamav
|
||
```
|
||
|
||
Agora você tem o ClamAV instalado e pronto para ser usado em sua análise de malware.
|
||
```
|
||
sudo apt-get install -y clamav
|
||
```
|
||
#### Verificação
|
||
|
||
A primeira etapa na análise de malware é realizar uma verificação completa do arquivo suspeito. Isso pode ser feito usando várias ferramentas de segurança, como antivírus e scanners de malware. Essas ferramentas procuram por assinaturas conhecidas de malware e comportamentos suspeitos no arquivo.
|
||
|
||
#### Análise estática
|
||
|
||
Após a verificação inicial, é importante realizar uma análise estática do arquivo. Isso envolve examinar o código do malware sem executá-lo. Durante essa análise, é possível identificar strings suspeitas, funções maliciosas e técnicas de ofuscação usadas pelo malware.
|
||
|
||
#### Análise dinâmica
|
||
|
||
A análise dinâmica envolve a execução do malware em um ambiente controlado para observar seu comportamento. Isso pode ser feito em uma máquina virtual isolada ou em um ambiente de sandbox. Durante essa análise, é possível observar as ações do malware, como a criação de arquivos, a comunicação com servidores remotos e a modificação do sistema.
|
||
|
||
#### Engenharia reversa
|
||
|
||
A engenharia reversa é uma etapa avançada na análise de malware, que envolve a desmontagem do código do malware para entender sua lógica interna. Isso pode revelar informações valiosas sobre as técnicas de ataque usadas pelo malware e ajudar a desenvolver contramedidas eficazes.
|
||
|
||
#### Análise de tráfego de rede
|
||
|
||
Além da análise do arquivo em si, também é importante analisar o tráfego de rede gerado pelo malware. Isso pode revelar informações sobre os servidores de comando e controle usados pelo malware, bem como as comunicações entre o malware e outros sistemas na rede.
|
||
|
||
#### Análise de artefatos
|
||
|
||
Por fim, é importante analisar os artefatos deixados pelo malware no sistema infectado. Isso pode incluir arquivos de log, entradas de registro e alterações no sistema de arquivos. Esses artefatos podem fornecer pistas adicionais sobre as atividades do malware e ajudar na remoção completa do mesmo.
|
||
|
||
Ao seguir essa metodologia básica de análise forense de malware, é possível obter uma compreensão mais profunda do funcionamento do malware e desenvolver estratégias eficazes para mitigar seus efeitos.
|
||
```bash
|
||
sudo freshclam #Update rules
|
||
clamscan filepath #Scan 1 file
|
||
clamscan folderpath #Scan the whole folder
|
||
```
|
||
### [Capa](https://github.com/mandiant/capa)
|
||
|
||
**Capa** detecta potencialmente **capacidades maliciosas** em executáveis: PE, ELF, .NET. Portanto, ele encontrará coisas como táticas de Att\&ck ou capacidades suspeitas, como:
|
||
|
||
* verificar erros de OutputDebugString
|
||
* executar como um serviço
|
||
* criar processo
|
||
|
||
Obtenha-o no [**repositório do Github**](https://github.com/mandiant/capa).
|
||
|
||
### IOCs
|
||
|
||
IOC significa Indicator Of Compromise. Um IOC é um conjunto de **condições que identificam** algum software potencialmente indesejado ou malware confirmado. As equipes de segurança 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**](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 para enfrentar ameaças 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 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 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 ofuscadas dentro de executáveis usando diferentes técnicas.
|
||
|
||
### PEpper
|
||
|
||
[PEpper](https://github.com/Th3Hurrican3/PEpper) verifica algumas informações 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 verifica o virus total e encontra possíveis técnicas de 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 **ofuscado** e **criptografado** em arquivos de texto/script. O objetivo do NeoPI é auxiliar na **detecção de código de shell web oculto**.
|
||
|
||
### **php-malware-finder**
|
||
|
||
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) faz o seu melhor para detectar código **ofuscado**/**suspeito** e também arquivos que usam funções **PHP** frequentemente usadas em **malwares**/shell 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 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ê 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 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**.
|
||
|
||
<details>
|
||
|
||
<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>
|
||
|
||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||
* 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)
|
||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo 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)**.**
|
||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|