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

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 214 : Ligne 214 :


== Fail2ban ==
== Fail2ban ==
J'installe <code>fail2ban</code> et dans <code>jail.local</code>:
J'installe <code>fail2ban</code> et pour bloquer les tentatives de connexion par SSH, dans <code>jail.local</code>:
<syntaxHighlight>
<syntaxHighlight>
[sshd]
[sshd]
Ligne 225 : Ligne 225 :
findtime = 600
findtime = 600
bantime  = 600
bantime  = 600
</syntaxHighlight>
Pour le DNS:
<syntaxHighlight>
[connect-refused]
enabled  = true
port    = domain
protocol = tcp
filter  = connect-refused
logpath  = /var/log/syslog
maxretry = 3
bantime  = 600
findtime = 600
</syntaxHighlight>
</syntaxHighlight>



Version du 27 février 2026 à 14:09

Mettre en place les VMs

Création du pont:

Dans capbreton, dans /etc/network/interfaces on renseigne notre pont pontclio

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

Création des VM:

Pour créer nos VM avec xen:

xen-create-image --hostname=SE4.C2 --dir=/usr/local/xen --dist=excalibur --size=10GB --memory=1024M --bridge=pontclio --dhcp

Ensuite créer les partitions var et home:

lvcreate -L10G -nSE4.C2.home virtual
lvcreate -L10G -nSE4.C2.var virtual

Les ajouter dans le fichier /etc/xen/SE4.C2:

'phy:/dev/virtual/SE4.C2-home,xvda3,w',
'phy:/dev/virtual/SE4.C2-var,xvdb1,w',

Pour monter le /home et /var:

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

Configuration des VM:

rajouter un vif dans le fichier de configuration de la VM: dans /etc/xen/SE4.C2.cfg :

vif         = [ 'mac=00:16:3E:D3:58:AD,bridge=pontclio', #vif qu'on avait déjà
                'mac=00:16:3E:D3:58:AE,bridge=SE4' ]     #vif ajouté

Ensuite dans la VM ajouter les interfaces dans /etc/network/interfaces :

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.0.3/24
        gateway 192.168.0.1

iface eth1 inet6 auto

Relancer la VM puis après un ifup on remarque que nos interfaces sont actives :

root@C2:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:d3:58:ad brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:d3:58:ae brd ff:ff:ff:ff:ff:ff

Connectivité à internet

Tout d'abord je renomme ma machine par C2

Dans ma machine de service, dans /etc/network/interfaces:

iface eth0 inet static
192.168.7.3
netmask 255.255.255.0
gateway 192.168.7.1

auto eth1
iface eth1 inet6 auto

Dans ma machine mandataire, toujours dans /etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# Primary interface
auto eth0
iface eth0 inet static
    address 192.168.7.1/24

# Second interface
auto eth1
iface eth1 inet static
    address 193.48.57.170/27
    gateway 193.48.57.164

iface eth1 inet6 auto

Je peux ping la machine de mon binôme et google.

Ping vers mon binôme
Ping Ipv4
Ping Ipv6

SSH

Pour permettre la connexion via SSH, j'ai installé ssh et j'ai commenté la ligne PermitRootLogin dans /etc/ssh/sshd_config.

SSH vers ma machine

DNS

Tout d'abord j'installe bind9.

Fichiers de configuration:

Dans /etc/resolv.conf:

search c2vts.fr
nameserver 192.168.7.3
nameserver 192.168.7.2

nameserver 8.8.8.8

Dans le fichier /etc/bind/named.conf.local:

zone "c2vts.fr" {
    type primary;
    file "/etc/bind/zones/c2vts.zone";
    allow-transfer{secondaries;};
    also-notify{2001:660:4401:60a0:216:3eff:fee4:9c08;};
    key-directory "/etc/bind/keys";
};

acl "secondaries" {
    2001:660:4401:60a0:216:3eff:fed3:d693;
    2001:660:4401:60a0:216:3eff:fee4:9c08;
};

zone "rs7.online" {
    type secondary;
    file "/etc/bind/backup.c2vts.zone";
    primaries { 2001:660:4401:60a0:216:3eff:fed3:d693; };
};

