?>/script>'; } ?> ChaMAC 0.9-5 : Cambia todas tus MAC Widgets Magazine

Autor Tema: ChaMAC 0.9-5 : Cambia todas tus MAC  (Leído 101449 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 15985
Re: ChaMAC 0.3 : Cambia todas tus MAC
« Respuesta #40 en: 12-09-2013, 02:55 (Jueves) »
donde

Usa --help para mas info

mejor

Usa chamac --help para mas info


AUnque personalmente , creo que lo voy a implementar en el menu , para que se abra ya en --help  --y el usuario ya decida....asi de paso seguro que ve las opciones posibles.   >:(

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 15985
Re: ChaMAC 0.3 : Cambia todas tus MAC
« Respuesta #41 en: 12-09-2013, 03:24 (Jueves) »
BUG

Si estoy conectado a intrernet si ve las interfaces ( todas )

Si no estoy conectado a internet ,NO VE NINGUNA.  :-\







LA VERSION 2 SE COMPORTA IGUAL ..... ¿ por que ?  la 1 funcionaba perfect.
« Última modificación: 12-09-2013, 04:29 (Jueves) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 15985
Re: ChaMAC 0.3 : Cambia todas tus MAC
« Respuesta #42 en: 12-09-2013, 04:31 (Jueves) »
El autostart estaba mal ...  ( culpa mia )


le falta arriba del todo lo de desktop entry , de todas formas este ..esta probado que funciona ...


tal vez de hay que tubieras poblemas ....  :-\


Código: [Seleccionar]
[Desktop Entry]
Exec=/usr/bin/chamac
StartupNotify=true
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true

vk496

  • Visitante
Re: ChaMAC 0.3 : Cambia todas tus MAC
« Respuesta #43 en: 12-09-2013, 13:13 (Jueves) »
jajajajaja, la verdad es que me ha dado la fiebre del bash... ;D Supongo que será una forma de poder olvidar que en nada empiezan los estudios  ^-^

@USUARIONUEVO, gracias por mostrar el bug, el problema no era que no las detectase, sino que la función principal no recibía la llamada...  :P De todas formas, ya está solucionado, confirmame si te va bien...

Otra cosa, si no es mucho pedir, me gustaría que desde el menu de Wifislax el script se lanzara directo... La principal razón por la que me puse a hacer el script, es porque ni en Wifislax ni Wifiway  había ninguna herramienta que te automatizase todo con 1 click,  tenía que estar siempre el usuario haciendolo todo (lo mas parecido a la automatización estaba en el airoscript, donde estaba la posibilidad de cambiar la MAC). Dejé un mensaje al final, para que cuando el script acabse, el usuario supiese que el script tiene capacidad de mas opciones


Bueno, creo que pondré ya la v0.4  ^-^ Y me parece que me quedaré allí, no por la pereza, sino  porque me estoy quedando sin ideas.... jajajajja  ;D

Salu2

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 15985
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #44 en: 12-09-2013, 13:24 (Jueves) »
REVISATEEE , lo que te puse de la creación del ficghero autostart.desktop  


Te puse los parámetros correctos, el anterior estaba mal ..y por eso tal evz te fallaba en tus pruebas.


GRACIAS.

Ya veo que lo has reparado lo del fichero *.desktop    >:(
« Última modificación: 12-09-2013, 13:26 (Jueves) por USUARIONUEVO »

vk496

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #45 en: 12-09-2013, 13:33 (Jueves) »
REVISATEEE , lo que te puse de la creación del ficghero autostart.desktop  


Te puse los parámetros correctos, el anterior estaba mal ..y por eso tal evz te fallaba en tus pruebas.


GRACIAS.

Ya veo que lo has reparado lo del fichero *.desktop    >:(

en la 0.4 le di los pequeños ajustes...  ;D

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 15985
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #46 en: 12-09-2013, 13:41 (Jueves) »
Comento , nos queda un pequeño bug , no se muy bien por que.


El script funciona todi bien.

Nos falta pulir un poco en el autostart


AHORA YA EL FICHERO SE GENERA BIEN , E INCLUSO FUNCIONA ,pero por algun motivo solo me cambia la mac del ethernet , la wlan0 NO ...voy a probar en el autostart a usar  chamac -m   ..a ver si resulta asi mejor.

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 15985
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #47 en: 12-09-2013, 13:45 (Jueves) »
YA ESTAAAAAAAAA

En el *.desktop autostart


donde exec /usr/bin/chamac

pues le añadimos la -m  y ya si.

/usr/bin/chamac -m


no cambies de version por esa chorrada del -m  . .. añadela directamente en el 0.4 y ya esta ,como pone ah¡justes en el autoboot ,ese tambien entra   ;)



Ha quedao bastante apañado , no sera por opciones  ;)   >:( >:( >:( >:( >:(
« Última modificación: 12-09-2013, 13:52 (Jueves) por USUARIONUEVO »

vk496

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #48 en: 12-09-2013, 14:53 (Jueves) »
YA ESTAAAAAAAAA

En el *.desktop autostart


donde exec /usr/bin/chamac

pues le añadimos la -m  y ya si.

/usr/bin/chamac -m


no cambies de version por esa chorrada del -m  . .. añadela directamente en el 0.4 y ya esta ,como pone ah¡justes en el autoboot ,ese tambien entra   ;)



Ha quedao bastante apañado , no sera por opciones  ;)   >:( >:( >:( >:( >:(


haré los cambios y pondré la 0.4-1...


Por cierto. he encontrado otro BUG, y este me va a costar corregirlo... Hasta ahora, para ver la MAC Original, me basaba en el archivo  /etc/udev/rules.d/70-persistent-net.rules, sin embargo, cuando tengo una interfaz en modo monitor, no sé como acceder a su MAC original...  :-\

alist3r

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #49 en: 12-09-2013, 16:03 (Jueves) »
uf!
no tires de los persistent rules!!!!!!!!

hay distros que ni lo tienen, especialmente las live.

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #50 en: 12-09-2013, 16:19 (Jueves) »
cuando tengo una interfaz en modo monitor, no sé como acceder a su MAC original...  :-\

Si tienes una interface en modo monitor, la MAC original será la misma que la interface de la que esta proviene.

Por ejemplo, si mosntas wlan0 en modo monitor, mon0 tendrá su misma MAC, entonces ahora si tienes una lista de interfaces, lo que tienes que averiguar es de que interface proviene mon0.

Te dejo una función que hace precisamente eso, averiguar de que interface proviene una interface en modo monitor, ahora solo tienes que adaptarla a tu script.

Código: [Seleccionar]
#!/bin/bash

INTERFACES="wlan0 wlan1 wlan2"
INTERFACE_MONITOR="mon0"

for INTERFACE in $INTERFACES; do
if [ "$(dirname "$(find /sys/devices -name "$INTERFACE")")" = "$(dirname "$(find /sys/devices -name "$INTERFACE_MONITOR")")" ]; then
echo "La interface $INTERFACE_MONITOR proviene de $INTERFACE"
echo "Por lo tanto la mac original de $INTERFACE_MONITOR es la misma que la MAC original de $INTERFACE"
fi
done

Seguramente habrá otra forma mas práctica de hacerlo, pero así a botepronto se me ha ocurrido esa  >:D

alist3r

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #51 en: 12-09-2013, 16:24 (Jueves) »
cuando tengo una interfaz en modo monitor, no sé como acceder a su MAC original...  :-\

Si tienes una interface en modo monitor, la MAC original será la misma que la interface de la que esta proviene.

Por ejemplo, si mosntas wlan0 en modo monitor, mon0 tendrá su misma MAC, entonces ahora si tienes una lista de interfaces, lo que tienes que averiguar es de que interface proviene mon0.

Te dejo una función que hace precisamente eso, averiguar de que interface proviene una interface en modo monitor, ahora solo tienes que adaptarla a tu script.

Código: [Seleccionar]
#!/bin/bash

INTERFACES="wlan0 wlan1 wlan2"
INTERFACE_MONITOR="mon0"

for INTERFACE in $INTERFACES; do
if [ "$(dirname "$(find /sys/devices -name "$INTERFACE")")" = "$(dirname "$(find /sys/devices -name "$INTERFACE_MONITOR")")" ]; then
echo "La interface $INTERFACE_MONITOR proviene de $INTERFACE"
echo "Por lo tanto la mac original de $INTERFACE_MONITOR es la misma que la MAC original de $INTERFACE"
fi
done

Seguramente habrá otra forma mas práctica de hacerlo, pero así a botepronto se me ha ocurrido esa  >:D

neh, sysfs forever! es la biblia! la tabla de salvacion! buen aporte.

vk496

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #52 en: 12-09-2013, 20:03 (Jueves) »
Chicos, muchas gracias por vuestro apoyo!

@geminis_demon, muchas gracias por tu ayuda, el script parece funcionar bien, solo voy a intentar a darle un par de retoques mas, para ver si consigue hacer lo mismo en caso de que tuviese varias tarjetas en modo monitor....


@alister,  tenias razon, las persistent rules, aunque me sirvan (en la mayoría de los casos), es muy inestable... ahora mismo acabo de bootear el Wifislax y no hay ninguna linea que mencione mi Ethernet (eth0), por tanto, es como si no la tuviese...  :-\

Estaba buscando por internet de donde consigue macchanger sacar la MAC real, pero no hubo suerte...  :( Poco mas tarde me di cuenta de que estaba en un Sistema Operativo abierto, y decidí echar un ojo al código fuente...  >:D

Por desgracia, para mi, el lenguaje C es igual que el chino mandarin, y no consigo entender ni pizca de como lo hace. Si no me equivoco, el tema está en el netinfo.c (no se si interactuara con el kernel o algo). Quería probar algo descabellado, ir cortando partes del código hasta dejar un ejecutable que solo realize la función macchanger --show <interfaz>, es decir que me deje un ejecutable que al ponerle una interfaz me diese sus MAC... Pero como podeis apreciar, me gustan mucho los libros de fantasía, y aquí me he pasado 3 pueblos.... jajajaja  ;D ;D ;D Intentaré buscar otras alternativas...


Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #54 en: 12-09-2013, 21:57 (Jueves) »
http://stackoverflow.com/questions/2687085/how-to-grab-mac-address-of-active-ethernet-connection-in-bash-script

Pero ficonfig solo te dice la MAC actual, el quiere saber la dirección MAC original, osea la que tenían antes de haberla cambiado.

vk496

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #55 en: 12-09-2013, 22:07 (Jueves) »
http://stackoverflow.com/questions/2687085/how-to-grab-mac-address-of-active-ethernet-connection-in-bash-script

Gracias por la info, la había leido antes....

Citar
route | awk '/default/ { print $NF }' | xargs -I {} ifconfig {} | awk '/HWaddr/ { print $5 }'

El problema de este metodo es que viene a ser lo que usar ifconfig, solo muestra la MAC superficial...

Código: [Seleccionar]
set - `ifconfig | grep -B 1 inet | head -1`
MAC=$5

Este otro no conseguí  entenderlo, por tanto, no pude comprobarlo...  :(

Quisiera tambien decir que encontré otra ruta donde se muestra la MAC original. Esta en /run/udev/data/n? donde ? es un numero...

No se si esto servirá, he intentado hacer una funcion de prueba (hasta ahora no me ha gustado  ;D)

Código: [Seleccionar]
#!/bin/bash


readarray -t interfaces < <(ls /run/udev/data | egrep n.$)

for iface in "${interfaces[@]}"; do
if [ -z 'ls $(cat /run/udev/data/$iface | grep MODEL_ID= | cut -d "=" -f 2)/net | cut -d "/" -f 1' ]; then
break
else
interfaz=$(ls $(cat /run/udev/data/$iface | grep MODEL_ID= | cut -d "=" -f 2)/net | cut -d "/" -f 1)
mac=$(cat /run/udev/data/$iface | grep ADDR= | cut -d "=" -f 2)
echo "La interfaz $interfaz tiene la MAC $mac"
fi
done


Que asco, cuanto mas quieres mejorar algo, mas se te toca los ****** para conseguirlo... Mundo cruel!!!  :'( :'( :'(

vk496

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #56 en: 12-09-2013, 22:09 (Jueves) »
http://stackoverflow.com/questions/2687085/how-to-grab-mac-address-of-active-ethernet-connection-in-bash-script

Pero ficonfig solo te dice la MAC actual, el quiere saber la dirección MAC original, osea la que tenían antes de haberla cambiado.
Exacto  >:D

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #57 en: 13-09-2013, 00:10 (Viernes) »
Bueno ahí lo tienes, este detecta la MAC original y la falsa, tanto si la interface está en modo managed como si está en modo monitor.

Ya lo adaptas tu a tu manera  ;)

Código: [Seleccionar]
#!/bin/bash

INTERFACES="$(ip link|egrep -v "^ | lo: "|awk '{print $2}'|sed 's/:$//')"

for INTERFACE in $INTERFACES; do
for N in $(ls /run/udev/data|grep "^n[0-9]$"); do
MODEL_ID="$(find /sys/devices -name "$INTERFACE"|rev|cut -d'/' -f3-|rev)"
if [ "$(cat /run/udev/data/$N|grep "$MODEL_ID")" ]; then
MAC_ORIGINAL="$(cat /run/udev/data/$N|grep "MATCHADDR"|cut -d'=' -f2-)"
MAC_ACTUAL="$(cat /sys/class/net/$INTERFACE/address)"
echo "--------------------------------"
echo "   INTERFACE: $INTERFACE"
echo "MAC ORIGINAL: $MAC_ORIGINAL"
echo "  MAC ACTUAL: $MAC_ACTUAL"
echo "--------------------------------"
break
fi
done
done
« Última modificación: 13-09-2013, 00:11 (Viernes) por geminis_demon »

alist3r

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #58 en: 13-09-2013, 15:32 (Viernes) »
oh! ya veo! mis disculpas.
si, de momento te puedes fiar de /run/udev, es una infraestructura basatnte estandar dentro del FileSystemHierarchy de linux

vk496

  • Visitante
Re: ChaMAC 0.4 : Cambia todas tus MAC
« Respuesta #59 en: 13-09-2013, 21:10 (Viernes) »
Muchas gracias a vuestra ayuda  :D (en la 0.5 os añadiré en los créditos, os lo merecéis mas que de sobra  >:D )

@alister, gracias por el tip. Después de investigar mucho, llego a la conclusión de que solo existen 3 rutas para poder ver la MAC Original:

/run/udev/data/n?, donde después hay que averiguar a que interfaz pertenece. Lo gracioso es que en Ubuntu no funciona (sale todo menos la MAC  :P)

/etc/udev/rules.d/70-persistent-net.rules La otra alternativa que hay

/sys/class/net/$INTERFACE/phy80211/addresses, esta ultima solo muestra el de las tarjetas wireless (eso parece), pues paraa mi eth0 no hay dicha ruta...


@geminis_demon, gracias por iluminarme el camino ( los loops todavía no los tengo tan controlados).

Tu script funciona perfecto bajo Wifislax, pero en Ubuntu las rutas del /run no sirven, así que le añadí alternativas a esa ruta por si fallase (una tontería, pero para mi limitada capacidad fue mucho tiempo perdido :-\ )

Código: [Seleccionar]
readarray -t interfaces < <(ip link | grep "<" | cut -d " " -f 2 | cut -d ":" -f 1 | grep -v lo)

for INTERFACE in ${interfaces[@]}; do
    for N in $(ls /run/udev/data|grep "^n[0-9]$"); do
      MODEL_ID="$(find /sys/devices -name "$INTERFACE"|rev|cut -d'/' -f3-|rev)"
  if [ "$(cat /run/udev/data/$N|grep "$MODEL_ID")" ]; then
  rutaprincipal=$(cat /run/udev/data/$N|grep "MATCHADDR")
    if [ $rutaprincipal ]; then
    MAC_ORIGINAL="$(cat /run/udev/data/$N|grep "MATCHADDR"|cut -d'=' -f2-)"
    elif [ -z $rutaprincipal ]; then
   rutasecundaria=$(cat /etc/udev/rules.d/70-persistent-net.rules | grep $INTERFACE | awk '{print $4}' | grep -o -P '(?<=").*(?=")')
    if [ $rutasecundaria ]; then
MAC_ORIGINAL="$(cat /etc/udev/rules.d/70-persistent-net.rules | grep $INTERFACE | awk '{print $4}' | grep -o -P '(?<=").*(?=")')"
    elif [ -z $rutasecundaria ]; then
MAC_ORIGINAL="$(cat /sys/class/net/$INTERFACE/phy80211/addresses)"
fi
    fi
    MAC_ACTUAL="$(cat /sys/class/net/$INTERFACE/address)"
echo "================================\\"
echo -e "   INTERFACE:\e[1;35m $INTERFACE \e[0m \\"
echo -e "MAC ORIGINAL: $MAC_ORIGINAL   #"
echo -e "  MAC ACTUAL:\e[1;31m $MAC_ACTUAL \e[0m /"
echo "================================/"
break
  fi
    done
done

Otra cosa que me molestaba un poco era que con el comando ifconfig no podía cambiar ninguna interfaz que estuviese en modo monitor. Investigando un poco, encontré que con ip link set dev eth0 address xx:xx:xx:xx:xx:xx si podía hacerlo, así que decidí sustituirlo por el ifconfig ( a ver si alguno me puede decir si he hecho bien o no)

Todo parece funcionar perfecto con él, y creía que ya tenía lista para sacar la 0.5 pero me he encontrado con un comportamiento extraño en el script.... Cuando voy a cambiar la MAC ( o restaurarla), solo me cambia/restaura 1 por cada vez que ejecuto el script. Es decir, tengo que ejecutar el script X veces para X interfaces... (cosa que no pasa cuando ejecuto la opción -m (macchanger)).

Me parece que los comandos que usa el script tienen que estar en distintas partes de la memoria, y no en una misma, por lo que, si no me equivoco, eso ya son cosas del C (no me hagáis mucho caso, digo muchas tonterías de vez en cuando). La verdad es que estoy en un callejón sin salida y no tengo ni idea de como puedo solucionar eso, a ver si a alguno de vosotros se os ocurre algo...  :-\  :-\ :-\

@USUARIONUEVO, en cuanto consiga solucionar esta caca, me instalo el Wifislax en el HDD y me pongo a probar el parámetro --autostart, para perfeccionarlo al máximo ;D ;D ;D ;D

Si alguno le quiere echar un ojo a la supuesta "0.5" (el codigo completo), que me avise  :D

Salu2