# Forensic

# [Forensic] Volweb

## Introduction

Cet outil est une interface web (GUI) à Volatility 3 qui permet de faire de l'analyse de mémoire de manière plus conviviale qu'en CLI en volatility de manière traditionnelle.

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-01/scaled-1680-/EDBimage.png)

## Installation

#### Docker

Tout d'abord, clonez le dépôt de volweb :

```bash
git clone https://github.com/k1nd0ne/VolWeb
```

Faite une copie du **.env.example** puis remplacez localhost par votre IP pour être accessible sur le réseau :

```bash
cp .env.example .env
```

```
CSRF_TRUSTED_ORIGINS=http://<IP>:3000
```

Puis lancez la stack :

```bash
docker compose up -d
```

<p class="callout success">Vous pouvez désormais vous connecter sur l'interface **http://&lt;IP&gt;:3000** avec les identifiants **admin/password** ou **user/password** .</p>

# [Windows]

# [Forensic] Artefacts

## Introduction

Différents artefacts sont intéressants selon ce que vous cherchez. Beaucoup passent par la base de registre, certains sont des prefetchs, des shell links etc ou même des journaux d'évènements.

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/Mfpimage.png)

## Cheat-sheet

#### Ruches (registres)

<table border="1" id="bkmrk-artefacts-chemin-des" style="border-collapse: collapse; width: 100%; height: 357.563px;"><colgroup><col style="width: 33.3731%;"></col><col style="width: 33.3731%;"></col><col style="width: 33.3731%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Ruches**</td><td class="align-center" style="height: 29.7969px;">**Chemin**</td><td class="align-center" style="height: 29.7969px;">**Description**</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">SAM</td><td class="align-center" style="height: 29.7969px;">C:\\Windows\\System32\\config\\SAM</td><td class="align-center" style="height: 29.7969px;">Base SAM (Contient la base des utilisateurs)</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">SOFTWARE</td><td class="align-center" style="height: 29.7969px;">C:\\Windows\\System32\\config\\SOFTWARE</td><td class="align-center" style="height: 29.7969px;">Contient les informations des logiciels installés sur la machine.</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">SECURITY</td><td class="align-center" style="height: 29.7969px;">C:\\Windows\\System32\\config\\SECURITY</td><td class="align-center" style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">SYSTEM</td><td class="align-center" style="height: 29.7969px;">C:\\Windows\\System32\\config\\SYSTEM</td><td class="align-center" style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">NTUSER</td><td class="align-center" style="height: 29.7969px;">C:\\Users\\&lt;YOUR\_USER&gt;\\NTUSER.DAT</td><td class="align-center" style="height: 29.7969px;">Contient les informations utilisateurs.</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">USRCLASS</td><td class="align-center" style="height: 29.7969px;">C:\\Users\\&lt;YOUR\_USER&gt;\\USRCLASS.dat</td><td class="align-center" style="height: 29.7969px;">  
</td></tr></tbody></table>

#### Registres

<table border="1" id="bkmrk-registres-descriptio" style="border-collapse: collapse; width: 100%; height: 1218.79px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><tbody><tr style="height: 29.7917px;"><td class="align-center" style="height: 29.7917px;">**Registres**</td><td class="align-center" style="height: 29.7917px;">**Description**</td></tr><tr style="height: 63.3681px;"><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion</span>   
</td><td class="align-center" style="height: 63.3681px;">Contient toutes les informations systèmes (comme systeminfo). Inclut le Product Name (OS), EditionID, DisplayVersion (version), InstallDate (date de dernière maj), SystemRoot.</td></tr><tr style="height: 29.349px;"><td class="align-center" style="height: 29.349px;"><span class="fontstyle0">SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Uninstall</span></td><td class="align-center" style="height: 29.349px;">Logiciels installés sur le postes (avec un uninstaller).</td></tr><tr style="height: 79.7396px;"><td class="align-center" style="height: 79.7396px;"><span class="fontstyle0">SYSTEM\\CurrentControlSet\\Control\\ComputerName\\</span>

<span class="fontstyle0">OU</span>

<span class="fontstyle0">System\\ControlSet001\\Control\\ComputerName\\ComputerName\\</span>

</td><td class="align-center" style="height: 79.7396px;">Nom de l'ordinateur.</td></tr><tr style="height: 62.9427px;"><td class="align-center" style="height: 62.9427px;"><span class="fontstyle0">SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation</span>

<span class="fontstyle0">OU</span>

<span class="fontstyle0">SYSTEM\\ControlSet001\\Control\\TimeZoneInformation\\</span>

</td><td class="align-center" style="height: 62.9427px;">Fuseau horaires.</td></tr><tr style="height: 62.9427px;"><td class="align-center" style="height: 62.9427px;"><span class="fontstyle0">SYSTEM\\CurrentControlSet\\Control\\Windows  
</span>

<span class="fontstyle0">OU</span>

<span class="fontstyle0">SYSTEM\\ControlSet001\\Control\\Windows\\</span>

</td><td class="align-center" style="height: 62.9427px;">Dernière extinction du système.</td></tr><tr style="height: 46.5799px;"><td class="align-center" style="height: 46.5799px;"><span class="fontstyle0">SOFTWARE\\Microsoft\\Windows</span><span class="fontstyle0">NT\\CurrentVersion\\ProfileList   
  
</span></td><td class="align-center" style="height: 46.5799px;">Contient une sous-clé par utilisateur avec toutes les infos utilisateurs.</td></tr><tr style="height: 29.7917px;"><td class="align-center" style="height: 29.7917px;"><span class="fontstyle0">SAM\\Domains\\Account\\Users   
</span></td><td class="align-center" style="height: 29.7917px;"><span class="fontstyle0">Dernier login et changement de mot de passe.</span>  
</td></tr><tr style="height: 46.5799px;"><td class="align-center" style="height: 46.5799px;"><span class="fontstyle0">NTUSER.DAT\\Software\\Microsoft\\Windows\\CurrentVersion</span><span class="fontstyle0">\\Run   
  
