MAC address spoofing (Français)

From ArchWiki
État de la traduction: Cet article est la version francophone de MAC address spoofing. Date de la dernière traduction: 2022-10-06. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

Cet article liste plusieurs méthodes pour modifier une adresse MAC (Media Access Control).

Manuellement

Il y a deux méthodes pour modifier manuellement une adresse MAC: en installant iproute2 ou macchanger. Tous deux sont décris plus bas.

iproute2

Tout d'abord, vous pouvez vérifier votre adresse MAC actuelle avec la commande :

# ip link show interface

interface est le nom de votre interface réseau.

La section qui nous intéresse pour le moment est celle qui comporte "link/ether" suivi d'un nombre de 6 octets. Elle ressemblera probablement à quelque chose comme ceci :

link/ether 00:1d:98:5a:d1:3a

La première étape pour usurper l'adresse MAC est de mettre l'interface réseau hors service. Cela peut être accompli avec la commande :

# ip link set dev interface down

Ensuite, nous usurpons réellement notre MAC. N'importe quelle valeur hexadécimale fera l'affaire, mais certains réseaux peuvent être configurés pour refuser d'attribuer des adresses IP à un client dont le MAC ne correspond à aucun des fournisseurs connus. Par conséquent, à moins que vous ne contrôliez le(s) réseau(x) auquel(s) vous vous connectez, utilisez le préfixe MAC de n'importe quel fournisseur réel (en gros, les trois premiers octets), et utilisez des valeurs aléatoires pour les trois octets suivants. Pour plus d'informations, veuillez lire Wikipedia:fr:Organizationally Unique Identifier.

Pour changer le MAC, nous devons exécuter la commande :

# ip link set dev interface address XX:XX:XX:XX:XX:XX

Où n'importe quelle valeur de 6 octets suffira pour XX:XX:XX:XX:XX.

La dernière étape consiste à remettre en service l'interface réseau. Ceci peut être accompli en exécutant la commande :

# ip link set dev interface up

Si vous voulez vérifier que votre MAC a été usurpé, exécutez simplement ip link show interface à nouveau et vérifiez la valeur de 'link/ether'. Si cela a fonctionné, 'link/ether' devrait être l'adresse que vous avez décidé de changer.

macchanger

Une autre méthode utilise macchanger (alias GNU MAC Changer). Celui-ci fournit diverses fonctionnalités, telles que modifier une adresse pour correspondre à un certain fabriquant ou même de la rendre complètement aléatoire.

Installez le paquet macchanger.

Le changement s'effectue par interface, spécifiez le nom de l'interface réseau en remplacement de interface dans chacune des commandes suivantes.

Pour un changement vers une adresse complètement aléatoire:

# macchanger -r interface

Pour rendre aléatoire uniquement les octets spécifiques au fabriquant du matériel de l'adresse MAC courante (c'est-à-dire pour que la carte réseau apparaisse toujours comme étant de la même marque en cas de vérification), utilisez la commande:

# macchanger -e interface

Pour modifier l'adresse vers une valeur spécifique:

# macchanger --mac=XX:XX:XX:XX:XX:XX interface

XX:XX:XX:XX:XX:XX est l'adresse MAC que vous désirez utiliser.

Enfin, pour revenir à la valeur originale, inscrite dans le hardware:

# macchanger -p interface
Note: Un périphérique ne peut pas être «en cours d'utilisation» (connecté d'une quelconque façon ou avec une interface «up») lors du changement d'adresse MAC.

Automatiquement

systemd-networkd

systemd-networkd prend en charge l'usurpation d'adresse MAC via link files. (consultez systemd.link(5) pour plus de détails).

Pour définir une adresse MAC statique usurpée :

/etc/systemd/network/00-default.link
[Match]
MACAddress=original MAC

[Link]
MACAddress=spoofed MAC
NamePolicy=kernel database onboard slot path

Pour rendre l'adresse MAC aléatoire à chaque démarrage, définissez MACAddressPolicy=random au lieu de MACAddress=spoofed MAC.

systemd-udevd

udev vous permet d'effectuer une usurpation d'adresse MAC en créant des règles udev. Utilisez l'attribut address pour faire correspondre le périphérique correct à son adresse MAC originale et la modifier à l'aide de la commande ip :

/etc/udev/rules.d/81-mac-spoof.rules
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/usr/bin/ip link set dev $name address YY:YY:YY:YY:YY:YY:YY"

XX:XX:XX:XX:XX:XX est l'adresse MAC originale et YYY:YY:YY:YY:YY est la nouvelle, utilisez les minuscules pour l'adresse MAC.

Unité systemd

Création d'une unité

Vous trouverez ci-dessous deux exemples d'unités systemd pour changer une adresse MAC au démarrage, l'une définit un MAC statique en utilisant ip et l'autre utilise macchanger pour attribuer une adresse MAC aléatoire. Le network-pre.target de systemd est utilisé pour s'assurer que le MAC est changé avant le démarrage d'un gestionnaire de réseau comme Netctl ou NetworkManager, du service systemd-networkd ou dhcpcd.

iproute2

L'unité systemd définit une adresse MAC prédéfinie :

/etc/systemd/system/macspoof@.service
[Unit]
Description=MAC Address Change %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
ExecStart=/usr/bin/ip link set dev %i address 36:aa:88:c8:75:3a
ExecStart=/usr/bin/ip link set dev %i up

[Install]
WantedBy=multi-user.target
macchanger

L'unité systemd définit une adresse aléatoire tout en préservant les octets d'origine du vendeur de la carte réseau. Assurez-vous que macchanger est installé :

/etc/systemd/system/macspoof@.service
[Unit]
Description=macchanger on %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
ExecStart=/usr/bin/macchanger -e %I
Type=oneshot

[Install]
WantedBy=multi-user.target

Une adresse aléatoire complète peut être définie en utilisant l'option -r, consultez #macchanger.

Activer le service

Ajoutez l'interface réseau souhaitée au nom du service (par exemple, eth0) et activez le service (par exemple, macspoof@eth0.service).

Redémarrez, ou arrêtez et démarrez les services prérequis et requis dans l'ordre approprié. Si vous avez le contrôle de votre réseau, vérifiez que le MAC usurpé a été détecté par votre routeur en examinant les tables d'adresses statiques ou DHCP du routeur.

netctl interfaces

Vous pouvez utiliser un netctl hook pour exécuter une commande chaque fois qu'un profil netctl est relancé pour une interface réseau spécifique. Remplacez interface en conséquence :

/etc/netctl/interfaces/interface
#!/usr/bin/env sh
/usr/bin/macchanger -r interface

Rendez le script exécutable.

Source : akendo.eu[dead link 2023-05-06 ⓘ]

NetworkManager

Consultez NetworkManager (Français)#Configuration de la randomisation des adresses MAC.

wpa_supplicant

wpa_supplicant peut utiliser une adresse MAC aléatoire pour chaque connexion ESS (AP) (consultez [1] pour plus de détails).

Ajoutez ceci à votre configuration :

/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
mac_addr=1
preassoc_mac_addr=1
gas_rand_mac_addr=1

iwd

Pour randomiser l'adresse MAC au démarrage de iwd (consultez iwd.config(5) pour plus de détails) :

/etc/iwd/main.conf
[General]
AddressRandomization=once
AddressRandomizationRange=nic

La spécification de AddressRandomizationRange permet de contrôler la partie de l'adresse qui est randomisée. Si la valeur nic est définie, seuls les octets spécifiques à la carte réseau (les trois derniers octets) sont randomisés. L'adresse mac permanente de l'interface réseau est utilisée pour les 3 premiers octets. Si la valeur full est utilisée, les six octets de l'adresse sont randomisés.

Dépannage

La connexion à un réseau DHCPv4 échoue

Si vous ne pouvez pas vous connecter à un réseau DHCPv4 et que vous utilisez dhcpcd, qui est la valeur par défaut de NetworkManager, vous devrez peut-être modifier la configuration de dhcpcd pour obtenir un bail.

Voir aussi