In che modo Zeus (e altro malware) inserisce il codice in altri processi

2

Recentemente, ho studiato il funzionamento del malware, più recentemente il famigerato Zeus Bot, e ho notato una cosa che non sembra comprendere: il malware è in grado di agganciare le API nei processi e usarli per, ad esempio, rubare dati. Ma, se il trojan è esso stesso un file exe, come fa queste cose?

Porta una DLL per fare tutto il hooking, o inserisce il shellcode nel processo che vuole modificare, o qualcosa del genere altro?

    
posta Display name 26.01.2016 - 15:50
fonte

1 risposta

2

Non so su Zeus in particolare, ma in generale, è facile farlo utilizzando le API di debug come VirtualProtectEx e WriteProcessMemory . Aprire un HANDLE al processo di destinazione, aggiungere un po 'di memoria eseguibile (con VirtualAllocEx ), inserire del codice malizioso, re-mappare l'indirizzo virtuale del codice eseguibile della libreria che contiene l'API di destinazione come RWX, sovrascrivere i primi byte della funzione che si desidera agganciare con un'istruzione di salto che va al tuo codice dannoso iniettato e controlli tutto ciò che fa la funzione.

Ci sono molti altri modi per ottenere risultati simili; l'uso delle API di debug e la sovrascrittura dei punti di ingresso di funzioni reali è solo un esempio che ho visto nel mondo reale. Il programma dannoso può eseguire questa operazione ogni volta che il debuggee (vittima) carica una nuova libreria, inclusi tutti quelli caricati durante l'inizializzazione del processo, prima dell'esecuzione anche della main() della vittima.

Iniezione DLL (che può eseguire il hooking all'interno del processo, senza bisogno di fare nulla di inter-process) e shim di compatibilità (come sono usati per eseguire programmi in "modalità compatibilità" per versioni del sistema operativo precedenti e sostituire il sistema API con codice diverso) sono altre due utili opzioni.

    
risposta data 26.01.2016 - 23:50
fonte

Leggi altre domande sui tag