Ho eseguito file
su alcuni file ELF di malware Linux che ho acquisito nel corso degli ultimi
un paio d'anni. Ho notato alcune stranezze:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.0.0, not stripped
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.15, not stripped
ERROR: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linkederror reading (Invalid argument)
ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped
Un file ELF ha un entry point di 0xc07068, ma è una specie di "packer", l'eseguibile decompresso (un eseguibile botnet Kaiten) si trova al solito punto d'ingresso.
L'errore "ERROR" sopra riportato proviene da un file ELF con PHeaders, ma non da SHeaders. Le "intestazioni di sezione" sono state accuratamente rimosse per non essere leggibili da qualsiasi programma che crede negli header ELF Il loader ELF nei kernel di Linux legge solo i PHeader, in modo che il file possa essere eseguito.
La mia domanda è: chi compila in questo modo e come? Voglio dire, è stato rilasciato Linux 2.0.0 12 giugno 1996 secondo kernel.org . Un eseguibile per Linux 2.0.0 potrebbe o potrebbe non essere molto portabile, ma come manterresti un sistema antico per la compilazione del malware in esecuzione? Non è impossibile ottenere il punto di ingresso di un eseguibile a un indirizzo arbitrario, ma devi fare di tutto, proprio come dovresti fare a meno di manomettere gli ugelli di un eseguibile.