Autor Tema: Script reset_iface (detecta y reinicia el driver de una interfce de red)  (Leído 21449 veces)

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

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2389
  • Prácticas precisas precisan práctica
Buenas.

Pues eso, este script detecta el driver de la interface que se le pase como parámetro, y lo reinicia (lo desmonta y lo vuelve a montar).

Esto es útil a la ora de realizar una auditoría, ya que al desmontar y volver a montar el driver te aseguras de que la interface está "limpia", no está siendo usada por ningún proceso y no está fijada a ningún canal.

La idea de hacer el script me vino al leer un comentario de Alister que decía que el hacía eso siempre antes de comenzar una auditoría, y me pareció buena idea  hacer un script que automatice el proceso >:D

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

# Script: reset_iface
# Por geminis_demon para Wifislax - SeguridadWireless.Net


if [ $(id -u) != 0 ]; then
echo "ERROR: Este script debe ejecutarse con permisos de ROOT"
exit 1
fi

if [ -z "$1" -o "$1" = "-h" ]; then
echo
echo "Este script desmonta y vuelve a montar el driver de una interface de red"
echo
echo "USO:"
echo " $0 interface"
echo
echo "OPCIONES:"
echo " -h  Muestra esta ayuda."
echo
if [ -z "$1" ]; then
exit 1
else
exit 0
fi
fi

IFACE="$1"

if [ ! "$(ip link|grep " $IFACE: ")" ]; then
echo
echo " - ERROR: No existe la interface \"$IFACE\""
echo
exit 1
fi

DRIVER="$(basename "$(ls -l "/sys/class/net/$IFACE/device/driver")")"

if [ ! "$DRIVER" ]; then
echo
echo " - ERROR: No ha sido posible encontrar el driver de $IFACE"
echo
exit 1
fi

echo
echo " - La interface $IFACE utiliza el driver $DRIVER"

rmmod -f "$DRIVER" && modprobe "$DRIVER"

if [ $? = 0 ]; then
echo " - El driver $DRIVER ha sido reiniciado"
echo
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: 2389
  • Prácticas precisas precisan práctica
Re: Script reset_iface (detecta y reinicia el driver de una interfce de red)
« Respuesta #1 en: 25-05-2015, 05:34 (Lunes) »
Debido a los problemas que se producen con determinadas tarjetas de red al desmontar y volver a montar el driver, he investigado y encontrado la forma de hacer lo mismo de una forma menos agresiva.

Ahora el script en vez de desmontar el driver, lo desvincula del dispositivo en cuestión, y vuelve a vincularlo, de esta forma conseguimos el mismo resultado ("limpiar" la interfaz) sin los efectos secundarios que causaba la versión anterior.

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

# Script: reset_iface v2
# Por geminis_demon para Wifislax - SeguridadWireless.Net

Error() {

echo " - ERROR: $1"
exit 1
}

if [ -z "$1" -o "$1" = "-h" ]; then

echo
echo "Este script desmonta y vuelve a montar el driver de una interfaz de red"
echo
echo "EJEMPLO:"
echo " $0 wlan0"
echo
echo "OPCIONES:"
echo " -h  Muestra esta ayuda."
echo

if [ -z "$1" ]; then
exit 1
else
exit 0
fi
fi

[ $(id -u) != 0 ] && Error "Este script debe ejecutarse con permisos de ROOT"
[ ! -d "/sys/class/net/$1/device/driver" ] && Error "No existe la interfaz $1"
ID="$(basename "$(ls -l "/sys/class/net/$1/device")")"
OLD_DIR="$(pwd)"
cd "/sys/class/net/$1/device/driver/"
echo -n "$ID" >unbind||Error "Ocurrió un problema al desmontar la interfaz $1"
echo -n "$ID" >bind||Error "Ocurrió un problema al montar la interfaz $1"
echo " - La interfaz $1 ha sido reiniciada"
cd "$OLD_DIR"


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: 14027
Re: Script reset_iface (detecta y reinicia el driver de una interfce de red)
« Respuesta #2 en: 25-05-2015, 11:13 (Lunes) »
ok , a la noche lo actualizo.

najador

  • Visitante
