Catégorie : Blog

  • HackTheBox — Planning (Writeup)

    Dans ce writeup nous allons voir la différentes étapes d’un test d’intrusion d’un système, nous avons chois la box Planning du site de HackTheBix

    Reconaissance

    On lance un scan réseau vers l’adresse IP de la machine qui nous a été fourni à l’aide de nmap.

    L’option -A: Enable OS detection, version detection, script scanning, and traceroute est un peu agressive, mais il s’agit ici d’un environnement d’entrainement.

    On ajoute le nom de la machine dans notre fichier host pour pouvoir accéder au service web.

    Souvent le service est hébergé par un vhost et n’est donc pas disponible par défaut sur l’adresse http://10.10.11.68 mais via le nom de domaine planning.htb dans notre cas.

    On s’apercoit en accédent au service web hébérgé qu’il s’agit d’un site de Cours en ligne.

    Le site héberge des fichiers php et semble affiché uniquement les pages suivantes:

    • – index.php
    • – about.php
    • – courses.php
    • – contact.php
    • – enroll.php
    • – detail.php

    On va donc faire de l’énumération de répertoire et de fichier pour déterminer si des pages cachés sont accéssible

    Pour info vous pouvez facilement retrouver les worlistes sur kali avec la commande suivante :

    Après plusieurs listes de répertoire et de fichier testé, il ne semble pas y avoir de fichier caché.

    On va donc tester si il y’a des sous domaines accessibles.

    La wordlist dnsmap.txt sur la kali n’a rien donné donc j’ai téléchargé une worliste sur internet en suivant cet article https://sidxparab.gitbook.io/subdomain-enumeration-guide/active-enumeration/dns-bruteforcing

    On trouve un vhost qui porte le nom de grafana et on va donc essayé de s’y connecter avec les identifians qui nous ont été donné.

    Même commande que précédement pour ajouter le vhost au fichier host de la machine.

    Exploitation

    On trouve rapidement qu’il s’agit de la version **11.0.0** de Grafana.

    Une recherche rapide nous renvoie vers la CVE-2024-9264 qui est une vulnérabilité de type RCE (Remote code execution) dans la fonctionnalité des Expressions SQL de Grafana.

    Ce repo https://github.com/z3k0sec/CVE-2024-9264-RCE-Exploit GitHub contient un script python déjà tout fait pour exploiter la vulnérabilité.

    > Attention à toujours lire le code que l’on exécute d’internet.

    J’ouvre un listener en écoute sur le port 8888 via lequel je vais recevoir le reverse shell du serveur.

    Dans un autre terminal j’execute le code d’exploitation de la vulnérabilité CVE-2024-9264

    Normalement je vois apparaitre un terminal depuis mon listener

    La présence de peu de fichier et aucune trace du site hébergé sur planning.htb laisse pensé qu’on est dans un environnement conteneurisé propre à Grafana.

    On trouve des informations intéressante via la commande notamment un nom d’utilisateur et mot de passe.

    On peux donc essayé de se conntecter avec se couple identifiant/mot de passe sur le port 22 qui est ouvert sur la machine.

    On retrouve donc le premier flag dans le répertoire de l’utilisateur

    Elévation des privilèges

    La machine sur laquelle nous venons de nous connecter en ssh est la machine qui héberge le service web, en analysant son contenu dans /var/www/web/index.php on retrouve les informations suivantes :

    En cherchant sur la machine on trouve un fichier intéressant qui contient un mot de passe P4ssw0rdS0pRi0T3c :

    Ce fichier un un job cron exécuter par l’utilisateur root

    Une analyse des service et port en écoute sur la machine nous montre des choses intéressantes, il y’a des services en écoute que sur l’adresse localhost.

    On teste d’accéder aux service depuis notre machine attaquante via un tunnel SSH

    Une fois le tunnel effectué on se retrouve devant une mire d’authentification et le couple identifiant mot de passe suivant : **root/P4ssw0rdS0pRi0T3c** permet d’accéder à une interface d’administration

    Il s’agit de l’outil crontab-ui https://github.com/alseambusher/crontab-ui qui permet d’éditer des tâches cron depuis une interface graphique.

    La création de cette nouvelle cron nous permet de lire le flag contenu dans le répertoire root

    Voila la fin du writeup, j’espère que celui-ci ta plu et que tu as appris des choses ?

    Je n’ai pour ma part pas encore réussi à faire pop un reverse shell en root, j’ai l’impression qu’il y’a des mécanisme de sécurité que je n’arrive pas à contourné, si tu as réussi, fait le moi savoir sur mes réseaux.

    Autres projets

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

    Site Web | YouTube | TikTok | Instagram

    Un peu de lecture complémentaire

    • https://medium.com/@stefanos.kalandaridis/bash-ing-your-network-f7069ab7c5f4
    • https://exploit-notes.hdks.org/exploit/container/docker/docker-escape/
    • https://delinea.com/blog/linux-privilege-escalation

  • 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