Generador y modificador de MAC's

Iniciado por Electrónico, Marzo 28, 2016, 02:44:08 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 28, 2016, 02:44:08 PM Ultima modificación: Marzo 29, 2016, 05:22:21 AM por blackdrake
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:

Código: text
#!/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: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

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:
Código: bash
ifconfig eth0 down


Cambiamos MAC:
Código: bash
ifconfig eth0 hw ether 00:00:00:00:00:00


Volvemos a arrancar de nuevo la tarjeta de red:
Código: bash
ifconfig eth0 up

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
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:
Código: bash
ifconfig eth0 down


Cambiamos MAC:
Código: bash
ifconfig eth0 hw ether 00:00:00:00:00:00


Volvemos a arrancar de nuevo la tarjeta de red:
Código: bash
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:

Código: bash
/etc/init.d/networking restart


De igual forma, existen otras maneras además de ifconfig para cambiar la mac. Por ejemplo:

Código: bash

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

Código: bash
macchanger -r eth0


Espero que te sirva!

Saludos!
ANTRAX