No puedo conectarme a Internet después de cambiar la dirección MAC

No puedo conectarme a Internet después de cambiar la dirección MAC

He estado creando un script BASh que cambia su dirección MAC a la de cualquier fabricante de su elección de una lista. En la última parte del script que se ejecuta, se detiene antes de finalizar. Aquí está el código para esa parte:

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

}

¿Por qué no puedo usar Internet ( git clonedice could not resolve hostname: github.com) después de ejecutar este script? ¿Y por qué no termina?

EDITAR: Se supone que esto funciona en MacOS y Linux. En MacOS, no hay ningún ip routecomando, pero en Linux, ip routeel resultado es:

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

Respuesta1

Algunas tarjetas son un poco delicadas a la hora de cambiar o falsificar la dirección MAC.

En OSX, el cambio de dirección MAC de la interfaz, en particular la interfaz wifi, debe realizarse varias veces hasta hacerlo bien, por ejemplo, a menudo en un bucle, porque sospecho que debe realizarse en un tiempo determinado; A menudo no se asume a la primera con las últimas versiones de OSX/MacOS.

Notablemente, en OSX la interfaz/los controladores parecen confundirse durante un par de segundos después del MAC, sin embargo, se recuperan.

A las marcas raras no les gustará, en algunas marcas no se recomienda cambiar los primeros 3 octetos (los primeros 6 dígitos, menos ":"), que son la identificación del fabricante.

A menudo pierdes tu ruta predeterminada, o el enrutador/AP puede perder la noción de quién eres; Si bien el proceso debería ser mayoritariamente automático, en algunos casos, en Linux es posible que deba reiniciar el servicio DHCP después de cambiar la dirección MAC.

Respuesta2

Encontré el problema: uno de los $ifaces tenía comillas cuando no debería tenerlas.

información relacionada