Nach dem Ändern der MAC-Adresse kann keine Verbindung zum Internet hergestellt werden

Nach dem Ändern der MAC-Adresse kann keine Verbindung zum Internet hergestellt werden

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 clonesagt 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 routeBefehl, aber unter Linux ip routeergibt 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.

verwandte Informationen