# Analisi del malware
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **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 i tuoi trucchi di hacking inviando PR ai repository di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github.
## CheatSheet di Forensics
[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 Offline per Antivirus e Rilevamento
### Yara
#### Installazione
```bash
sudo apt-get install -y yara
```
#### Preparare le regole
Utilizza questo script per scaricare e unire tutte le regole di rilevamento malware yara da GitHub: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
Crea la directory _**rules**_ ed esegui lo script. Questo creerà un file chiamato _**malware\_rules.yar**_ che contiene tutte le regole yara per il rilevamento di malware.
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
#### Scansione
Scansione è il primo passo nel processo di analisi del malware. L'obiettivo della scansione è identificare la presenza di malware nel sistema o nei file sospetti. Ci sono diversi strumenti disponibili per eseguire la scansione, come antivirus, anti-malware e strumenti di analisi statica.
##### Scansione antivirus
Gli antivirus sono strumenti comuni utilizzati per rilevare e rimuovere malware. Possono essere utilizzati per eseguire una scansione completa del sistema o per analizzare file specifici. Gli antivirus utilizzano firme euristici per identificare i malware noti e possono anche utilizzare tecniche di analisi comportamentale per rilevare nuovi tipi di malware.
##### Scansione anti-malware
Gli strumenti anti-malware sono simili agli antivirus, ma sono progettati specificamente per rilevare e rimuovere malware. Possono essere utilizzati per eseguire una scansione completa del sistema o per analizzare file specifici. Gli strumenti anti-malware possono utilizzare diverse tecniche, come l'analisi delle firme, l'analisi comportamentale e l'analisi euristica, per identificare i malware.
##### Scansione statica
La scansione statica è un metodo di analisi che coinvolge l'ispezione dei file sospetti senza eseguirli. Questo può essere fatto utilizzando strumenti come un disassemblatore o un debugger per esaminare il codice del malware. La scansione statica può rivelare informazioni sul comportamento del malware, come le funzioni chiamate e le stringhe utilizzate.
##### Scansione dinamica
La scansione dinamica è un metodo di analisi che coinvolge l'esecuzione del malware in un ambiente controllato per osservarne il comportamento. Questo può essere fatto utilizzando strumenti come un sandbox o un ambiente di virtualizzazione. La scansione dinamica può rivelare informazioni sulle azioni del malware, come le connessioni di rete, le modifiche del registro e le attività di file.
##### Scansione di rete
La scansione di rete è un metodo di analisi che coinvolge l'ispezione del traffico di rete per individuare segni di attività di malware. Questo può essere fatto utilizzando strumenti come un packet sniffer o un IDS (Intrusion Detection System). La scansione di rete può rivelare informazioni sulle comunicazioni del malware, come gli indirizzi IP e i protocolli utilizzati.
##### Scansione dei file
La scansione dei file è un metodo di analisi che coinvolge l'ispezione dei file sospetti per individuare segni di attività di malware. Questo può essere fatto utilizzando strumenti come un analizzatore di file o un hex editor. La scansione dei file può rivelare informazioni sulle caratteristiche del malware, come le firme, le stringhe e le strutture dei file.
##### Scansione del registro di sistema
La scansione del registro di sistema è un metodo di analisi che coinvolge l'ispezione del registro di sistema per individuare segni di attività di malware. Questo può essere fatto utilizzando strumenti come un editor del registro di sistema o un analizzatore del registro di sistema. La scansione del registro di sistema può rivelare informazioni sulle modifiche del registro effettuate dal malware.
```bash
yara -w malware_rules.yar image #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder
```
#### YaraGen: Verifica la presenza di malware e crea regole
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
ClamAV è un antivirus open source che può essere utilizzato per analizzare e rilevare malware. Per installare ClamAV, segui i seguenti passaggi:
1. Apri il terminale e digita il seguente comando per installare ClamAV:
```
sudo apt-get install clamav
```
2. Dopo l'installazione, esegui il comando seguente per aggiornare le definizioni dei virus:
```
sudo freshclam
```
3. Ora puoi eseguire la scansione del tuo sistema utilizzando il comando:
```
clamscan -r /path/to/directory
```
Assicurati di sostituire `/path/to/directory` con il percorso della directory che desideri analizzare.
4. ClamAV ti fornirà un elenco di file infetti o sospetti. Puoi rimuoverli utilizzando il comando:
```
clamscan --remove /path/to/directory
```
Questo comando rimuoverà i file infetti o sospetti dalla directory specificata.
Ora hai installato ClamAV e puoi utilizzarlo per analizzare e rilevare malware nel tuo sistema.
```
sudo apt-get install -y clamav
```
#### Scansione
Scansione è il primo passo nel processo di analisi del malware. L'obiettivo della scansione è identificare la presenza di malware nel sistema o nei file sospetti. Ci sono diversi strumenti disponibili per eseguire la scansione, come antivirus, anti-malware e strumenti di analisi statica.
##### Scansione antivirus
Gli antivirus sono strumenti comuni utilizzati per rilevare e rimuovere malware. Possono essere utilizzati per eseguire una scansione completa del sistema o per analizzare file specifici. Gli antivirus utilizzano firme euristici per identificare i malware noti e possono anche utilizzare tecniche di analisi comportamentale per rilevare nuovi tipi di malware.
##### Scansione anti-malware
Gli strumenti anti-malware sono simili agli antivirus, ma sono progettati specificamente per rilevare e rimuovere malware. Possono essere utilizzati per eseguire una scansione completa del sistema o per analizzare file specifici. Gli strumenti anti-malware possono utilizzare diverse tecniche, come l'analisi delle firme, l'analisi comportamentale e l'analisi euristica, per identificare i malware.
##### Scansione statica
La scansione statica è un metodo di analisi che coinvolge l'ispezione dei file sospetti senza eseguirli. Questo può essere fatto utilizzando strumenti come un disassemblatore o un debugger per esaminare il codice del malware. La scansione statica può rivelare informazioni sul comportamento del malware, come le funzioni chiamate e le risorse utilizzate.
Durante la scansione, è importante tenere traccia dei risultati e registrare tutte le informazioni rilevanti, come i nomi dei file sospetti, le firme dei malware rilevati e le azioni intraprese. Queste informazioni saranno utili nelle fasi successive dell'analisi del malware.
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/capa)
**Capa** rileva potenziali **capacità malevole** negli eseguibili: PE, ELF, .NET. Quindi troverà cose come le tattiche Att\&ck o capacità sospette come:
* verifica degli errori di OutputDebugString
* esecuzione come servizio
* creazione di processi
Ottienilo nel [**repository di Github**](https://github.com/mandiant/capa).
### IOC
IOC significa Indicator Of Compromise. Un IOC è un insieme di **condizioni che identificano** un software potenzialmente indesiderato o un **malware confermato**. Le Blue Team utilizzano questo tipo di definizione per **ricercare questo tipo di file malevoli** nei loro **sistemi** e **reti**.\
Condividere queste definizioni è molto utile perché quando un malware viene identificato in un computer e viene creato un IOC per quel malware, altre Blue Team possono utilizzarlo per identificare il malware più velocemente.
Uno strumento per creare o modificare gli IOC è [**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 gli IOC definiti in un dispositivo**.
### Loki
[**Loki**](https://github.com/Neo23x0/Loki) è uno scanner per Simple Indicators of Compromise.\
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 di malware per Linux rilasciato sotto la licenza GNU GPLv2, progettato per affrontare le minacce presenti negli ambienti di hosting condivisi. Utilizza dati sulle minacce provenienti dai sistemi di rilevamento delle intrusioni ai bordi della rete per estrarre il malware utilizzato attivamente negli attacchi e genera firme per la rilevazione. Inoltre, i dati sulle minacce sono anche derivati dalle segnalazioni degli utenti con la funzione di controllo di LMD e dalle risorse della comunità di malware.
### rkhunter
Strumenti come [**rkhunter**](http://rkhunter.sourceforge.net) possono essere utilizzati per verificare il filesystem alla ricerca di possibili **rootkit** e malware.
```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 informazioni di base all'interno dell'eseguibile (dati binari, entropia, URL e indirizzi IP, alcune regole yara).
### 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 di Att\&ck.
### 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 di NeoPI è aiutare nella **rilevazione del codice nascosto di web shell**.
### **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**/webshell.
### Apple Binary Signatures
Quando si controlla un **campione di malware**, è sempre opportuno **verificare la firma** del binario poiché lo **sviluppatore** che l'ha firmato potrebbe essere già **associato** a **malware**.
```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
```
## 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** di creazione e modifica di tutti i **file** nel server web e, se una data risulta **sospetta**, controlla quel file.
### 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
Quando le informazioni vengono salvate nei log, puoi **controllare le statistiche come il numero di volte in cui ogni file di un server web è stato accesso, poiché una web shell potrebbe essere una delle più**.
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF**, controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **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 i tuoi trucchi di hacking inviando PR ai repository GitHub di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).