Laboratorio de Hacking (II): Portal cautivo Zsun Wifi Card Reader (1ª parte)

Este pequeño aparato nos puede hacer la vida más fácil en nuestro laboratorio, ya sea con la configuración que viene de serie o instalándole nosotros OpenWRT para ganar funcionalidades.

ZSUN Wifi Card Reader

  • Memoria RAM: 64MB
  • Memoria Almacenamiento: 16MB Flash + MicroSD
  • SoC: Atheros AR7240 CPU (400Mhz) + Atheros AR9331 Chipset (Wifi Integrado)
  • Conectividad: 802.11 b/g/n Wi-Fi hasta 150Mbps
  • Alimentación: Puerto USB

El dispositivo tiene pines GPIO, y para acceder a algunos de ellos es necesario separar las dos placas, cosa que no es recomendable porque nos quedaríamos sin puerto microSD.

El dispositivo requiere de una tarjeta de memoria para su funcionamiento donde se guardarán los datos. Cuando lo enchufemos a un USB, el dispositivo creará una red Wifi sin contraseña a la que nosotros nos conectaremos y, bien con la aplicación (ZSun) o con un navegador normal conectándonos a la IP por defecto (10.168.168.1), accederemos al contenido de nuestra tarjeta microSD.

Vistas sus características, y lo que puede hacer de serie, vamos a ver qué cosas podemos hacer con él que nos sirvan para ampliar las capacidades de nuestro laboratorio.

Básicamente, tenemos dos opciones:

  • Opción 1: Usarlo como viene de serie

Para lo que vale y lo que ofrece de serie no está mal dejarlo como está. Como hemos mencionado anteriormente, será necesario una tarjeta microSD de buena capacidad y un conector USB para proporcionarle electricidad. Con eso ya podría funcionar. Eso sí, solo funcionará como servidor de archivos.

  • Opción 2: Instalarle OpenWRT

Otra opción es instalarle el firmware basado en Linux que ya usamos en el anterior artículo de esta serie. Se trata de OpenWRT. Con este firmware funcionando ampliaremos las capacidades del dispositivo.

Nota: Aunque es buena idea quedarse con la opción 1 y usarlo como el fabricante quiere, tengo que decir que el software por defecto del ZSun Wifi Card Reader viene cargado de fallos de seguridad, como por ejemplo cargar órdenes shell en los campos de texto y ejecutarlas, tener un acceso telnet en el puerto 11880, o que cada vez que se encienda levante un servidor SMB Windows Shared Folders. Así que recomiendo encarecidamente instalar OpenWRT. Precisamente esos fallos de seguridad se aprovechan para poder instalarle dicho firmware. Algunos de esos fallos se explican aquí.

Para instalar OpenWRT usad la guía que hay en este link que lo detalla bastante bien.

Después del flasheo del firmware, OpenWRT no montará la microSD automáticamente, pero puede leerla y montarla en el sistema de archivos (cosa que hay que hacer a mano). De todos modos, no funcionará como un pendrive cuando se conecta por USB a un ordenador.

Para usar la tarjeta en OpenWRT tendrás que usar un lector externo para copiar los archivos desde el ordenador a la tarjeta, y posteriormente introducir la tarjeta en el router para poder instalar lo que quieras. En la interfaz LuCI de OpenWRT, puedes ir a “Puntos de Montaje”, y seleccionar ahí la tarjeta, simplemente marcando la casilla de verificación y haciendo clic en “Guardar y Aplicar”.

Por defecto, la tarjeta se montará en el directorio /etc/sda1/, por SSH podremos conectarnos y usar las ordenes cd y ls -a para cambiar de directorio y listar los archivos respectivamente.

Con esta información ya podemos usar nuestra tarjeta microSD en el router. Más tarde podremos configurar nuestro servidor web para poder servir una página que esté almacenada en un directorio en la tarjeta.

Una vez que se le instala OpenWRT para gestionar quién controla el puerto de la microSD, basta con seguir los pasos de este artículo. Veremos si es el ZSun para usarlo como almacenamiento, o el puerto USB para que un ordenador lo use como un pendrive.

