MAC address spoofing (Français)
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
où 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
Où 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
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"
où 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/[email protected]
[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/[email protected]
[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, [email protected]
).
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
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
- Wikipedia:MAC spoofing
- Page GitHub de Macchanger]
- Article sur DebianAdmin avec plus d'options macchanger.