hacktricks/forensics/basic-forensic-methodology/malware-analysis.md
2024-02-10 13:03:23 +00:00

15 KiB
Raw Blame History

Analisi del malware

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

CheatSheet di Forensics

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

Servizi Online

Strumenti Offline per Antivirus e Rilevamento

Yara

Installazione

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

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.

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

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.

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

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.

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.
Puoi utilizzare strumenti come Redline per ricercare gli IOC definiti in un dispositivo.

Loki

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) è 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 possono essere utilizzati per verificare 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 informazioni 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 di 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 di NeoPI è aiutare nella rilevazione del codice nascosto di web shell.

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

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