hacktricks/generic-methodologies-and-resources/basic-forensic-methodology/malware-analysis.md

181 lines
9.3 KiB
Markdown
Raw Normal View History

# Analisi del Malware
2024-04-06 18:35:30 +00:00
{% hint style="success" %}
Impara e pratica l'Hacking su AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Impara e pratica l'Hacking su GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2024-04-06 18:35:30 +00:00
<details>
2024-04-06 18:35:30 +00:00
<summary>Sostieni HackTricks</summary>
2024-04-06 18:35:30 +00:00
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Condividi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di Github.
2024-04-06 18:35:30 +00:00
</details>
{% endhint %}
2024-04-06 18:35:30 +00:00
## CheatSheet Forensi
2024-04-06 18:35:30 +00:00
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
## Servizi 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/)
## Strumenti Antivirus e di Rilevamento Offline
2024-04-06 18:35:30 +00:00
### Yara
#### Installa
2024-04-06 18:35:30 +00:00
```bash
sudo apt-get install -y yara
```
#### Preparare le regole
Usa questo script per scaricare e unire tutte le regole malware yara da github: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
Crea la directory _**rules**_ ed eseguilo. Questo creerà un file chiamato _**malware\_rules.yar**_ che contiene tutte le regole yara per il malware.
2024-04-06 18:35:30 +00:00
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
#### Scans
2024-04-06 18:35:30 +00:00
```bash
yara -w malware_rules.yar image #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder
```
#### YaraGen: Controllare la presenza di malware e Creare regole
2024-04-06 18:35:30 +00:00
Puoi utilizzare lo strumento [**YaraGen**](https://github.com/Neo23x0/yarGen) per generare regole yara da un file binario. Dai un'occhiata a questi tutorial: [**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
#### Installazione
```
sudo apt-get install -y clamav
```
#### Scans
2024-04-06 18:35:30 +00:00
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/capa)
**Capa** rileva potenzialmente **capacità** dannose negli eseguibili: PE, ELF, .NET. Quindi troverà cose come tattiche Att\&ck, o capacità sospette come:
2024-04-06 18:35:30 +00:00
- controllare errori di OutputDebugString
- eseguire come servizio
- creare processo
2024-04-06 18:35:30 +00:00
Ottienilo nel [**repository di Github**](https://github.com/mandiant/capa).
### IOCs
2024-04-06 18:35:30 +00:00
IOC significa Indicator Of Compromise. Un IOC è un insieme di **condizioni che identificano** alcuni software potenzialmente indesiderati o confermati **malware**. I team Blue utilizzano questo tipo di definizione per **ricercare questo tipo di file dannosi** nei loro **sistemi** e **reti**.\
Condividere queste definizioni è molto utile poiché quando un malware viene identificato in un computer e viene creato un IOC per quel malware, altri team Blue possono utilizzarlo per identificare il malware più rapidamente.
2024-04-06 18:35:30 +00:00
Uno strumento per creare o modificare IOCs è [**IOC Editor**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
Puoi utilizzare strumenti come [**Redline**](https://www.fireeye.com/services/freeware/redline.html) per **ricercare IOCs definiti in un dispositivo**.
2024-04-06 18:35:30 +00:00
### Loki
[**Loki**](https://github.com/Neo23x0/Loki) è uno scanner per Indicatori Semplici di Compromissione.\
2024-04-06 18:35:30 +00:00
La rilevazione si basa su quattro metodi di rilevamento:
```
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/) è uno scanner malware per Linux rilasciato sotto la licenza GNU GPLv2, progettato per affrontare le minacce presenti negli ambienti di hosting condiviso. Utilizza dati sulle minacce dai sistemi di rilevamento delle intrusioni ai margini della rete per estrarre malware attivamente utilizzati negli attacchi e genera firme per la rilevazione. Inoltre, i dati sulle minacce derivano anche dalle segnalazioni degli utenti con la funzionalità di checkout di LMD e dalle risorse della comunità malware.
2024-04-06 18:35:30 +00:00
### rkhunter
Strumenti come [**rkhunter**](http://rkhunter.sourceforge.net) possono essere utilizzati per controllare il filesystem alla ricerca di possibili **rootkit** e malware.
2024-04-06 18:35:30 +00:00
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
### FLOSS
[**FLOSS**](https://github.com/mandiant/flare-floss) è uno strumento che cercherà di trovare stringhe offuscate all'interno di eseguibili utilizzando diverse tecniche.
### PEpper
[PEpper](https://github.com/Th3Hurrican3/PEpper) controlla alcune cose di base all'interno dell'eseguibile (dati binari, entropia, URL e indirizzi IP, alcune regole yara).
2024-04-06 18:35:30 +00:00
### PEstudio
[PEstudio](https://www.winitor.com/download) è uno strumento che consente di ottenere informazioni sugli eseguibili di Windows come importazioni, esportazioni, intestazioni, ma controllerà anche VirusTotal e troverà potenziali tecniche Att\&ck.
2024-04-06 18:35:30 +00:00
### Detect It Easy(DiE)
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) è uno strumento per rilevare se un file è **criptato** e trovare anche **packer**.
### NeoPI
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) è uno script Python che utilizza una varietà di **metodi statistici** per rilevare contenuti **offuscati** e **criptati** all'interno di file di testo/script. Lo scopo previsto di NeoPI è aiutare nella **individuazione di codice shell web nascosto**.
2024-04-06 18:35:30 +00:00
### **php-malware-finder**
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) fa del suo meglio per rilevare codice **offuscato**/**sospetto** e file che utilizzano funzioni **PHP** spesso utilizzate in **malware**/shell web.
2024-04-06 18:35:30 +00:00
### Firme binarie Apple
2024-04-06 18:35:30 +00:00
Quando si controlla un **campione di malware** si dovrebbe sempre **verificare la firma** del binario poiché lo **sviluppatore** che l'ha firmato potrebbe essere già **associato** a **malware**.
2024-04-06 18:35:30 +00:00
```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
```
## Tecniche di Rilevamento
2024-04-06 18:35:30 +00:00
### Sovrapposizione di File
2024-04-06 18:35:30 +00:00
Se sai che una cartella contenente i **file** di un server web è stata **aggiornata per l'ultima volta in una certa data**. **Controlla** la **data** in cui tutti i **file** nel **server web sono stati creati e modificati** e se una data risulta **sospetta**, controlla quel file.
2024-04-06 18:35:30 +00:00
### Baseline
Se i file di una cartella **non dovrebbero essere stati modificati**, puoi calcolare l'**hash** dei **file originali** della cartella e **confrontarli** con quelli **attuali**. Qualsiasi modifica sarà **sospetta**.
### Analisi Statistica
2024-04-06 18:35:30 +00:00
Quando le informazioni sono salvate nei log, puoi **controllare statistiche come quante volte ogni file di un server web è stato accesso poiché un web shell potrebbe essere uno dei più**.
2024-04-06 18:35:30 +00:00
{% hint style="success" %}
Impara e pratica l'Hacking su AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Impara e pratica l'Hacking su GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2024-04-06 18:35:30 +00:00
<details>
2024-04-06 18:35:30 +00:00
<summary>Sostieni HackTricks</summary>
2024-04-06 18:35:30 +00:00
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di Github.
2024-04-06 18:35:30 +00:00
</details>
{% endhint %}