
Un framework de botnet super portable avec un serveur C2 basé sur Django. Le client est écrit en C++, avec des clients alternatifs écrits en Rust, Bash et Powershell.
Le serveur C2 du botnet utilise le framework Django comme backend. Il est loin d'être le serveur web le plus efficace, mais cela est compensé par les éléments suivants :
aura-server.Le site d'administration situé à http://your_server:server_port/admin est accessible après avoir configuré un superutilisateur (voir ci-dessous).
Le serveur C2 est actuellement configuré pour utiliser une base de données SQLite3, bots.sqlite3. La configuration actuelle peut être modifiée dans aura-server/aura/settings.py. Vous pouvez souhaiter utiliser MySQL, ou même PostgreSQL à la place ; c'est facile à faire grâce à l'API portable de base de données de Django.
Le client principal est écrit en C++ et peut être compilé pour Linux ou Windows en utilisant CMake. Des clients alternatifs sont écrits en Rust, Bash et Powershell, mais peuvent manquer de certaines fonctionnalités car ils sont largement non supportés. Je corrigerai tous les bugs majeurs qui me seront signalés, mais ils continueront de manquer de certaines fonctionnalités pour le moment, comme l'exécution de commandes dans différents shells.
Le client rassemblera des informations système pertinentes et les enverra au serveur C2 pour enregistrer le nouveau bot. L'identification se fait en créant d'abord un fichier contenant des données aléatoires -- appelé le fichier d'authentification dans le code -- qui sera ensuite haché à chaque exécution du client pour identifier le client et s'authentifier auprès du serveur C2. Il installera ensuite tous les fichiers dans le dossier spécifié dans le code, et initialisera le service système ou planifiera une tâche avec les mêmes privilèges que ceux avec lesquels le client a été exécuté. Les paramètres par défaut font que le client et les autres fichiers se font passer pour des fichiers de configuration.
Parce que ceci est à des fins de test, le serveur C2 doit être codé en dur dans les fichiers du client et de livraison web. Il est actuellement défini sur localhost dans tous les fichiers. C'est parce qu'un vrai botnet utiliserait quelque chose comme un algorithme de génération de domaines (DGA) pour synchroniser un flux de domaines changeants côté client avec un flux de domaines jetables enregistrés -- ou simplement un hébergement très résistant comme le botnet Mirai original.
Le code n'est pas non plus obfusqué et aucun effort n'est fait pour empêcher le rétro-ingénierie ; cela irait à l'encontre de l'objectif d'être un botnet pour les tests et démonstrations.
Le dossier killswitch contient des scripts pour une suppression facile du client lors des tests sur vos appareils.