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

9.3 KiB
Raw Blame History

Analisi del Malware

{% hint style="success" %} Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)

Sostieni HackTricks
{% endhint %}

CheatSheet di Forensics

https://www.jaiminton.com/cheatsheet/DFIR/#

Servizi Online

Strumenti Antivirus e di Rilevamento Offline

Yara

Installa

sudo apt-get install -y yara

Preparare le regole

Utilizza questo script per scaricare e unire tutte le regole malware yara da github: 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.

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py

Scans

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

Puoi utilizzare lo strumento YaraGen per generare regole yara da un file binario. Dai un'occhiata a questi tutorial: Parte 1, Parte 2, Parte 3

python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m  ../../mals/

ClamAV

Install

Installazione

sudo apt-get install -y clamav

Scans

sudo freshclam      #Update rules
clamscan filepath   #Scan 1 file
clamscan folderpath #Scan the whole folder

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

Ottienilo nel repository di Github.

IOCs

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.

Uno strumento per creare o modificare IOCs è IOC Editor.
Puoi utilizzare strumenti come Redline per ricercare IOCs definiti in un dispositivo.

Loki

Loki è uno scanner per Indicatori Semplici di Compromissione.
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) è 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

Strumenti come rkhunter possono essere utilizzati per controllare il filesystem alla ricerca di possibili rootkit e malware.

sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]

FLOSS

FLOSS è uno strumento che cercherà di trovare stringhe offuscate all'interno di eseguibili utilizzando diverse tecniche.

PEpper

PEpper controlla alcune cose di base all'interno dell'eseguibile (dati binari, entropia, URL e indirizzi IP, alcune regole yara).

PEstudio

PEstudio è 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)

DiE è uno strumento per rilevare se un file è criptato e trovare anche packer.

NeoPI

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 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.

#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.

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 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ù.

{% hint style="success" %} Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}