Si por cualquier motivo el dispositivo se brickea, (es decir, se queda inutilizado por una mala instalación) para entrar en el modo uboot tienes que soldar en el dispositivo un conector RJ-45. Así que aparte de lo poco estético que quedaría un RJ-45 saliendo de nuestro lector, sería bastante raro verlo y “difícil” de esconder, ya que casi sería más grande que él. Así que recomiendo que cuando se instale OpenWRT se haga con cuidado.

Una vez que le instalemos OpenWRT, las posibilidades son poco menos que infinitas. Por poner unos ejemplos, podemos usarlo como punto de acceso/cliente/repetidor Wifi, como un punto de acceso OpenVPN, como Nodo Tor, un PirateBox o para lo que estaba destinado (o casi); hacer de servidor de archivos al que puede que queramos añadirle algunos extras ejecutándose en segundo plano.

Una vez que tenemos nuestro ZSun con OpenWRT instalado, lo tenemos listo para seguir maquetando nuestra herramienta.

La ingeniería social también es una parte de la seguridad informática que intentaremos explotar un poco con este dispositivo. Para ello crearemos un portal cautivo que pedirá credenciales a los clientes y los conectará a una red Wifi legítima con acceso a Internet, impidiendo así sospecha alguna de los usuarios.

Para comenzar a hacer nuestro portal cautivo necesitaremos configurar SFTP y acceder al sistema de ficheros de OpenWRT. Podemos usar la orden opkg en modo offline e instalar nuestros paquetes desde la tarjeta microSD (recordad que nuestra tarjeta se monta en /mnt/sda1/).

Primero descargaremos los paquetes necesarios desde descargas OpenWRT

Guárdalos en una carpeta en la tarjeta SD ej: paquetes_opkg, vía lector de tarjetas desde tu ordenador.

Inserta la tarjeta en el ZSun, arráncalo y conéctate. Cambia a la carpeta donde están nuestros paquetes.

cd /mnt/sda1/paquetes_opkg

Instala los nuevos paquetes con la orden opkg install *

Veras algo como esto:

root@OpenWrt:/mnt/sda1/packages# opkg install *
Installing libopenssl (1.0.2g-1) to root...
Installing zlib (1.2.8-1) to root...
Installing openssh-sftp-server (7.1p2-1) to root...
Package zlib (1.2.8-1) installed in root is up to date.
Configuring openssh-sftp-server.
Configuring zlib.
Configuring libopenssl.
root@OpenWrt:/mnt/sda1/packages#

Ahora puedes usar, por ejemplo, Filezilla en nuestro ordenador para conectarte vía SFTP a nuestro OpenWRT en la IP 192.168.1.1 con nuestro nombre de usuario y contraseña. Hecho esto deberíamos ver las lista de carpetas para /root y poder explorar todo el sistema de OpenWRT, incluida nuestra tarjeta de memoria montada en /mnt/sda1/.

Una de las características de nuestro ZSun es que puede conectar de forma estable varios nodos y podemos explotar esta característica haciéndolo un repetidor puente de una red Wifi existente.

Para ello ya disponemos de una configuración wireless base que requiere de una Wifi existente, le da a OpenWRT acceso a Internet y también le proporciona a cualquiera conectado a OpenWRT acceso a Internet, cortesía de Piratebox.

Ya tenemos SFTP para editar los archivos, y tendremos que acceder al directorio /etc/config, y editar tres ficheros; firewall, wireless y network:

  • /etc/config/firewall

Reemplaza solo la entrada para la configuración de la zona WAN tal que:

config zone
option name wan
option network 'wan wan6 wwan'
option input REJECT
option output ACCEPT
option forward REJECT
option masq 1
option mtu_fix 1
  • /etc/config/wireless

Vamos a levantar dos interfaces Wifi: -wwan, que conecta a tu red local Wifi (de donde obtienes Internet); y -lan, que proporciona Internet a la red OpenWRT. Para ello será necesario reemplazar el fichero /etc/config/wireless por este otro, realizando los cambios necesarios que se comentan a continuación:

