• Hërculës

Ocultar rastros en Bash.

Bash guarda una lista de los comandos escritos en su memoria interna, específicamente en $HISTFILE (~/.bash_history).

Aquí se verán algunas técnicas que los atacantes usan para evitar dejar rastros en el historial.


1.-Empezar con un espacio.

Esto puede no estar permitido por default para todas las distribuciones. Para ver si es posible tiene que checar $HISTCONTROL.

En el caso de que aparezca "ignoreboth" o "ignoredups:ignorespace" este truco te sera útil.

Básicamente se trata de poner un espacio antes de escribir tus comandos y esto evitará que se guarde en el historial.

Como pueden ver en la imagen de arriba, el comando 'echo "con espacio" ' no aparece en el historial.


2.- Modificar HISTFILE.

Aquí simplemente debes establecer los valores de HISTFILE a /dev/null. Puede ser con alguno de los siguientes comandos.


3.-Usar unset.

Se puede usar unset para remover la variable HISTFILE de la sesión en uso.

Recuerden que solo es válido para la sesión (terminal) en uso. Esto permite que no haya lugar donde guardar los comandos escritos.


4.- Modificar HISTSIZE & HISTFILESIZE.

HISTSIZE indica el número de lineas o comandos que pueden ser almacenados en la memoria mientras la sesión este activa, por default son 1000, por lo que para remover los comandos basta establecer esta variable a un valor 0 con alguno de los siguientes comandos.

Por otro lado HISTFILESIZE es el número de líneas o comandos que están permitidos en el historial al momento de iniciar una sesión, y se almacenan en el historial al finalizarla para usar en futuras ocasiones, por default son 2000, por lo que para remover estos comandos basta establecer, al igual que HISTSIZE, la variable con valor 0, esto se puede hacer con alguno de los siguientes comandos.


5.-Comandos set y shopt.

El primer comando permite cambiar los valores de las opciones de la shell y establece parámetros posicionales. Usando set podemos evitar grabar nuevos comandos en el historial.

Se usara el parámetro "o" el cual permite activar o desactivar el archivo deseado.

El segundo comando permite cambiar el comportamiento opcional de shell. Los parámetros "-u" deshabilita cada nombre de opt., mientras que "-o" restringe los valores de optname, por último "-s" habilita cada nombre de opt.


6.- Limpiar el historial.

Es la opción mas sencilla de todas, aunque esta opción, al igual que varias pasadas, solo sirve para la terminal en uso. Solo se tiene que usar dos sencillos parámetros "-c" para limpiar y

"-w" para hacer válidos nuestros cambios.



7.- "Destrozar" el historial.

Para esto se usará el comando shred el cual permite sobrescribir un archivo para ocultar su contenido y, opcionalmente, eliminarlo. De una manera sencilla shred permite que el archivo no sea capaz de ser leído.

El hecho de ver un archivo así puede considerarse como evidencia de actividad maliciosa. Incluso podemos eliminar eso combinando el comando shred con las banderas -zu:

"-u" modificar y eliminar el archivo después de sobrescribir.

" -z" una sobrescritura final con ceros para ocultar la destrucción.


8.- Matar el proceso de la terminal.

Usando el comando kill podemos salir de la sesión sin guardar comandos en la memoria en el disco.

9.- Usar el comando less.

Se puede ocultar un comando para que no se guarde, al usar la capacidad para ejecutar comandos al anteponerlos con el símbolo "!".


Espero que esta entrada les sea tan útil como a mi me ha sido.



40 vistas

HUB

HUB es un grupo líder en el ramo de capacitación y consultoría con mas de 100 colaboradores directos e indirectos a lo largo de la República Mexicana y America Latina

  • Facebook
  • Twitter

CDMX | TORRE REFORMA

 Paseo de la Reforma 483, Piso 14
Col. Cuauhtémoc

GUADALAJARA |  CENTRAL PARK

Diagonal  San Jorge 100,
Col. Vallarta San Jorge

MONTERREY | PABELLON M

 Juárez #1102 Pte, Piso 4 y 5
Col. Centro,

CDMX - QRO - GDL - MTY

Tel: 55 50150510

©2020 por Certification Hub. Es una empresa de Hub México