Posts etiquetados ‘openwrt’

Luego de más de un año de ausencia es un placer publicar nuevamente y compartir conocimiento con la comunidad. Retomando el hábito de maker y blogger, en esta ocasión construiremos una “Pentesting Dropbox” para llevar a cabo nuestros menesteres en redes ajenas. Estos dispositivos proporcionan acceso remoto a una red, y su principal ventaja es su reducido tamaño, por lo que pueden pasar desapercibidos sin ningún problema.

En este caso, MiniPwner, se trata de un router wireless TP-Link TL-MR3040 el cual posee un puerto Ethernet y el sistema operativo OpenWRT en el cual se han instalado herramientas específicas para tareas de pentesting, como: nmap, tcpdump, nbtscan, ettercap, kismet, aircrack-ng, etc. ofreciendo la posibilidad de establecer túneles VPN para ejecutar otras herramientas externamente pero manteniendo el acceso. Una vez conectado a una toma de red descuidada (o abandonada, algo muy común actualmente debido a la tecnología inalámbrica), podemos acceder mediante Wi-Fi desde una localización próxima y tranquilamente trabajar sobre la red a la que nos hemos conectado. Podríamos acceder a redes de bancos, hospitales, restaurantes, clínicas, etc. siempre y cuando las tomas de red encontradas proporcionen un enlace real. Con esta breve introducción y sin más preámbulos comenzaremos a construir nuestro MiniPwner.

Lista de Componentes

1 Router inalámbrico N portátil 3G/4G TP-Link MR3040 v2.x

1 Memoria USB Sandisk Cruzer Micro 16GB (o equivalente)

Particionando y Formateando la Memoria USB

En primer lugar debemos particionar y formatear nuestra memoria USB de la siguiente manera:

Partición 1: 500MB (Primaria – Linux Swap)

Partición 2: 6.96GB (Primaria – Ext4)

Podemos realizar esta tarea desde un sistema operativo Linux con utilidades como “fdisk” o “GParted”. Desde un sistema operativo Windows podemos utilizar una excelente herramienta: “MiniTool Partition Wizard Professional Edition 8.1.1” cuyo enlace de descarga se encuentra a continuación.

MiniTool Partition Wizard Professional Edition 8.1.1

Autor: MiniTool

Web: www.partitionwizard.com

Tamaño: 13.9MB

SHA1 Hash: D3DD0B6387736EB07EAC20526EA0660386CE4207

Descarga

En la siguiente imagen se observa nuestra memoria USB (en este caso, con una capacidad de 8GB) particionada y formateada de acuerdo a las especificaciones antes mencionadas:

Instalando OpenWRT

Habiendo realizado exitosamente la operación anterior, ahora estamos en condiciones de instalar OpenWRT en nuestro router. Para esto, debemos descargar el firmware desde uno de los enlaces que se encuentran a continuación:

OpenWRT Barrier Braker 14.07

Autor: OpenWRT

Web: openwrt.org

Tamaño: 3.75MB

SHA1 Hash: BE3DD2577242204FCB4A9A715AFD4F2F00762AD5

Descarga     Mirror

Utilizando un cable Ethernet (derecho, no cruzado) conectaremos el dispositivo a nuestro ordenador y ejecutaremos nuestro navegador web favorito. A continuación, en la barra de direcciones introduciremos la dirección IP 192.168.0.1 y pulsaremos Enter. Cuando se nos solicite, introduciremos el Nombre de Usuario y la Contraseña predeterminados, admin en ambos casos. Verificadas las credenciales de acceso, nos encontraremos en la interfaz web de configuración del router.

Para instalar el nuevo firmware descargado anteriormente procederemos de la siguiente manera, en el menú desplegable ubicado en la columna izquierda de la interfaz web seleccionamos “System Tools” –> “Firmware Upgrade”. Luego, presionamos el botón “Examinar” y especificamos la ruta del archivo de firmware descargado anteriormente, por ejemplo, D:Downloadsopenwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin. Finalmente presionamos el botón “Upgrade”. En breve, el router se reiniciará y ya tendremos instalado el nuevo firmware. En la siguiente imagen se observa el proceso descripto anteriormente.

Configurando OpenWRT

Habiendo finalizado exitosamente la instalación del firmware, procederemos a realizar configuraciones y ajustes para posteriormente convertir nuestro router en MiniPwner. En primer lugar, ejecutaremos nuestro navegador web favorito y en la barra de direcciones introduciremos la dirección IP 192.168.1.1. La interfaz web presentada se observa en la siguiente imagen:

Seleccionamos “Go to password configuration” y se presentan las siguientes opciones de configuración:

Introducimos una contraseña decente y dejamos las demás opciones de configuración con sus valores por defecto. Finalmente seleccionamos “Save and Apply”, como se muestra a continuación:

