Cahier 2016 groupe n°3
Sommaire
Gestion de la machine virtuelle
Installation de la machine virtuelle avec Xen
Pour créé la machine virtuelle, on utilise xen-create-image avec les paramètres souhaités :
xen-create-image --hostname=Deadpool --ip=193.48.57.163 --netmask=255.255.255.240 --gateway=193.48.57.171 --dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie --password=********
Puis, on récupère les informations suivantes afin de vérifier diverses paramètres :
General Information -------------------- Hostname : Deadpool Distribution : jessie Mirror : http://debian.polytech-lille.fr/debian/ Partitions : swap 128M (swap) / 4G (ext3) Image type : sparse Memory size : 128M Kernel path : /boot/vmlinuz-3.14-2-amd64 Initrd path : /boot/initrd.img-3.14-2-amd64 Networking Information ---------------------- IP Address 1 : 193.48.57.163 [MAC: 00:16:3E:FF:6F:DC] Netmask : 255.255.255.240 Gateway : 193.48.57.171 Creating partition image: /usr/local/xen/domains/Deadpool/swap.img Done Creating swap on /usr/local/xen/domains/Deadpool/swap.img Done Creating partition image: /usr/local/xen/domains/Deadpool/disk.img Done Creating ext3 filesystem on /usr/local/xen/domains/Deadpool/disk.img (...) Logfile produced at: /var/log/xen-tools/Deadpool.log Installation Summary --------------------- Hostname : Deadpool Distribution : jessie MAC Address : 00:16:3E:FF:6F:DC IP Address(es) : 193.48.57.163 RSA Fingerprint : d0:38:7b:89:c7:72:e7:52:d9:b7:5c:5b:ab:3e:fe:3f Root Password : hZsEGmZX
Configuration de la machine virtuelle
On utilise lvcreate pour faire en sorte que les répertoires var et home de la machine virtuelle soient sur des partitions LVM de l'hôte :
lvcreate -L 10G -n /dev/virtual/ima5-Deadpool-home -v lvcreate -L 10G -n /dev/virtual/ima5-Deadpool-var -v
Commande pour démarrer la machine virtuelle :
xl create /etc/xen/Deadpool.cfg
Commande pour se connecter à la machine virtuelle par console :
xl console Deadpool
Commande pour éteindre la machine virtuelle :
xl shutdown Deadpool
Commande pour détruire la machine virtuelle :
xl destroy Deadpool
Gestion du serveur DAS
Site IBM [1]
Site Hp [2], Maintenance et service G5.
Site Hp [3], Datasheet G5
Site Hp, [4], Datasheet MSA60
Site Hp, [5], Datasheet en Français
Installation des outils HP
Source : http://wiki.csnu.org/index.php/Installation_des_outils_HP_pour_debian
Ajout du dépôt dans /etc/apt/sources.net :
deb http://downloads.linux.hpe.com/SDR/repo/mcp/ jessie/current non-free
Copier / Coller le contenu des clés et les ajouter, liens des clés disponibles à ces adresses :
http://downloads.linux.hpe.com/SDR/hpPublicKey1024.pub http://downloads.linux.hpe.com/SDR/hpPublicKey2048.pub http://downloads.linux.hpe.com/SDR/hpPublicKey2048_key1.pub
Ajout des clefs :
apt-key add ./hpPublicKey1024.pub apt-key add ./hpPublicKey2048.pub apt-key add ./hpPublicKey2048_key1.pub
On met à jour les paquets et on installe l'utilitaire HP hpssacli :
aptitude update aptitude install hp-health hpssacli
Commandes disponibles pour hpssacli : https://oitibs.com/hp-acu-command-line-reference/
Configuration des disques
Après avoir installé l'utilitaire HP pour gérer nos disques, nous pouvons enfin savoir les caractéristiques des baies :
hpssacli ctrl all show config
On obtient alors :
Smart Array P800 in Slot 4 (sn: P98690E9SV10C3) Port Name: 1I Port Name: 2I Port Name: 1E Port Name: 2E Internal Drive Cage at Port 3I, Box 1, OK Internal Drive Cage at Port 4I, Box 1, OK StorageWorks MSA 60 at Port 1E, Box 1, OK array A (SAS, Unused Space: 0 MB) logicaldrive 1 (820.2 GB, RAID 5, OK) physicaldrive 3I:1:1 (port 3I:box 1:bay 1, SAS, 146 GB, OK) physicaldrive 3I:1:2 (port 3I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 3I:1:3 (port 3I:box 1:bay 3, SAS, 146 GB, OK) physicaldrive 3I:1:4 (port 3I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 4I:1:5 (port 4I:box 1:bay 5, SAS, 146 GB, OK) physicaldrive 4I:1:6 (port 4I:box 1:bay 6, SAS, 146 GB, OK) physicaldrive 4I:1:8 (port 4I:box 1:bay 8, SAS, 146 GB, OK) physicaldrive 4I:1:7 (port 4I:box 1:bay 7, SAS, 146 GB, OK, spare) array B (SATA, Unused Space: 0 MB) logicaldrive 2 (1.9 TB, RAID 5, Recovering, 0% complete) logicaldrive 3 (1.9 TB, RAID 5, Ready for Rebuild) logicaldrive 4 (751.2 GB, RAID 5, Ready for Rebuild) physicaldrive 1E:1:1 (port 1E:box 1:bay 1, SATA, 1 TB, OK) physicaldrive 1E:1:2 (port 1E:box 1:bay 2, SATA, 1 TB, OK) physicaldrive 1E:1:4 (port 1E:box 1:bay 4, SATA, 1 TB, OK) physicaldrive 1E:1:5 (port 1E:box 1:bay 5, SATA, 1 TB, OK) physicaldrive 1E:1:6 (port 1E:box 1:bay 6, SATA, 1 TB, OK) physicaldrive 1E:1:11 (port 1E:box 1:bay 11, SATA, 1 TB, Rebuilding) physicaldrive 1E:1:3 (port 1E:box 1:bay 3, SATA, 1 TB, OK, spare) array C (SATA, Unused Space: 0 MB) logicaldrive 5 (1.9 TB, RAID 5, OK) logicaldrive 6 (1.7 TB, RAID 5, OK) physicaldrive 1E:1:7 (port 1E:box 1:bay 7, SATA, 1 TB, OK) physicaldrive 1E:1:8 (port 1E:box 1:bay 8, SATA, 1 TB, OK) physicaldrive 1E:1:9 (port 1E:box 1:bay 9, SATA, 1 TB, OK) physicaldrive 1E:1:10 (port 1E:box 1:bay 10, SATA, 1 TB, OK) physicaldrive 1E:1:12 (port 1E:box 1:bay 12, SATA, 1 TB, OK) physicaldrive 1E:1:3 (port 1E:box 1:bay 3, SATA, 1 TB, OK, spare)
Nous avons supprimé (et formaté) tous les disques logiques liés aux disques physiques du StorageWorks MSA 60
hpssacli ctrl slot=4 ld 6 delete hpssacli ctrl slot=4 ld 5 delete ... hpssacli ctrl slot=4 ld 2 delete
Puis créé un disque logique en RAID 10 avec tous les disques physiques du MSA60 qui sera notre disque réservé pour la sauvegarde des VM
hpssacli ctrl slot=4 create type=ld drives=1E:1:1,1E:1:2,1E:1:3,1E:1:4,1E:1:5,1E:1:6,1E:1:7,1E:1:8,1E:1:9,1E:1:10,1E:1:11,1E:1:12 raid=1+0
Enfin, on s'assure que le disque logique a correctement été généré
array B (SATA, Unused Space: 0 MB) logicaldrive 2 (5.5 TB, RAID 1+0, OK) physicaldrive 1E:1:1 (port 1E:box 1:bay 1, SATA, 1 TB, OK) physicaldrive 1E:1:2 (port 1E:box 1:bay 2, SATA, 1 TB, OK) physicaldrive 1E:1:3 (port 1E:box 1:bay 3, SATA, 1 TB, OK) physicaldrive 1E:1:4 (port 1E:box 1:bay 4, SATA, 1 TB, OK) physicaldrive 1E:1:5 (port 1E:box 1:bay 5, SATA, 1 TB, OK) physicaldrive 1E:1:6 (port 1E:box 1:bay 6, SATA, 1 TB, OK) physicaldrive 1E:1:7 (port 1E:box 1:bay 7, SATA, 1 TB, OK) physicaldrive 1E:1:8 (port 1E:box 1:bay 8, SATA, 1 TB, OK) physicaldrive 1E:1:9 (port 1E:box 1:bay 9, SATA, 1 TB, OK) physicaldrive 1E:1:10 (port 1E:box 1:bay 10, SATA, 1 TB, OK) physicaldrive 1E:1:11 (port 1E:box 1:bay 11, SATA, 1 TB, OK) physicaldrive 1E:1:12 (port 1E:box 1:bay 12, SATA, 1 TB, OK)
Montage du disque de sauvegarde sur le serveur Debian
Les disques logiques et leurs partitions sont répertoriés à l'emplacement suivant :
ls /dev/cciss/
c0d0 c0d0p1 c0d0p2 c0d0p5 c0d0p6 c0d0p7 c0d0p8 c0d1
Ici, c0d0 représente le disque logique (p1,p2,...,p8 les partitions) où est installé Debian (disques physiques liés à la station DL380 G5).
On retrouve notre disque logique (disques physiques liés au MSA60) créé précédemment identifié c0d1 :
fdisk -l /dev/cciss/c0d1
Disque /dev/cciss/c0d1 : 5,5 TiB, 6001026883584 octets, 11720755632 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets
On transforme notre disque logique en partition ext4 :
mkfs.ext4 /dev/cciss/c0d1
On créer le dossier qui servira de point de montage, puis on monte notre partition dans celui-ci :
mkdir /backup mount -t auto /dev/cciss/c0d1 /backup
Afin de monter automatiquement notre partition à chaque démarrage, il suffit d'ajouter la ligne suivante dans fstab :
vi /etc/fstab
/dev/cciss/c0d1 /backup ext4 defaults 0 2
Après redémarrage du serveur, on vérifie si notre disque logique est monté automatiquement :
df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur /dev/cciss/c0d0p1 8,2G 881M 6,9G 12% / udev 10M 0 10M 0% /dev tmpfs 775M 456K 775M 1% /run tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 4,8G 0 4,8G 0% /run/shm /dev/cciss/c0d0p8 781G 69M 741G 1% /home /dev/cciss/c0d0p7 360M 2,1M 335M 1% /tmp /dev/cciss/c0d0p5 2,7G 339M 2,3G 14% /var /dev/cciss/c0d1 5,5T 58M 5,2T 1% /backup
Script and cie
Tests d'intrusion
Cassage de clef WEP
Via airodump-ng, on liste les réseaux wi-fi protégés par WEP :
airodump-ng --encrypt wep wlx40a5ef01370a
wlx40a5ef01370a représente ici notre interface réseau (équivalant à wlan0 par exemple)
On obtient la liste des réseaux wi-fi suivante :
[ CH 5 ][ Elapsed: 2 mins ][ 2016-11-07 10:30 ][ WPA handshake: 04:DA:D2:CF:01:93 ] BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 44:AD:D9:5F:87:00 -50 73 0 0 11 54e. WEP WEP Wolverine 04:DA:D2:9C:50:51 -64 90 0 0 13 54e. WEP WEP cracotte02 04:DA:D2:9C:50:53 -67 58 0 0 13 54e. WEP WEP cracotte04 04:DA:D2:9C:50:59 -68 85 0 0 13 54e. WEP WEP cracotte10 04:DA:D2:9C:50:56 -74 88 1329 17 13 54e. WEP WEP cracotte07 04:DA:D2:9C:50:52 -75 87 2279 14 13 54e. WEP WEP cracotte03 04:DA:D2:9C:50:58 -75 87 1751 14 13 54e. WEP WEP cracotte09 04:DA:D2:9C:50:57 -75 86 1293 7 13 54e. WEP WEP cracotte08 04:DA:D2:9C:50:54 -76 88 1460 15 13 54e. WEP WEP cracotte05 04:DA:D2:9C:50:50 -76 80 1345 11 13 54e. WEP WEP cracotte01 04:DA:D2:9C:50:55 -76 83 1501 10 13 54e. WEP WEP cracotte06 00:3A:7D:12:DC:F2 -1 0 0 0 6 -1 <length: 0>
On lance le monitoring sur le réseau que l'on souhaite cracker :
airodump-ng --essid cracotte07 --channel 13 -w testcrack wlx40a5ef01370a
[ CH 13 ][ Elapsed: 1 min ][ 2016-11-07 10:46 ] BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9C:50:56 -72 12 608 8283 91 13 54e. WEP WEP cracotte07
Nous pouvons ensuite lancer le crackage à l'aide de aircrack-ng :
aircrack-ng testcarck-03.cap
Aircrack-ng 1.2 beta3 [00:00:00] Tested 84483 keys (got 35490 IVs) KB depth byte(vote) 0 0/ 5 EE(46080) EF(44032) 53(43008) 7B(43008) FC(43008) 1 3/ 15 EE(41984) 8D(41728) DD(41472) 16(41216) 28(41216) 2 0/ 2 EE(47616) 29(45824) C9(43776) 27(43264) 42(43008) 3 0/ 10 EE(44800) A9(44288) 15(43264) C5(42496) 2C(42496) 4 0/ 1 EE(49920) 2A(45312) 9D(43520) DA(43008) FD(41216) 5 0/ 4 EE(45312) A1(43520) C6(42240) E8(42240) 76(41472) 6 0/ 1 EE(50944) 98(42496) BB(42496) 4C(41728) B3(41728) 7 0/ 1 EE(54272) D3(42752) 19(42240) 08(41984) 58(41984) 8 5/ 8 F4(41216) 39(40960) 5E(40960) D7(40960) 1E(40704) 9 1/ 2 E4(45312) 51(43264) A7(42752) 5F(41984) CA(41728) 10 0/ 1 44(51200) 12(43264) CD(41984) 9C(41216) E5(41216) 11 0/ 1 44(50176) B0(42240) D2(41728) DC(41728) 62(41472) 12 0/ 1 44(47872) 0B(44032) B4(42752) D9(42496) 43(41728) KEY FOUND! [ EE:EE:EE:EE:EE:EE:EE:EE:EE:E4:44:44:44 ] Decrypted correctly: 100%
La clé est décrypté en quelques secondes !
Cassage de clef WPA-PSK par force brute
airmon-ng start wlx40a5ef01370a crunch 8 8 0123456789 > dico.txt airmon-ng check kill airodump-ng --encrypt wpa wlx40a5ef01370a
[ CH 3 ][ Elapsed: 8 s ][ 2016-11-07 11:30 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9D:82:A2 -75 2 0 0 4 54e. WPA2 CCMP PSK <length: 1> 00:19:07:C5:0F:A6 -62 7 0 0 1 54e. WPA2 CCMP MGT <length: 1> 00:19:07:C5:0F:A0 -63 6 4 0 1 54e. WPA2 CCMP MGT LILLE1 00:19:07:C5:0F:A5 -62 6 0 0 1 54e. WPA2 CCMP PSK <length: 1> 00:19:07:C5:0F:A3 -64 7 0 0 1 54e. WPA2 CCMP PSK PolytechGuests 00:19:07:C5:0F:A7 -62 6 0 0 1 54e. WPA2 CCMP MGT PolytechLilleStaff 00:19:07:C5:0F:A2 -63 7 0 0 1 54e. WPA2 CCMP PSK <length: 1> 00:19:07:C5:0F:A8 -62 6 4 0 1 54e. WPA2 CCMP MGT eduroam 00:19:07:C5:0F:A4 -63 8 2 0 1 54e. WPA2 CCMP MGT PolytechLille 00:19:07:C5:0F:A1 -64 8 6 1 1 54e. WPA2 CCMP MGT <length: 1> 04:DA:D2:9C:50:58 -70 6 0 0 13 54e. WPA2 CCMP PSK cracotte09 04:DA:D2:9C:50:50 -71 6 0 0 13 54e. WPA2 CCMP PSK cracotte01 04:DA:D2:9C:50:55 -71 6 0 0 13 54e. WPA2 CCMP PSK cracotte06 04:DA:D2:9C:50:53 -71 7 0 0 13 54e. WPA2 CCMP PSK cracotte04 04:DA:D2:9C:50:57 -71 7 0 0 13 54e. WPA2 CCMP PSK cracotte08 04:DA:D2:9C:50:51 -72 9 0 0 13 54e. WPA2 CCMP PSK cracotte02 04:DA:D2:9C:50:56 -72 9 0 0 13 54e. WPA2 CCMP PSK cracotte07 04:DA:D2:9C:50:52 -72 8 0 0 13 54e. WPA2 CCMP PSK cracotte03 04:DA:D2:9C:50:59 -71 8 0 0 13 54e. WPA2 CCMP PSK cracotte10
airodump-ng --essid cracotte03 -c 13 --bssid 04:DA:D2:9C:50:52 -w dump wlx40a5ef01370a
[ CH 13 ][ Elapsed: 4 mins ][ 2016-11-07 11:36 ][ WPA handshake: 04:DA:D2:9C:50:52 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9C:50:52 -74 9 2573 259 0 13 54e. WPA2 CCMP PSK cracotte03 BSSID STATION PWR Rate Lost Frames Probe 04:DA:D2:9C:50:52 00:0F:B5:92:23:6A -58 1e- 1e 0 185
#aireplay-ng --deauth=5 -a 04:DA:D2:9C:50:52
result ?
puis on lance le décodage avec le dico
aircrack-ng dump-03.cap -w dico.txt -l KEY
result
Services Internet
Serveur SSH
Serveur DNS
Configuration sur la VM
Nous avons d'abord réservé sur Gandi notre nom de domaine : piscinemorte.net
Ensuite, nous avons installé les paquets apache et bind
apt-get update apt-get install apache2 bind9
Une fois bind installé, on créer un fichier de zone db.piscinemorte.net (//TODO Expliquer à quoi ça sert):
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns.piscinemorte.net. root.piscinemorte.net ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS ns.piscinemorte.net. ns IN A 193.48.57.163 www IN A 193.48.57.163
Notre DNS (ns) a pour adresse 193.48.57.163, c'est à dire l'IP de notre machine virtuelle.
Enfin, nous configurons le fichier named.conf.local pour autoriser le transfert de paquets vers le DNS Esclave (l'adresse de Gandi dans notre cas) :
zone "piscinemorte.net" { type master; file "/etc/bind/db.piscinemorte.net"; allow-transfer {217.70.177.40;}; };
Pour finir, on redémarre notre service bind :
service bind9 restart
Configuration sur Gandi
Sur le site Gandi, depuis la gestion des domaines, nous avons du :
> Gérer les 'glue records'
'Nom du serveur' : ns.piscinemorte.net 'IP' : 193.48.57.163
> Modifier les serveurs DNS
'DNS1' : ns.piscinemorte.net 'DNS2' : ns6.gandi.net
Sécurisation de site web par certificat
Pour avoir un certificat SSL généré Gandi, nous avons généré un CSR de la façon suivante :
openssl req -nodes -newkey rsa:2048 -sha1 -keyout piscinemorte.net.key -out piscinemorte.net.csr
Nous avons complété les différentes informations demandés (pas vraiment important ici) :
Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Nord Locality Name (eg, city) []:Lille Organization Name (eg, company) [Internet Widgits Pty Ltd]:piscinemorte.net Organizational Unit Name (eg, section) []:piscinemorte.net Common Name (e.g. server FQDN or YOUR name) []:piscinemorte.net
Une fois notre certificat généré et validé par Gandi, nous plaçons nos fichiers de certification dans les dossiers adéquates :
cp piscinemorte.net.crt /etc/ssl/certs/piscinemorte.net.crt cp piscinemorte.net.key /etc/ssl/private/piscinemorte.net.key cp GandiStandardSSLCA2.pem /etc/ssl/certs/GandiStandardSSLCA2.pem
On notera que GandiStandardSSLCA2.pem est un certificat intermédiaire qui permet de certifier notre certificat.
Nous refaisons un hashage de la structure pour prendre en compte notre certificat :
c_rehash /etc/ssl/certs
Doing /etc/ssl/certs piscinemorte.net.crt => 651ac028.0 piscinemorte.net.crt => 179c2ae2.0 GandiStandardSSLCA2.pem => 8544bf03.0 GandiStandardSSLCA2.pem => e279a80b.0 ssl-cert-snakeoil.pem => ac2485cc.0 ssl-cert-snakeoil.pem => 1682ec15.0
//TODO : port.conf fait, faire 000 -ssl.conf