Laboratorio de hacking III: Nexx WT3020F SWORD

En esta parte de la serie de artículos de creación de herramientas trataremos el montaje de una dropbox que podremos dejar abandonada en una red a la que queramos tener acceso.

SWORD es un portal web instalado en un pequeño dispositivo, normalmente un router, en el que puedes hacer un pivote y hacer ataques desde él mientras el equipo principal se puede dedicar a otras cosas.

Su funcionamiento puede recordar a la herramienta Packet Squirrel de Hak5 en cuanto al tamaño y finalidad, aunque difiere un poco en su forma de trabajar. Mientras que Packet Squirrel  se conecta entre un host y el hub de red y selecciona 1 de entre 3 payloads que tiene precargados vía switch físico, SWORD se conecta de la misma manera pero tiene todo lo necesario precargado de forma que es necesaria una conexión hacia él, ya sea vía red física o por un punto de acceso que creemos desde el dispositivo, aunque si usamos este último, no podremos utilizar algunos ataques Wifi como por ejemplo los destinados a WEP y WPA.

Siempre y cuando se instale el software necesario, con unos pequeños cambios en la instalación adaptados al dispositivo en el que lo estemos metiendo y según en qué casos, algún cambio en los archivos PHP del portal, SWORD es potencialmente instalable en cualquier cosa. En este artículo se tratará la instalación en un NEXX WT3020F, uno de los router para el que fue creado SWORD.

La herramienta no está libre de errores y alguna que otra vez suele colgarse, pero es un buen comienzo para alguien que quiera crearse un dispositivo de ataque barato, modificable para alojar nuevos programas, permite configurarlo al gusto y fácilmente modificable y actualizable.

Hardware necesario:

  • NEXX WT3020F
  • Memoria USB 8/16/32GB

Software necesario:

  • OpenWRT
  • Fdisk
  • Soporte para USB y ext4
  • Ettercap-ng
  • Reaver
  • TCPDump
  • DSNiff (URLSnarff)
  • Nmap
  • Mdk3

El WT3020F es un router con memoria interna de 8MB y RAM de 16MB de pequeño tamaño (6,40 x 4,50 x 1,80 cm) que si bien se supone que debería ser suficiente para alojar SWORD y todas sus dependencias, pronto descubrimos que no lo es (quizás lo fuera en versiones beta), por suerte podemos arreglar ese inconveniente con la memoria USB. Como vamos a usar la memoria, los modelos H y AD también valen para crearnos nuestra dropbox.

Instalación:
Con OpenWRT instalado en nuestro dispositivo, y configurada su contraseña de root, conectamos el pendrive en el puerto USB y conectamos un cable de red desde nuestro router hasta el puerto WAN del NEXX para que tenga conexión a Internet, nos conectamos por ssh a su IP (normalmente 192.168.1.1) con permisos de root y ejecutaremos “opkg update” para actualizar nuestro NEXX y “opkg install bash –force-depends” (aunque esto último ya debería  estar instalado).
Muchos de los paquetes que necesita la herramienta no están disponibles porque son antiguos, así que hay que instalarlos a mano.

Con las órdenes:

  • opkg install fdisk
  • opkg install block-mount
  • opkg install kmod-usb-storage
  • opkg install kmod-fs-ext4
  • opkg install e2fsprogs

Conseguiremos poder ver la cantidad de memoria que queda en nuestro almacenamiento y tener soporte de USB y sistema de ficheros ext4.

Ahora al hacer “fdisk –l” en un apartado se nos debería listar la memoria USB que conectamos al principio de la guía, normalmente aparece bajo la ruta de montaje /dev/sda1

Para eliminar posibles problemas borraremos la partición antigua y crearemos una nueva y para eso seguiremos usando fdisk, dejo un par de capturas de pantalla con las órdenes y lo que muestra por pantalla.

Primero borraremos la partición:

Después crearemos una nueva:

Ahora formateamos en ext4:

Habiendo conseguido esto, el último paso para empezar a trabajar con el USB será crear un punto de montaje y montar la unidad.

