Suite Seguridad Wireless > Colaboracion y desarrollo de nuestras lives

Trabajo para intenar incluir soporte rtl8812au en airmon-ng (classic)

<< < (3/10) > >>

USUARIONUEVO:
yo tampoco lo tengo ,asi que no puedo decir mucho mas.

para que los automatismos funcionen solo se me ocurre crear una interface monX  a manopla.

y ya despues abrir los automatismos, aunque algunos, lo primero que hacen es "desmontar", todo lo que este ya en modo monitor para empezar en limpio.


por eso queria ver , para que al ejecutar airmon-ng , se pusiera en modo monitor ...que use iw no es problema, ya que se escribiria una regla de tipo if

if DRIVER = BLA BLA BLA

iw xxxx

creo que se entiende.

el airmon-ng viejo ..trabaja de esa forma ...tiene varias reglas para algunos chips especificos.

Al principio pense que el driver no era reconocido , pero si que lo es ...lo unico que veo es que al pasar a mon ,se pierde algun dato.

lego_regan:
El problema con el driver es que no funcionan las interfaces virtuales. Vamos que estas se crean pero no funcionan bien de ahí que la tarjeta no sea compatible con airmon-ng.

Se puede modificar el script de airmon-ng y que al montar la interfaz en modo monitor no muestre mon0 sino wlan0, algo como esto:

--- Código: ------ airmon-ng 2016-12-21 22:25:30.000000000 +0100
+++ airmon-modificado 2017-02-20 13:54:43.076451965 +0100
@@ -234,7 +234,14 @@
     then
         CHIPSET="Atmel   "
     fi
-
+   
+    if [ x$DRIVER = "x8812au" ]
+    then
+ USE_IWCONFIG=1
+ USE_IW=0
+        CHIPSET="Realtek "
+    fi
+   
     if [ x$DRIVER = "xb43" -o x$DRIVER = "xb43legacy" -o x$DRIVER = "xbcm43xx" -o x$DRIVER = "xwl" ]
     then
         CHIPSET="Broadcom"
@@ -620,57 +627,66 @@
     printf "$iface\t\t$CHIPSET\t$DRIVER - [$PHYDEV]"
     if [ x$1 = "xstart" ] && [ x$2 = x$iface ]
     then
-        if [ $USE_IW = 1 ]
-        then
-            IW_ERROR=`iw dev $iface interface add $MONDEV type monitor 2>&1 | grep "nl80211 not found"`
-            if [ x$IW_ERROR = "x" ]
-            then
-                sleep 1s
- if [ ! -z $3 ]
-                then
-                if [ $3 -lt 1000 ]
-                then
-                iwconfig $MONDEV channel $3 >/dev/null 2>&1
-                else
-                iwconfig $MONDEV freq "$3"000000 >/dev/null 2>&1
-                fi
-            fi
-                ifconfig $MONDEV up
-                printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)"
-            else
-                if [ -f /sys/class/ieee80211/"$PHYDEV"/add_iface ]
-                then
-                    echo -n "$MONDEV" > /sys/class/ieee80211/"$PHYDEV"/add_iface
-                    sleep 1s
-                    if [ $3 -lt 1000 ]
-                    then
-                        iwconfig $MONDEV mode Monitor channel $3 >/dev/null 2>&1
-                    else
-                        iwconfig $MONDEV mode Monitor freq "$3"000000 >/dev/null 2>&1
-                    fi
-                    ifconfig $MONDEV up
-                    printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)"
-                else
-                    printf "\n\nERROR: nl80211 support is disabled in your kernel.\nPlease recompile your kernel with nl80211 support enabled.\n"
-                fi
-            fi
-        else
-            if [ -f /sys/class/ieee80211/"$PHYDEV"/add_iface ]
-            then
-                echo -n "$MONDEV" > /sys/class/ieee80211/"$PHYDEV"/add_iface
-                sleep 1s
-                if [ $3 -lt 1000 ]
-                then
-                    iwconfig $MONDEV mode Monitor channel $3 >/dev/null 2>&1
-                else
-                    iwconfig $MONDEV mode Monitor freq "$3"000000 >/dev/null 2>&1
-                fi
-                ifconfig $MONDEV up
-                printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)"
-            else
-                printf "\n\nERROR: Neither the sysfs interface links nor the iw command is available.\nPlease download and install iw from\n$IW_SOURCE\n"
-            fi
-        fi
+ if [ $USE_IWCONFIG = 1 ]
+ then
+   iwconfig $iface mode monitor >/dev/null 2>&1
+   MONDEV=$iface
+   ifconfig $MONDEV up
+          printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)"
+  
+        else
+     if [ $USE_IW = 1 ]
+     then
+ IW_ERROR=`iw dev $iface interface add $MONDEV type monitor 2>&1 | grep "nl80211 not found"`
+ if [ x$IW_ERROR = "x" ]
+ then
+     sleep 1s
+     if [ ! -z $3 ]
+     then
+ if [ $3 -lt 1000 ]
+ then
+     iwconfig $MONDEV channel $3 >/dev/null 2>&1
+ else
+     iwconfig $MONDEV freq "$3"000000 >/dev/null 2>&1
+ fi
+     fi
+     ifconfig $MONDEV up
+     printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)"
+ else
+     if [ -f /sys/class/ieee80211/"$PHYDEV"/add_iface ]
+     then
+ echo -n "$MONDEV" > /sys/class/ieee80211/"$PHYDEV"/add_iface
+ sleep 1s
+ if [ $3 -lt 1000 ]
+ then
+     iwconfig $MONDEV mode Monitor channel $3 >/dev/null 2>&1
+ else
+     iwconfig $MONDEV mode Monitor freq "$3"000000 >/dev/null 2>&1
+ fi
+ ifconfig $MONDEV up
+ printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)"
+     else
+ printf "\n\nERROR: nl80211 support is disabled in your kernel.\nPlease recompile your kernel with nl80211 support enabled.\n"
+     fi
+ fi
+     else
+ if [ -f /sys/class/ieee80211/"$PHYDEV"/add_iface ]
+ then
+     echo -n "$MONDEV" > /sys/class/ieee80211/"$PHYDEV"/add_iface
+     sleep 1s
+     if [ $3 -lt 1000 ]
+     then
+ iwconfig $MONDEV mode Monitor channel $3 >/dev/null 2>&1
+     else
+ iwconfig $MONDEV mode Monitor freq "$3"000000 >/dev/null 2>&1
+     fi
+     ifconfig $MONDEV up
+     printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)"
+ else
+     printf "\n\nERROR: Neither the sysfs interface links nor the iw command is available.\nPlease download and install iw from\n$IW_SOURCE\n"
+ fi
+     fi
+ fi
     fi
     if [ x$1 = "xstop" ] && [ x$2 = x$iface ]
     then
