Hydrotech - Vengeance d'un employé

M.Aharouni, C.Belloni, J.Blassiau, A.Corcione, S.Perrier, M.Trouiller

← Hydrotech - Vengeance d'un employé · Identification de l'attaquant / Analyse du PC Admin / Elévation de privilèges / Pompes défectueuses

Analyse du PC Admin

**L'employé malveillant a laissé des traces compromettantes dans la mémoire de sa machine.**

En analysant un dump mémoire de son poste, vous devrez découvrir comment il a collecté des informations sur l'administrateur réseau d'HydroTech et quelles données sensibles il a réussi à obtenir.

Cette étape vous plongera dans les techniques d'OSINT et de brute force utilisées en conditions réelles.

## Objectif de la mission :

Suite à l'incident qui a paralysé plusieurs serveurs de supervision, l'enquête interne a révélé des tentatives suspectes de connexion à distance sur le poste administrateur.

Les soupçons se portent sur un employé en interne. L'analyse d'un dump mémoire de sa machine est lancée pour comprendre ses actions et déterminer quelles informations sensibles il a réussi à collecter.

Votre objectif est de retrouver dans ce dump les indices prouvant sa préparation et le résultat de son attaque.

## Document mis à votre disposition :

- Un dump mémoire du poste de travail de l'employé.

## Votre rôle :

- Analyser le dump mémoire pour identifier les traces laissées par l'attaquant sur sa machine.

- Mettre en évidence les informations sensibles qu'il a réussi à collecter.

- Déduire le mot de passe administrateur découvert à l'issue de son attaque.

Cote 23 pts

Faire son rapport

1. Mise en place

Avant de commencer l'analyse, on s'assure que le dump mémoire est lisible et que l'outil reconnaît correctement la version du noyau.

Banners un

On reconnait la version 6.1.0-38-amd64 de Debian, il faut maintenant obtenir le fichier de symboles correspondant Debian_6.1.0-38-amd64_6.1.147-1_amd64.json. On peut le créer soi-même mais comme il s'agit d'une version courante, il est possible de trouver le fichier de symboles correspondant en ligne (notamment sur ce repo Git Hub https://github.com/Abyss-W4tcher/volatility3-symbols) et le placer dans volatility3\symbols\linux.

2. Identification de l'adresse mail de l'administrateur

La première commande de l'outil à tester est celle qui permet d'obtenir l'historique des commandes effectuées par l'attaquant.

Linux.bash deux

On voit l'utilisation d'un fichier de notes. Comme il a été ouvert avec Vim, il est potentiellement encore en mémoire. On peut retrouver le contenu du fichier avec les commandes strings et grep. L'option -C permet de voir les lignes autour de la chaine recherchée dans le dump mémoire.

Exemple : strings dump.avml | grep "notes.txt" -C 25

Notes.txt trois

On obtient l'e-mail de l'administrateur réseau de l'entreprise.

3. Identification de la plateforme consultée

L'attaquant a effectué de nombreuses recherches internet pour obtenir des informations personnelles sur l'administrateur. Ces traces peuvent être retrouvées en cherchant des mots-clés comme :

Google search

Google search

On voit des recherches internet comme :

Google search

On reconnait aussi l'accès à une plateforme en particulier qui permet de savoir si une adresse e-mail a été impliquée dans une fuite de données :

Strings six

Mais aussi :

Strings sept

Le nom de la plateforme est le flag demandé.

4. Déduction du mot de passe administrateur

En poursuivant l'analyse, on découvre un script Python utilisé pour forcer le mot de passe de l'administrateur via RDP.

Strings huit

On peut retrouver le fichier Python dans le dump par des recherches avec des mots-clés liés aux programmes codés dans ce langage, comme def main():

Py neuf

Py dix

En reconstituant tout le script, on obtient :

Script python

Le script montre comment les combinaisons de mots de passe sont générées à partir des informations collectées (marco, 1982, Lons...). Il crée différentes variantes en jouant sur la casse et en ajoutant éventuellement un ! à la fin.
Surtout, on constate que le script n'enregistre que les échecs dans le fichier de logs : dès qu'un mot de passe est correct, il arrête la boucle sans rien écrire.

On extrait alors le log des tentatives :

strings dump.avml | grep "pwd="

Log onze

On remarque que la dernière tentative consignée est :

[-] pwd='1982Lons': ECHEC

Grâce à l'analyse du script, on sait que chaque combinaison est suivie d'une version avec !.
Le mot de passe correct est donc la variante suivante :

Flag douze