Formas de evitar que los comandos que ejecutas acaben en tu history

  • June 2, 2015
  • tuxotron
  • bash_history.gif

    Puede haber ocasiones en las que no es una buena idea que cuando ejecutemos un comando desde nuestra shell (bash), éste se almacene en el history.

    En ejemplo real y práctico sería el evitar que se graben datos sensibles tales como contraseñas. A veces tenemos que arrancar un servicio que puede requerir como parámetros un nombre de usuario y una contraseña y estos datos en condiciones normales se quedarían grabados en el history.

    Existen varias formas de evitar que esto ocurra. Algunas de éstas son:

    Escribe un espacio en blanco antes del comando:

    espacio echo “hola”

    Este método sólo funciona si tenemos la variable HISTCONTROL asignada con el valor ignorespace o ignoreboth. Esta variable por defecto viene asignada con el valor ignoreboth, al menos en Ubuntu 14.04:

    tuxotron@tuxotron-T530:~$ grep “HISTCONTROL” .bashrc HISTCONTROL=ignoreboth

    HISTCONTROL también se puede declarar de forma global en /etc/bash.bashrc

    Deshabilita temporalmente el history:

    Ejecuta:

    set +o history o shopt -uo history

    Para volver a habilitarlo:

    set -o history o shopt -so history

    Deshabilita el history para la sesión actual sólamente:

    unset HISTFILE

    Este método sólo funciona para sesión actual, es decir, si abres un terminal nuevo, el history estaría activado. Esto evita el volcado del búfer de memoria en el fichero .bash_history, es decir en dicha sesión puedes navegar por el búfer usando los cursores (arriba y abajo), pero cuando termines la sesión, dicho búfer no será volcado en el sistema de ficheros.

    Borrando un comando específico del history:

    Si has ejecutado cierto comando antes de deshabilitar el history, puede que todo lo que quieras hacer es borrar ese preciso comando o varios de ellos, otro método sería borrándolos de tu history:

    history -d <número>

    Dónde el número es la línea de dicho comando en tu hisrory. Para saber el número puedes ejecutar el comando history tal cual, o filtrar la salida con un grep.

    Matando la sesión:

    Esta sea quizás la forma menos elegante y podría matar otras sesiones, pero funcionar, funciona:

    kill -9 $$

    Hacer que el .bash_history sea de sólo lectura :

    chattr +i .bash_history

    De esta forma el sistema a la hora de volcar el búfer en dicho fichero, se verá bloqueado.

    Fuente

Material de la Hack In The Box Amsterdam 2015

Análisis forense en sistemas Mac OS X

  • May 29, 2015
  • tuxotron
  • forensics_mac_osx.png

    En un trabajo de investigación académica para la Universidad de Londres (Royal Holloway) realizado por Joaquín Moreno Garijo, éste ha publicado un documento basado en el que se detallan la recuperación de datos internos en Mac OS X usando técnicas de análisis forense.

    El estudio se basa en la documentación y recuperación de datos persistentes generados por el sistema operativo, es decir, datos que Mac OS X genera y escribe en el sistema de ficheros, que no están publicamente documentado.

    En el documento (PDF) podemos encontrar detalles sobre dónde el sistema operativo guarda dichos datos, que tipo de datos guarda y cómo extraer los mismos. Además en dicho documento, también podemos encontrar detalles técnicos acompañado de código fuente para el manejo de dichos datos.

    El autor usa como herramienta base: Plaso, un framework multiplataforma escrito en Python orientado al análisis forense, y extiende dicha herramienta con nuevas funcionalidades para la interacción con las evidencias no documentadas de Mac OS X.

    Joaquín clasifica las evidencias en dos categorías: las que almacenan el momemento de dicho evento (fecha y hora) y las que no. En la primera de dichas categorías, se explican el formato del sistema de Logs de Apple, el módulo de seguridad, lista de propiedades más relevantes, ficheros de control de CUPS IPP, UTMPX, etc. En la segunda de las categorías, la que agrupa los datos que no contienen marcas de tiempo, encontramos: cuentas de sistema, funcionalidad de autologin, atributo marcador de ficheros recientes, etc.

    Al final del documento también podemos encontrar referencia a los scripts de Plaso, así como la definición de varias de las estructuras de datos.