Ejecuté file
en algunos archivos ELF de malware de Linux que adquirí en los últimos
Par de años. Noté algunas rarezas:
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 archivo ELF tiene un punto de entrada de 0xc07068, pero es una especie de "empaquetador", el ejecutable desempaquetado (un ejecutable de botnet Kaiten) se encuentra en el punto de entrada habitual.
El "ERROR" mencionado anteriormente proviene de un archivo ELF con PHeaders, pero no con SHeaders. Los "encabezados de sección" han sido cuidadosamente mutilados para que no sean legibles por cualquier programa que cree en los encabezados ELF El cargador ELF en los kernels de Linux solo lee los PHeaders, por lo que ese archivo puede ejecutarse.
Mi pregunta es: ¿quién compila de esta manera y cómo? Quiero decir, Linux 2.0.0 fue lanzado 12-Jun-1996 según kernel.org . Un ejecutable para Linux 2.0.0 podría o podría no sería muy portátil, pero ¿cómo mantendría un sistema antiguo para compilar el malware en ejecución? No es imposible obtener el punto de entrada de un ejecutable en una dirección arbitraria, pero sí tienes que salir de tu camino, como si tuvieras que hacerlo para destruir a los SHeaders de un ejecutable.