Iscriviti ora al Webinar di presentazione del corso Ethical Hacker! Scopri di più
Iscriviti ora al Webinar di presentazione del corso CISO! Scopri di più
Pillole di #MalwareAnalysis
Simulare una rete
Quando creiamo i nostri laboratori per eseguire malware analysis è fondamentale fare in modo che i #malware non siano connessi in rete e non possano contattare il proprio #C2.
Diventa fondamentale quindi simulare una rete per consentire al malware di operare e quindi analizzarlo. Ci sono diversi strumenti ma oggi mi voglio focalizzare su #ApateDns.
Grazie a questo tool possiamo simulare una risposta da parte del #DNS e fornire quindi al malware l’IP che noi vogliamo.
ApateDns è un tool gratuito fornito da #FireEye che esegue uno spoof delle risposte DNS con un ip specificato da noi andando a mettersi in ascolto sulla porta 53 locale.
In pratica quando il malware prova a contattare il proprio dominio, ammesso che non venga fatto direttamente con l’ip, ApateDns intercetterà la chiamata e risponderà, appunto, con l’ip sul quale noi vogliamo reindirizzare il traffico.
Su quell’IP poi metteremo uno sniffer come #Wireshark oppure proveremo ad intercettare il traffico con #Netcat, naturalmente se sappiamo su quale porta ascoltare.
A questo punto potremo catturare il traffico di rete fatto dal malware ed analizzarlo.
Pillole di #MalwareAnalysis
LA PIRAMIDE DEL DOLORE DI #DAVIDBIANCO
David Bianco è un eccellente #MalwareAnalyst e #Cybersecurity Expert facente parte del famoso gruppo #Mandiant di#FireEye.
Ha sviluppato una sua teoria sul “dolore” inflitto all’attaccante a causa di azioni eseguite dal difendente.
Ad esempio, se un difendente si preoccupa di identificare i valori #hash dei malware per fornirli ai sistemi di protezione farà poco male all’attaccante in quanto questi potrà facilmente modificare quei valori, appunto per questo i #malware sono generalmente #metamorfici o #polimorfici.
Se si memorizzano gli ip dei siti dai quali partono gli attacchi si crea un leggero fastidio in quanto i #threat actors hanno infrastrutture, generalmente protette da #botnet con ip estremamente variabili.
Salendo lungo la piramide di arriva alla cima dove troviamo prima i Tools e poi le #TTPs.
Conoscere le TTPs (tattiche, tecniche e procedure) utilizzate dagli attaccanti è estremamente efficace per la difesa, in quanto si studiano le loro compentenze, strumenti utilizzati e modus operandi.
Avere queste conoscenze crea il maggior danno possibile all’attaccante in quanto per modificarle dovrebbe modificare i propri comportamenti e non dei semplici nomi di dominio, ip o hash.
La #Mitre #Att&ck nasce proprio per fornirci una matrice delle TTPs esistenti evidenziandoci anche quali vengono utilizzate dai singoli Threat Actors.
Se volete avere un’idea di cosa intendo visitate attack.mitre.org
Pillole di #Malware #Analysis
I #Macro malware
Il formato file più utilizzato per la diffusione del malware è sicuramente il formato office, ovvero .docx .xlsx .pptx etc…
Un report di #Verizon ci dice che il metodo di delivery del malware utilizzato nel 98% delle volte è una email, che nel 45% dei casi contiene un file office.
Questi file contengono le famigerate Macro, ovvero script che #Microsoft ha creato per automatizzare le operazioni su questi prodotti ma che vengono utilizzati in maniera illecita per infettare il pc della vittima.
Queste macro si avvalgono nella maggioranza dei casi di una #Powershell di #Windows che esegue codice criptato, e nella mia esperienza la codifica più utilizzata è la #Base64.
Powershell si presta così bene perché è talmente potente da poter eseguire la stessa azione modificando l’ordine dei parametri, modificandone la capitalizzazione delle lettere e persino il nome del parametro stesso.
Questi script sono spesso lunghissimi, oltre i 500 caratteri, e contengono una molteplicità di funzioni innestate che forniscono un parametro essenziale per la funzione di più alto livello.
Il codice che vedete dentro la bandiera del logo di questo gruppo appartiene proprio a questa categoria.
Se vi interessa questo tipo di analisi potete trovare un video sul canale youtube di #CybersecurityUP.
Una lettura estremamente interessate è "The increased use of Powershell Attacks" di Symantec
Pillole di #MalwareAnalysis
#APC INJECTION
APC è il sinonimo di #AsyncronousProcedureCalls e si riferisce a una funzione eseguita in maniera asincrona rispetto all’esecuzione di un #Thread.
In pratica ogni Thread ha una propria coda APC all’interno della quale trova tutta una serie di funzioni da eseguire. Queste funzioni vengono accodate al verificarsi di eventi asincroni come le #Interrupt. Una APC generata dal Sistema viene definita #KernelModeAPC, mentre se viene generata dall’utente #UserModeAPC.
Un Thread per eseguire una APC deve entrare in uno stato definito #Alertable, e lo fa quando vengono chiamate funzioni come #SleepEX, #WaitForSingleObjectEx etc…
Un #malware che vuole inserire una routine malevola all’interno di una coda APC deve:
1) Ricercare il processo vittima utilizzando le primitive #CraeteToolHelp32Snapshot e #Process32First/ #Process32Next
2) Scrivere la routine malevola nello spazio di memoria del processo utilizzando le primitive #WriteProcessMemory e #VirtualAllocEx
3) Scegliere il thread bersaglio all’interno del processo con le #API #Thread32First / #Thread32Next
4) Accodare la routine malevola alla coda APC del thread con #QueueUserAPC
5) Mettere il thread in sleep con SleepEx
Questo thread al suo risveglio dallo Sleep eseguirà la routine malevola inserita nella coda APC.
Questa #injection è definita dal #Mitre #Attack come tecnica #T1055 e viene utilizzata con successo da #malware come #InvisiMole, #Attor, #Carberp e #Pillowmint.
Per identificare malware con queste caratteristiche dobbiamo ricercare le primitive che vi ho indicato, con particolare attenzione a quelle che sospendono un thread, scrivono nell’area di memoria di un processo e QueueUserAPC
PILLOLE DI #MALWAREANALYSIS
La manipolazione dei processi
Una delle azioni tipiche di un #malware è la manipolazione dei processi ovvero la capacità di identificare un processo target per eseguirne una modifica.
Ma come si fa ad identificare un processo target?
La prima cosa che deve fare è vedere quali sono i processi attivi e per fare questo in ambiente Windows viene utilizzata la primitiva #CreateToolHelp32Snapshot. Questa restituisce una struttura contenente l’elenco di tutti i processi attivi nel sistema.
Consideriamo che il nome di questa struttura sia hProcessSnap.
hProcessSnap viene poi passato alla coppia di primitive #Process32First e #Process32Next che permettono di ciclare tra l’elenco dei processi in hProcessSnap.
Una volta identificato il processo, si esegue la manipolazione utilizzando la struttura #PROCESSENTRY32 restituita dalla coppia di primitive precedenti.
Pagina 357 di 359