
C# C2 Framework centré sur les opérations de la phase 1
Framework C2 en C# axé sur les opérations de premier niveau (Stage 1)
Atlas est conçu pour obtenir un point de départ dans un environnement, puis l'utiliser pour introduire en contrebande des armes en C# (actuellement uniquement du C#) via un implant HTTP. Dans son état actuel, il n'est pas vraiment sûr d'un point de vue OPSEC... pas du tout. Il cible actuellement uniquement les environnements Windows.
Remarque : Les paramètres de connexion par défaut de l'implant sont configurés pour se connecter à localhost sur le port 8080. Cela peut être modifié ici
Après avoir généré un exécutable du client, du teamserver et de l'implant, exécutez simplement Teamserver.exe pour lancer le teamserver.
Pour démarrer un nouvel écouteur, utilisez la commande StartListener. Cette commande prend deux paramètres : le nom de l'écouteur et le port sur lequel l'exécuter.
La commande Listeners liste tous les écouteurs, ViewListener renvoie les données sur l'écouteur spécifié, et RemoveListener peut être utilisé pour supprimer un écouteur de la liste.
La liste des implants connectés peut être obtenue avec la commande Implants.
Se connecter à un implant est aussi simple que Connect <ImplantId>. Vous avez vu ce que j'ai fait là ?... Bon, je me retire. Comme la commande Connect est utilisée pour sélectionner un implant, ViewImplant permet d'afficher plus d'informations sur l'implant sélectionné. La commande Disconnect désélectionne l'implant actuellement sélectionné, comme indiqué ci-dessous.
Pour utiliser une tâche, celle-ci doit d'abord être sélectionnée avec SetTask. Les options peuvent être visualisées avec TaskOpts et définies avec SetTaskOpt. Les tâches sont exécutées avec SendTask.
Il est possible de visualiser la sortie d'une tâche précédemment exécutée avec TaskOut. TasksOut peut être utilisé pour afficher toutes les tâches précédemment exécutées relatives à l'implant sélectionné.
Atlas permet aux opérateurs d'exécuter des commandes PowerShell et Cmd en utilisant respectivement les tâches PSShell et CMDShell. PSShell ouvre un nouveau runspace et exécute la commande, de sorte que même si powershell.exe est sur liste noire, les commandes PowerShell peuvent toujours être exécutées. Cette méthode contourne également le Mode Langage Contraint. CMDShell ouvre un processus cmd.exe et transmet la commande à ce processus. L'exécution d'une commande PowerShell a été montrée ci-dessus, donc elle ne sera pas répétée ici. Note concernant CMDShell : de nombreuses commandes courantes exécutées, y compris (mais sans s'y limiter) whoami, ipconfig, pwd et cd, ont été implémentées dans les fonctionnalités de l'implant pour éviter d'avoir à exécuter ces commandes via un processus cmd.exe.
Le chargement d'assemblages nécessite plusieurs étapes, contrairement à des outils comme CobaltStrike qui font tout avec execute-assembly. Tout d'abord, un opérateur doit utiliser l'utilitaire ByteConvert (ByteConvert doit être informé si le fichier est local ou distant) pour convertir un fichier stocké localement ou distant en un tableau d'octets et stocker ceci dans la variable assemBytes. Une fois cela fait, la tâche Load est utilisée pour charger l'assemblage dans le processus de l'implant.
Pour visualiser les assemblages chargés dans le processus de l'implant, les opérateurs peuvent utiliser les tâches AssemQuery et AssemMethodQuery. La première retourne tous les assemblages chargés tandis que la seconde retourne toutes les méthodes publiques liées à un assemblage chargé.
La capture d'écran confirme que l'assemblage TestAssem a bien été chargé dans le processus de l'implant.
AssemMethodQuery peut ensuite être utilisé pour retourner des informations sur TestAssem qu'un opérateur peut utiliser pour exécuter des méthodes publiques.
Atlas offre la possibilité d'exécuter un assemblage à partir de son point d'entrée ou d'une méthode exposée spécifiée. ExecuteAssem peut être utilisé pour exécuter à partir du point d'entrée. Cette tâche ne prend que le nom de l'assemblage. ExecuteAssemMethod permet l'exécution d'autres méthodes en utilisant les informations récupérées de AssemMethodQuery.
Pour une liste complète des fonctionnalités, rendez-vous sur le wiki
Ouvrez le .sln et compilez les 3 composants en mode Release, les fenêtres de console et les exécutables doivent être générés dans \bin\debug de chaque composant. Je dois améliorer ça.
cpupload/downloadAtlas a été conçu uniquement à des fins éducatives/éthiques. Je n'approuve pas et ne suis pas responsable des actions des utilisateurs d'Atlas.