APC Injection
- Antonio Capobianco
- Visite: 8550
PILLOLE DI #MALWAREANALYSIS
APC injection
Una delle tecniche utilizzate dai malware per infettare un device in ambiente windows è la #APCinjection.
APC è l’acronimo di Asyncronous Procedure Call e si riferisce ad una funzione che viene eseguita asincronamente nel contesto di uno specifico thread.
Quando una APC viene inserita nella coda di attesa di un thread viene inviata una interrupt da parte del sistema.
Quando il thread passa da uno stato alertable allo stato running, la APC viene eseguita.
Affinchè un #malware possa eseguire una APC injection per prima cosa deve individuare il thread target ed aprirlo con la funzione OpenThread().
Parlando di una APC injection in user mode, una volta ottenuto l’id del thread viene chiamata la funzione QueueUserAPC().
Questa ha 3 differenti parametri:
1) L’handle del thread target
2) Un puntatore alla funzione da iniettare
3) Una struttura contenente i parametri da passare alla funzione
Tipicamente un malware che esegue questa azione utilizza le seguenti funzioni:
1) Ottiene lo snapshot della memoria (CreatToolHelp32Snapshot)
2) cerca il processo target (Process32First e Process32Next
3) Lo apre (OpenProcess)
4) inietta la routine malevola con WriteProcessMemory
5) cerca il thread target (Thread32First e Thread32Next)
6) Lo apre con OpenThread
7) Inserisce la funzione nella coda APC con QueueUserAPC
8) Infine fa entrare il processo in uno stato alertable con Sleep (o funzioni simili).
Questa tecnica viene identificata con l’id T1055.004 all’interno della #Mitre Att&ck.