TP sysres IMA5sc 2020/2021 G14

De Wiki d'activités IMA
Révision datée du 2 novembre 2020 à 14:22 par Lfauchoi (discussion | contributions) (Cassage de clef WEP d’un point d’accès WiFi)

TP PRA - Lukas Fauchois & Guillaume Rouillé

Groupe Domaine Distribution VLAN privé IP (VLAN333) Netmask (VLAN333) Gateway (VLAN333) Gateway 6509-E (VLAN333) Gateway 9200 (VLAN333) IP (publique)
Groupe 14 oronge.site Debian 10 Buster 314 100.64.0.16 255.255.255.0 100.64.0.254 100.64.0.1 100.64.0.2 193.48.57.176

Installation réseau

Schéma global

Schéma de câblage

Notre groupe s'est occupé de l'installation du réseau. Nous avons mis en place les différentes liaisons physiques entre les serveurs et routeurs.
Nous avons obtenu le schéma de connexion ci-contre. Ensuite, nous avons paramétré les routeurs pour permettre la connexion avec les machines virtuelles de chaque groupe.

Paramétrage des VLANs

6509-E

Dans un premier temps, on paramètre le routeur 6509-E placé en E306. Nous avons créé le VLAN 131 pour nous connecter au routeur de l'école.
Nous lui avons attribué une adresse routée et un port sur lequel est branchée la fibre venant du routeur de l'école.

enable
  conf t
    vlan 131
      name internet
      exit
    int vlan 131
      no shut
      ip address 192.168.222.12 255.255.255.248
      exit
    int te6/4
      no shut
      switchport mode access
      switchport access vlan 131
      exit
    exit
  write

Ensuite, nous avons créé le VLAN 333. Ce VLAN permet l'accès au routeur 6509-E depuis les VMs.
Il est donc connecté au port Te5/5 (10G) sur lequel est branchée un fibre venant du serveur capbreton.
De plus, étant donné que nous n'avons pas réussi à mettre en place un NAT en plus de l'OSPF, nous avons dû utiliser des adresses routées pour le routeur et les VMs.

enable
  conf t
    vlan 333
      name vm-ima5sc
      exit
    int vlan 333
      no shut
      ip address 193.48.57.161 255.255.255.224
      exit
    int te5/5
      no shut
      switchport mode access
      switchport access vlan 333
      exit
    exit
  write

9200

Pour mettre en place une redondance, nous utilisons deux routeurs. Sur ce deuxième routeur, nous avons également créé le VLAN 131 pour nous connecter au routeur de l'école.
Nous lui avons attribué une adresse routée et un port sur lequel est branchée la fibre venant du routeur de l'école.

enable
  conf t
    vlan 131
      name internet-ima5sc
      exit
    int vlan 131
      no shut
      ip address 192.168.222.13 255.255.255.248
      exit
    int Gi1/0/1
      no shut
      switchport mode access
      switchport access vlan 131
      exit
    exit
  write

Ensuite, nous avons créé le VLAN 333. Ce VLAN permet l'accès au routeur 9200 depuis les VMs.
Il est donc connecté au port Te1/1/3 (10G) sur lequel est branchée un fibre venant du serveur capbreton.

enable
  conf t
    vlan 333
      name vm-ima5sc
      exit
    int vlan 333
      no shut
      ip address 193.48.57.162 255.255.255.224
      exit
    int te1/1/3
      no shut
      switchport mode access
      switchport access vlan 333
      exit
    exit
  write

Paramétrage de l'OSPF

Pour permettre la transmission de la table de routage de nos routeurs aux autres routeurs utilisés, et pour récupérer leurs tables, nous avons mis en place l'OSPF.
Étant donné le problème avec le NAT (expliqué dans la section suivante), nous utilisons des adresses routées, donc cette partie n'est pas utile pour notre TP pour l'instant.

6509-E

router ospf 1                                          # un numéro de processus                                                                                                         
 router-id 10.60.0.1                                   # un id pour le routeur (plus petite adresse disponible)
 log-adjacency-changes                                                                                  
 summary-address 193.48.57.176 255.255.255.240         # réseau routé, que l'on souhaite diffuser aux voisins                                                                                                      
 summary-address 100.64.0.0 255.240.0.0 not-advertise  # réseau local, sur lequel se trouvent les VMs, que l'on ne souhaite pas diffuser aux voisins
 summary-address 10.0.0.0 255.0.0.0 not-advertise      # réseau local, que l'on ne souhaite pas diffuser aux voisins                                                                                                        
 redistribute connected subnets                        # autorise la diffusion des routes connectées
 redistribute static subnets                           # autorise la diffusion des routes statiques                                                    
 network 192.168.222.8 0.0.0.7 area 2                  # domaine de diffusion OSPF