Je crée un fichier de zone /etc/bind/zones/c2vts.zone:

$TTL 200
@       IN      SOA     ns.c2vts.fr. admin.c2vts.fr. (
        3610    ; Version
        21600   ; Refresh secondary    (6h)
        3600    ; Retry secondary      (1h)
        2592000 ; Expire if no refresh (30j)
        86400 ) ; Negative cache       (24h)

@        IN      NS      ns.c2vts.fr.
@        IN      NS      ns.rs7.online.

;Enregistrements A 
ns       IN     A     193.48.57.170 
@        IN     A     193.48.57.170

;Enregistrements AAAA
ns       IN     AAAA  2001:660:4401:60a0:216:3eff:fed3:58ae
@        IN     AAAA  2001:660:4401:60a0:216:3eff:fed3:58ae

;Enregistrements CNAME
www      IN     CNAME c2vts.fr.

Pour vérifier le fichier de zone: named-checkzone c2vts.zone

DNSSEC:

Pour activer le DNSSEC, il faut l'activer depuis Gandi et rajouter dans named.conf.local:

zone "c2vts.zone"{
...
dnssec-policy "dnspol";
inline-signing yes;
...
};

dnssec-policy "dnspol" {
    keys {
        ksk key-directory lifetime unlimited algorithm 13;
        zsk key-directory lifetime unlimited algorithm 13;
    };
    nsec3param;
};

Ne pas oublier de rendre propriétaire le dossierkeys pour que bind écrive les clés. chown bind:bind /etc/bind/keys

On relance bind avec service named restart

Propagation:

Propagation A
Propagation NS
Propagation AAAA


DNSSEC

Fail2ban

J'installe fail2ban et pour bloquer les tentatives de connexion par SSH, dans jail.local:

[sshd]
enabled = true
port    = ssh
filter  = sshd
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
findtime = 600
bantime  = 600

Pour le DNS:

[connect-refused]
enabled  = true
port     = domain
protocol = tcp
filter   = connect-refused
logpath  = /var/log/syslog
maxretry = 3
bantime  = 600
findtime = 600

Effraction WiFi

WEP

J'utilise une clef Wi-Pi qui a pour nom d'interface wlx40a5ef0125e9

Pour cracker la clef WPA, on met tout d'abord la Wi-Pi en mode monitor avec airmon-ng start wlx40a5ef0125e9.

On écoute tout le traffic avec airodump-ng wlx40a5ef0125e9 pour repérer le BSSID et le canal de diffusion du point d'accès à cracker, en l'occurence, cracotte07 qui diffuse sur le canal 4 et son BSSID est 04:DA:D2:9C:50:56.

Ensuite on fait une fausse authentification pour s'associer au point, pour cela il suffit de faire aireplay-ng --fakeauth 0 -a 04:DA:D2:9C:50:56 wlx40a5ef0125e9.

On peut maintenant préparer l'injection ARP avec aireplay-ng --arpreplay -b 04:DA:D2:9C:50:56 wlx40a5ef0125e9

Pour récuperer un paquet ARP, on déconnecte un utilisateur pour le forcer à se reconnecter avec aireplay-ng --deauth 0 -a 04:DA:D2:9C:50:56 wlx40a5ef0125e9.

Enfin, on lance le crackage avec aircrack-ng output.cap et plus qu'à attendre la fin du décryptage.

Clef WEP trouvée

WPA

Pour la clef WPA, on récupère le BSSID et le canal du réseau krakotte07 comme avec le WEP, puis on lance le airodump.

La différence avec le WEP c'est qu'ici, on déconnecte des utilisateurs jusqu'à obtenir notre handshake WPA.

Suite à ça, comme on sait que la clef est une succession de 8 chiffres, j'ai crée un dictionnaire avec toutes les combinaisons de 8 chiffres possible dico puis j'ai lancé un crack par force brute avec aircrack-ng -w wpa/dico kracotte07-01.cap

Après un certain temps, la clef est trouvée.

Clef WPA trouvée