TP sysres IMA5sc 2020/2021 G4

De Wiki d'activités IMA
Révision datée du 15 novembre 2020 à 14:44 par Tevrard (discussion | contributions) (Exploitation de failles du système)


Présentation générale

Ceci est le wiki du tp de PRA de 2020 réalisé par Samuel BENAYED et Théo EVRARD. Au cours de ce TP, de nombreux "exercices" ont pu être réalisés :

  • Installation de machine virtuelles sur un serveur (Capbreton)
  • Mise ne place d'une architecture réseau redondante reliée à Internet (en partenariat avec les groupes 1 et 14)
  • Connexion de nos VM à ce réseau
  • Cassage de clé WIFI (WEP et WPA)
  • Intrusion au sein d'un service web
  • Chiffrement d'une clé USB

L'ensemble de ces exercices nous a permis de mettre en application mais surtout d'approfondir nos connaissances en systèmes et réseaux. Nous tenons à remercier tout particulièrement nos professeurs pour l'aide non négligeable qu'ils nous ont apportée durant les heures de TP ainsi que Guillaume Rouillé pour son implication lors de la mise en place de l'architecture réseau.


Installation de la machine virtuelle

Nous avons installé la VM sur capbreton.plil.info avec la commande suivante :

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


Installation Summary


Hostname  : tricholome

Distribution  : buster

MAC Address  : 00:16:3E:66:21:C5

IP Address(es)  : 100.64.0.18

Root Password  : pasglop


Information disques :

--- Logical volume ---

 LV Path                /dev/storage/BenEvrard1
 LV Name                BenEvrard1
 VG Name                storage
 LV UUID                PMUddf-pfpz-CQW9-JDwp-5Bln-OwNV-cLQ2t8
 LV Write Access        read/write
 LV Creation host, time capbreton, 2020-10-12 16:37:17 +0100
 LV Status              available
 # open                 0
 LV Size                10.00 GiB
 Current LE             2560
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           254:11
  
 --- Logical volume ---
 LV Path                /dev/storage/BenEvrard2
 LV Name                BenEvrard2
 VG Name                storage
 LV UUID                peLdWt-86ZX-fai5-tkwS-VsTc-HApM-cnpqNr
 LV Write Access        read/write
 LV Creation host, time capbreton, 2020-10-12 16:37:20 +0100
 LV Status              available
 # open                 0
 LV Size                10.00 GiB
 Current LE             2560
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           254:12

Mise en réseau de la VM

On cherche à donner un accès internet à Tricholome, une attention toute particulière est portée à la redondance au sein du réseau. On a donc l'architecture suivante :

Schéma de câblage


On a donc 2 routeurs (9200 et 6509-E) qui relient le serveur Capbreton au routeur de l'école et ainsi sortir sur internet.

Paramétrage de l'OSPF

Nos routeurs seuls ne nous mèneront pas bien loin, il est nécessaire, pour pouvoir communiquer avec l'extérieur, que ceux-ci disposent des tables de routage des routeurs voisins (notamment celui de l'école) afin de pouvoir orienter correctement nos paquets. Ce protocole de routage porte le nom de OSPF (Open Shortest Path Link) et doit donc être configuré correctement au sein de nos deux routeurs :

En minicom sur nos routeurs :

ip route 193.48.57.176 255.255.255.0 null0   #Ajout d'une route vers le routeur pour pouvoir ping directement à partir du routeur
router ospf 1                                         # un numéro de processus                                                                                                         
router-id 10.60.0.10X                                 # un id pour le routeur (X = 1 pour 6509-E et X = 2 pour 9200)
log-adjacency-changes                                                                                  
summary-address 193.48.57.176 255.255.255.240         # adresse que l'on souhaite diffuser aux voisins (addresse du VLAN 333)                                                                                                            
summary-address 100.60.0.0 255.240.0.0 not-advertise  # address q'on veut pas diffuser (celle du reseau privé)
summary-address 10.0.0.0 255.0.0.0 not-advertise      # address q'on veut pas diffuser (?)                                                                                                             
redistribute connected subnets                        # autorise la diffusion pour les nouveaux réseaux qui peuvent être connectés   
redistribute static subnets                                                                                                                        
network 192.168.222.8 0.0.0.7 area 2                  # domaine de diffusion OSPF (Attention au masque inversé)

Les nouvelles routes ainsi obtenues sont visibles via la commande : show ip route. La réussite de la manipulation est validée par un ping fonctionnel d'une VM vers 193.48.57.48 qui est l'adresse du routeur de l'école