9200

router ospf 1                                                                                                                                    
 router-id 10.60.0.2                                   # on change simplement l'id du routeur par rapport au 6509-E
 log-adjacency-changes                                                                                  
 summary-address 193.48.57.176 255.255.255.240                                                                                                         
 summary-address 100.64.0.0 255.240.0.0 not-advertise  
 summary-address 10.0.0.0 255.0.0.0 not-advertise                                                                                                    
 redistribute connected subnets                       
 redistribute static subnets                                                                                                                         
 network 192.168.222.8 0.0.0.7 area 2

Paramétrage du NAT

Afin de connecter notre réseau privé sur lequel se trouvent les VMs, nous avons besoin que nos routeurs fassent du NAT.
Nous souhaitons que notre réseau 100.64.0.0 soit transposé dans le réseau 193.48.15.176.
Nous avons vu dans la partie OSPF que le réseau 193.48.57.176 été partagé, il correspond donc aux IP publiques (chacune correspond à une IP locale privée).

enable
  configure terminal
    ip nat inside source static network 100.64.0.16 193.48.57.176 /28
    int vlan 333
      ip nat inside
      exit
    int vlan 131
      ip nat outside
      exit
    exit
  write

Il faut ajouter : copy running-config startup-config pour enregistrer les modifications du NAT. (Configure Interfaces Cisco, Configure NAT Cisco)

Problèmes rencontrés

Lors de la mise en place des différents VLANs, nous avons rencontré plusieurs problèmes. Nous décrivons ici comment nous les avons résolu.

Interface en mode bloquée

Lors de l'utilisation de la commande sh spanning-tree vlan xxx, nous avons des informations sur les différents ports du VLAN souhaité.
Sur le routeur 6509-E, nous avions le port Te5/5 bloqué (BLK) sur le VLAN 333.
Pour résoudre ce problème, nous avons relancer ce port en faisait un shut puis un no shut.
Le port est alors passé de l'état BLK (block) à LST (listen), puis LRN (learn), et enfin FWD (forward), l'état recherché.

Spanning tree instance(s) for vlan 333 does no exist

Pour résoudre ce problème, nous avons changé le mode du spanning-tree avec la commande spanning-tree mode mst

OSPF & NAT

L'OSPF mis en place fonctionne correctement seul. La translation d'adresses IP privée vers publique du NAT semble fonctionnait car la commande sh ip nat translations affiche bien le résultat souhaité. Cependant, l'association des 2 systèmes ne fonctionne pas correctement. Nous avons tenté de résoudre le problème de deux façons, sans succès.

Forum avec les solutions

  • Interface loopback
enable
  conf t
    int loopback 0
      ip ospf network point-to-point
      ip address 193.48.57.190 255.255.255.240
      exit
    exit
  write

Nous avons précisé à l'interface une adresse IP en .190 mais le réseau OSPF est 192.168.222.8/29, peut-être que notre problème vient de là.
Nous devons sûrement ajouter dans l'OSPF le réseau 193.48.57.176/28 (Forum source).

  • Route vers Null0
enable
  conf t
    ip route 193.48.57.176 255.255.255.240 Null 0
    exit
  write

Là encore, nous avons précisé le réseau 193.48.57.176/28 mais le réseau OSPF est 192.168.222.8/29.
On effectue également le commande redistribute static subnets sans les arguments route-map et ospf.

Commandes utiles

  • sh vlan  : donne des informations sur l'ensemble des VLANs (ports connectés, état, nom) ;
  • sh int vlan xxx  : donne des informations sur le VLAN xxx (adresse IP, etc.) ;
  • sh int status  : donne des informations sur les différentes interfaces (port, état, vlan, vitesse, type) ;
  • sh cdp neighbors  : donne des informations sur les différents ports et sur l'interface sur laquelle ils sont connectés ;
  • sh run [int {vlan xxx, port}] : donne des informations sur l'état actuel de toutes les interfaces, vlan, etc. ou de l'élément sélectionné ;
  • sh ip route  : liste les routes ;
  • debug ip nat  : liste les échanges du routeurs avec les adresses issues du NAT.