@@ -755,6 +771,21 @@
     continue
  fi
 
+ if [ x$DRIVER = "x8812au" ]
+ then
+ printf "$iface\t\tRealtek 8812au"
+    if [ x$1 = "xstart" ] && [ x$2 = x$iface ]
+    then
+        startStdIface $iface $CH
+    fi
+    if [ x$1 = "xstop" ] && [ x$2 = x$iface ]
+    then
+        stopStdIface $iface
+    fi
+    echo
+    continue
+ fi
+
  if [ x$DRIVER = "xipw2100" ] || [ x"`iwpriv $iface 2>/dev/null | grep set_crc_check`" != "x" ]
  then
     printf "$iface\t\tIntel 2100B\tipw2100"

--- Fin del código ---

Esto funciona con algunos Scripts de wifislax y mientras usen airmon-ng, supongo que para airmon-nz pues se podría hacer algo parecido. Lo que si he visto es que el script de airmon-nz tiene una función (startDeprecatedIface) comentada en la cual ponen en modo monitor tarjetas antiguas (usando iwconfig) pero genera una salida en plan (monitor enabled for the interface) en vez de (monitor enabled on mon0) y a lo mejor esa salida no la procesan bien los scripts automatizados.


Saludos

bzbs:

--- Cita de: lego_regan en 22-02-2017, 01:58 (Miércoles) ---+    if [ x$DRIVER = "x8812au" ]
+    then
+   USE_IWCONFIG=1
+   USE_IW=0
+        CHIPSET="Realtek "

--- Fin de la cita ---
Muy buena, super simple... que pena no saber nada de linux jajaj (me quede en c++ aunque la lógica es siempre igual). Lo has probado? o es a nivel "teórico"? me gustaría editarlo yo mismo para no molestar mucho pero para que veas mi nivel tuve que sacar el contenido de los xzm de wifislax con 7zip, pero claro ni idea de como compilarlo de vuelta ;D

lego_regan:
Funciona más o menos (problemas sobretodo del driver).

Por ejemplo GeminisAuditor tira más o menos bien. Escanea y tal, pero al lanzar reaver se queda esperando el "beacon frame" y sólo se soluciona si se ejecuta iwconfig wlan0 mode monitor de nuevo en otra ventana y a partir de entonces ya permite realizar cualquier ataque a los objetivos (WEP, WPS). En casa de mis padres tengo un router mitrastar, activé el WPS en la red 5G y no tardó nada en reventarlo.

También he probado el script de Vodker (wifimosys) y si se consigue el handshake pero no monta el ap (el script se bloquea cuando intenta reiniciar la interfaz con ifconfig) y viendo el dmesg no para de mostrar "_alloc_mgtxmitframe(wlan0) alloc xmitbuf fail", que sólo se soluciona desconectando el adaptador usb y volviéndolo a conectar (el script continua pero no lo hace correctamente). Habría que ver si el driver funciona con hostapd (con airbase-ng si que funciona).

Las pruebas las hago en máquina virtual y el adaptador no es un Alfa pero utiliza el mismo driver aunque el chip sea diferente (rtl8811au en vez de rtl8812au).

El código que puse en el comentario anterior es un parche, lo puedes pegar en un archivo llamado airmon.patch
Y luego ejecutas:

--- Código: ---patch /usr/sbin/airmon-ng airmon.patch
--- Fin del código ---

De todas formas es recomendable que hagas una copia de seguridad del airmon-ng original antes de aplicar el parche por si el parche no funciona:

--- Código: ---cp /usr/sbin/airmon-ng /usr/sbin/airmon-ng_bak
--- Fin del código ---


Saludos

Vodker:

--- Cita de: lego_regan en 02-03-2017, 15:22 (Jueves) ---
También he probado el script de Vodker (wifimosys) y si se consigue el handshake pero no monta el ap (el script se bloquea cuando intenta reiniciar la interfaz con ifconfig) y viendo el dmesg no para de mostrar "_alloc_mgtxmitframe(wlan0) alloc xmitbuf fail", que sólo se soluciona desconectando el adaptador usb y volviéndolo a conectar (el script continua pero no lo hace correctamente). Habría que ver si el driver funciona con hostapd (con airbase-ng si que funciona).


--- Fin de la cita ---

(Paréntesis Offtopic): como no tengo este adaptador estaré atento a las novedades sobre el driver y si en un tiempo prudencial no hay solución puedo hacer compatible Wifimosys con este chip al igual que hice con el  8187L (asumiendo como dices que sí funciona con airbase).
Saludos.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa