Eu encontrei o problema: um dos $iface
s tinha aspas ao redor quando não deveria.
Estou fazendo um script BASh que altera seu endereço MAC para qualquer fabricante de sua escolha em uma lista. Na última parte do script que é executado, ele para antes de terminar. Aqui está o código para essa 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/\(..\)/:/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 que não consigo usar a internet ( git clone
says could not resolve hostname: github.com
) depois de executar este script? E por que não está terminando?
EDIT: Isso deve funcionar no MacOS e no Linux. No MacOS, não há comando ip route
, mas no Linux, ip route
resulta em:
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
Alguns cartões são um pouco complicados para alterar / falsificar o endereço MAC.
No OSX, a alteração do endereço MAC da interface, em particular a interface wifi, tem que ser feita várias vezes até ficar correta, por exemplo. muitas vezes em um loop, porque deve ser feito em um determinado momento, eu suspeito; muitas vezes não é assumido pela primeira vez com as versões mais recentes do OSX / MacOS.
Notavelmente, no OSX, a interface / drivers parecem ficar confusos por alguns segundos após o MAC, mas eles se recuperam.
Marcas raras não vão gostar, em algumas marcas você não é aconselhado a alterar os 3 primeiros octetos (os primeiros 6 dígitos, menos ":"), que são do fabricante.
Muitas vezes você perde sua rota padrão, ou o roteador / AP pode perder a noção de quem você é; enquanto o processo deve ser na maioria automático, em alguns casos, no Linux, você pode ter que reiniciar o serviço DHCP depois de alterar o endereço MAC.
Tags bash ifconfig mac-address wifi spoofing