En el paso anterior configuramos la contraseña y automáticamente habilitamos el servidor SSH, ahora debemos descargar e instalar algunos paquetes de software, para hacer esto nuestro router requiere de acceso a internet. Podemos obtener acceso de dos maneras, una es de manera inalámbrica, conectando nuestro router a un punto de acceso inalámbrico y la otra es utlizando un módem 3G. En esta publicación utilizaremos el primer método. En la barra de menú superior seleccionamos “Network” –> “Wifi”.

Luego seleccionamos “Scan”.

Y finalmente seleccionamos la red a la cual deseamos conectarnos introduciendo la contraseña correspondiente. (no importa si es red ajena)

Con la conexión configurada exitosamente, a continuación ejecutamos nuestro cliente SSH favorito y establecemos una conexión a la dirección IP 192.168.1.1. Desde un sistema operativo Windows podemos utilizar una excelente herramienta: “PuTTY”, cuyo enlace de descarga se encuentra a continuación.

PuTTY 0.64

Autor: Jakub

Web: jakub.kotrla.net/putty/

Tamaño: 1.05MB

SHA1 Hash: B37FB75C18705263BB9A4A0DCCFCBCE395CB1A76

Descarga     Mirror

Cuando se nos solicite, introduciremos las credenciales de acceso, las mismas utilizadas anteriormente en la interfaz web.

login: root

Password: (password)

Ejecutamos la siguiente secuencia de comandos:

root@OpenWrt:~# opkg update

root@OpenWrt:~# opkg install kmod-scsi-core kmod-usb-storage block-mount kmod-lib-crc16 kmod-crypto-hash kmod-fs-ext4

A continuación insertamos la memoria USB en el puerto USB del router y reiniciamos el dispositivo con el comando:

root@OpenWrt:~# reboot

Luego de reiniciar el dispositivo con la memoria USB insertada, nuevamente establecemos una conexión ejecutando nuestro cliente SSH favorito y editamos el archivo “fstab”, para esto ejecutamos el siguiente comando:

root@OpenWrt:~# vi /etc/config/fstab

El archivo debe modificarse acorde a la siguiente imagen:

Ejecutamos la siguiente secuencia de comandos:

root@OpenWrt:~# mkdir -p /tmp/cproot

root@OpenWrt:~# mount –bind / /tmp/cproot

root@OpenWrt:~# mkdir /mnt/sda2

root@OpenWrt:~# mount /dev/sda2 /mnt/sda2

root@OpenWrt:~# tar -C /tmp/cproot -cvf – . | tar -C /mnt/sda2 -xf –

root@OpenWrt:~# umount /tmp/cproot

Habiendo ejecutado sin errores la anterior secuencia de comandos, nuevamente modificamos el archivo “fstab” acorde a la siguiente imagen:

root@OpenWrt:~# vi /etc/config/fstab

A continuación reiniciamos una vez más nuestro dispositivo.

root@OpenWrt:~# reboot

Hello MiniPwner!

Ahora verificamos que la memoria USB se encuentre montada correctamente ejecutando el comando:

root@OpenWrt:~# df –h

En la siguiente imagen se observa el resultado de la ejecución del comando anterior.

Si todo es correcto, procedemos a ejecutar la siguiente secuencia de comandos:

root@OpenWrt:~# opkg update

root@OpenWrt:~# opkg install libpcap libstdcpp libpthread zlib libopenssl libbz2 bzip2 terminfo libnet1 libpcre libltdl libncurses librt libruby wireless-tools hostapd-common-old kmod-madwifi ruby uclibcxx libnl libcap libreadline libdnet libdaq libuuid libffi python-mini openssl-util kmod-tun liblzo libevent2-core libevent2-extra libevent2-openssl libevent2-pthreads libevent2 aircrack-ng elinks ettercap karma kismet-client kismet-drone kismet-server nbtscan netcat nmap openvpn-easy-rsa openvpn-openssl perl samba36-client samba36-server snort tar tcpdump tmux yafc wget python vim unzip

root@OpenWrt:~# cd /tmp

root@OpenWrt:/tmp# wget http://minipwner.com/images/Overlay/minipwner-overlay_x.x.x.tar

Luego, nos desconectamos de la sesión SSH y ejecutamos nuestro navegador web favorito, en la barra de direcciones accedemos a la interfaz web del router, dirección IP 192.168.1.1 e introducimos las credenciales de acceso configuradas anteriormente.

Debemos eliminar la conexión al punto de acceso inalámbrico creada anteriormente, para llevar a cabo esta tarea seguiremos paso a paso la siguiente secuencia de imágenes:

Ahora cerramos la interfaz web y nuevamente establecemos una conexión ejecutando nuestro cliente SSH favorito, ejecutamos la siguiente secuencia de comandos:

root@OpenWrt:~# cd /tmp

root@OpenWrt:/tmp# tar -xf minipwner-overlay_x.x.x.tar

root@OpenWrt:/tmp# sh setup.sh

