« Atelier SysRes SE4 2025/2026 E7 » : différence entre les versions
| (23 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 146 : | Ligne 146 : | ||
zone "rs7.online" { | zone "rs7.online" { | ||
type secondary; | type secondary; | ||
file "/etc/bind/backup.c2vts | file "/etc/bind/backup.c2vts.zone"; | ||
primaries { 2001:660:4401:60a0:216:3eff:fed3:d693; }; | primaries { 2001:660:4401:60a0:216:3eff:fed3:d693; }; | ||
}; | }; | ||
| Ligne 176 : | Ligne 176 : | ||
</syntaxHighlight> | </syntaxHighlight> | ||
Pour vérifier le fichier de zone: | |||
<code>named-checkzone c2vts.zone</code> | |||
=== DNSSEC: === | === DNSSEC: === | ||
Pour activer le DNSSEC, il faut l'activer depuis Gandi et rajouter dans <code>named.conf.local</code>: | Pour activer le DNSSEC, il faut l'activer depuis Gandi et rajouter dans <code>named.conf.local</code>: | ||
<syntaxHighlight> | <syntaxHighlight> | ||
zone "c2vts.zone"{ | |||
... | |||
dnssec-policy "dnspol"; | dnssec-policy "dnspol"; | ||
inline-signing yes; | inline-signing yes; | ||
... | |||
}; | |||
dnssec-policy "dnspol" { | |||
keys { | |||
ksk key-directory lifetime unlimited algorithm 13; | |||
zsk key-directory lifetime unlimited algorithm 13; | |||
}; | |||
nsec3param; | |||
}; | |||
</syntaxHighlight> | </syntaxHighlight> | ||
Ne pas oublier de rendre propriétaire le dossier<code>keys</code> pour que bind écrive les clés. | |||
<code>chown bind:bind /etc/bind/keys</code> | |||
On relance bind avec <code>service named restart</code> | |||
=== Propagation: === | === Propagation: === | ||
[[Fichier:Propagation A c2vts.fr.png|vignette|Propagation A|gauche|467x467px]] | |||
[[Fichier:Propagation NS c2vts.fr.png|vignette|Propagation NS]] | |||
[[Fichier:Propagation AAAA c2vts.fr.png|vignette|458x458px|Propagation AAAA|centré]] | |||
[[Fichier:DNSSEC c2vts.fr.png|vignette|459x459px|DNSSEC|centré]] | |||
== Fail2ban == | |||
J'installe <code>fail2ban</code> et pour bloquer les tentatives de connexion par SSH, dans <code>/etc/fail2ban/jail.local</code>: | |||
<syntaxHighlight> | |||
[sshd] | |||
enabled = true | |||
port = ssh | |||
filter = sshd | |||
logpath = %(sshd_log)s | |||
backend = %(sshd_backend)s | |||
maxretry = 3 | |||
findtime = 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> | |||
Je spécifie quel type de paquets vers mon DNS je veux bloquer dans <code>/etc/fail2ban/filter.d/connect-refused.conf</code>: | |||
<syntaxHighlight> | |||
[Definition] | |||
failregex = .* client_ip=<HOST>.*(NXDOMAIN|SERVFAIL|REFUSED).* | |||
ignoreregex = | |||
</syntaxHighlight> | |||
En redémarrant <code>fail2ban</code>, je peux voir l'état de mes règles avec <code>fail2ban-client status <NOM DE LA REGLE></code>: | |||
[[Fichier:Fail2ban service c2.png|centré|vignette|425x425px|Etat du fail2ban]] | |||
== HTTP == | |||
=== Apache2 === | |||
J'installe <code>Apache2</code> et j'active SSL avec <code>a2enmod ssl</code>. | |||
Dans <code>/etc/apache2/ports.conf</code>: | |||
<syntaxHighlight> | |||
Listen 80 | |||
Listen 443 | |||
</syntaxHighlight> | |||
=== Certificats SSL === | |||
J'ai généré mes certificats sur Gandi: | |||
<code>c2vts.fr.crt c2vts.fr.key c2vts.fr.pem</code> | |||
Mon fichier de configuration <code>/etc/apache2/sites-available/c2vts.fr.conf</code>: | |||
<syntaxHighlight> | |||
<VirtualHost *:80> | |||
ServerName c2vts.fr. | |||
ServerAlias www.c2vts.fr. | |||
Redirect permanent / https://c2vts.fr/ | |||
</VirtualHost> | |||
<VirtualHost *:443> | |||
ServerName c2vts.fr. | |||
DocumentRoot /var/www/c2vts.fr | |||
SSLEngine on | |||
SSLCertificateFile /etc/ssl/certs/c2vts.fr.crt | |||
SSLCertificateKeyFile /etc/ssl/certs/c2vts.fr.key | |||
SSLCertificateChainFile /etc/ssl/certs/c2vts.fr.pem | |||
SSLVerifyClient None | |||
ProxyPass / https://c2vts.fr/ | |||
ProxyPassReverse / https://c2vts.fr/ | |||
<Directory /var/www/c2vts.fr> | |||
AllowOverride All | |||
Require all granted | |||
</Directory> | |||
ErrorLog ${APACHE_LOG_DIR}/c2vts.fr_error.log | |||
CustomLog ${APACHE_LOG_DIR}/c2vts.fr_access.log combined | |||
</VirtualHost> | |||
</syntaxHighlight> | |||
== Effraction WiFi == | == Effraction WiFi == | ||
Version actuelle datée du 28 février 2026 à 01:49
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 downCré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 --dhcpEnsuite créer les partitions var et home:
lvcreate -L10G -nSE4.C2.home virtual
lvcreate -L10G -nSE4.C2.var virtualLes 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 -aConfiguration 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 autoRelancer 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:ffConnectivité à 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 autoDans 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 autoJe peux ping la machine de mon binôme et google.
SSH
Pour permettre la connexion via SSH, j'ai installé ssh et j'ai commenté la ligne PermitRootLogin dans /etc/ssh/sshd_config.
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.8Dans 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:
Fail2ban
J'installe fail2ban et pour bloquer les tentatives de connexion par SSH, dans /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
findtime = 600
bantime = 600Pour le DNS:
[connect-refused]
enabled = true
port = domain
protocol = tcp
filter = connect-refused
logpath = /var/log/syslog
maxretry = 3
bantime = 600
findtime = 600Je spécifie quel type de paquets vers mon DNS je veux bloquer dans /etc/fail2ban/filter.d/connect-refused.conf:
[Definition]
failregex = .* client_ip=<HOST>.*(NXDOMAIN|SERVFAIL|REFUSED).*
ignoreregex =En redémarrant fail2ban, je peux voir l'état de mes règles avec fail2ban-client status <NOM DE LA REGLE>:
HTTP
Apache2
J'installe Apache2 et j'active SSL avec a2enmod ssl.
Dans /etc/apache2/ports.conf:
Listen 80
Listen 443Certificats SSL
J'ai généré mes certificats sur Gandi:
c2vts.fr.crt c2vts.fr.key c2vts.fr.pem
Mon fichier de configuration /etc/apache2/sites-available/c2vts.fr.conf:
<VirtualHost *:80>
ServerName c2vts.fr.
ServerAlias www.c2vts.fr.
Redirect permanent / https://c2vts.fr/
</VirtualHost>
<VirtualHost *:443>
ServerName c2vts.fr.
DocumentRoot /var/www/c2vts.fr
SSLEngine on
SSLCertificateFile /etc/ssl/certs/c2vts.fr.crt
SSLCertificateKeyFile /etc/ssl/certs/c2vts.fr.key
SSLCertificateChainFile /etc/ssl/certs/c2vts.fr.pem
SSLVerifyClient None
ProxyPass / https://c2vts.fr/
ProxyPassReverse / https://c2vts.fr/
<Directory /var/www/c2vts.fr>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/c2vts.fr_error.log
CustomLog ${APACHE_LOG_DIR}/c2vts.fr_access.log combined
</VirtualHost>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.
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.