</span></td><td class="align-center" style="height: 46.5799px;">Démarrage automatique (Si clé "Start"=2 alors activé)</td></tr><tr style="height: 58.1858px;"><td class="align-center" style="height: 58.1858px;"><span class="fontstyle0">NTUSER.DAT\\Software\\Microsoft\\Windows\\CurrentVersion\\</span><span class="fontstyle0">RunOnce  
</span></td><td class="align-center" style="height: 58.1858px;">Démarrage automatique (Si clé "Start"=2 alors activé)</td></tr><tr style="height: 29.7917px;"><td class="align-center" style="height: 29.7917px;"><span class="fontstyle0">SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run   
</span></td><td class="align-center" style="height: 29.7917px;">Démarrage automatique (Si clé "Start"=2 alors activé)</td></tr><tr style="height: 29.7917px;"><td class="align-center" style="height: 29.7917px;"><span class="fontstyle0">SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce   
</span></td><td class="align-center" style="height: 29.7917px;">Démarrage automatique (Si clé "Start"=2 alors activé)</td></tr><tr style="height: 29.7917px;"><td class="align-center" style="height: 29.7917px;"><span class="fontstyle0">SYSTEM\\CurrentControlSet\\Services   
</span></td><td class="align-center" style="height: 29.7917px;">Démarrage automatique (Si clé "Start"=2 alors activé)</td></tr><tr style="height: 80.1823px;"><td class="align-center" style="height: 80.1823px;"><span class="fontstyle0">NTUSER.DAT\\Software\\Microsoft\\Windows\\CurrentVersion\\Expl</span>orer\\RecentDocs</td><td class="align-center" style="height: 80.1823px;"><span class="fontstyle0">Fichiers récents :</span>

<span class="fontstyle0">Sous-clé contenant les 20 dernières entrées pour chaque type de fichiers, en format binaire.  
</span><span class="fontstyle0">Folder : les 30 derniers répertoires.</span>

</td></tr><tr style="height: 63.3681px;"><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">NTUSER.DAT\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\</span><span class="fontstyle0">LastVisitedPidlMRU   
  
</span></td><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">Dernières application exécutées.</span>  
</td></tr><tr style="height: 63.3681px;"><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">NTUSER.DAT\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\</span><span class="fontstyle0">OpenSavePIDlMRU   
  
</span></td><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">Sous clés contenant le nom des 20 derniers fichiers enregistrés, par extensions.  
</span></td></tr><tr style="height: 63.3681px;"><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">NTUSER.DAT\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer</span><span class="fontstyle0">\\WordWheelQuery   
  
</span></td><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">Recherches entrées par l'utilisateur dans l’explorateur, en unicode.  
</span></td></tr><tr style="height: 63.3681px;"><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">NTUSER\\Software\\Microsoft\\Windows\\CurrentVersion\\  
</span><span class="fontstyle0">Explorer\\RunMRU  
  
</span></td><td class="align-center" style="height: 63.3681px;"><span class="fontstyle0">Seulement les commandes valides entrées dans l'invite RUN (WIN+R).  
</span></td></tr><tr><td class="align-center"><span class="fontstyle0">NTUSER.DAT\\Control Panel\\Desktop</span></td><td class="align-center"><span class="fontstyle0">Chemin du fond d'écran de l'utilisateur</span></td></tr><tr style="height: 46.5799px;"><td class="align-center" style="height: 46.5799px;"><span class="fontstyle0">SYSTEM\\CurrentControlSet\\Enum\\USBSTOR   
</span></td><td class="align-center" style="height: 46.5799px;"><span class="fontstyle0">Périphériques USB branchés. (FriendlyName=Nom, ClassGUID=Identifiant Unique)  
</span></td></tr><tr style="height: 46.5799px;"><td class="align-center" style="height: 46.5799px;"><span class="fontstyle0">SOFTWARE\\Microsoft\\Windows Portable\\</span><span class="fontstyle0">Devices\\Devices   
  
</span></td><td class="align-center" style="height: 46.5799px;"><span class="fontstyle0">Une clé par périphérique, avec le FriendlyName.  
</span></td></tr><tr style="height: 29.7917px;"><td class="align-center" style="height: 29.7917px;"><span class="fontstyle0">SYSTEM\\MountedDevices  
</span></td><td class="align-center" style="height: 29.7917px;"><span class="fontstyle0">Lettre de périphérique avec identifiant.  
</span></td></tr><tr style="height: 46.1458px;"><td class="align-center" style="height: 46.1458px;"><span class="fontstyle0">SOFTWARE\\Microsoft\\Windows\\</span><span class="fontstyle0">Search\\VolumeInfoCache   
  
</span></td><td class="align-center" style="height: 46.1458px;"><span class="fontstyle0">Une clé par périphérique, avec le Volume Label.  
</span><span class="fontstyle0">  
</span></td></tr><tr style="height: 29.349px;"><td class="align-center" style="height: 29.349px;"><span class="fontstyle0">SAM\\SAM\\Domains\\Account\\Users\\Names</span></td><td class="align-center" style="height: 29.349px;"><span class="fontstyle0">Liste des utilisateurs du système.</span></td></tr><tr style="height: 29.349px;"><td class="align-center" style="height: 29.349px;"><span class="fontstyle0">SAM\\SAM\\Domains\\Account\\Users\\RID Manager</span></td><td class="align-center" style="height: 29.349px;"><span class="fontstyle0">La clé F stocke les dates de connexion sur les utilisateurs et la clé V stocke les noms d'utilisateurs par SID.</span></td></tr></tbody></table>

#### Shell Links

Vous pouvez retrouver vos shell links à l'emplacement suivant :

```powershell
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\
```

Vous pouvez traiter vos shell links avec l'outil d'Eric Zemmour :

```powershell
 LECmd.exe –f your-shell-link.lnk
```

#### Jumplists

Vous pouvez retrouver vos jumplists à l'emplacement suivant :

```powershell
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
```

```powershell
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
```

Vous pouvez traiter vos jumplists avec l'outil d'Eric Zimmerman **JumpListExplorer** :

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/image.png)

#### Thumbcaches

Vous pouvez retrouver vos thumbcaches à l'emplacement suivant :

```powershell
%userprofile%\AppData\Local\Microsoft\Windows\Explorer
```

Pour avoir les chemins dans Thumbcache Viewer il vous faudra extraire aussi cette base :

```powershell
C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.db
```

<p class="callout info">Il y a plusieurs entrées tels que <span class="fontstyle0">thumbcache\_32.db, thumbcache\_96.db, thumbcache\_256.db</span> . Prenez les toutes si possible.  
</p>

<p class="callout success">Vous pouvez traiter vos jumplists avec l'outil **Thumbcache Viewer**.</p>

#### Volumes Shadow Copies (VSC / VSS)

Les VSC sont stockées dans le dossier <span class="fontstyle0">"</span>**<span class="fontstyle0">System Volume Information</span>**<span class="fontstyle0">"</span> à la racine de votre volume (ex: *C:*).

Pour lister vos shadow copies (dans un cmd avec les privilèges <span style="text-decoration: underline;">administrateurs</span>) :

```powershell
vssadmin.exe list shadows /for=C:
```

<p class="callout info">Vous pouvez monter vos VSC avec un logiciel comme **Arsenal Image Mounter** avec un cache en écriture.</p>

Vous pouvez aussi monter vos VSC avec la commande suivante :

```powershell
mklink /d <mount point> \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyXXX\
```