Re: Script reset_iface (detecta y reinicia el driver de una interfce de red)
« Respuesta #3 en: 27-05-2015, 01:32 (Miércoles) »
gracias por tus aportes  ;D
para poder ejecutarlo  ¿como haceis?  yo copio lo expuesto reset_iface v2    y al final añado sh
le doy permisos con chmod y bien ;pero como lo ejecutais o como se llama a este script desde consola porque lo llamo de las maneras que conozco  y nada no aparece en consola  ???
y con clic derecho ejecutar en consola me sale
Advertencia: No fue posible iniciar «/root/Desktop/reset_ifacev2.sh» con los argumentos «/root/Desktop/reset_ifacev2.sh».   ???
 ¿hay alguien que me pueda decir como se llama a este script ?para poder ejecutarlo  ;he podido darle permisos con chmod pero no soy capaz de verlo en consola y ejecutarlo
saludos

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2389
  • Prácticas precisas precisan práctica
Re: Script reset_iface (detecta y reinicia el driver de una interfce de red)
« Respuesta #4 en: 27-05-2015, 01:57 (Miércoles) »
Da igual el nombre o la extensión que le pongas, como si no le quieres poner extensión.

Se ejecuta igual que todos los scripts, abres una terminal y ejecutas:

Código: [Seleccionar]
./ruta/del/script

o

Código: [Seleccionar]
bash /ruta/del/script

o

Código: [Seleccionar]
sh /ruta/del/script

Cualquiera de las 3 formas sirve.
« Última modificación: 27-05-2015, 01:59 (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.

najador

  • Visitante
Re: Script reset_iface (detecta y reinicia el driver de una interfce de red)
« Respuesta #5 en: 27-05-2015, 03:49 (Miércoles) »
gracias geminis por tu respuesta  toda la razon tienes he dado con lo que era mi problema al intentar echar un ojo al script veia que faltaban caracters fue porque copie y pege con windows ;lo he hecho en live y de nuevo copiando el script y perfec  ;D ;D  a la primera
gracias de nuevo por compartir juguetes
« Última modificación: 27-05-2015, 18:22 (Miércoles) por najador »

makyaran

  • Visitante


Buenas.

Pues eso, este script detecta el driver de la interface que se le pase como parámetro, y lo reinicia (lo desmonta y lo vuelve a montar).

Esto es útil a la ora de realizar una auditoría, ya que al desmontar y volver a montar el driver te aseguras de que la interface está "limpia", no está siendo usada por ningún proceso y no está fijada a ningún canal.

La idea de hacer el script me vino al leer un comentario de Alister que decía que el hacía eso siempre antes de comenzar una auditoría, y me pareció buena idea  hacer un script que automatice el proceso >:D

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

# Script: reset_iface
# Por geminis_demon para Wifislax - SeguridadWireless.Net


if [ $(id -u) != 0 ]; then
echo "ERROR: Este script debe ejecutarse con permisos de ROOT"
exit 1
fi

if [ -z "$1" -o "$1" = "-h" ]; then
echo
echo "Este script desmonta y vuelve a montar el driver de una interface de red"
echo
echo "USO:"
echo " $0 interface"
echo
echo "OPCIONES:"
echo " -h  Muestra esta ayuda."
echo
if [ -z "$1" ]; then
exit 1
else
exit 0
fi
fi

IFACE="$1"

if [ ! "$(ip link|grep " $IFACE: ")" ]; then
echo
echo " - ERROR: No existe la interface \"$IFACE\""
echo
exit 1
fi

DRIVER="$(basename "$(ls -l "/sys/class/net/$IFACE/device/driver")")"

if [ ! "$DRIVER" ]; then
echo
echo " - ERROR: No ha sido posible encontrar el driver de $IFACE"
echo
exit 1
fi

echo
echo " - La interface $IFACE utiliza el driver $DRIVER"

rmmod -f "$DRIVER" && modprobe "$DRIVER"

if [ $? = 0 ]; then
echo " - El driver $DRIVER ha sido reiniciado"
echo
fi



EltitoLitos

  • Visitante
Re: Script reset_iface (detecta y reinicia el driver de una interfce de red)
« Respuesta #7 en: 07-02-2017, 13:26 (Martes) »
No lo pillo de donde lo descargo?

Desconectado sanson

  • Moderador Global
  • *
  • Mensajes: 8410
Re: Script reset_iface (detecta y reinicia el driver de una interfce de red)
« Respuesta #8 en: 07-02-2017, 13:50 (Martes) »
hola

no se descarga, es un sript en bash, se ejecuta ese código. Te aconsejo que leas la respuesta que te he dado antes


saludos