La entrada “config wifi-iface” con “option network ‘wwan’” es donde configuramos la red Wifi que queremos conectar. Asegúrate de que reemplace “<TuPropiaWifi>” con su propio SSID de red WiFi.

Si tu red está protegida: descomenta las líneas “#option encryption” y “#option key” para esta entrada y reemplaza “<TuPropiaContraseña>” con la de tu red, y comenta la opción “option encryption ‘none‘”.

Hay que tener en cuenta que si OpenWRT no se puede conectar a la red Wifi que estamos configurando, no iniciará correctamente la segunda interfaz Wifi lo que significará que no podremos conectarnos a OpenWRT y tendremos que restablecer la configuración de fábrica.

Fichero /etc/config/wireless

config wifi-device 'radio0'
 option type 'mac80211'
 option channel 'auto'
 option hwmode '11g'
 option path 'platform/ar933x_wmac'
 option htmode 'HT20'
 option disabled '0'
 option txpower '30'
 option country 'US'

config wifi-iface
 option ssid ''
 option device 'radio0'
 option mode 'sta'
 option network 'wwan'
 option encryption 'none'
 #option encryption 'psk2'
 #option key '<TuPropiaContraseña>'

config wifi-iface
 option ssid 'OpenWrt'
 option device 'radio0'
 option mode 'ap'
 option network 'lan'
 option encryption 'none'
 #option encryption 'psk2'
 #option key 'TuSuperContraseñaSegura'
  • /etc/config/network

Permite que la interfaz wwan obtenga IP vía DHCP agregando un par de líneas al final del fichero /etc/config/network

config interface 'wwan'
option proto 'dhcp'

Después de hacer nuestras configuraciones, guarda todos los archivos, súbelos a /etc/config y reinicia el dispositivo ya sea quitándole la corriente o seleccionando “reinicio” en la interfaz LuCI.

Re-conéctate a OpenWRT y deberías tener acceso a Internet en el dispositivo.

Si por cualquier motivo la red OpenWRT no vuelve a aparecer, tendremos que hacer un restablecimiento de fábrica y verificar nuestra configuración de autenticación y SSID de Wifi en /etc/config/wireless.

¿Tienes conexión pero sin acceso a Internet?

Probablemente se deba a un conflicto de direcciones IP entre ZSun y la red Wifi a la que te estás conectando. Por lo general, al conectarse a un punto de acceso de iPhone o Android, esto no suele ser un problema pero la mayoría de los routers domésticos también se ejecutan con IP 192.168.1.1, como OpenWRT, y este conflicto impide que la conexión a Internet se puentee correctamente.

Deberás asegurarte de que tu router Wifi de origen no tenga la misma IP estática configurada que la interfaz LAN de OpenWRT; de lo contrario, el DNS fallará y no tendrás acceso a Internet.

Para hacer esto, configura OpenWRT para usar una IP alternativa para la interfaz lan cambiando la siguiente línea en su archivo /etc/config/network, bajo “config interface ‘lan’”:

option ipaddr '192.168.10.1'

Pon la dirección IP desde la que quieres que opere OpenWRT, p.e. 192.168.10.1 y guardarlo y súbelo al ZSun.
Ahora tendrás que acceder a OpenWRT por la nueva IP, que incluye SSH, SFTP y la interfaz LuCi.
Teniendo todo funcionando hasta aquí solo nos falta instalar un servidor PHP y configurar nuestro portal cautivo seguro para redireccionar a nuestros clientes.

(N.d.E.: En los próximos días seguiremos con la segunda parte de este artículo sobre Portal cautivo Zsun Wifi Card Reader. Mientras os damos tiempo para revisar todo lo que nos ha contado Iván hasta aquí).

Comments

  1. Vaya! Qué original, nunca visto…

    ¿fuiste a la FAQ1n del 2017?

  2. No, no he pisado nunca ni la FAQin ni la Rooted

    ¡Disfrutad los que estéis por allí estos días!