Ahora podemos copiar el sistema de ficheros actual a la memoria USB, si hubiéramos usado el almacenamiento interno éste por sí solo no sería suficiente para almacenar todos los archivos de SWORD. Así tendremos más almacenamiento y obtendremos la ventaja de tenerlo todo en una memoria aparte, podremos extraerla sin más complicaciones y nuestro NEXX volverá a ser un router aparentemente normal, tanto a nivel físico como software.

Órdenes para la copia del sistema de ficheros:

mkdir -p /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -xf -- 
umount /tmp/cproot

Con esto ya tendremos copiado todo el sistema en el pendrive, y en el siguiente artículo procederemos a configurar nuestro router para que en el caso en el que detecte nuestra memoria externa, la monte y arranque desde ella y terminaremos la instalación del SWORD.

Para que sea más fácil, yo usaré “nano”, si sois más de “vi”, este paso os lo podéis saltar.

opkg install nano

Crearemos el fichero fstab para montar la memoria USB cuando arranque y usarla como root y lo guardaremos.

nano /etc/config/fstab

Crearemos la configuración inicial usando:

block detect > /etc/config/fstab

Editaremos el fichero, para que nos quede de esta manera:

Fe de erratas: no es “rw.sync”, es “rw,sync”

Una vez modificado el fichero, guardamos, y reiniciamos el dispositivo.

Una vez que arranque (si no lo hemos hecho bien, siempre podemos reinstalar OpenWRT de nuevo y empezar otra vez) veremos si nuestro trabajo tiene recompensa con:

mount

Y si usamos la orden “df” podremos ver de cuanto espacio disponemos

(Nota: Recordad que se ha instalado nano después del volcado del sistema de ficheros, así que nuestra memoria USB no tendrá ese programa)

Terminada esta parte, ya podremos empezar a trabajar en la instalación del SWORD.

Como no todos los programas son fácilmente instalables porque son válidos para versiones antiguas pero aún no se han probado o no se tiene interés en usarlos en las nuevas versiones, hay que ir al repositorio de OpenWRT e instalar los paquetes “.ipk”

No tiene mucho misterio la verdad, basta con ejecutar “opkg install http://archive.openwrt.org/barrier_breaker/14.07/ramips/mt7620n/packages/oldpackages/(PaqueteAInstalar.ipk) –force-depends

Baste una imagen como ejemplo:

Usaremos –force-depends para forzar que si tenemos dependencias de otro software también lo instale, aunque hay que estar atentos ya que a veces falla y eso habrá que solucionarlo manualmente buscando nosotros el paquete en el repositorio e instalándolo.

De esta forma instalaremos ettercap-ng, reaver, tcpdump, url snarf, nmap, aircrack-ng y mdk3

Es posible que mucho software no lo encontremos, por que haya otro que ocupe su lugar como creo que es el caso de urlsnarf (yo instalé dsniff). En ese caso, SWORD no nos funcionará correctamente y habrá que modificarlo tocando su código para que llame adecuadamente al software.

De cualquier manera, aunque al final del todo tengamos una herramienta nueva, el fin de esta guía no es saber usarla, sino más bien montar unas bases para que en un futuro el usuario pueda montarse sus propias herramientas y arreglar los problemas que pueda tener en su creación.

Instalado todo lo necesario, solo queda descargarnos SWORD y vía scp copiar el fichero comprimido a nuestro router, conectarnos por ssh y una vez dentro, descomprimir los archivos y dar permisos.

Una vez que tenemos todo descomprimido, se nos habrá creado un directorio dentro de www llamado SWORD en el que tendremos toda la GUI que maneja gráficamente a la herramienta, ahora hay que dar los permisos necesarios a la carpeta para que no tengamos problemas en su uso. Borraremos el archivo comprimido para que no nos moleste.

Hecho esto, podremos ya podemos acceder tanto de forma interna como de forma externa.

Con la IP Interna, accediendo directamente desde la red que proporciona el NEXX.

Y accediendo a la IP que proporciona la red donde conectemos el NEXX.

En este punto ya tenemos una dropbox funcional que dejar conectada a cualquier puerto RJ-45.

Este es el final de la guía, pero no de nuestra dropbox, ya que tenemos almacenamiento que aprovechar podemos complementar nuestro SWORD con RESPONDER (https://github.com/SpiderLabs/Responder) de SpiderLabs o cualquier cosa que se nos ocurra.

Os esperamos en el próximo de la serie.