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: php
#!/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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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

No tienes permitido ver los links. Registrarse o Entrar a mi 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:
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