Paramétrage du NAT

Pentesting

Exploitation de failles du système

En parallèle des TPs, nous avons continué de réaliser des challenges sur la plateforme Root-me.org afin d'affiner nos compétences

Cassage clé WEP

Cassage clé WPA

Intrusion sur un serveur d’application Web

Le fichier explicatif est chiffré et disponible ci dessous.

Pour le déchiffrer il faut lancer les commandes suivantes :

wget https://wiki-ima.plil.fr/mediawiki//images/0/09/Intrusion.txt
gpg --decrypt Intrusion.txt
spécifier le mot de passe root@honey.plil.info

Bonus

Participation au challenge Brigitte Friang (DGSE)

Participation en équipe à un challenge de cybersécurité organisé par la DGSE : https://www.defense.gouv.fr/dgse/tout-le-site/operation-brigitte-friang-prets-pour-relever-le-defi

Inscription au challenge :

L'observation du code source de la page nous amène à une nouvelle adresse https://www.challengecybersec.fr/static/message-secret.html contenant un texte et 5 caractères en gras


Secret.png


  • 2- Dechiffrement de secret.html :

Il s'agit d'un texte chiffré avec un décalage ASCII de 7. Après déchiffrement on obtient un paragraphe nous expliquant qui était Brigitte Friang. L'observation des 5 caractères en gras nous donne /chat. On se connecte donc à https://www.challengecybersec.fr/chat. On arrive alors sur un portail avec différentes missions à accomplir


Chat.png


  • 3- Cryptographie par Antoine Rossignol :

On récupère plusieurs fichiers appartenant à Eve Descartes dont archive_chiffree (qui est donc chiffrée), layout.pdf (qui est protégé par un mot de passe) ainsi que le mail d'information ci-dessous :


Eve.png


En appelant sur le numéro de Eve on entends une succession de "BIP" faisant penser à du code morse. La traduction de ces "BIP" nous donne le mot resistance qui correspond au mot de passe de layout.pdf

L'ouverture de layout.pdf nous montre une photographie au microscope de la puce ayant servi au chiffrement de archive_chiffree. On a en réalité la photographie de la zone servant à stocker la clé de chiffrement.


Fusibles.png


Selon l'hypothèse de départ (fusible coupé = 0 ou 1) plusieurs clés sont possibles. En prenant l'hypothèse fusible coupé = 1 on obtient la clé suivante :

0100000101000101010100110010000000110010001101010011011000100000010001010100001101000010001000000010000000100000001 0000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000

La conversion de ce code binaire en code ascii nous donne la chaine de caractères suivante qui est clairement un indice pour aider au déchiffrement de l'archive.


Aes256ecb.png


A l'aide d'un script python et du module pycrypto (pip install pycrypto), on déchiffre notre archive et obtiens le mot de passe b a:e z que l'on transmet à Antoine Rossignol. Ce mot de passe valide le challenge et nous permet ENFIN d'accéder au portail d'inscription à l'adresse suivante : https://ctf.challengecybersec.fr/7a144cdc500b28e80cf760d60aca2ed3/


Challenges réalisés :

Sur les 14 challenges proposés, 6 ont était réalisés ce qui nous a permis d'obtenir 600 point est de terminer 110e sur 785

Challenges.png


Alone Musk :

Elevation de privilège au sein d'une machine et d'une application en python


Sous l'océan :

L'analyse du dump mémoire nous permet de récupérer l'historique de localisation. On remarque 19 "locations" sauvegardée avec entre 2 et n coordonnées pour chacune. En positionnant les coordonnées sur geogebra et en les reliant DANS L'ORDRE, on obtient le flag : DGSESIEE{OC34N} dessiné à l'écran


Definition :

Quelle heure est-il ? On transmet le nombre de seconde écoulée depuis 1970 via la commande suivante

date +%s | nc challengecybersec.fr 6660
edit: Merci Monsieur Redon


Keypad sniffeur :


Polyglotte :


Ascii UART :


La plupart des ressources ou code créé afin de résoudre ces challenges sont disponibles dans l'archive ci contre : Fichier:DGSE chall.zip

Participation au challenge DGHack (DGA)

Inscription bien plus simple que pour le challenge de la DGSE. Après avoir créé un compte sur https://www.dghack.fr/ on obtient un accès aux différents challenges.

Challenges réalisés

Internal Support 1


Time for something different