# Alternate Data Streams (ADS)

> Les flux de données alternatifs (ADS) sont une fonctionnalité des systèmes de fichiers **NTFS** sous Windows qui permet d'associer plusieurs flux de données à un seul fichier. Ces flux supplémentaires peuvent contenir des informations cachées qui ne sont pas visibles lors de l'inspection traditionnelle du fichier. Nous allons exploiter cette fonctionnalité pour découvrir le **flag root**.

Les attaquants et les pentesters peuvent utiliser les ADS pour :

* **Cacher des fichiers malveillants** (ex : un exécutable caché dans un fichier texte).
* **Éviter la détection par les antivirus** et certains outils de sécurité.
* **Maintenir une persistance** sur une machine compromise.

**Exemple avec Notepad** :

```sh
notepad test.txt:secret.txt
```

Ici, `secret.txt` est un fichier caché attaché à `test.txt`.

Les fichiers cachés ne sont pas visibles avec `dir`, mais tu peux les lister avec :

```sh
dir /r
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fi9HRd7vXDQeC3i0mecEx%2Fimage.png?alt=media&#x26;token=97a534e2-8f93-40e1-9649-991d59d846db" alt=""><figcaption></figcaption></figure>

**Autre exemple : injection d’un exécutable dans un ADS** :

```bash
type payload.exe > windowslog.txt:winpeas.txt
```

Cela insère `payload.exe` dans le flux alternatif `winpeas.txt` attaché à `windowslog.txt`.

**Exécution du fichier caché** :

```sh
start windowslog.txt:winpeas.exe
```

Cela exécute `winpeas.exe`, bien qu’il soit caché dans un ADS.

**Création d’un Lien Symbolique pour Exécution Cachée**

Un lien symbolique peut être utilisé pour tromper un utilisateur en lui faisant exécuter un binaire caché.

**Exemple** :

```sh
mklink wupadate.exe C:\Temp\windowslog.txt:winpeas.exe
```

Ce lien symbolique `wupdate.exe` pointe vers le fichier ADS caché.

```bash
wupdate 
```

Si un utilisateur tape `wupdate`, le programme `winpeas.exe` s’exécutera.&#x20;

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FocBzYvL74QZtLQZ8jnS5%2Fimage.png?alt=media&#x26;token=c5748348-7139-496d-b990-e1c316a3cbeb" alt=""><figcaption></figcaption></figure>

### **Visualisation du contenu - ADS**

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FlORlSsDKSSohqK0A3uJ8%2Fimage.png?alt=media&#x26;token=8233a071-0870-4cb6-92d0-32c256d28078" alt=""><figcaption></figcaption></figure>

#### **1. Vérification des flux de données alternatifs (ADS)**

Nous commençons par vérifier si le fichier **hm.txt** situé sur le bureau de l'utilisateur **Administrator** contient des flux de données alternatifs. Pour cela, nous utilisons la commande suivante :

```bash
dir /r C:\Users\Administrator\Desktop\hm.txt
```

Cette commande liste tous les flux de données alternatifs associés au fichier **hm.txt**. Si un flux de données alternatif est présent, il sera affiché.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FscyChLxkMYqOuiRjeKjS%2Fimage.png?alt=media&#x26;token=2f236159-cfc8-470a-936c-eb58bd16abad" alt=""><figcaption></figcaption></figure>

#### **2. Visualisation du contenu d'un flux de données alternatif**

Si nous trouvons un flux de données alternatif associé au fichier, nous pouvons afficher son contenu avec la commande suivante :

```powershell
more < C:\Users\Administrator\Desktop\hm.txt:root.txt
```

Cela nous permet de lire le contenu du flux **root.txt** et de récupérer le **flag root :)**&#x20;

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FQ2vScSsp2S7gxkEi3K4W%2F%7B9BEF4608-9E98-4CFF-9CDA-891D64DD7959%7D.png?alt=media&#x26;token=e9f67b6c-c36d-4f00-944c-249d605a6de9" alt=""><figcaption></figcaption></figure>
