martes, 16 de febrero de 2010

Hiding Tracks with .bash_profile

 Buscando maneras en las que un atacante puede minimizar sus huellas en un sistema *nix comprometido, encuentro, gracias a MUrizar, con una simple y eficaz forma de hacerlo.

Al añadir una línea al fichero .bash_profile (tambien funciona en .bashrc), podemos lograr que todo comando precedido de un espacio en blanco, no sea guardado en el historial de comandos del usuario (.bash_history).

export HISTCONTROL=ignorespace

Esto puede funcionar en un escenario donde se quiera evitar el uso de rootkits o zappers para borrar evidencias. Hay otras formas de hacerlo pero me gustó esta por su simplicidad. Lo importante es no olvidarse de añadir el espacio en blanco !

Desde luego, esto no servirá de nada para ocultar la presencia del atacante si el admin utiliza comandos como w, who, users, last y lastlog que mostrarán información sobre usuarios y sus logins. Una manera de evitar esto sería modificando los ficheros parseados por estos comandos para mostrar su output:

/var/run/utmp
/var/log/wtmp

Tal ves eso para otra ocasión,


MVelazco

Update 1

Conversando con WCuestas y buscando evitar añadir un espacio en blanco antes de todo comando ingresado, me sugiere una forma mucho más práctica de realizar la misma tarea sin tener que hacer cambios en ningún archivo.

Nos enfocamos en 2 variables de entorno de bash, $HISTSIZE y $HISTFILE. Cada una guarda el valor del número de líneas guardados en el historial y el fichero donde se guardará el historial, respectivamente.
Una imagen vale más:



Bien, entonces jugando con esas variables podemos conseguir que en una nueva sesión, no se guarde historial de comandos ejecutando lo siguiente:

HISTSIZE=0; export HISTSIZE
HISTFILE=/dev/null; export HISTFILE

Lo interesante es que en la próxima sesión, las variables serán cargadas según lo dictado en .bashrc, así que para el admin todo esto es transparente, aqui no paso nada!.

1 comentario:

  1. Interesante. Y qué te parece si pones un croncito que haga un rsync del .bash_history en un lugar seguro?

    Saludos,

    Francisco

    ResponderEliminar