<p class="callout warning">Cette opération va créer un lien symbolique vers votre volume shadow copie mais nécessitera les privilèges administrateurs pour y accéder.</p>

Un solution alternative consiste à utiliser l'outil **VSCMount.exe** de la suite Zimmerman pour monter votre VSC :

```powershell
.\VSCMount.exe --dl C --mp C:\Users\MalDev\Documents\VSC-mount
```

<p class="callout success">Ici, on monte tous les VSCs du lecteur **C** dans le répertoire **C:\\Users\\MalDev\\Documents\\VSC-mount** .</p>

#### SRUM

Il s'agit des fichiers qui stockent les métriques des ressources utilisées sur le système. Vous pouvez avoir des informations comme :

- <span class="fontstyle0">Les applications exécutées.</span>
- <span class="fontstyle0">La quantité de données transférées,</span>
- <span class="fontstyle0">Les périodes d'activité du système.</span>

<span class="fontstyle0">La base de données SRU est stockée à l'emplacement suivant :</span>

```powershell
C:\Windows\System32\SRU\SRUDB.dat
```

Combiné à la ruche SOFTWARE, vous allez pouvoir l'analyser avec l'outil d'Eric Zimmerman :

```powershell
SrumECmd.exe -f SRUDB.dat -r SOFTWARE --csv SRUM_export
```

#### AMCache

Stocke des informations sur les applications exécutées notamment leur hashs (non disponible dans les prefetchs).

Voici l'emplacement de l'AMCache :

```powershell
C:\Window\AppCompat\Programs\Amcache.hve
```

Vous allez pouvoir l'analyser avec l'outil d'Eric Zimmerman **<span class="fontstyle0">AmcacheParser :</span>**

```powershell
AmcacheParser.exe -f Amcache.hve --csv <dst>
```

Il se peut que le fichier ruche Amcache.hve soit endommagé. Dans ce cas, vous pouvez le réparer avec **hvexsh** sous Linux.

Pour l'installer :

```bash
apt install -y libhivex-bin
```

Puis :

```bash
hivexsh -w amcache.hve
> commit
> quit
```

#### Prefetch

<span class="fontstyle0">Le nom de chaque fichier prefetch est composé du nom de l'application concernée, suivi de **8** caractères représentant le hash du chemin d'exécution, puis de l'extension PF (ex: </span>**<span class="fontstyle0">GKAPE.EXE-</span>**<span class="fontstyle0">**FA3D288B.pf**)</span>.

Voici l'emplacement des fichiers prefetch :

```powershell
C:\Windows\Prefetch
```

A savoir qu'il est possible de brute force le hash du prefetch pour retrouver le chemin de l'application :

