Buenas a tod@s:
Esta tarde estaba programando un poquito y se me ha ocurrido picar un pequeño script que te genere una MAC de forma aleatoria y que te ofrezca la posibilidad de ponerla como MAC en tu equipo.
Aquí os dejo el script:
#!/usr/bin/env python
#GENERADOR DE MAC'S
#Nos genera una MAC aleatoria para cualquier dispositivo
from random import choice
import os
print ("TU MAC actual es: " )
os.system("ifconfig -a | grep HWaddr")
print (" ")
valores = "0123456789ABCDEF"
M = "" #Declaramos la variable donde guardamos la password
M = M.join([choice(valores) for i in range(12)]) #Damos valores aleatorios a cada posicion de la array
print ("Tu MAC sera: " +M[0:2]+":"+M[2:4]+":"+M[4:6]+":"+M[6:8]+":"+M[8:10]+":"+M[10:12] ) #Damos el valor de la array resultante
print (" ")
respuesta = raw_input ("Quieres modificar tu MAC? ")
print (" ")
if respuesta == 's':
red = raw_input("Que MAC quiere modificar? La 1 o la 2? ")
if red == '1':
os.system("ifconfig eth0 down")
os.system("ifconfig eth0 hw ether"+M[0:2]+":"+M[2:4]+":"+M[4:6]+":"+M[6:8]+":"+M[8:10]+":"+M[10:12])
os.system("ifconfig eth0 up")
print ("Se ha modificado correctamente la MAC")
else:
os.system("ifconfig wlan0 down")
os.system("ifconfig wlan0 hw ether"+M[0:2]+":"+M[2:4]+":"+M[4:6]+":"+M[6:8]+":"+M[8:10]+":"+M[10:12])
os.system("ifconfig wlan0 up")
print ("Se ha modificado correctamente la MAC")
else:
print ("No se va a proceder a modificar ninguna MAC")
El problema está que cuando intento modificar la MAC me dice que esta operación no está permitida y me sale esta parrafada:
Usage:
ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
[add <address>[/<prefixlen>]]
[del <address>[/<prefixlen>]]
[[-]broadcast [<address>]] [[-]pointopoint [<address>]]
[netmask <address>] [dstaddr <address>] [tunnel <address>]
[outfill <NN>] [keepalive <NN>]
[hw <HW> <address>] [metric <NN>] [mtu <NN>]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]
[txqueuelen <NN>]
[[-]dynamic]
[up|down] ...
<HW>=Hardware Type.
List of possible hardware types:
loop (Local Loopback) slip (Serial Line IP) cslip (VJ Serial Line IP)
slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial Line IP)
ash (Ash) ether (Ethernet) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel)
ppp (Point-to-Point Protocol) hdlc ((Cisco)-HDLC) lapb (LAPB)
arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device)
sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI)
irda (IrLAP) ec (Econet) x25 (generic X.25)
eui64 (Generic EUI-64)
<AF>=Address family. Default: inet
List of possible address families:
unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6)
ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE)
ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet)
ash (Ash) x25 (CCITT X.25)
A parte, he probado de hacer los comandos que dicen en el siguiente tutorial y tampoco parecen surgir efecto a la hora de activar o desactivar la conexión: http://www.redeszone.net/2014/06/13/como-cambiar-la-mac-de-una-tarjeta-de-red-en-linux-con-ifconfig/
Muchas gracias de antemano
Hola, muy buen aporte!
fijate si se llama eth0 y wlan0. Recordá que esto puede variar segun el equipo y pueden llamarse eth1 y wlan1...
Otra cosa.. me parece que no te deja cambiarla, porque debes ejecutar esto como root (sudo).
Saludos!
ANTRAX
Buenas a tod@s:
Sí, eso ya lo cambié después de subir el script en el foro. Me di cuenta después.
Sin embargo el script me da el mismo fallo y no me modifica la MAC :S
Y no me da ningún error de que haya fallado el script en si.
Para poder cambiar la dirección MAC primero debes deshabilitar la tarjeta de Red a la cual deseas cambiarle la dirección MAC, cambiarsela y volver a levantar la tarjeta de Red.
Detenemos la interfaz que deseemos:
ifconfig eth0 down
Cambiamos MAC:
ifconfig eth0 hw ether 00:00:00:00:00:00
Volvemos a arrancar de nuevo la tarjeta de red:
ifconfig eth0 up
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Para poder cambiar la dirección MAC primero debes deshabilitar la tarjeta de Red a la cual deseas cambiarle la dirección MAC, cambiarsela y volver a levantar la tarjeta de Red.
Detenemos la interfaz que deseemos:
ifconfig eth0 down
Cambiamos MAC:
ifconfig eth0 hw ether 00:00:00:00:00:00
Volvemos a arrancar de nuevo la tarjeta de red:
ifconfig eth0 up
Pero es lo que hace el script
os.system("ifconfig eth0 down")
os.system("ifconfig eth0 hw ether"+M[0:2]+":"+M[2:4]+":"+M[4:6]+":"+M[6:8]+":"+M[8:10]+":"+M[10:12])
os.system("ifconfig eth0 up")
Es verdad, no me fijé.
Disculpad
Enviado desde mi SM-G928F mediante Tapatalk
Hola,
Cuando decia lo del sudo, me refería a que corrieras el script con sudo
sudo bash ./script....
En caso de que no funcione, fijate si agregando esta linea despues del ifconfig up, te funciona:
/etc/init.d/networking restart
De igual forma, existen otras maneras además de ifconfig para cambiar la mac. Por ejemplo:
ip link set dev eth0 down
ip link set dev eth0 address XX:XX:XX:XX:XX:XX
ip link set dev eth0 up
La otra forma es con Macchanger. Con el cual también podes generar random macs
macchanger -r eth0
Espero que te sirva!
Saludos!
ANTRAX