
Ich habe ein BASh-Skript erstellt, das Ihre MAC-Adresse in die eines beliebigen Herstellers aus einer Liste ändert. Beim letzten ausgeführten Teil des Skripts wird es angehalten, bevor es fertig ist. Hier ist der Code für diesen Teil:
function spoofUseMAC() {
echo
read -p "[*] $($stopAllFX; $bgBlack; $white)Enter the number code for manufacturer: >>> " num
echo "[-] Generating MAC Address"
num=$( expr $num - 1 )
declare -a array
while read -r; do
array+=( "$REPLY" )
done < addr.txt
end=$( for i in {1..6} ; do echo -n ${hexchars:$(( $RANDOM % 16 )):1} ; done | sed -e 's/\(..\)/:\1/g' )
macAddress=${array[$num]}$end
echo "[-] MAC Address generated !"
echo "[-] Using address: $macAddress"
$skyBlue; $bold; echo
ifconfig
$white
read -p "[*] $($stopAllFX; $bgBlack; $white)Select an interface: >>> " iface
$yellow; echo "[-] $iface selected !"
$white; echo "[-] Disabling $iface ..."
ifconfig $iface down
ifconfig '$iface' hw ether '$macAddress'
echo "[-] MAC Address spoofed !"
sleep 1
echo "[-] Enabling $iface ..."
ifconfig '$iface' up
echo "[-] $iface enabled !"
echo "[-] Using address: $macAddress"
exit
}
function spoofSearchAgainOrNot() {
$bold; $white; echo
echo "[*] $($stopAllFX; $bgBlack; $white)Please select an option from the list below:"
$yellow; $bold; echo " [$($white)0$($yellow)] $($stopAllFX; $bgBlack; $white)Search again"
$yellow; $bold; echo " [$($white)1$($yellow)] $($stopAllFX; $bgBlack; $white)Use one of these"
read -p ">>> " searchAgainOrNot
if [[ "$searchAgainOrNot" == "0" ]]; then
spoofSearch
elif [[ "$searchAgainOrNot" == "1" ]]; then
spoofUseMAC
else
spoofSearchAgainOrNot
fi
}
# Spoof, search option selected
function spoofSearch() {
$bold; echo
read -p "[*] $($stopAllFX; $bgBlack; $white)Search for a manufacturer: >>> " search
$blue; awk -F '#' '{printf("%10d %s\n", NR, ":" $1 )}' /usr/bin/oui.txt | grep -i $search
spoofSearchAgainOrNot
}
# Spoof
function spoof() {
echo; $white
echo "[*] $($stopAllFX; $bgBlack; $white)Please select an option from the list below:"
$yellow; $bold; echo " [$($white)0$($yellow)] $($stopAllFX; $bgBlack; $white)Search for a manufacturer"
$yellow; $bold; echo " [$($white)1$($yellow)] $($stopAllFX; $bgBlack; $white)Browse for a manufacturer through $($bold)long $($stopAllFX; $bgBlack; $white)list"
read -p ">>> " searchOrBrowse
if [[ $searchOrBrowse == "0" ]]; then
spoofSearch
elif [[ $searchOrBrowse == "1" ]]; then
spoofBrowse
else
spoof
fi
}
Warum kann ich das Internet nicht nutzen ( git clone
sagt could not resolve hostname: github.com
), nachdem ich dieses Skript ausgeführt habe? Und warum wird es nicht beendet?
EDIT: Dies soll unter MacOS und Linux funktionieren. Unter MacOS gibt es keinen ip route
Befehl, aber unter Linux ip route
ergibt sich:
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.18
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.18 metric 600
Antwort1
Manche Karten sind etwas pingelig, wenn es um das Ändern/Verfälschen der MAC-Adresse geht.
Unter OSX muss die Änderung der MAC-Adresse der Schnittstelle, insbesondere der WLAN-Schnittstelle, mehrmals durchgeführt werden, bis sie richtig funktioniert, z. B. oft in einer Schleife, weil sie, wie ich vermute, in einer bestimmten Zeit erledigt sein muss; bei den neuesten Versionen von OSX/MacOS wird dies oft nicht auf Anhieb berücksichtigt.
Insbesondere unter OSX scheinen die Schnittstelle/Treiber nach dem MAC für einige Sekunden durcheinander zu geraten, sie erholen sich jedoch danach wieder.
Bei einigen Marken ist dies nicht üblich. Bei manchen Marken wird davon abgeraten, die ersten 3 Oktette (die ersten 6 Ziffern minus ":") zu ändern, die die Hersteller-ID darstellen.
Oft geht Ihre Standardroute verloren oder der Router/AP weiß nicht mehr, wer Sie sind. Der Vorgang sollte zwar größtenteils automatisch erfolgen, in manchen Fällen müssen Sie unter Linux jedoch den DHCP-Dienst nach der Änderung der MAC-Adresse neu starten.
Antwort2
Ich habe das Problem gefunden: Eines der $iface
„s“ war unabsichtlich in Anführungszeichen gesetzt.