- [https://github.com/harelsegev/prefetch-hash-cracker](https://github.com/harelsegev/prefetch-hash-cracker)

Vous pouvez analyser vos prefetch avec l'outil d'Eric Zimmerman :

```powershell
PECmd.exe -d <dir_with_prefetchs> --csv <dst>
```

#### ShellBags

Les fichiers **ShellBags** sont des artefacts Windows stockés dans le registre et utilisés par l'Explorateur Windows pour mémoriser les préférences d'affichage des dossiers (taille, position, mode d'affichage, etc.). En **forensic**, ils sont précieux pour reconstituer l'historique des accès aux répertoires, y compris ceux qui ont été supprimés.

Ils sont récupérables depuis le registre suivant :

- **HKEY\_USERS{SID}\\Software\\Microsoft\\Windows\\Shell\\Bags**
- **HKEY\_USERS{SID}\\Software\\Microsoft\\Windows\\Shell\\BagMRU**

Vous pouvez explorer les shellbags depuis le logiciel ShellBags Explorer (SBE) de la suite Zimmerman.

#### Corbeille

La corbeille se situe à la racine du volume dans un répertoire caché nommé **<span class="fontstyle0">$Recycle.Bin</span>** notamment dans :

```powershell
C:\$Recycle.Bin
```

<p class="callout info"><span class="fontstyle0">Chaque sous-répertoire, nommé après le **SID** de chaque utilisateur et contient les fichiers de l'utilisateur qui les a supprimés.</span>  
</p>

<p class="callout info"><span class="fontstyle0">Le nom original du fichier est modifié, (**6** random characters + extension) mais peut être retrouvé en étudiant la **$MFT**, ainsi que les métadonnées d’un fichier d’information.   
</span></p>

<span class="fontstyle0">On différencie deux types de fichiers :</span>

<table border="1" id="bkmrk-%24r%2A%2A%2A%2A%2A-.-%2A%2A%2A%C2%A0-fichi" style="border-collapse: collapse; width: 100%; height: 58.5938px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 28.7969px;"><td class="align-center" style="height: 28.7969px;">**<span class="fontstyle0">$R\*\*\*\*\* . \*\*\*</span>**   
</td><td class="align-center" style="height: 28.7969px;"><span class="fontstyle0">Fichier original</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**<span class="fontstyle0">$I\*\*\*\*\* . \*\*\*</span>**   
</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Information sur le fichier</span>   
</td></tr></tbody></table>

#### Journaux d'évènements (EVTX)

<span class="fontstyle0">Les journaux des événements Windows, enregistrent les activités du système tels que:</span>

<span class="fontstyle2">• </span><span class="fontstyle0">Les ouvertures de programmes</span>

<span class="fontstyle2">• </span><span class="fontstyle0">Les interactions utilisateurs</span>

<span class="fontstyle2">• </span><span class="fontstyle0">Les modifications systèmes</span>

<span class="fontstyle2">• </span><span class="fontstyle0">Les périphériques installés</span>

<span class="fontstyle2">• </span><span class="fontstyle0">Les démarrages et extinctions</span>

<span class="fontstyle2">• </span><span class="fontstyle0">Les logons et logoffs</span>

Ils sont localisés dans :

```powershell
C:\Windows\System32\winevt\Logs
```

On distingue 5 types <span class="fontstyle0">d'évènements</span> :

<table border="1" id="bkmrk-types-d%27%C3%A9v%C3%A8nements-d" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td class="align-center">**Types d'évènements**</td><td class="align-center">**Descriptions**</td></tr><tr><td class="align-center">Error</td><td class="align-center"><span class="fontstyle0">L'évènement occasionne une erreur</span>   
</td></tr><tr><td class="align-center">Warning</td><td class="align-center"><span class="fontstyle0">L'évènement s'est bien déroulé, mais une erreur pourrait survenir dans le futur.</span>  
</td></tr><tr><td class="align-center">Information</td><td class="align-center"><span class="fontstyle0">Indique un évènement réussi</span>   
</td></tr><tr><td class="align-center">Audit Success</td><td class="align-center"><span class="fontstyle0">L'action surveillée par les politiques d'audit s'est bien déroulée</span>   
</td></tr><tr><td class="align-center">Audit failure</td><td class="align-center"><span class="fontstyle0">L'action surveillée par les politiques d'audit ne s'est pas bien déroulée</span>   
</td></tr></tbody></table>

On distingue 3 catégories de journaux :

- **Sécurité** : Enregistre les tentatives de connexion, les changements de politiques de sécurité, l'accès aux ressources etc.
- **Système** : Enregistre les notifications au noyau, les informations des pilotes de périphériques etc.
- **Application** : Enregistre les erreurs d'application, les avertissements et les autres messages générés par les applications.

Voici quelques code d'évènements qui vous seront intéressants :

<table border="1" id="bkmrk-codes-descriptions-4" style="border-collapse: collapse; width: 100%; height: 540.141px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Codes**</td><td class="align-center" style="height: 29.7969px;">**Descriptions**</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4624</td><td class="align-center" style="height: 29.7969px;">Succès de connexion</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4625</td><td class="align-center" style="height: 29.7969px;">Echec de connexion</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4648</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Tentative de connexion avec des identifiants explicites.</span>  
</td></tr><tr style="height: 46.5938px;"><td class="align-center" style="height: 46.5938px;">4672</td><td class="align-center" style="height: 46.5938px;"><span class="fontstyle0">Attribution de privilèges spéciaux lors d'une ouverture de session.</span>  
</td></tr><tr style="height: 46.5938px;"><td class="align-center" style="height: 46.5938px;">1102</td><td class="align-center" style="height: 46.5938px;"><span class="fontstyle0">Effacement du journal des événements (Sécurité, Système, Application).</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4720</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Création d'un compte utilisateur.</span>  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4726</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Suppression d'un compte utilisateur.</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4728</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Un utilisateur a été ajouté à un groupe de sécurité globale.</span>  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4732</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Un utilisateur a été ajouté à un groupe de sécurité local.</span>  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4756</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Un membre a été ajouté à un groupe de sécurité universel.  
</span></td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4776</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">La validation du compte utilisateur a été tentée.  
</span></td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">4946</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Un changement a été effectué dans le pare-feu Windows.   
</span></td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">7045</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">Un service a été installé dans le système.  
</span></td></tr></tbody></table>

Pour chercher un code particulier :

- [https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/](https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/)
- [<span class="fontstyle0">https://andreafortuna.org/2019/06/12/windows-security-event-logs-my-own-cheatsheet/</span>](https://andreafortuna.org/2019/06/12/windows-security-event-logs-my-own-cheatsheet/)

<span class="fontstyle0">Éric Zimmerman a développé un outil pour traiter les logs EVTX et les exporter dans un fichier CSV ce qui peut être beaucoup plus facile à traiter :</span>

```powershell
EvtxECmd.exe -d <EVTX_DIR> --csv <Output_DIR>
```

#### Navigateurs internet

Voici les emplacements des différents profiles de navigateur :

<table border="1" id="bkmrk-navigateurs-chemins-" style="border-collapse: collapse; width: 100%; height: 208.578px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Navigateurs**</td><td class="align-center" style="height: 29.7969px;">**Chemins**</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">Edge</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">/AppData/Local/Microsoft/Edge/User Data/Default/</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">Firefox</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">/AppData/Roaming/Mozilla/Firefox/Profiles/</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">Chrome</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">/AppData/Local/Google/Chrome/User Data/Default/</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">Chromium</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">/AppData/Local/Chromium/User Data/Default/</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">Brave</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">/AppData/Local/BraveSoftware/Brave-Browser/User Data/Default/</span>   
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">Opera</td><td class="align-center" style="height: 29.7969px;"><span class="fontstyle0">/AppData/Roaming/Opera Software/Opera Stable/</span>   
</td></tr><tr><td class="align-center">Vivaldi</td><td class="align-center"><span class="fontstyle0">/AppData/Local/Vivaldi/User Data/Default/   
</span></td></tr><tr><td class="align-center">360 Speed</td><td class="align-center"><span class="fontstyle0">/AppData/Local/360chrome/Chrome/User Data/Default/   
</span></td></tr><tr><td class="align-center">QQ</td><td class="align-center"><span class="fontstyle0">/AppData/Local/Tencent/QQBrowser/User Data/Default/   
</span></td></tr><tr><td class="align-center">Yandex</td><td class="align-center"><span class="fontstyle0">/AppData/Local/Yandex/YandexBrowser/User Data/Default/   
</span></td></tr><tr><td class="align-center">CocCoc</td><td class="align-center"><span class="fontstyle0">/AppData/Local/CocCoc/Browser/User Data/Default/   
</span></td></tr></tbody></table>

Voici 2 outils pour extraire toutes les informations des navigateurs :

- <span class="fontstyle0">[https://github.com/moonD4rk/HackBrowserData](https://github.com/moonD4rk/HackBrowserData)</span>
- <span class="fontstyle0">[https://www.nirsoft.net/utils/browsing\_history\_view](https://www.nirsoft.net/utils/browsing_history_view)</span>

<span class="fontstyle0">Quelques exemples de données intéressantes à récupérer :</span>

<table border="1" id="bkmrk-types-de-donn%C3%A9es-fic" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td class="align-center">**Types de données**</td><td class="align-center">**Fichiers**</td></tr><tr><td class="align-center">Historique de téléchargement</td><td class="align-center"><span class="fontstyle0">places.sqlite</span> ou History  
</td></tr><tr><td class="align-center">Favoris</td><td class="align-center"><span class="fontstyle0">bookmarks.json</span><span class="fontstyle0"> ou </span><span class="fontstyle0">Bookmarks</span>   
</td></tr><tr><td class="align-center">Identifiants</td><td class="align-center">logins.json ou Login Data</td></tr><tr><td class="align-center">Auto-completions</td><td class="align-center">formhistory.sqlite ou Web Data ou Shortcuts ou Login Data</td></tr></tbody></table>

# [Linux]

# [Forensic] Collecte de données

## Introduction

Avant votre analyse, il vous faudra collecter les données de votre disque ou votre périphérique. Vous pouvez effectuer une copie physique avec un bloqueur d'écriture de disque mais aussi lancer une distribution en live tel que **Tsurugi Linux** ou **Paladin Linux** pour monter les périphériques en lecture seule.

## DD

```bash
sudo dd if=/dev/sdX of=tmp/myusb.raw bs=512M status=progress
```

Ou pour créer une image d'un système distant :

```bash
ssh root@192.168.122.33 "dd if=/dev/sda bs=512M" | dd of=/root/vm-debian.dd bs=512M
```

## EWF Tools

Cette suite d'outils sur Linux permet de faire une copie bit à bit de votre périphérique au format E01.

Pour cela, lancez **ewfacquire** :

```bash
ewfacquire /dev/sd<X>
```

<p class="callout info">Tout un tas de question vous sera posé. Laissez par défaut pour la plupart mais faite en sorte de n'avoir qu'un seul segment si possible (c'est plus pratique après pour ne pas à avoir à gérer plusieurs fichiers).</p>

Vous pouvez afficher les informations de votre nouveau conteneur :

```bash
ewfinfo myusb.E01
```

Vous pouvez aussi vérifier l'intégrité de votre conteneur :

```bash
ewfverify myusb.E01
```

# [Forensic] Artefacts

## Introduction

De nombreux artefacts sont consultables sur les systèmes Linux pour effectuer une analyse forensique.

[![1_i2QTj1JzxDf0BzgfdPJiVA.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/1-i2qtj1jzxdf0bzgfdpjiva.png)](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/1-i2qtj1jzxdf0bzgfdpjiva.png)

## Artefacts

#### Liste d'artefacts

<table border="1" id="bkmrk-artefacts-descriptio" style="border-collapse: collapse; width: 100%; height: 1224px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">**Artefacts**</td><td class="align-center" style="height: 29.8px;">**Descriptions**</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/\*-release</td><td class="align-center" style="height: 29.8px;">Informations sur l'OS et les numéros de version</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/issue</td><td class="align-center" style="height: 29.8px;">Informations sur l'OS et les numéros de version</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/issue.net</td><td class="align-center" style="height: 29.8px;">Informations sur l'OS et les numéros de version</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/timezone</td><td class="align-center" style="height: 29.8px;">Fuseau horaire</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/localtime</td><td class="align-center" style="height: 29.8px;">Fuseau horaire</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/passwd</td><td class="align-center" style="height: 29.8px;">Comptes utilisateurs</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/group</td><td class="align-center" style="height: 29.8px;">Groupes et membres</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/shadow</td><td class="align-center" style="height: 29.8px;">Mots de passe hashés des comptes utilisateurs</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/sudoers | /etc/sudoers.d</td><td class="align-center" style="height: 29.8px;">Politiques sudo</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/fstab</td><td class="align-center" style="height: 29.8px;">Points de montages automatiques</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/hostname</td><td class="align-center" style="height: 29.8px;">Nom d'hôte de la machine</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/hosts</td><td class="align-center" style="height: 29.8px;">Résolution des noms de domaine</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/network/interfaces</td><td class="align-center" style="height: 29.8px;">Configuration réseau</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/etc/resolv.conf</td><td class="align-center" style="height: 29.8px;">Configuration DNS</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/lib/networkmanager/internal</td><td class="align-center" style="height: 29.8px;">Dernière IP attribuée au système</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/lib/networkmanager/NetworkManager.state</td><td class="align-center" style="height: 46.6px;">Etat actuel du réseau, du wifi et de l'accès à internet sur le système</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/lib/networkmanager/seen-bssids</td><td class="align-center" style="height: 46.6px;">Enregistre les BSSID wifi vus, mais pas nécessairement  
connectés</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/lib/networkmanager/timestamps</td><td class="align-center" style="height: 29.8px;">Enregistre les baux DHCP</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/lib/dpkg/status</td><td class="align-center" style="height: 46.6px;">Journaux d'évènements du gestionnaire de paquets DPKG (Debian / Ubuntu)</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/lib/dpkg/status</td><td class="align-center" style="height: 46.6px;">Journaux d'évènements du gestionnaire de paquets RPM (Redhat)</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/lib/pacman/local</td><td class="align-center" style="height: 46.6px;">Journaux d'évènements du gestionnaire de paquets PACMAN (Arch Linux)</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/log/apt/history.log</td><td class="align-center" style="height: 46.6px;">Journaux d'évènements de ce qui a été installé avec le gestionnaire de paquets APT (Debian / Ubuntu)</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/log/apt/term.log</td><td class="align-center" style="height: 46.6px;">Enregistre les sorties de terminal des commandes d'installations avec APT (Debian / Ubuntu)  
</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/yum.log\*</td><td class="align-center" style="height: 29.8px;">Contient les dates d'installation des paquets (Redhat)</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/log/dnf.log\*</td><td class="align-center" style="height: 46.6px;">Contient les dates d'installation des paquets dans un format difficile à lire (Redhat)</td></tr><tr style="height: 46.6px;"><td class="align-center" style="height: 46.6px;">/var/log/dpkg.log\*</td><td class="align-center" style="height: 46.6px;">Journaux d'évènements pour les paquets installés manuellement avec le gestionnaire de paquets DPKG (Debian / Ubuntu)</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/auth.log</td><td class="align-center" style="height: 29.8px;">Connexions utilisateurs.</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/btmp</td><td class="align-center" style="height: 29.8px;">Connexions échouées des utilisateurs.</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/faillog</td><td class="align-center" style="height: 29.8px;">Connexions échouées des utilisateurs.</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/dmesg</td><td class="align-center" style="height: 29.8px;">Périphériques matériels détectés par le kernel au démarrage.</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/journal/\*</td><td class="align-center" style="height: 29.8px;">Logs systèmes et services (remplaçant de syslog)</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/lastlog</td><td class="align-center" style="height: 29.8px;">Dernières connexions pour chaque utilisateur.</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/syslog</td><td class="align-center" style="height: 29.8px;">Logs systèmes et services.</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">/var/log/wtmp | /var/log/utmp</td><td class="align-center" style="height: 29.8px;">Connexions réussies des utilisateurs.</td></tr><tr style="height: 29.8px;"><td class="align-center" style="height: 29.8px;">  
</td><td class="align-center" style="height: 29.8px;">  
</td></tr></tbody></table>

#### Date d'installation du système

La méthode la plus sûre est de chercher la date de création du système de fichiers, en utilisant la commande suivante pour **EXT4** :

```bash
tune2fs –l /dev/sdb2 | grep -i "created"
```

Et la commande suivante pour **BTRFS** :

```bash
btrfs subvol show /mnt/evidence/| grep -i "creation time"
```

#### Dernières extinctions

```bash
last -f /var/log/wtmp | grep shutdown
```

#### $PATH

Le $PATH contient les chemins vers tous les binaires exécutables. Vous pouvez afficher les chemins (*chroot* requis) :

```bash
echo $PATH
```

Vous pouvez aussi récupérer tous les binaires (applications), avec la commande suivante (*chroot* requis) :

```bash
for i in $(echo $PATH | tr -s ":" "\n"); do find $i/ -type f; done > apps.txt
```

#### Démarrages automatiques

##### Systemd

Vous pouvez consulter tous les fichiers **.service** ou **.target** ou **.socket** contenus dans les répertoires suivants :

- **/etc/systemd/system/**
- **/usr/lib/systemd/system**
- **/lib/systemd/system/**

<p class="callout info">Vous pouvez consulter les logs systemd dans le fichier **/var/log/syslog** .</p>

##### Init

Sur les vieux systèmes, init était utilisé et non systemd. Les scripts exécutés au démarrage avec init sont situés dans **/etc/init.d** .

##### Cron

Les tâches crontab peuvent être vérifiées dans les répertoires suivants :

- **/etc/crontab/**
- **/var/spool/cron/crontabs/**

De plus, les tâches propres aux utilisateurs peuvent être consultées avec la commande suivante (*chroot* requis) :

```bash
crontab -l
```

##### Profils shells

Ces fichiers de profil sont en réalité des scripts bash qui s'exécutent au démarrage de la session de l'utilisateur, ils sont exécutés dans l'ordre suivant :

- **/etc/profile**
- **~/.bash\_profile**
- **~/.bash\_login**
- **~/.profile**

##### GUI Startup Manager

Sur les environnements de bureau traditionnels (Gnome, KDE, XFCE), il est possible de configurer des applications de démarrage :

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/9XWimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/9XWimage.png)

<p class="callout success">Vous pouvez les retrouver à l'emplacement **~/.config/autostart/** .</p>

#### Logrotate

La configuration de Logrotate est disponible via le fichier **/etc/logrotate.conf** ou dans le dossier  **/etc/logrotate.d/** . Voici la configuration par défaut :

- weekly : rotation hebdomadaire.
- rotate 4 : conserve 4 cycle de rotation.
- create : un nouveau fichier vide après chaque rotation.

Voici un schéma explicatif du fonctionnement de Logrotate :

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/yqZimage.png)

<p class="callout info">Une tâche cron exécute quotidiennement logrotate, celle-ci est disponible à cet emplacement **/etc/cron.daily/logrotate** .</p>

<p class="callout info">Les status et horodatages des rotations sont disponible à cet emplacement **/var/lib/logrotate/status** .</p>

#### Journaux d'évènements

<p class="callout warning">Les logs au format texte sont en train d'être remplacés par des fichiers de base de données sur les systèmes Linux, ce qui les rend plus difficile à consulter.</p>

Vous pouvez afficher les logins réussis avec l'horodatage pour les utilisateurs du système avec la commande suivante :

```bash
lastlog |pr -2 -t -s | column -t
```

Vous pouvez afficher les dernières connexions de l'utilisateur courant avec la commande suivante :

```bash
last -F
```

Vous pouvez consulter les logs d'un système distant avec **journalctl** :

```bash
journalctl --directory=/mnt/evidence/var/log/journal
```

Voici quelques options pour journalctl :

<table border="1" id="bkmrk-commandes-descriptio" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td class="align-center">**Commandes**</td><td class="align-center">**Descriptions**</td></tr><tr><td class="align-center">journalctl -o short</td><td class="align-center">Affichage de l'horodatage par défaut \[ex: Aug 03 02:43:12\]</td></tr><tr><td class="align-center">journalctl -o short-full</td><td class="align-center">Affichage de l'horodatage au format ANSI

\[ex: Wed 2022-08-03 02:43:12\]

</td></tr><tr><td class="align-center">journalctl -o short-iso</td><td class="align-center">Affichage de l'horodatage au format ISO

\[ex:2022-08-03T02:43:12-0700\]

</td></tr><tr><td class="align-center">journalctl -o short-unix</td><td class="align-center">Affichage de l'horodatage au format Integer

\[ex: 1659519792.935000\]

</td></tr><tr><td class="align-center">journalctl -o verbose</td><td class="align-center">Affiche le détail complets des champs</td></tr><tr><td class="align-center">journalctl --no-hostname</td><td class="align-center">Enlève le champ du nom d'hôte pour améliorer la lisibilité</td></tr><tr><td class="align-center">journalctl -a</td><td class="align-center">Affiche l'ensemble des champs des journaux</td></tr><tr><td class="align-center">journalctl -r</td><td class="align-center">Affiche les logs en sens inverse</td></tr><tr><td class="align-center">journalctl --list-boots</td><td class="align-center">Liste les démarrages</td></tr><tr><td class="align-center">journalctl -u &lt;SERVICE&gt;.service</td><td class="align-center">Information sur un service</td></tr><tr><td class="align-center">journalctl \_UID=&lt;UID&gt;</td><td class="align-center">Informations sur l'utilisateur (avec son id)</td></tr><tr><td class="align-center">journalctl -k | grep -i USB</td><td class="align-center">Informations kernel sur les périphériques USB</td></tr></tbody></table>

#### Home

Les répertoires homes des utilisateurs contiennent généralement les artefacts les plus intéressants. Par défaut ils sont situés dans :

- **/home/&lt;USER&gt;** : Pour les utilisateurs
- **/root** : Pour le compte root

Voici des artefacts contenus dans les répertoires home qui pourraient vous intéresser :

<table border="1" id="bkmrk-artefacts-descriptio-1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 49.9112%;"></col><col style="width: 49.9112%;"></col></colgroup><tbody><tr><td class="align-center">**Artefacts**</td><td class="align-center">**Descriptions**</td></tr><tr><td class="align-center">.bashrc</td><td class="align-center">Script exécuté à chaque nouvelle session shell. Il contient généralement les configuration du shell, des fonctions, des variables et les alias.  
</td></tr><tr><td class="align-center">.bash\_logout</td><td class="align-center">Script exécuté à chaque fermeture du shell.</td></tr></tbody></table>

##### Bash\_history

Ce fichier est présent dans le home de l'utilisateur et stocke les commande exécutées par celui-ci.

Voici quelques éléments à prendre en considération:

- Il n’enregistre pas les horodatages par défaut (**$HISTTIMEFORMAT**).
- Il peut être manipulé / modifié / supprimé.
- Il ne contient pas les commandes des shells en cours.
- Il peut être situé n’importe ou sur le système (**$HISTFILE**).
- En ajoutant un espace devant la commande, la commande n'est pas  
    enregistrée (**$HISTCONTROL**).
- Le fichier a une taille maximum et un nombre de ligne limité. (**$HISTFILESIZE**)  
    et (**$HISTSIZE**).

#### Éléments récents

Sur un système avec un environnement de bureau, vous pouvez retrouver l'équivalent des jumplists pour windows via le fichier **~/.local/share/recently-used.xbel** :

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/DHZimage.png)

Il s'agit d'un fichier “xml” contenant le nom des fichiers accédés avec l'interface graphique. Il inclue d'importantes informations telles que :

- Le nom du programme.
- La date et heure.
- L'emplacement et le nom du fichier.

#### Corbeille

Sur un système avec un environnement de bureau, vous pouvez retrouver la corbeille à l'emplacement **~/.local/share/Trash** . Cependant, seulement les fichiers supprimés avec l'interface graphique seront présents.

Deux sous répertoires sont à étudier :

- **files/** : Contenant le fichier original.
- **info/** : Contenant les informations de suppression (date et chemin).

#### Navigateurs internet

Voici les emplacements des profiles utilisateurs selon les navigateurs :

<table border="1" id="bkmrk-navigateur-chemin-fi" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 49.9112%;"></col><col style="width: 49.9112%;"></col></colgroup><tbody><tr><td class="align-center">**Navigateur**</td><td class="align-center">**Chemin**</td></tr><tr><td class="align-center">Firefox</td><td class="align-center">~/.mozilla/Firefox/</td></tr><tr><td class="align-center">Chrome</td><td class="align-center">~/.config/google-chrome/</td></tr><tr><td class="align-center">Opera</td><td class="align-center">~/.config/opera/</td></tr><tr><td class="align-center">Vivaldi</td><td class="align-center">~/.config/vivaldi/</td></tr></tbody></table>

#### Timeline

Pour générer une timeline sur les évènements passés sur un système de fichiers, plusieurs solutions s'offrent à vous :

- La super timeline plaso avec **log2timeline** (lente à générer mais très performante).
- La timeline de **sleuthkit** (rapide à générer).

##### Sleuthkit

Pour générer une timeline avec sleuthkit, commencez par créer un bodyfile :

```bash
tsk_gettimes -m image.E01 > bodyfile
```

Chaque ligne contient les informations suivantes :  
**MD5|nom|inode|mode\_en\_chaîne|UID|GID|taille|atime|mtime|ctime|crtime .**

Voici le détail des informations :

- **MD5** : MD5 du fichier.
- **nom** : Chemin complet du fichier.
- **inode** : Identifiant unique du fichier dans le système de fichiers.
- **mode** : Permissions UNIX.
- **UID** : Identifiant de l'utilisateur propriétaire du fichier.
- **GID** : Identifiant du groupe propriétaire du fichier.
- **taille** : Taille du fichier.
- **atime** : Heure du dernier accès au fichier.
- **mtime** : Heure de la dernière modification du fichier.
- **ctime** : Heure du dernier changement de métadonnée du fichier.
- **crtime** : Heure de création du fichier.

Voici un exemple de ce à quoi ressemble le bodyfile :

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/fOCimage.png)

Ensuite, il vous faut convertir votre timeline en CSV :

```bash
mactime -b bodyfile > timeline.csv
```

Voici à quoi ressemble le fichier CSV généré :

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/LMwimage.png)

##### Plaso

Tout d'abord créez votre bodyfile :

```bash
log2timeline.py --storage_file <bodyfile> <image.E01>
```

<p class="callout info">Le fichier de sortie est une base de donnée SQLite.</p>

Puis transformez votre bodyfile en timeline :

```bash
psort -w <timeline> <bodyfile>
```

##### Visualiseurs

Une fois la timeline générée, il faut utiliser des outils de visualisation pour effectuer une analyse. Pour cela, vous pouvez utiliser :

- **Timesketch** ([https://timesketch.org/)](https://timesketch.org/))
- **Timeline Explorer** (Eric Zimmerman)
- **Glogg** ([http://glogg.bonnefon.org/index.html)](http://glogg.bonnefon.org/index.html))

# [Forensic] Montage d'une image

## Introduction

Pour effectuer votre analyse sous Linux, vous aurez besoin d'outils. Vous allez voir comment monter des conteneurs au format E01 (inclus Windows et Linux) et des images faites avec dd.

## Manuel

#### Conteneur EWF (E01)

Tout d'abord, utilisez ewfmount pour monter le disque (installez **ewftools** au préalable) :

```bash
sudo ewfmount 'windows_or_linux_container.E01' /mnt/ewf/
```

<p class="callout success">Cette opération aura pour conséquence de monter le disque dans **/mnt/ewf**, vous pourrez ensuite monter les partitions une à une.</p>

Vous pouvez analyser les partitions avce **fdisk** et relevez à quel secteur commence votre partition pour calculer l'offset :

```bash
sudo fdisk -l /mnt/ewf/ewf1
```

Utilisez **mount** en saisissant le secteur de début multiplié par la taille de secteur (souvent 512) :

```bash
sudo mount -o ro,norecovery,offset=$((512*239616)) /mnt/ewf/ewf1 /mnt/evidence/
```

<p class="callout success">Cette commande aura pour effet de monter la partition dans **/mnt/evidence** en lecture seule.</p>

Si vous souhaitez utiliser **xmount** pour définir un fichier de cache :

```bash
sudo xmount --in ewf 'windows.E01' --cache cache.cc --out /mnt/evidence/
```

Si vous souhaitez utiliser **xmount** pour créer un vmdk (VMware) à partir du conteneur :

```bash
sudo xmount --in ewf 'windows.E01' --cache cache.cc --out vmdk /mnt/c/Users/Elie/Documents/VM/
```

#### Image DD

Pour monter une image faite avec DD avec une partition de loopback, on peut utiliser **losetup** :

```bash
sudo losetup -f -P '/media/ewf/Alienware.dd'
```

Pour détacher le périphérique :

```bash
sudo losetup -d /dev/loop0
```

# [Forensic] Récupération de masterkey LUKS dans la ram

## Introduction

Cette page présente une méthode pour obtenir une clé de récupération d'une partition chiffrée LUKS (systèmes Linux) à partir de la RAM.

## Manuel

Tout d'abord utilisez aeskeyfind pour extraire toutes les clés AES 128 et 256 de l'image de la ram :

```bash
aeskeyfind 'Kali_5.18.0-kali5-amd64.dmp' > all-aes-keys.txt
```

<p class="callout info">Retirez les clés AES 128 bits car seules les clés AES 256 bits sont intéressantes (juxtaposition de deux clés 256 pour faire une clé 512 qui correspond à la taille d'une clé LUKS).</p>

Inversez le sens des clés :

```bash
tac 'all-aes-keys.txt' | tr -d "\n" | fold -w 128 > KEYS.txt
```

Mettez chaque combinaison de clés dans un fichier MK (MasterKey) :

```bash
k=1 ; while read i ; do echo $i | xxd -r -p > ./MK$k ; k=$(($k+1)); done < KEYS.txt
```

Testez chaque possible MasterKey sur la partition chiffrée :

```bash
for i in MK* ; do sudo cryptsetup luksAddKey --master-key-file=$i /dev/loop0p3 ; done
```

<p class="callout info">Vous pouvez **echo MK$i** pour afficher le fichier testé.</p>

Puis déverrouillez la partition :

```bash
sudo cryptsetup luksOpen /dev/loop0p3 BIM
```

# [Réseau]

# [Forensic] TShark

## Introduction

Cet outil permet d'analyser en ligne de commande des fichiers PCAP un peu à la manière de Wireshark. L'avantage est que vous pouvez utiliser les avantages de bash pour filtrer et effectuer des opérations avancées assez simplement.

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/yzKimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/yzKimage.png)

## Cheat-sheet

#### IPs connexions sortantes TCP

Si vous souhaitez récupérer les IPs des connexions sortantes TCP en excluant les IPs privées et les IPs appartenant à Akaimai (connexions microsoft légitimes), vous pouvez utiliser la commande suivante :

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -T fields -e ip.dst -Y "tcp" | sort -u | grep -Ev "^(10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|192\.168\.)" | while read ip; do nslookup "$ip" | grep -qi "akamaitechnologies.com" || echo "$ip"; done
```

<p class="callout info">Vous pouvez remplacer l'argument -Y "tcp" par **-Y "http"** si vous souhaitez uniquement les connexions HTTP.</p>

#### IPs connexions entrantes TCP

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -T fields -e ip.src -Y "tcp" | grep -E "^(10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|192\.168\.)" | sort -u
```

<p class="callout info">Vous pouvez remplacer l'argument -Y "tcp" par **-Y "http"** si vous souhaitez uniquement les connexions HTTP.</p>

#### Connexions DNS

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -Y "dns.qry.name" -T fields -e dns.qry.name | sort -u
```

#### Ports de connexion

Pour regarder les ports TCP les plus utilisés :

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -T fields -e ip.src -e ip.dst -e tcp.dstport -Y "tcp" | sort -u
```

Pour filtrer selon certains ports spécifiques :

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -T fields -e ip.src -e ip.dst -e tcp.dstport -Y "tcp" | sort -u | grep -iE "\s80|\s443|\s88|\s3389\s445"
```

#### Extraire les fichiers

Pour récupérer tous les fichiers ayant transités via **HTTP** et supprimer les fichiers sans extension (faux-positifs) :

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap --export-objects "http,extracted_files" && find extracted_files -type f ! -name "*.*" -delete
```

<p class="callout success">Les fichiers seront disponibles dans le répertoire ./extracted\_files</p>

#### Scanning

Pour détecter un scan de ports, vous pouvez observer s'il y a un multitude de connexions SYN :

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -Y "tcp.flags.syn == 1 and tcp.flags.ack == 0" -T fields -e ip.src -e tcp.dstport | sort | uniq -c | sort -nr | head -20
```

#### Trouver les fichiers ayant transités par SMB

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -Y "smb2" -T fields -e smb2.filename | sort -u
```

<p class="callout info">Vous trouverez aussi des registres modifiés via SMB !</p>

#### Trouver les fichiers ayant transités par FTP

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -Y "ftp.request.command" -T fields -e ftp.request.command -e ftp.request.arg | sort -u
```

#### Headers HTTP liés à une IP

```bash
tshark -r 2024-11-26-traffic-analysis-exercise.pcap -Y "ip.src == 194.180.191.64 || ip.dst == 194.180.191.64 && http" -V | grep -E "^[[:space:]]+[A-Za-z-]+:"  | sed '/^[[:space:]]*Host/ i\'$'\n'
```

#### Extraire les mots de passe en clair

```bash
tshark -r fichier.pcap -Y 'http.authbasic' -T fields -e http.authorization
```

```bash
tshark -r fichier.pcap -Y 'ftp.request.command == "USER" or ftp.request.command == "PASS"' -T fields -e ftp.request.arg
```

```bash
tshark -r fichier.pcap -Y 'telnet' -T fields -e telnet.data
```

<p class="callout warning">Pour extraire des secrets, **NetworkMiner** semble plus performant.</p>

# [Forensic] Analyse IPs / domaines

## Introduction

Lors de l'analyse de vos trames, il vous sera utile d'identifier les IPs et les domaines notamment pour déterminer s'ils sont malveillants et s'il s'agit d'un serveur de l'attaquant.

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/3gSimage.png)

## Cheat-sheet

#### Trouver le provider d'une IP

```bash
whois <IP> | grep -i "orgname" | cut -f2 -d':' | sed 's/^[[:space:]]*//'
```

#### Retirer les IPs selon le provider

```bash
cat ips.txt | while read ip; do if ! whois "$ip" | grep -iE "orgname|role" | grep -iq "microsoft"; then echo "$ip"; fi; done
```

<p class="callout info">Vous pouvez filtrer sur **Microsoft** mais aussi **Akamai** ou **Cloudflare** en modifiant le grep. Cela retirera ces IPs de la liste.</p>

<p class="callout info">Vous pouvez remplacer le *cat ips.txt* par une commande **tshark** ou autre, cela fonctionnera parfaitement.</p>

#### Analyse virustotal

Pour analyser une IP :

```bash
curl -s -X GET "https://www.virustotal.com/api/v3/ip_addresses/194.180.191.64" -H "x-apikey: API_KEY" | jq '.data.attributes.last_analysis_stats'
```

Pour analyser plusieurs IPs :

```bash
cat ips.txt| while read -r ip; do curl -s -X GET "https://www.virustotal.com/api/v3/ip_addresses/$ip" -H "x-apikey: 1e04da01b0aa70136ef46bfdf8302db049d5dbc78c9bd0f0a6f8cdf59597b6e7" | jq -r --arg ip "$ip" '"\($ip): \(.data.attributes.last_analysis_stats.malicious)"'; done
```

# [Forensic] NetworkMiner

## Introduction

Le logiciel **NetworkMiner** est disponible sur Windows et Linux pour analyser les fichiers PCAP. Il permet notamment d'afficher des informations comme les fichiers échangés, les secrets ou autre à travers des sous-menus.

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/1hXimage.png)

## Installation

#### Debian

```bash
sudo apt install mono-devel && wget https://www.netresec.com/?download=NetworkMiner -O /tmp/nm.zip && sudo unzip /tmp/nm.zip -d /opt/ && cd /opt/NetworkMiner* && sudo chmod +x NetworkMiner.exe && sudo chmod -R go+w AssembledFiles/ && sudo chmod -R go+w Captures/
```

Puis lancez NetworkMiner :

```bash
cd /opt/NetworkMiner* && mono NetworkMiner.exe --noupdatecheck
```

## Interface

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/38Bimage.png)

# [Forensic] A-Packets

## Introduction

L'outil en ligne **A-Packets** permet d'analyser des fichiers PCAP de moins de **25Mo**. La navigation pour trouver des indicateurs de compromission est très pratique et peut faire gagner énormément de temps pour une investigation contrairement à des outils comme Wireshark.

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-03/scaled-1680-/PXiimage.png)

## Lien

- [https://apackets.com/](https://apackets.com/)