TP sysres IMA5sc 2019/2020 G6

De Wiki d'activités IMA
Révision datée du 17 décembre 2019 à 11:57 par Bmuzakar (discussion | contributions) (configuration du serveur dns)

1ère séance

Choix du nom de domaine

Sur le site gandi.net, j'ai acheté le nom de mon domaine qui est: blennoragie.site.

Installation de la machine virtuelle Xen

Via une connection en SSH à cordouan.insecserv.deule.net, j'ai installé l'image de la machine virtuelle Xen par la commande suivante

   xen-create-image --hostname=blennoragie --dhcp -- dir=/usr/local/xen

le paramètre hostname spécifie le nom de ma machine(blennoragie) et les disques virtuels sont stockés dans le répertoire(/usr/local/xen). L'adresse IP et le masque de sous réseau de la machine ont été générés automatiquement dans un premier temps mais seront modifiés par la suite.

L'adresse MAC obtenue est : 00:16:3E:D6:E1:DF

2ème séance

Ce TP a pour but de tester les différentes méthodes de sécurisation du réseau WIFI.

Dans un premier temps je vais tenter d'infiltrer le réseau en décryptant le mot de passe de la clef WEP. Ensuite, je vais tester une autre méthode, qui

consiste à craquer le mot de passe WPA-PSK par force brute.

cassage de la clef WEP d'un point d'accès Wifi

Cette partie a été réalisé sur une machine sur laquelle on a branché une clé WIFI. J'ai commencé par installé aircrack-ng, l'outil qui me servira à cracker les différentes clefs.

On commence tout d'abord par repérer le nom de l'interface du réseau sans fil

  airmon-ng 

On place cet interface en mode monitor. Dans mon cas le nom de l' interface est wlan0.

 airmon-ng start wlan0mon

Une fois, l'interface wifi passée en mode monitor, on écoute les trames WIFI qui circulent sur le réseau :

  airodump-ng --encrypt wep wlan0mon


On capture les paquets émis par le point d'accès WIFI cracotte06. Pour cela il faut renseigner l'adresse Mac BSSID du client connecté sur cracotte06 (04:DA:D2:9C:50:55) et le numéro du canal qui est 2 dans notre cas. On sauvegarde les paquets capturés dans le fichier craquage.txt

  airodump-ng craquag.txt -c 2 --bssid  04:DA:D2:9C:50:55 wlan0mon

Enfin je réalise le cassage de la clef WEP:

  aircrack-ng craquage.txt.cap

Pour décrypter la clef il a fallu capturer 30 000 paquets et testé 673 clefs ce qui aura pris 5 minutes.

     KEY FOUND! [F1:CA:C4:00:00:00:00:00:00:00:99:99:99]
     Decrypted correctly:100%

cassage de la clef WAP

On suppose préalablement que le mot de passe de la clef WAP est un nombre à 8 chiffres. On répertorie les trames WIFI qui circulent sur le réseau:

    airmon-ng

Je choisi de cibler le réseau kracotte02 dont le BSSID est 04:DA:D2:9C:50:59 et le canal 2. Je le surveille et j'enregistre les paquets qu'il émet dans le fichier psk.

   airodump-ng -c 2 --bssid 04:DA:D2:9C:50:59 wlp3s0mon -w psk wlan0mon

. Pour réussir à déchiffrer le mot de passe du réseau, on doit attendre de capturer un Handshake. Ce dernier se produit chaque fois qu'un périphérique se connecte sur le réseau.

Avant de craquer le mot de passe de la clef WPA, on crée d'abord un dictionnaire que je nomme dico.txt contenant tous les mots de passe à 8 chiffres.

      crunch 8 8 0123456789 -o dico.txt

Une fois le dictionnaire créer, on peut craquer le mot de passe de la clef WAP:

     aircrack-ng psk.cap -w dico.txt


Comme vous pouvez le constater, le décryptage du mot de passe de la clef WAP a pris 51 minutes au cours desquels 20111108 clefs ont été testé sur les 102795810 présents dans le dictionnaire.

4 ème séance

Génération d'un certificat

On commence par saisir la commande suivante dans la machine virtuelle xen :

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

2 fichiers sont générés à la suite de cette commande:

  • myserver.key: c'est la clef privée
  • myserver.csr: Le fichier qui me servira pour faire ma demande de certificat

Je me rend ensuite sur le site Gandi pour acheter mon certificat et en partageant les informations se trouvant dans le fichier myserver.csr.

Installation d'une machine virtuelle secondaire

Dans cordouan on commence par créer une 2ème machine virtuelle Xen privée(private-blennoragie) avec l'adresse ip 192.168.0.6:

 mettre la commande 

On crée un commutateur virtuel sur corduan :bridge IMA5sc .On lie ensuite les deux machines machines virtuelles à ce nouveau commutateur.

