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

183 lines
9.3 KiB
Markdown
Raw Permalink Normal View History

# Analisi del Malware
2022-04-28 16:01:33 +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)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Sostieni HackTricks</summary>
2023-12-30 10:12:47 +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) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
## CheatSheet di Forensics
2022-05-01 16:32:23 +00:00
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
2024-02-10 13:03:23 +00:00
## 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
### Yara
#### Installa
2020-12-21 20:50:30 +00:00
```bash
sudo apt-get install -y yara
```
2024-02-10 13:03:23 +00:00
#### Preparare le regole
Utilizza 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.
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
```
#### Scans
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
```
#### YaraGen: Controllare la presenza di malware e Creare regole
2024-02-10 13:03:23 +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/)
2021-08-18 23:59:47 +00:00
```bash
2024-02-10 13:03:23 +00:00
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
2021-08-18 23:59:47 +00:00
```
### ClamAV
#### Install
2024-02-10 13:03:23 +00:00
#### Installazione
```
sudo apt-get install -y clamav
```
#### Scans
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
```
### [Capa](https://github.com/mandiant/capa)
**Capa** rileva potenzialmente **capacità maligne** in eseguibili: PE, ELF, .NET. Quindi troverà cose come tattiche Att\&ck, o capacità sospette come:
- controllare errori di OutputDebugString
- eseguire come servizio
- creare processo
2024-02-10 13:03:23 +00:00
Ottienilo nel [**repository di Github**](https://github.com/mandiant/capa).
### IOCs
2021-08-16 23:29:43 +00:00
IOC significa Indicatore di Compromissione. Un IOC è un insieme di **condizioni che identificano** alcuni software potenzialmente indesiderati o confermati **malware**. I team Blu utilizzano questo tipo di definizione per **ricercare questo tipo di file maligni** 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 Blu possono utilizzarlo per identificare il malware più rapidamente.
2021-08-16 23:29:43 +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**.
2021-08-16 23:29:43 +00:00
### Loki
[**Loki**](https://github.com/Neo23x0/Loki) è uno scanner per Indicatori Semplici di Compromissione.\
2024-02-10 13:03:23 +00:00
La rilevazione si basa su quattro metodi di rilevamento:
```
1. File Name IOC
2024-02-10 13:03:23 +00:00
Regex match on full file path/name
2. Yara Rule Check
2024-02-10 13:03:23 +00:00
Yara signature matches on file data and process memory
3. Hash Check
2024-02-10 13:03:23 +00:00
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
4. C2 Back Connect Check
2024-02-10 13:03:23 +00:00
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.
### rkhunter
2020-12-23 19:52:25 +00:00
Strumenti come [**rkhunter**](http://rkhunter.sourceforge.net) possono essere utilizzati per controllare il filesystem alla ricerca di possibili **rootkit** e malware.
2020-12-23 19:52:25 +00:00
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
### FLOSS
2024-02-10 13:03:23 +00:00
[**FLOSS**](https://github.com/mandiant/flare-floss) è uno strumento che cercherà di trovare stringhe offuscate all'interno di eseguibili utilizzando diverse tecniche.
### PEpper
2020-12-23 19:52:25 +00:00
[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).
2020-12-23 19:52:25 +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 controlla anche VirusTotal e trova potenziali tecniche Att\&ck.
### Detect It Easy(DiE)
2024-02-10 13:03:23 +00:00
[**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**.
### **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.
### Firme binarie Apple
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 un **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
```
## Tecniche di Rilevamento
### Sovrapposizione di File
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 trovi una data **sospetta**, controlla quel file.
2024-02-10 13:03:23 +00:00
### Baseline
2024-02-10 13:03:23 +00:00
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
Quando le informazioni sono salvate nei log, puoi **controllare le statistiche come quante volte ogni file di un server web è stato accesso poiché un web shell potrebbe essere uno dei più**.
2022-04-28 16:01:33 +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)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Supporta HackTricks</summary>
2023-12-30 10:12:47 +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.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}