jueves, 25 de abril de 2013

Primeros pasos de yarr

Bueno, como algunos saben llevo algún tiempo programando un rootkit para Linux (el kernel) al que he llamado yarr, siglas de Yet Another Repetitive Rootkit, pero que creo que voy a cambiar por Yet Another Random Rootkit. Pero bueno, eso no viene al caso, lo que quería comentar es que ya casi tengo una primera aproximación de rootkit medianamente útil :). Por ahora oculta procesos y ficheros, lo típico. Aún me queda pulirlo un poco, resolver algunos problemillas, volver a pulirlo, organizarlo todo un poco, pulir guanmortaim y, por qué no, sacar la primera versión.

Pero voy a mostrar un poco de su efectividad. La siguiente prueba se ha hecho con un sistema Ubuntu 12.04 con un kernel 3.2.0-29-generic-pae y la última versión de unhide a día de hoy.

Lo primero lo cargamos como cualquier módulo.


Con un pequeño programita que cree para la prueba creamos un proceso que se intenta ocultar a sí mismo.


Aunque aquí no voy a poner nada del código (ni de yarr ni del programa éste), todo está publicado y lo puedes consultar, mirar, entender, copiar, modificar, mejorar... y aportar :P.

Como vemos se ha creado el proceso con PID 3033. Ahora lanzamos unhide de distintas formas.






Y bueno, vemos que ninguna de las técnicas detecta el proceso 3033 :D.

El proyecto lo tengo en mi github, así que lo puedes coger y estudiarlo/mejorarlo. Cualquier ayuda, tanto ideas, correcciones o lo que sea es bien recibido.

Saludos.