Je suppose que parce que vous essayez de changer le HWaddr de votre interface sans fil, vous essayez de faire du pentesting sans fil et vous avez besoin d'usurper votre HWaddr. Eh bien, il y a plusieurs façons de le faire, mais je vais vous donner ma méthode puisque je ne l'ai pas vue incluse ici. Le code bash Shell suivant est un générateur aléatoire de HWaddr très basique que j'ai créé. Il n'est pas parfait et présente quelques bugs (comme certains MAC générés qui ne sont pas autorisés sur le périphérique).
Voici la fonction HWaddr aléatoire pour bash :
#!/bin/bash
RAND_MAC() {
gen() {
NUM="$(tr -dc '0-9a-f' </dev/urandom | head -c 2)"
echo -n "$NUM:"
}
for c in {1..6}; do
if [ "$c" -lt "6" ]; then
gen
else
gen | tr -d ':'
fi
done
}
RAND_MAC
Je vais maintenant expliquer ce qui se passe avec cette fonction :
RAND_MAC()
va être la déclaration de la fonction. Il s'agit de faire savoir à l'interpréteur bash Shell "Hey, il y a une fonction ici." et de rechercher les accolades ouvertes et fermées. {}
. Après le RAND_MAC()
est déclarée, il y a une seule fonction {
suivie d'une déclaration de nouvelle fonction imbriquée appelée gen()
. Le terme "imbriqué" signifie simplement une fonction à l'intérieur d'une autre fonction. Le site gen()
est ce qui va générer de façon aléatoire les octets du HWaddr aléatoire. gen()
est une fonction autonome et ne s'active que pendant la durée de l'opération. for
la boucle ci-dessous s'exécute. Lorsque gen()
est appelé, une variable appelée NUM
se voit attribuer la valeur de la sortie d'une commande. La commande qui NUM
est attribué est $(tr -dc '0-9a-f' </dev/urandom | head -c 2)
. Cela produira une chaîne de 2 caractères en utilisant des nombres 0-9 and lower case letters
a-f in random order by pulling from
/dev/urandom`.
Donc maintenant que la fonction gen()
est à peu près expliqué, le reste de la fonction principale RAND_MAC()
va contrôler l'émission. Le site for
va itérer 6 fois. Après la 6ème itération, le for
la boucle passe à done
et c'est terminé. Le résultat est un HWaddr fraîchement généré que vous pouvez maintenant utiliser avec votre wlan0
ou quel que soit le nom de votre interface. La raison pour laquelle nous utilisons des fonctions bash pour cela est d'empêcher les données de ce script d'être dans une portée globale. Nous voulons garder de tels script locaux pour éliminer des erreurs que je n'aborderai pas ici. Une fois que vous avez enregistré la fonction dans un fichier, comme quelque chose comme /usr/bin/macgen
et lui donner la permission d'être exécuté.
user@group:~# chmod +x /usr/bin/macgen
Maintenant, votre nouveau script générateur de HWaddr est prêt à être utilisé quand vous le souhaitez depuis la ligne de commande du terminal. Vous pouvez appeler l'outil en utilisant la commande, macgen
.
Maintenant vient le moment d'assigner ce nouveau HWaddr en utilisant la méthode qui n'a pas été donnée.
Beaucoup ont suggéré d'utiliser ifconfig
ou peut-être même iwconfig
pour changer le HWaddr de votre interface sans fil. Bien, ifconfig
et même iwconfig
sont des outils dépréciés et ont été largement remplacés par les outils appelés ip
y iw
. L'outil que je vais utiliser dans cette réponse est iw
. Les commandes suivantes sont celles que vous devez suivre pour créer une interface virtuelle, usurper son HWaddr, et éviter de devoir changer le HWaddr de votre matériel physique réel. Cette méthode, à mon avis, est beaucoup plus saine et plus sûre puisque nous pouvons simplement mettre hors service notre interface physique réelle avec ifconfig
et utiliser une interface complètement virtuelle et factice pour faire tout ce qu'on veut :
Tout d'abord, nous allons générer le nouveau HWaddr à utiliser.
user@group:~# macgen
Nous utiliserons alors ifconfig
pour faire tomber le vrai dispositif.
user@group:~# ifconfig wlan0 down
Maintenant nous pouvons créer le VNIC avec iw
.
user@group:~# iw dev wlan0 interface add mon0 type monitor addr (new mac here)
Et enfin, nous faisons monter l'interface.
user@group:~# ifconfig mon0 up
Maintenant vous devriez avoir une interface sans fil usurpée en mode surveillance ainsi qu'une adresse mac usurpée pour cette interface. Si vous devez changer son mode de surveillance en mode géré afin de pouvoir l'utiliser pour vous connecter à un point d'accès, procédez comme suit :
Mettez le VNIC hors service :
user@group:~# ifconfig mon0 down
Changez le mode :
user@group:~# iwconfig mon0 mode managed
[Note rapide] Avant de changer de mode, assurez-vous que toutes les autres interfaces en mode géré sont hors service, sinon vous ferez basculer un drapeau d'erreur avec le symbole iwconfig
.
Remontez l'interface :
user@group:~# ifconfig mon0 up
Vérifiez que les configurations sont correctes avec :
user@group:~# iw dev
Le résultat devrait ressembler à ceci :
phy#0
Interface wlo1
ifindex 3
wdev 0x1
addr 00:11:22:33:44:55
type managed
channel 161 (5805 MHz), width: 40 MHz, center1: 5795 MHz
txpower 50.00 dBm
Et lorsque vous êtes prêt à vous débarrasser de la VNIC, il suffit de la supprimer :
user@group:~# iw mon0 del
Et puis remontez votre interface réelle :
user@group:~# ifconfig wlan0 up
J'espère que ces informations vous seront utiles. N'hésitez pas à poser des questions si vous avez des doutes.