ChaMAC 0.9 : Cambia todas tus MAC

Topic created · 1 Mensajes · 1059 Visitas
  • Bueno, hace mucho tiempo que no me paso por el foro, y por casualidad llegué a él de nuevo. Hay un proyecto que he estado haciendo, y que me gustaría compartir con vosotros (por los buenos tiempos... :wiii: )

    Un script en bash que cambia todas las direcciones MAC de vuestro PC (nose en que categoría puede tener mas utilidad, si eso, que lo mueva algún admin)

    Tenéis que dejarlo dentro de un archivo con el nombre chamac y copiarlo a /usr/bin/

    Sin mas palabrerías, aquí el código:

    #!/bin/bash
    
    
    ########## Modo DEBUG ##########
    ##			      ##
              CHAMAC_DEBUG=0
    ##			      ##
    ################################
    
    ########## 08-09-2013 Chamac 0.1
    ##
    ## #Fecha de Salida
    ##
    ########## 10-09-2013 Chamac 0.2
    ## 
    ## #Detección de clientes DHCP
    ## #Optimización del código
    ## #Detección de deaemons de red
    ## #Aviso de macchanger desactualizado
    ## #Comprobar permisos root
    ##
    ########## 11-09-2013 Chamac 0.3
    ## 
    ## #Añadido menu de ayuda
    ## #Posibilidad de ejecutar script con el sistema
    ## #Eliminada dependencia macchanger, puede funcionar sin el
    ## #Añadidda posibilidad de usar macchanger si se quisiese
    ## 
    ########## 12-09-2013 Chamac 0.4
    ##
    ## #Corregido bug cuando wicd esta off (gracias a @USUARIONUEVO)
    ## #Corregido fallo de colores cuando se pedia ser root
    ## #Añadido menu para restaurar las MAC
    ## #Añadido menu para ver las MAC actuales
    ## #Fixedo el archivo que se genera para --autoboot
    ## #Pequeñas mejoras en el codigo
    ##
    ########## 16-09-2013 Chamac 0.5
    ##
    ## Reducido información del script ( mas minimalista)
    ## Modificado representacion de las interfaces
    ## Añadidas varias rutas alternativas para MAC Permanente
    ## Corregido codigo de peticion de permisos Root
    ## Pequeños cambios en el codigo
    ##
    ########## 19-09-2013 Chamac 0.6
    ##
    ## Arreglado problema de cambios de MAC fallidos
    ## Añadido comprobador de ruta de chamac
    ## Optimizado deteccion de daemon
    ## Agregada salida DEBUG en consola
    ## Pequeñas optimizaciones en el codigo
    ## Bug interno de rutas en la opcion -r para autoejecutarse
    ##
    ########## 21-09-2013 Chamac 0.7
    ##
    ## Eliminadas rutas de /run/udev/data/nX para extraer la MAC Original
    ## Mejorada función --autostart para sistemas con SUDO
    ## Añadida opcion para MAC personalizada
    ## Optimizados mensajes informativos
    ##
    ########## 26-09-2013 Chamac 0.8
    ##
    ## Corregido bug que no eliminaba la entrada de /etc/sudoers
    ## Añadido OUI para mostrar el Vendor
    ## Añadida funcion --update para actualizar la base de deatos OUI
    ## Añadida database de OUI
    ## Optimizados mensajes informativos
    ## Estructurado codigo fuente para mejor comprension
    ##
    ########## 03-10-2013 Chamac 0.9
    ##
    ## Corregido bug "-i used with no filenames on the command line, reading from STDIN" (@USUARIONUEVO y @alister)
    ## Mejorado el parseo de datos
    ## Reducida información que se muestra sobre los Vendor (mas dinamica)
    ## Añadida opcion --list para mostrar todos los Vendor
    ## Añadida opcion --ending para mantener los bytes del Fabricante
    ## Añadida opcion --another para elegir otro Fabricante Aleatorio
    ## Reducida cantidad de repeticiones para el cambio de MAC de 6 a 3 (parece estable...)
    ##
    ##########
    
    
    ########## Agradecimientos
    ##
    ## Me gustaría dar las gracias al equipo de www.seguridadwireless.net por el maravilloso trabajo que estan haciendo.
    ## En especial, quiero dar las gracias a @USUARIONUEVO por sus inmediatos informes sorbre los bugs del script y consejos
    ## para el proyecto, a @warcry por el consejo de adaptar el script a mas distros linux, a @geminis_demon por sus ayudas con 
    ## el bash y por ultimo a @alister, por mostrarme datos muy tecnicos de Linux (y necesarios) para desarrollar mi script y
    ## darme muy buenas ideas para que pueda seguir innovando
    ##
    ##########
    
    ruta=$(which $0)
    if [ $CHAMAC_DEBUG = 1 ]; then
        ## set to /dev/stdout when in developer/debugger mode
        export chamac_output_device=/dev/stdout
      else
        ## set to /dev/null when in production mode
        export chamac_output_device=/dev/null
    fi
    
    function conditional_clear() {
        if [[ "$chamac_output_device" != "/dev/stdout" ]]; then clear; fi
    }
    
    #Detectar interfaces
    readarray -t interfaces <