Drivers modo monitor+inyección chipsets realtek USB sin soporte nativo

[h]Drivers modo monitor y inyección compatibles hostapd para chispets realtek wiFi USB sin soporte nativo Linux[/h]

Redacto este tema para dar más visibilidad al repositorio github de** morrownr**

  1. morrownr @ Github/*]

Doy de paso mis agradecimientos a susanita :wink: por haber encontrado a este joya (ver Nuevo driver para rtl8814au (awus1900) con soporte modo monitor )

Para empezar unas pocas palabras sobre lo que ocurre con los chipsets WiFi USB de la marca Realtek
Hay actualmente dos fabricantes de chipsets wifi USB en actividad: Mediatek (antiguamente llamado Ralink) y Realtek
**Broadcom or Intel **no hacen chipsets USB y Atheros no ha sacado ninguno en años.
Ambos dan soporte Linux pero lo hacen de un modo bien distinto:

  1. Mediatek hace drivers a medidas para el kernel linux, con lo cúal los drivers están incluidos en el núcleo mismo de nuestros sistemas Operativos GNU-Linux. El usuario final enchufa su dispositivo y tiene WiFi, las actualizaciones se hacen solas, en fin, no tiene que hacer nada/*]
  2. Los drivers Linux de** Realtek **no están hecho para incorporarse al kernel Linux. Sus drivers están publicados como código fuente y deben estar compilados. Realtek no da soporte a sus drivers, no se adaptan a las evoluciones del kernel. El trabajo de mantenimiento está dejado en las manos de la comunidad y de los fabricantes,/*]

Llevamos aproximadamente diez años con esta situación y nada da a pensar que Realtek va a cambiar de política. :confused:

Así que cuando compramos un dispositivo WiFi USB con chipset Realtek es muy probable que tendremos que buscarnos la vida.
Algunas distribuciones (por ejemplo Kali Linux) incluyen en sus repositorios propios a algunos drivers “comunitarios” (por ejemplo para** rtl8812au**) simplificando así el asunto: Podemos instalar nuestro driver desde los repositorios y deberíamos tener un soporte correcto gracias al empaquetado dkms (el driver se reinstala automáticamente cuando se sube de kernel)
No es la panacea y pueden surgir errores pero es mejor que nada.

Afortunadamente hay maquinas como morrownr para darnos alegrías.
Su repositorio github es el mejor que hay para drivers linux realtek USB.
Está muy bien mantenido y hay drivers para multitudes de chipsets:

  1. RTL8812BU/*]
  2. RTL8822BU/*]
  3. RTL8811CU/*]
  4. RTL8821CU/*]
  5. RTL8731AU/*]
  6. RTL8812AU/*]
  7. RTL8814AU/*]
  8. RTL8821AU/*]

Todos los drivers tienen soporte** modo monitor y inyección** y son compatibles con hostapd (creación de Puntos de Acceso)
Y funcionan muy bien en modo* managed* (y en los otros modos)
Podemos usarlos sin problemas para hacking WiFi
Notad que, debido al hecho que utilizan componentes de WEXT en lugar de ser 100% basados en nl80211, no son compatibles con la virtualización de interfaces.
Consecuencia: Se debe activar el modo monitor con iw en lugar de airmon-ng (explicaré los pasos en fin de post)
Otro elemento a tener en cuanta: No tienen soporte para aumentar o disminuir la potencia en salida. *
edit: *Tenemos ahora soporte para “alta potencia”, ver mensaje siguiente *

[h]Instalación[/h]
Todos los drivers se instalan del mismo modo.

  • Lo primero a hacer es bien actualizar su sistema
    En sistemas basados en debian se hace con:
sudo apt update
sudo apt full-upgrade
  • Luego instalamos las dependencias:
sudo apt install dkms git build-essential libelf-dev

Y estamos listos para instalar el driver que necesitamos.

  • Clonemos el repositorio adecuado. Si queremos instalar por ejemplo el driver para la** Alfa awus1900** con chipset rtl8814au se hace así:
git clone https://github.com/morrownr/8814au.git
  • Situamos la consola en el repositorio que acabamos de descargar; en la misma consola tecleamos:
cd 8814au
  • Instalamos el driver gracias al script de instalación
sudo bash install-driver.sh
  • Para finalizar la operación se recomienda reiniciar el sistema
sudo systemctl reboot

[h]Sobre modo monitor[/h]

  • Detenemos al gestor de redes Network Manager para evitar conflictos
sudo systemctl stop NetworkManager
  • Desactivamos (“bajamos”) nuestra interfaz wifi USB
sudo ip l s wlan1 down
  • Activamos el modo monitor
sudo iw wlan1 set type monitor 
  • Reactivamos (“levantamos”) la interfaz wifi USB
sudo ip l s wlan1 up

Podéis ver a continuación los drivers para rtl8814au en acción con inyección de ACK para recuperar el preciado handshake:

Nada más que añadir a parte de volver a dar la gracias a morrownr por su excelente labor y recordar la dirección de su repositorio:

  1. drivers modo monitor y inyección con soporte hostapd para RTL8812BU, RTL8822BU, RTL8811CU, RTL8821CU, RTL8731AU, RTL8812AU, RTL8814AU y RTL8821AU by morrownr@ Github/*]

[h]Soporte para manejo de la potencia en salida, compatibilidad alta potencia[/h]
Buena noticia para los que tienen un dispositivo WiFi “High Power”. Podemos incrementar la potencia con las ultimas revisiones de los drivers:
https://www.wifi-libre.com/img/members/3/-morrownr_1.jpg
Mis agradecimiento a raplin (al autor de los commits sobre potencia) por su participación al proyecto de morrownr :plus_un:
Para actualizar el driver:
[list=1]
*]debemos actualizar el repositorio github.
Abrimos la consola en la carpeta 8814au y tecleamos

git pull

*]Quitamos la versión anterior

sudo bash remove-driver.sh

*]Y instalamos la última revisión

sudo bash install-driver.sh

[/list]

Ahora cuando hacemos un iw dev vemos la potencia en 20dBm.

kcdtv@zut:~$ sudo iw dev phy#2 Interface wlx00c0ca954d6d ifindex 6 wdev 0x200000001 addr 00:c0:ca:95:4d:6d type managed txpower 20.00 dBm
Señalo de paso que si antes veíamos 12dBm era un error de salida, la potencia estaba bien en 20dBm.
Dicho esto podemos ahora bajar o subir la potencia al máximo:

kcdtv@zut:~$ sudo iw wlx00c0ca954d6d set txpower fixed 3000 kcdtv@zut:~$ sudo iw dev phy#2 Interface wlx00c0ca954d6d ifindex 6 wdev 0x200000001 addr 00:c0:ca:95:4d:6d type managed txpower 30.00 dBm
No olvidar de modificar sus reglas CDRA o situarse con iw reg set en un país con limites más altos que aquí. :wink:

Buenas chicos como se me aconsejo en el otro hilo he echo lo que pone en este y cuando llego a instalar los drivers me entrega el siguiente mensaje:

[code]Running install-driver.sh version 20210725
Starting installation.
Copying source files to: /usr/src/rtl8814au-5.8.5.1
Copying 8814au.conf to: /etc/modprobe.d

Creating symlink /var/lib/dkms/rtl8814au/5.8.5.1/source →
/usr/src/rtl8814au-5.8.5.1

DKMS: add completed.
Error! echo
Your kernel headers for kernel 5.10.0-kali7-amd64 cannot be found at
/lib/modules/5.10.0-kali7-amd64/build or /lib/modules/5.10.0-kali7-amd64/source.
You can use the --kernelsourcedir option to tell DKMS where it’s located.
An error occurred. dkms build error = 1
Please report this error.[/code]

Lo poco que entiendo creo que hay un error en las cabeceras pero he buscado y no encuentro como actualizar o que hacer con ellas, corregidme si no es así

Siento ser tan pesado pero es que soy muy cabezón y no me entra aunque lo intento aun asi hasta que no lo consiga sera como tener una astilla en el dedo y hasta que no lo consiga y lo entienda estaré fastidiado así que espero que con vuestra ayuda lo saque, gracias de antemano.

Bueno edito el post para que no se duplique mas.

Después de probar y probar han pasado 2 horas desde que escribí los párrafos de arriba y mi conclusión es que mi Linux tiene mal lo de las cabeceras que me comento kcdtv por que he probado en Parrot y todo va como la seda la pilla a la primera, funciona fina, fina, pero ahora me ha picado mas el pensar el por que en parrot si y en Kali no, por lo que me gustaría llegar al final del problema ahora creo que el siguiente paso es solucionar lo de las cabeceras de Kali pero para esto necesito un hilo del que tirar por que estoy que no se ni por donde tirar, por lo que si me echáis un cable os lo agradeceré eternamente, gracias chicos de antemano y lamento ser tan pesado.

Simplemente debes instalar las dich(os)as cabeceras :wink:
Hay en Kali Linux un “meta paquete” con todas las cabeceras, se instala así:

sudo apt install linux-headers-amd64

Si quieres ahorrar espacio y te gustan los sistemas muy limpios, puedes instalar la cabecera que necesitas de este modo:

sudo apt install linux-headers-$(uname -r)

Con $(uname -r) haces una “substitución de ordenes”, o sea en mi caso esto da

kcdtv@Xuxu:~$ uname -r 5.4.0-62-generic
y me daría

sudo apt install linux-headers-5.4.0-62-generic

Estoy con debian estable, en tu caso con Kali la versión de kernel será mucho mas alta.
Otra cosa, no te olvides de actualizar el sistema y eventualmente reiniciar antes de instalar el driver para que todo esté en sintonía .
Es decir:

sudo apt install linux-headers-amd64 sudo apt update sudo apt full-upgrade sudo systemctl reboot
Y los pasos para instalar los drivers.

Mil gracias voy a probar ahora mismo con lo que me salga comento, jejeje ahora estoy como un nene con zapatos nuevos espero no equivocarme al atarme los zapatos y me quede sin dientes jajajajaja en un rato comento.

Bueno tengo buenas noticias HA SIDO NIÑOOOO jajajaja después de 3 meses dándole muchas vueltas caí en este foro os conocí y me habéis ayudado un montonazo gracias a vosotros lo he conseguido la primera piedra la he superado ahora a seguir con mas retos

MIL GRACIAS CHICOS.

¡Enhorrabuena! :biere: :slight_smile: