Étiquette : sliverc2

  • Guide Sliver C2

    Description

    J’ai rédigé ce uide tutoriel sur l’utilisation de Sliver.

    Sliver est un puissant framework C2 open-source développé par Bishop Fox (bishopfox.com/). Tu peux le télécharger ici : github.com/BishopFox/sliver.

    Environnement de test

    Ce guide a été réalisé dans un environnement de test et à vocation uniquement à des fins éducatives.

    Le Lab se compose de 2 machines :

    • 1 Kalilinux qui va servir de Serveur C2 Sliver
    • 1 Machine sous Windows 10 qui sera notre victime.

    Configuration du C2

    Installation de sliver

    La première étape est d’installer sliver sur notre machine à l’aide des commandes :

    Si tous se déroule correctement vous devriez avoir le shell Sliver qui s’affiche comme sur la capture suivante.

    Configuration du listener

    Maintenant il faut configurer le Listener sur lequel les agents infecté vont se connecter.

    • L’option –lhost permet de configurer l’adresse IP sur lequel va écouter le listener.
    • L’option –lport permet de configurer le port sur lequel va écouter le listener.

    Les protocoles supporté pour la communication vers le C2 sliver sont :

    • HTTP(S)
    • mTLS
    • TCP
    • DNS

    Génération de l’implant

    Inféction du client

    Le client va télécharger l’implant sur son poste en se connectant sur serveur web sur la machine de l’attaquant :

    Cette commande doit être exécutée dans le répertoire où se trouve le fichier impl.exe généré par sliver.

    Coté client il suffit juste de se connecter à l’adresse IP de l’attaquant http://192.168.1.93:8080/impl.exe

    Il se peut que votre antivirus détecte qu’il s’agisse d’un fichier malveillant et donc empêche l’exécution, vous pouvez désactiver celui-ci pour exécuter votre implant sliver sur la machine.

    Sliver commence à être très connu par les éditeurs et entreprises dans le domaine de la cybersécurité donc en l’état risque d’être directement détecté.

    à ce stade vous devriez avoir une notification dans votre shell qu’une session c’est etablie vers votre serveur sliver

    Commandes

    Pour lister les sessions actvies sur sliver vous pouvez utiliser la commande

    Pour interagir avec un agent il faut récupérer son `id` et lancer la commande :

    Un grand nombre de commandes est disponible que l’on peut retrouver avec la commande :

    Ces commandes vont être exécutée sur la machine infectée et renvoyées au serveur C2 sliver comme par sur la capture suivante :

    Aller plus loin

    Les stagers

    Qu’est-ce qu’un stager ?

    Un stager est un petit composant initial d’une chaîne d’infection qui a pour rôle de préparer l’environnement et de télécharger / lancer le payload principal (second stage). C’est souvent le premier morceau de code qui s’exécute sur la machine compromise après la phase d’intrusion initiale.

    L’illustration décrit le principe de fonctionnement d’un fileless pour le stage 2 c’est à dire que celui-ci ne sera pas présent en tant que fichier mais chargé et exécuté directement en mémoire par le stage 1

    Cette technique à l’avantage de pouvoir contourner certains antivirus et EDR, car le stage 1 embarque très peu de code et est très léger.

    Sliver implémente les stagers en utilisant les `profiles`, ce sont des sortes d’implants.

    Maintenant il faut créer le listener du stager, l’URL sur laquelle le poste infecté va récupere le stage 2.

    Génération du Stage 1

    A ce stade notre C2 est prêt à recevoir les connexions des machines infectés, il faut maintenant créer notre stage 1 qui va se connecter au C2 sliver pour récupérer la shellcode générée précédement et hébergée sur l’URL : http://192.168.1.93:1234

    La documentation officiel du site de Sliver propose un code déjà fait en C#

    Il faut modifier l’URL pour qu’il pointe vers votre serveur sliver et celui-ci renvoie la shellcode, peu importe le nom devant le .woff dans l’URI.

    Il faut bien sur avoir installer .NET sur une machine pour compiler le code du stage 1.

    Pour le télécharger vous pouver suivre ce lien :

    https://dotnet.microsoft.com/fr-fr/download

    Dans un terminal entrez la commande dotnet suivante pour créer un nouveau projet :

    Remplacer le code du fichier Program.cs généré par votre stage1 et entrer la commande suivante pour compiler :

    Pour que le fichier s’exécute sans l’apparition de la console coté utilisateur il faut remplacer dans le fichier csproj la ligne

    par

    Normalement vous devriez avoir votre session qui apparait dans votre terminal sliver

    Vous pouvez également réactiver Windows Defender et logiquement il laissera s’exécuter votre stage 1 sans bloquer le ficher et sans création d’alerte.

    Aller plus loin

    J’espère que ce petit guide t’a plu et t’a aidé à comprendre comment mettre un serveur sliver en place rapidement et tester tes premiers implants.

    L’étape suivante consiste à utiliser des shellcode chiffrés pour encore moins de détection.

    Les 2 liens suivants sont une bonne base de lecture pour développer cette partie.

    • https://blog.balliskit.com/tutorial-sliver-c2-with-balliskit-macropack-and-shellcodepack-452e94c24b19
    • https://sliver.sh/docs?name=Stagers

    Autres projets

    IronLab — Passionné d’électronique, robotique, d’aviation, de l’espace & projets DIY

    Site Web | YouTube | TikTok | Instagram