Mise en place de la machine virtuelle

Création de la machine virtuelle Xen

Afin de créer notre machine virtuelle Xen Linux sur le domaine capbreton.plil.info, nous avons besoin de plusieurs données. Premièrement, un nom de domaine : étant basé sur le thème des champignons, nous avons choisi l'oronge, champignon rare et considéré comme le meilleur qui soit d'un point de vue gustatif. Concernant l'adresse IP, après répartition nous nous sommes vu attribuer l'adresse IP 100.64.0.28. L'adresse IP du routeur 6509E est 100.64.0.5 et le masque de sous-réseau 255.255.255.0 (car 100.64.0.1/24). Nous indiquons le répertoire où les disques virtuels doivent être créés : /usr/local/xen. Enfin, nous choisissons le mot de passe (pasglop) ainsi que la distribution : debian buster étant la dernière distribution stable.

Ce qui donne la commande suivant à entrer sur le domaine capbreton (après s'y être connecter en ssh) :

root@capbreton:~# xen-create-image --hostname=oronge --ip=100.64.0.28 --gateway=100.64.0.5 --netmask=255.255.255.0 --dir=/usr/local/xen --password=pasglop --dist=buster

Attribution des LVM

Pour se voir attribuer deux LV de 10Go chacun, il est d'abord nécessaire de créer un groupe de volumes storage sur capbreton : nous réunissons les disques sde et sdf de 2.7To chacun.

root@capbreton:~# vgcreate storage /dev/sde /dev/sdf

Voici les informations sur le VG :

 --- Volume group ---
 VG Name               storage
 System ID
 Format                lvm2
 Metadata Areas        2
 Metadata Sequence No  45
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                26
 Open LV               22
 Max PV                0
 Cur PV                2
 Act PV                2
 VG Size               <5.46 TiB
 PE Size               4.00 MiB
 Total PE              1430526
 Alloc PE / Size       66560 / 260.00 GiB
 Free  PE / Size       1363966 / 5.20 TiB
 VG UUID               eusQhE-lOxZ-cQqQ-uFxt-dYjG-LuwI-HL0flc

Ensuite, nous partitionnons ce groupe en LV de 10Go. Pour oronge, nous les appelerons oronge1 et oronge2 :

 root@capbreton:~# lvcreate -L10G -n oronge1 storage
 root@capbreton:~# lvcreate -L10G -n oronge2 storage

Voici les informations sur nos LVs :

 --- Logical volume ---
 LV Path                /dev/storage/oronge1
 LV Name                oronge1
 VG Name                storage
 LV UUID                dWsljG-AeF5-FvMB-Hnta-6iq1-UGfR-qz6Xw2
 LV Write Access        read/write
 LV Creation host, time capbreton, 2020-10-12 16:40:47 +0100
 LV Status              available
 # open                 1
 LV Size                10.00 GiB
 Current LE             2560
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           254:22
 --- Logical volume ---
 LV Path                /dev/storage/oronge2
 LV Name                oronge2
 VG Name                storage
 LV UUID                X6zWib-XQ3C-bWFT-Zwjd-ZsF6-Ow9d-rA5BGf
 LV Write Access        read/write
 LV Creation host, time capbreton, 2020-10-12 16:40:50 +0100
 LV Status              available
 # open                 1
 LV Size                10.00 GiB
 Current LE             2560
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           254:23

Il est nécessaire pour nous de les formater au format ext4 avec la commande mkfs :

root@capbreton:~# mkfs.ext4 /dev/storage/oronge1
root@capbreton:~# mkfs.ext4 /dev/storage/oronge1

Configuration des LV

Pour indiquer à notre machine virtuelle qu'elle possède les volumes logiques oronge1 et oronge2, nous modifions le fichier de configuration de celle-ci en y ajoutant les deux lignes en gras dans la fonction disk=[] dans notre fichier oronge.cfg :

disk        = [
               'file:/usr/local/xen/domains/oronge/disk.img,xvda2,w',
               'file:/usr/local/xen/domains/oronge/swap.img,xvda1,w',
               'phy:/dev/storage/oronge1,xvda3,w',
               'phy:/dev/storage/oronge2,xvda4,w'
             ]

Nous lançons ensuite notre machine virtuelle (xl create -c /etc/xen/oronge.cfg) afin de mettre les répertoires home et var soient sur les partitions LVM de l'hôte.

Dans un premier temps nous montons nos deux disques "manuellement" afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :

root@oronge:~# mount /dev/xvda3 /mnt/xvda3
root@oronge:~# mount /dev/xvda4 /mnt/xvda4

Le répertoire /home étant vide nous ne déplaçons que le répertoire var dans le disques xvda4 :

root@oronge:~# mv /var/* /mnt/xvda4

Puis nous démontons (umount) nos deux volumes. Nous modifions le fichier /etc/fstab afin de monter correctement nos disques :

# mettre répertoire /home de la VM oronge dans la partition LVM oronge1
/dev/xvda3 /home ext4 defaults 0 2
# mettre  répertoire /var de la VM oronge dans la partition LVM oronge2
/dev/xvda4 /var ext4 defaults 0 2

Enfin nous les montons avec la commande mount -a, permettant de monter tous les systèmes de fichiers tel qu'indiqué dans fstab.

Voici le résultat, obtenu avec la commande lsblk :

NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda1 202:1    0  512M  0 disk [SWAP]
xvda2 202:2    0    4G  0 disk /
xvda3 202:3    0   10G  0 disk /home
xvda4 202:4    0   10G  0 disk /var

Connexion à la machine virtuelle

On peut visualiser les VMs lancées grâce à la commande :

xen list

On peut se connecter à notre VM avec la commande :

xen console oronge

Configuration du DNS

Section secrète

Configuration IPV6

Section secrète

Tests d'intrusion

Cassage de clef WEP d’un point d’accès WiFi

La première étape est de paramétrer notre carte réseau en mode moniteur. Le mode moniteur est un mode qui permet d'écouter chaque paquet qui se promène dans l'air : l'écoute de ces paquets nous permettra d'effectuer des injections ensuite. Pour ce faire, il nous faut tout d'abord le nom de notre interface :

airmon-ng nous retourne notre interface réseau (WiPi) : wlx40a5ef0127d0

Nous démarrons ensuite notre interface en mode moniteur sur le channel 3 :

airmon-ng start wlx40a5ef0127d0 3

Afin de cracker la clef WEP d'un point d'accès, il est nécessaire pour nous de le choisir est de récupérer son BSSID :

airodump-ng wlx40a5ef0127d0 nous permet d'écouter tous les paquets dans l'air

Nous choisissons alors la cracotte12 et récupérons son BSSID : 04:DA:D2:9C:50:5B. Pour vérifier que nous sommes assez proche du point d'accès, on effectue une injection.

aireplay-ng -9 -e cracotte12 -a 04:DA:D2:9C:50:5B wlx40a5ef0127d0

-9 : mode injection
-e cracotte12 : nom du point d'accès
-a 04:DA:D2:9C:50:5B : bssid du point d'accès

Intrusion sur un serveur d'application Web

Dans un navigateur, on ouvre la page http://honey.plil.info.
Pour obtenir la liste des identifiants et mots de passe de l'application, on va utiliser une injection SQL.

' OR 1 = 1 --

Le fonction de l'injection est simple, prenons par exemple la requête SQL :

SELECT * FROM USERS WHERE ID='$id' AND PWD='$pwd'

Si on entre dans les champs Id et Password l'injection SQL, la requête deviendra :

SELECT * FROM USERS WHERE ID= or 1 = 1 --' AND PWD= or 1 = 1 --'

Ainsi, on va commenter les apostrophes avec -- et ajouter un or avec une condition toujours vraie pour récupérer toutes les infos sur les identifiants et mots de passe.

Ensuite, on utilise la commande :

nmap -T4 -A honey.plil.info

Les informations utiles sont l'utilisation des services ssh et http :

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.3p1 Debian 1 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))

On peut donc maintenant se poser la question suivante : quels services peuvent utiliser ces 2 ports ?

Intrusion réussie

root@honey:~# ls -l
total 12
-rw-r--r-- 1 root root 25 Oct 19 19:30 Grp14
-rw-r--r-- 1 root root 32 Oct 19 19:15 Sam_Et_Pierre_Sont_Des_Imposteurs
-rw-r--r-- 1 root root 20 Oct 19 19:08 TMVwash3r3