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

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

warcry

  • Visitante
Re: ChaMAC 0.1 : Cambia todas tus MAC
« Respuesta #20 en: 09-09-2013, 23:03 (Lunes) »

2º: @warcry , Gracias por mencionarlo... en principio utilicé macchanger porque mi nivel de programación no es muy alto, y no veía como llegar a hacerlo sin el machchanger  ;D Estaba pensando en ampliar el script para que detectase si el PC tiene macchanger, y si no fuese así, ir por el camino de ifconfig... que te parece?  >:D

si tu nivel de programación no es muy alto tendrías que ver el mio  ;D

parece que el macchanger ahora esta a la ultima, luego no debería dar ningún problema (no lo he probado), si te apañas bien con el, pues sigue por ahí, puedes introducir una parte de código que pregunte si el macchanger es un comando valido en la shell, y si no lo es dar la orden al repositorio para que lo descargue y lo instale.

en debian ya lo sabes apt-get install...
en slax es slapt-get --install

de todas maneras el script, ya hace lo que inicialmente pensabas que tenia que hacer y eso es un logro, mi mas sincera enhorabuena porque no es tarea facil ponerse a picar codigo  >:( >:( >:(



alist3r

  • Visitante
Re: ChaMAC 0.1 : Cambia todas tus MAC
« Respuesta #21 en: 10-09-2013, 01:11 (Martes) »
@vk496

desde el punto de vista de sistemas, y para ser pulcro, si existe un gestor de conexión debes usarlo, ya que es este quien se encarga de todo, incluido el llamar al cliente dhcp suponiendo que fuese necesario, o asignar una IP estática que ya estuviera configurada en el gestor de conexión para ese adaptador de red.

el caso mas sencillo, aunque genere cierto volumen de codigo, sería:

detectar si el sistema tiene los controles de daemons en init.d (los que usamos nosotros en debian/kali/ubuntu) o si los tiene en rc.d (wifiway, slax, slackware y derivadas)

cuando ya has detectado la carpeta base de init, pasas a buscar qué tipo de gestor de conexion usa el sistema:

si existe network-manager, ajustas una variable, por ejemplo control_mode, a "network-manager"
si existe wicd, ajustas control_mode, a "wicd"
case else, ajistas control_mode a "direct"

luego, detienes y reinicias los gestores de conexion usando un case con una cláusula para cada caso, mereciendo especial hincapié el modo direct donde deberás de levantar la interfaz por tí mismo y llamar al cliente dhcp que hayas encontrado en el sistema (which pump; which dhcpcd; which dhcpcd3; which dhclient... alguno estará en el path)

esto, por lo que respecta al control de interfaces.

por lo que respecta al dichoso macchanger. lo mejor es que utilices una versión actualizada del mismo, compatible con todos los stacks y nuevos metodos de cfg de ieee80211, y que solamente en caso de no encontrarse este, trates de utilizar las net-tools (ifconfig). en el fondo, una versión actualizada de macchanger hace lo mismo que ifconfig xxxx hw ether, llamando a los mismos IOCTLS del kernel.

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14683
Re: ChaMAC 0.1 : Cambia todas tus MAC
« Respuesta #22 en: 10-09-2013, 04:52 (Martes) »
@vk496

Si ya hay cambios , deberias haber movido a version 0.2

Normalmente dentro del script , se van anotando los cambios

### Fecha tal , version 0.3
## Se reparo este bug en tal distro ..

### Fecha tal version 0.2
## Se ajusto esto y aquello

### Fecha tal o cual version 0.1
## version inicial

Las lineas que empiezan con almohadilla # , son ignoradas a la hora de ejecutar comandos y demas ...

Se utiliza en ocasiones, para anular un funcion o parte de un script, sin eliminarla, por si mas adelante se volviera a necesitar dicha funcion , se anula, pero no se borra , es como ternela hay en un back up , dentro del script.  ;)
« Última modificación: 10-09-2013, 04:54 (Martes) por USUARIONUEVO »

alist3r

  • Visitante
Re: ChaMAC 0.1 : Cambia todas tus MAC
« Respuesta #23 en: 10-09-2013, 13:53 (Martes) »
este mozo apunta maneras!

vk496

  • Visitante
Re: ChaMAC 0.2 : Cambia todas tus MAC
« Respuesta #24 en: 10-09-2013, 17:37 (Martes) »
Bueno, le acabo de dar mas cambios al script...

@USUARIONUEVO, gracias por el tip, no pensaba en eso mientras estaba comiéndome el coco  ;D ;D

@warcry, esta muy bien lo que dices, pero no tengo pensado hacer eso... mi idea era tener un script completamente automatizado, por si alguien lo añade al arranque del sistema, pues que funcionase igual sin la intervención del usuario...  :-\

@alister, gracias por la info. Los cambios que le he hecho, los probé sobre Ubuntu, Wifislax y Crunchbang, y por ahora bien... Hice que detectase si el path principal estaba en rc.d o init.d, para reiniciar los daemons (inet1 y modem-manager respectivos). Si por alguna razón fallase, queda la posibilidad de los clientes DHCP... que tal así?

Gracias a todos por el apoyo que dais a mi primer proyecto en bash   >:( >:D

Salu2
« Última modificación: 10-09-2013, 17:50 (Martes) por vk496 »

alist3r

  • Visitante
Re: ChaMAC 0.2 : Cambia todas tus MAC
« Respuesta #25 en: 10-09-2013, 17:45 (Martes) »
perfecto!!!
la variedad y la flexibilidad se agradecen. nunca sabes qué distro utiliza el usuario que descarga tus programas.

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14683
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #26 en: 10-09-2013, 23:32 (Martes) »
En esta ruta , tambien puedes poner cosas para su ejecucion al inicio de sistema



Código: [Seleccionar]
/etc/xdg/autostart/
el escript directo no , pero si generas alli un fichero


Automacchanger.desktop

con este contenido ...

Código: [Seleccionar]
Exec=/usr/bin/Chamac
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application

creo que seria sucifiente.


el autostart se ejecuta siempre, inicies con el telinit 4 , o con el 3 ..y seas el usuario que seas.


deberas implementar la funcion "si no existe el fichero , pregunta si quieres crealo "

son ideas nada mas.  ;D

vk496

  • Visitante
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #27 en: 11-09-2013, 00:23 (Miércoles) »
En esta ruta , tambien puedes poner cosas para su ejecucion al inicio de sistema



Código: [Seleccionar]
/etc/xdg/autostart/
el escript directo no , pero si generas alli un fichero


Automacchanger.desktop

con este contenido ...

Código: [Seleccionar]
Exec=/usr/bin/Chamac
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application

creo que seria sucifiente.


el autostart se ejecuta siempre, inicies con el telinit 4 , o con el 3 ..y seas el usuario que seas.


deberas implementar la funcion "si no existe el fichero , pregunta si quieres crealo "

son ideas nada mas.  ;D

Muy interesante tu propuesta... No haré menú, porque quiero enfocarlo a un script completamente automatizado... Sin embargo, creo que estaría bien añadir algún parámetro al script (-b o --boot) para crear el archivo de autoejecutarse... Y avisar al usuario de la existencia de la función y cual es su estado actual... En cuanto pueda, me pondré a explorar el mundo del bash y picar código....  ;D

Por cierto, me podéis decir como es su funcionamiento en otros sistemas? Es decir, en cuanto tengáis la oportunidad...

Salu2

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14683
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #28 en: 11-09-2013, 00:28 (Miércoles) »
en wifislax ... la 0.2 es mas rapida que antes , ya que tiras directamnente del servicio para reiniciar wicd.

es casi instantaneo.  >:(



Lo del autostart ,me lie, por que vi que hablabais de rc.d etc y pense que querias esa funcion ,de autoejecutar al inicio del sistema.


en los init.d o rc.d ...es un problema.

pero en el autostart siempre se ejecutaria.

puede ser una variable como comentas , en un funcion.


se añade como info al final del proceso ..


si quieres que este proceso se haga auromaticamente al inciio de sistema..ejecuta


Chamac --autostart

y la funcion autostart genere el *.desktop   , en     /etc/xdg/autostart

o solo mostrar esa info , si detecta que en la ruta aun no existe el Automacchanger.desktop


Hay lo dejo ... como veis un script, por simple que inicie ,siempre puede acabar en algo mas completo ... y mejorado solo con aportar ideas.  ;)

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2382
  • Prácticas precisas precisan práctica
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #29 en: 11-09-2013, 02:14 (Miércoles) »
Citar
Muy interesante tu propuesta... No haré menú, porque quiero enfocarlo a un script completamente automatizado... Sin embargo, creo que estaría bien añadir algún parámetro al script (-b o --boot) para crear el archivo de autoejecutarse... Y avisar al usuario de la existencia de la función y cual es su estado actual... En cuanto pueda, me pondré a explorar el mundo del bash y picar código....

Hola, muy interesante tu script, felicidades  >:(

Te hecho una mano, para que te hagas una idea de como puede hacer que el script responda de una forma o otra según los parámetros que le pases:

Código: [Seleccionar]
if [ "$1" = "-b" -o "$1" = "--boot" ]; then
iniciar_con_el_sistema
elif [ "$1" = "-n" -o "$1" = "--no-boot" ]; then
clientesdhcp && clientedaemon && detectarmac
elif [ ! "$1" ]; then
echo "No se ha pasado ningún parámetro"
echo "Modo de uso: blablabla...."
fi

En el ejemplo que te he puesto, si le pasas el parámetro -b o --boot llama a la función que se encargrá de añadir el script al inicio del sistema, si le pasas el parámetro -n o --no-boot, el script inicia tal y como lo tienes ahora, y si no se pasa ningún parámetro informa de las posibles opciones.

Eso es solo un ejemplo para que veas como se puede hacer, después ya lo puedes hacer tu a tu manera  ;)

"$1" siempre será el primer parámetro que le pases, "$2" el segundo parámetro, y así sucesivamente.
« Última modificación: 11-09-2013, 02:16 (Miércoles) por geminis_demon »

La luz cree que viaja más rápido que cualquier otra cosa, pero se equivoca; da lo mismo lo rápido que pueda viajar, porque al final, la luz descubre que la oscuridad ha llegado antes que ella, y la está esperando.

vk496

  • Visitante
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #30 en: 11-09-2013, 12:56 (Miércoles) »
Hola, gracias @geminis_demon y @USUARIONUEVO por los consejos. Ya tengo casi lista la v0.3, pero me encuentro con un pequeño problema a la hora de usar el --autostart.

Para poder usarlo y que genere el .desktop se necesita privilegios root (no hay problema), sin embargo, después de haber sido genereados, hacen falta privilegios root para hacer funcionar el script al iniciar el sitema, y allí es de donde no consigo pasar... que método hay para añadir un programa al startup del sistema con privilegios root y que ese método sea compatible con la mayoría de las distros¿? ???

He estado mirando Google, pero no me ha iluminado mucho.... Por la tarde me pondré a investigar mas... a ver si encuentro algo  :-\

Salu2

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14683
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #31 en: 11-09-2013, 14:23 (Miércoles) »
no se si te servirá en el EXEX=


Código: [Seleccionar]
EXEC=sudo su /usr/bin/Chamac
Imagino que abras marcado al script la casilla "es ejecutable" ...

En wifislax, no va a haber ningún problema.

El problema será en distros en las que a lo mejor seas usuario limitado.

Siendo root no tiene por que haber problemas..

tal vez que la opción se ofrezca si eres root

Código: [Seleccionar]
whoim
te dira que usuario eres , si no recuerdo mal.
« Última modificación: 11-09-2013, 14:25 (Miércoles) por USUARIONUEVO »

vk496

  • Visitante
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #32 en: 11-09-2013, 19:27 (Miércoles) »
no se si te servirá en el EXEX=


Código: [Seleccionar]
EXEC=sudo su /usr/bin/Chamac
Imagino que abras marcado al script la casilla "es ejecutable" ...

En wifislax, no va a haber ningún problema.

El problema será en distros en las que a lo mejor seas usuario limitado.

Siendo root no tiene por que haber problemas..

tal vez que la opción se ofrezca si eres root

Código: [Seleccionar]
whoim
te dira que usuario eres , si no recuerdo mal.

Gracias por el consejo. Según he mirado, hay muchas (demasiadas) complejidades para automatizar este proceso cuando no eres root, por lo que dejaré la función --autostart tal cual, y que el usuario final se encargue de adaptarlo a sus sistema  ;D ^-^(dejaré un mensaje avisando de ello, para que lo tengan en cuenta)

Lo mas importante que quiero conseguir es evitar la dependencia de machanger (lo uso mas que nada porque me daba la MAC real de la interfaz incluso cuando se cambiaba esta...). He encontrado las rutas donde puede conseguir la mac REAL, por tanto, quiero añadir la posibilidad de hacerlo de las 2 maneras (ifconfig y macchanger). Sin embargo, me hago demasiados lios con la sintáxis del bash, y quisiera ver si alguien me puede echar una mano con ello...


Lo que necesito es que el condicional if llame a una funcion.

algo asi:

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

mifuncion=1

if [ $mifuncion = 1 ]; then
funcion1
elif [ $mifuncion = 2 ]; then
funcion2
fi

funcion2() {
echo hola
}

funcion1() {
echo adios
}

Pero es que si hago esto, me devuelve un: ./prueba.sh: línea 7: funcion1: no se encontró la orden, y no tengo ni a menor idea de como hacer una llamada desde una condicional...  ??? ??? ???

Salu2

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2382
  • Prácticas precisas precisan práctica
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #33 en: 11-09-2013, 20:00 (Miércoles) »
Hola, el error está en que llamas a la función cuando esta todavía no ha sido "leída" ya que está al final del archivo.

El problema se soluciona poniendo la función antes de llamarla, así:

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

funcion2() {
echo hola
}

funcion1() {
echo adios
}

mifuncion=1

if [ $mifuncion = 1 ]; then
funcion1
elif [ $mifuncion = 2 ]; then
funcion2
fi


La luz cree que viaja más rápido que cualquier otra cosa, pero se equivoca; da lo mismo lo rápido que pueda viajar, porque al final, la luz descubre que la oscuridad ha llegado antes que ella, y la está esperando.

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2382
  • Prácticas precisas precisan práctica
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #34 en: 11-09-2013, 20:08 (Miércoles) »
Código: [Seleccionar]
whoim
te dira que usuario eres , si no recuerdo mal.

Supongo que te refieres a "whoami"  >:D


La luz cree que viaja más rápido que cualquier otra cosa, pero se equivoca; da lo mismo lo rápido que pueda viajar, porque al final, la luz descubre que la oscuridad ha llegado antes que ella, y la está esperando.

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14683
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #35 en: 11-09-2013, 20:16 (Miércoles) »
Código: [Seleccionar]
whoim
te dira que usuario eres , si no recuerdo mal.

Supongo que te refieres a "whoami"  >:D



sip ...eso es.

si se detecta que eres root, que se de la opción.

vk496

  • Visitante
Re: ChaMAC 0.2b : Cambia todas tus MAC
« Respuesta #36 en: 11-09-2013, 20:59 (Miércoles) »
@geminis_demon, te he dejado un MP con el codigo fuente, a ver si consigues ver donde está el problema...

Si alguien mas quiere echarle un ojo, que avise  ;)

PD: La función para comprobar root ya está integrada con el id -u  ;D

Gracias a todos por la ayuda,   :D

Salu2

alist3r

  • Visitante
Re: ChaMAC 0.3 : Cambia todas tus MAC
« Respuesta #37 en: 12-09-2013, 02:36 (Jueves) »
acostumbraos a utilizar la variable $EUID en lugar del comando "whoami"
el User ID Efectivo vale 0 cuando el usuario es root o cuando proceso en cuestión el tiene permisos de root (uso de sudo y otros supuestos)
« Última modificación: 12-09-2013, 02:40 (Jueves) por alister »

Desconectado USUARIONUEVO

  • Colaborador
  • *
  • Mensajes: 14683
Re: ChaMAC 0.3 : Cambia todas tus MAC
« Respuesta #38 en: 12-09-2013, 02:45 (Jueves) »
que maquina , 3 versiones en 3 dias ...le ha dao fierte el bash...  >:(

alist3r

  • Visitante
Re: ChaMAC 0.3 : Cambia todas tus MAC
« Respuesta #39 en: 12-09-2013, 02:48 (Jueves) »
que maquina , 3 versiones en 3 dias ...le ha dao fierte el bash...  >:(

te dije que apunta maneras el mozo!
este se come un repositorio premium de github él solito!

//FINAL Y MÁS DOS RESPUESTAS