Finalmente nos aseguramos que el “Selector de Modo de Operación” (switch de 3 posiciones) en el router se encuentre en la posición central (“WISP”) y a continuación reiniciamos el dispositivo. El resultado exitoso de la ejecución de los comandos anteriores se observa en la siguiente imagen.

Happy Pwning!!!

Acerca de los MiniModos

Una característica sobresaliente en esta versión de MiniPwner son los llamados “MiniModos”. Estos modos de operación se logran gracias al agregado de un switch selector de 3 posiciones situado en el lateral izquierdo del router (visto de frente). Una vez reiniciado el dispositivo, luego de completar el último paso, nos conectaremos al router mediante Wi-Fi, el SSID de la red es “MiniPwner-Setup” y la contraseña de acceso es “M!n!Pwn3r$etup” (sin comillas).

Luego ejecutaremos nuestro navegador web favorito y en la barra de direcciones introduciremos la dirección 192.168.3.1/cgi-bin/minimodes. También podríamos utilizar nuestro móvil ya que la interfaz es responsiva. Observamos lo siguiente:

La primera columna (empezando desde la izquierda) indica la posición del switch selector de modo de operación, la columna central especifica el modo configurado actualmente y la última columna permite reemplazar la configuración actual del switch selector por una nueva.

AP: Modo Access Point

Setup: Modo de configuración/mantenimiento.

WarWalk: Modo Warwalking (Yeah!)

Black Mod

Esta modificación es personal y queda a criterio del lector aplicarla o no según el caso. Nada de lo expuesto en este apartado afecta al funcionamiento normal del dispositivo en caso de no realizar las siguientes modificaciones.

En caso de necesitar ocultar el dispositivo con fines poco didácticos, el color blanco de la carcaza del router no colabora mucho con la palabra discreción precisamente. Sería de gran ayuda una apariencia más oscura para pasar desapercibido. Para lograr esto, podemos utilizar diversas técnicas, a criterio de quien escribe hay dos soluciones rápidas y sencillas: vinilo adhesivo muy delgado o vinilo en aerosol (“Plasti Dip”). Ante la imposibilidad de conseguir vinilo adhesivo ultra delgado, decidí optar por la segunda opción muy utilizada en auto/moto tunning.

Ya que vamos a aplicar “pintura” en aerosol, será necesario desarmar completamente el router. Resulta un poco complicado el desarme dada la falta de documentación con respecto a esta tarea. Afortunadamente no es nada que un par de cervezas no puedan solucionar.Taza Para llevar a cabo la tarea es prácticamente imprescindible el siguiente juego de herramientas:

Comenzaremos quitando la tapa de la batería y luego la batería. Luego quitamos los dos tornillos (PH000) que aseguran la carcaza. A continuación quitaremos las trabas de los cuatro extremos con la ayuda de la aleta plástica (o púa) y el lapicero de prueba metálico (o herramienta de apertura universal metálica). Luego con la ayuda de un destornillador plano debemos aflojar las cuatro trabas centrales que se ubican de a dos en los bordes laterales del compartimento de la batería.

Si sobrevivimos a esta tarea, y sin haber dañado la carcaza ni la placa, retiramos la placa del interior del gabinete quedando éste completamente vacío.

Luego debemos enmascarar con cinta de papel las partes del gabinete que no deseamos “vinilizar” con “Plasti Dip”. Para proteger la superficie utilizamos apuntes antiguos. Risa

Con la aplicación de una capa de “Plasti Dip” será suficiente para conseguir la apariencia tan deseada de nuestro MiniPwner.

Para incrementar aún más el nivel de discreción sería necesario apagar los LEDs del MiniPwner. Mediante software podemos controlar todos los LEDs excepto el de encendido, por esta razón también le aplicamos vinilo negro a esa parte de la tapa frontal para disminuir notablemente el brillo de dicho LED. También podríamos quitarlo directamente del PCB aprovechando que tenemos el dispositivo desarmado, aunque esta última idea no me resulta del todo convincente.

Con la siguiente secuencia de comandos es posible apagar todos los LEDs del router (excepto el LED de encendido).

root@OpenWrt:~# echo 0 > /sys/devices/platform/leds-gpio/leds/tp-link:green:3g/brightness

root@OpenWrt:~# echo 0 > /sys/devices/platform/leds-gpio/leds/tp-link:green:wlan/brightness

root@OpenWrt:~# echo 0 > /sys/devices/platform/leds-gpio/leds/tp-link:green:lan/brightness

Otra posible modificación sería el agregado de una antena externa, una excelente opción para pentesting, pero para actividades mas subrepticias no sería conveniente ya que dificultaría el ocultamiento del dispositivo.

También es posible exponer el puerto serie al exterior instalando un conector apropiado en la carcaza, como un cabezal hembra de 1×4.

El resultado final de aplicar “Black Mod” se observa en la siguiente imagen:

 

Fuente: http://minipwner.com/index.php/build-one