On ajoute une 2ème interface eth1 sur la machine virtuelle principale(blennoragie):

The second network interface
auto eth1
iface eth1 inet static
address 192.168.0.16
netmask 255.255.255.0

Mise en place de la mascarade

On met en place une mascarade sur la machine principale pour permettre à la machine secondaire d'avoir accès à internet.

iptables -P FORWARD DROP
iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24
iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

Sur la machine secondaire je fait un ping google.fr pour vérifier si elle est bien connecté et le test est validé.

On installe iptables-persistent et ensuite on se rend dans le fichier /etc/sysctl.conf pour décommenter la ligne: net ipv4:ip-forward=1

propagation de la clef public

On commence par générer une clef asymétrique

ssh-keygen -t rsa

J'installe ma clef public sur ma cible qui prendra comme valeur l'adresse ip e toutes les machines secondaires.

cat .ssh/id_rsa.pub | ssh 192.168.0.1 "cat >> /root/.ssh/authorized_keys2" 
cat .ssh/id_rsa.pub | ssh 192.168.0.2 "cat >> /root/.ssh/authorized_keys2"
cat .ssh/id_rsa.pub | ssh 192.168.0.3 "cat >> /root/.ssh/authorized_keys2"
cat .ssh/id_rsa.pub | ssh 192.168.0.4 "cat >> /root/.ssh/authorized_keys2"
cat .ssh/id_rsa.pub | ssh 192.168.0.5 "cat >> /root/.ssh/authorized_keys2"
cat .ssh/id_rsa.pub | ssh 192.168.0.6 "cat >> /root/.ssh/authorized_keys2" 

Ansible

Toujours dans la machine principale, j'installe ansible avec apt-get install ansible. J'edite le fichier /etc/ansible/hosts avec les paramètres suivant:

 all:
hosts:
 interne:
  ansible_host:  192.168.0.6
children:
 serveur-web:
  hosts:
   192.168.0.1:
   192.168.0.2:
   192.168.0.3:
   192.168.0.4:
   192.168.0.5:
   192.168.0.6:


pour vérifier la communication avec tout le parc informatique:

ansible all -a "uname -a"

Ansible playbook

Une fois l'inventaire du parc informatique correctement installé, je teste l'execution d'une simple tâche par ansible.

---
- hosts: interne
 tasks:
 - name: configuration file
   copy:
    src: "motd"
    dest: "/etc/motd"
    owner: root
    group: root
    mode: '0644'

installation de docker

dockerfile

FROM httpd
MAINTAINER ReX
COPY blennoragie/index.html /usr/local/apache2/htdocs/
EXPOSE 80

le fichier ansible pour balancer le docker

hosts: serveur-web
 tasks:
   - name: Creating destination folder
     shell: mkdir -p /tmp/docker/blennoragie
   - name: Copying Website files
     copy:
       src: "index.html"
       dest: "/tmp/docker/blennoragie/index.html"
       owner: root
       group: root
       mode: '0777'
   - name: Copying Dockerfile
     copy:
       src: "docker/Dockerfile"
       dest: "/tmp/docker/Dockerfile"
       owner: root
       group: root
       mode: '0644'
   - name: Install pip
     apt: name=python-pip state=present
   - name: install docker package
     pip: name=docker
   - name: Build Docker image from Dockerfile
     docker_image:
       name: blennoragie
       path: /tmp/docker/
       state: build
   - name: Running the container
     docker_container:
       image: blennoragie:latest
       state: started
       recreate: yes
       name: blennoragiecontainer
       ports: "8006:80"
   - name: Check if container is running
     shell: docker ps

mandataire inverse

<VirtualHost *:80>

  ServerName www.blennoragie.site
  <Proxy balancer://blenno>
    BalancerMember http://192.168.0.1:8006/
    BalancerMember http://192.168.0.2:8006/
  </Proxy>
  ProxyPass / balancer://blenno
  ProxyPassReverse / balancer://blenno

</VirtualHost>

5ème seance

configuration du serveur dns

le fichier named.conf

zone "blennoragie.site" {
       type master;                                                                                                            
       file "/etc/bind/db.blennoragie.site.signed";                                                                                
       allow-transfer {217.70.177.40;};                                                                                
};

db.blennoragie.site

@       IN      SOA     ns.blennoragie.site. root.blennoragie.site (                                                                                    
                       5      ; Serial                                                                                                        
                       604800  ; Refresh                                                                                                       
                       86400   ; Retry                                                                                                         
                       2419200 ; Expire                                                                                                        
                       604800 )        ; Negative Cache TTL                                                            

IN NS ns.blennoragie.site. IN NS ns6.gandi.net.

ns      IN      A       193.48.57.182                                                                                   
www     IN      A       193.48.57.182                                                                                   
@       IN      A       193.48.57.182

2ème séance

cassage de la clef WEP d'un point accès Wifi