-[ 0x0B ]-------------------------------------------------------------------- -[ Dispositivos empotrados ]-------------------------------------------------- -[ by SET ]----------------------------------------------------------SET-31-- DISPOSITIVOS EMPOTRADOS Es curioso las vueltas que puede dar la vida. Son curiosas las acciones a que nos pueden llevar simples casualidades. Son curiosos los motivos que se ocultan tras las acciones humanas. Todo parece fruto de la casualidad y el hazar. Nada parece tener lógica ni sentido. Un solo movimiento de un dedo, puede afectar a las acciones de una persona durante meses. Puede que incluso a su futuro lejano. ¿ Pensáis que estamos filosofando alrededor de la mas pura teoría ? No en este caso. Si no lo creéis no tenéis mas que abandonar la lectura de estas paginas y pasar al siguiente articulo. En caso contrario, os aseguramos que en estas lineas no hay mas que la verdad. O tal vez no. LA IMPORTANCIA DE LEER EL CORREO En estos tiempos, plagados de contratiempos, es casi una casualidad encontrar el correo correcto en medio de la basura que diariamente recibimos. Tras un ataque de rabia, consecuencia de una inundación de consejos y ofertas no deseadas, es mas que normal lanzar una orden de borrado general de una pagina entera de coreo. Tal vez nunca nos enteremos que acabamos de cancelar la ultima ocasión de reiniciar aquella romántica relación sentimental o una ultima oferta de trabajo que nos iba a sacar para siempre de nuestro inmundo cubiculo de trabajo y librarnos del no menos asqueroso jefe. Nada mas lejos de la realidad cotidiana de Juanito Enteradillo, no porque fuera especialmente cuidadoso en la lectura de su correo, ni porque recibiera miles de oferta de trabajo diaria maravillosos, con lo cual una mas o una menos, tanto importa, sino porque poseía un buen filtro de correo, conectado a un servicio automático de envío de reclamaciones en caso de recibir SPAM. El caso es que Enteradillo, abrió un buen día el correo adecuado y se encontró un texto solicitando salir de la cotidiana mediocridad. Tampoco es que fuera nada fuera de lo corriente, simplemente es que llegó en el momento adecuado, probablemente en el sitio justo. Tan solo la llamada de otro ser humano que se aburría un tanto, algunos miles de kilómetros en el otro extremo del mundo y que solicitaba ayuda para emprender una serie de investigaciones sobre una red que por otra parte no parecía nada anormal. Redes existen miles en nuestra Red, me refiero a Internet, muchas de ellas sin interes particular, o mejor debiéramos decir lo contrario. Todas tienen un particular interes, aunque puede que éste, afecte tan solo a un reducido grupo de personas y entonces se decide que la red no tiene nada del otro mundo, pero si hay millones de personas que la utilizan entonces se le endosa la etiqueta de red de interes general y cualquier personajillo de medio pelo que encuentra una brecha alcanza notoriedad inmediata, aunque el contenido en concreto asaltado tiene el mismo interes que un montón de ladrillos apilados, eso si, con sumo cuidado. No se donde leímos una vez que un montón de ladrillos no es un edificio modernista clasificado como obra de arte, de la misma forma que un conjunto de letras no es una obra literaria maestra, por muy enorme que sea. Resumiendo, el ataque a hotmail no tiene mas consecuencias que su enorme contenido de palabras y no era la intención del amigo de Juanito el coleccionar caracteres alfanuméricos. Nuestro lejano compañero solo quería atacar una maquina en concreto de una lejana red de lo mas gris que se pueda imaginar. ¿Y por que no ? Se preguntó Juanito. Hacia tiempo que no tenia un buen reto y este era tan bueno como cualquier otro. Hay gente que pierde el tiempo dándole con un palo a una pelota y nadie se mete con ellos,.... sobretodo si lo pierde sobre un terreno llamado campo de golf, si lo pierde sobre otro llamado autopista, las consecuencias son diferentes y los calificativos otros. Como veis, todo es relativo. BUSCANDO MAQUINAS Si te dicen que se desea entrar en la maquina de tu mejor amigo solo para gastarle una broma, tienes varias formas de iniciar las maniobras, pero lo mejor es simplemente reconocer el terreno. Si en lugar de un pobre terminal fuera Sherlock Holmes el encargado del trabajo y nos situáramos a finales del siglo XIX, en primer lugar hay que darse una vuelta por el barrio de nuestro objetivo, pero tomando ciertas precauciones de forma que nadie nos reconozca. Han pasado decenas de años, pero la lógica es la misma. Enteradillo buscó información alrededor de la maquina de sus deseos, pero utilizando las técnicas necesarias para evitar ser detectado o reconocido. De paso rogó a su amigo que no hiciera nada sin utilizar proxies anónimos, sockets o cuentas que no tuvieran relación con el. No sabemos si leyeron los interesantes artículos aparecidos en esta revista para hacerse anónimo o simplemente robó la cuenta y personalidad a su novia, el caso es que técnicamente no se pudo hacer una relación biunivoca entre los efectos en maquinas ajenas y sus preciosos dedos, de los cuales solo disponía de un stock, limitado a diez unidades. El primer paso del reconocimiento físico se reduce a buscar en ARIN, APNIC, LACNIC o RIPE donde esta registrado el dominio y que rango de IPs tiene asignado. El que no haya hecho esta búsqueda recientemente puede que se encuentre una pequeña sorpresa, ya que el viejo sistema de clasificación de redes mediante las cuatro clase desde A hasta D, esta fuera de uso. La razón ha sido el crecimiento exponencial de la red, que ha empezado a provocar que la búsqueda de un rango libre empiece a ser un bien escaso. Uno de los motivos fue que si una empresa necesitaba mas de 250 IP no tenia mas remedio que solicitar una red de tipo B, lo que le daba derecho a 65,533 direcciones aunque solo quisiera mil.... o menos. Este despilfarro se ha evitado con el nuevo sistema CIDR (Classless Inter-Domain Routing), que permite una flexibilidad mucho mayor que en el pasado. El secreto reside en que cada dirección IP tiene un prefijo y una extension. La longitud del prefijo varia en función del numero de bits que se necesitan y no en función de una asignación fija arbitraria. Pongamos un ejemplo sencillo. Si nos encontramos que la información que encontramos con un whois es algo parecido a 192.11.250.00/14, significa que la dirección en si misma s 192.11.20.00 y que se extiende otros 14 bits, los otros 18 quedan libres y los puede utilizar otro solicitante. Todo el sistema tiene un tiempo de respiro hasta que llegue el nuevo protocolo IPv6, que permitirá direcciones de 128 bit. Hecho este pedante inciso, solo queda comunicáros que Enteradillo se encontró con una sencilla red con un rango reducido pero que daba suficiente campo de acción para hacer alguna búsqueda. En pocas palabras, no demasiadas maquinas como para perderse, pero si una decena como para exigir un poco de organización y no dar golpes a ciegas. El primer paso obvio, es buscar el puerto 80 abierto para ver si hacia algún servicio HTTP que presentara alguna vulnerabilidad evidente. Cualquiera puede utilizar el software que mas le guste, pero nmap, sirve para eso y mas y ademas esta disponible en mas de las plataformas que podamos imaginar. Si alguna vez os encontráis sin saber como en estos manejos, una de las opciones es buscar si exigen servicios que requieran validación. Un ejemplo es el acceso al correo via web. Se puede encontrar de todo, desde fallos garrafales por falta de validación de los datos entrados, hasta información sensible que se encuentra en la ayuda que algún superjefe incompetente, ha hecho colgar para no perderse cuando se conecta desde el hotel donde esta pasando una noche loca con la ultima conquista. Nada de tan espectacular encontró, aunque el hecho que mostraran una lista con todos los usuarios registrados y los directorios asignados, sin ser un agujero catastrófico, mereció el registro puntual de la información en su fichero de avance de trabajos, porque nunca se sabe para que puede servir. Visto que nada evidente se encontraba empezó a manejar el nmap en forma de artillería pesada. Esto quiere decir lanzarlo de forma que investigue el rango de IP interesante y que descubra los puertos abiertos, los servicios correspondiente y puestos a pedir, el OS que maneja todo el circo. No es nuestra intención hacer un curso del nmap, baste con decir que lo podéis encontrar en www.insecure.org/nmap/, y allí hay un montón de información para leer. Solo nos interesa hacer una pequeña reseña del resultado. Para cada maquina escaneada os encontrareis con los servicios ofrecidos y una breve descripción de la version así como la mejor estimación sobre el sistema operativo y la probabilidad de que la información sea correcta. Antes de buscar cosas extrañas, hay que buscar lo evidente y esto no es tanto un ftp no puesto al día como un servicio finger pacientemente esperando en el puerto 79. Aunque algunos de vosotros no lo creáis, todavía existen estos servicios que nos dan información pertinente de quien esta conectado, su login, su directorio por defecto y demás lindezas que no debieran estar a la vista de todo el mundo. Casi siempre es señal de una maquina sin mantenimiento, y por tanto presa fácil para cualquiera, aunque también sea solo un "honey pot" puesto ahí para atrapar algún zángano zumbón. En este caso no era ni una cosa ni otra, podia ser simplemente un despiste de un administrador por otro parte responsable. El caso es que en este caso, aparte de saber el nombre del administrador y preguntarse poque Pepita llevaba mas de un mes conectada a la maquina, no hubo mas cera para hacer arder... y se hizo la oscuridad. HALLAZCOS INESPERADOS No hay reglas fija para este tipo de ataques, en el fondo se parece mucho al espíritu que hay que mantener para crackear un programa protegido. Hay quien lo llama el espíritu zen :-) , el caso es que estaba mirando las hojas impresas con los resultados cuando algo le llamó la atención. Es regla general encontrarse con servidores windows, siempre existe algún linux, dispositivos cisco son bastante normales, solaris empiezan a ser mas raros, pero ¿Quien ha oído jamas de un OS llamado Maxim-C TiniOS ? En el cerebro de Enteradillo se encendió una luz que ademas de mostrar el penoso estado de sus neuronas, le obligó de forma automática a reflexionar sobre la cuestión. Mirando con un poco mas de atención la información de la maquina ofrecida por nmap, no vio nada fuera de lo normal, tal vez parecía un poco raro el que hubieran dos servicios ftp, uno en su puerto habitual y otro en el 19. Después recordó que ya había pasado por la maquina ya que el puerto 80 estaba abierto, solo para darse cuenta que había solo una pagina standard sin ninguna información. Vamos, una de esas que dicen "powered by ...." Como nuestra red es gratuita y todo el mundo tiene el derecho de buscar, se lanzo sobre Google y tecleo la información que le mostró nmap. Habían bastantes paginas, pero la mas interesante pertenecía a una sociedad americana que se dedicaba a la venta de dispositivos empotrados ( http://www.maxim-ic.com/TINIplatform.cfm ). La historia no estaba mal, bajo la forma de una simple tarjeta PCI se podia disponer de toda una maquina que a todos los efectos aparecía en la red como una maquina independiente. Dado que por su misma esencia carecía de teclado debía depender de otra maquina para su configuración. Esto se conseguía mediante un servicio ftp para subir ficheros y otro telnet para lanzar programas. Cualquiera de estos mecanismos requiere un usuario y una password por defecto y rápidamente Enteradillo buscó la información que graciosamente la red le ofrecía. Efectivamente, se creaban dos usuarios por defecto. Uno "root" con pasword "tini" y otro "guest" con password "guest". Siempre hay un instante de emoción cuando se teclea una password en el parpadeante terminal y se espera la respuesta desde el otro lado del mundo. En este caso el resultado fue decepcionante ya que el administrador había sido lo bastante cuidadoso como para cambiar la password. Sin ninguna fe intentó entrar como "guest" y allí si que los hados le fueron propicios. Un amable saludo le indicaba que había entrado aunque con derechos sumamente restringidos. Evidentemente el administrador pensó que no valía la pena hacer nada mas ya los derechos de guest eran realmente mezquinos. Siempre que se entra en un sistema ajeno lo primero que hay que hacer es simplemente mirar sin tocar nada y en esto estaba Enteradillo cuando vio el típico fichero passwd que se puede encontrar en todas las distribuciones linux. Se lo bajó para descubrir el nombre de los usuarios y cerró la sesión. Todo el mundo estará pensando que con un fichero passwd moderno poco se puede hacer ya que normalmente todos los OS modernos no muestran la hash en este sitio. Pues en este caso no era asi. Todas las hash estaban ahí disponibles para el primero que deseara intentar un ataque off-line. El porque existe este fallo en este tipo de OS probablemente es debido a que en realidad no esta pensado para ser utilizado en maquinas grandes sino en cosas diminutas y ahí puede que no exista mucho espacio para hacer maravillas y mas que probable que las disponibilidades económicas de los desarrolladores sean así mismo bastante limitadas. De todas formas estos chicos tampoco son tan inocentes como parecen ya que la historia no acabo ahí ni mucho menos. EXTRANYOS HASH Estamos demasiado acostumbrados a lanzar ataques automáticos sobre la primera hash que cae en nuestro poder, para pararse a pensar que lo primero que hay que identificar es el sistema de cifrado. Tampoco había hecho este sencillo ejercicio mental Enteradillo hasta que su John The Ripper le anunció que no había ninguna hash que mereciera atacar en el fichero con que pretendía alimentarlo. Un poco extrañado empezó a revisar la configuración de John para comprobar si había hecho algún error de principiante, pero nada encontró, así que no tuvo mas remedio que volver a leer la documentación. ¡Esto de leer es maravilloso ! Casi siempre consigue sacarnos de nuestro pozo de incultura y siempre nos dará un poco de entretenimiento. En este caso rápidamente leyó que el sistema de cifrado era SHA1. Volviendo a John ahí descubrió que solo había un parche para este sistema de cifrado pero encima era especifico para una determinado plataforma. En resumen era tan útil como la nieve en el Polo Norte. Estuvo dándole vueltas al asunto y a la red hasta que encontró a alguien que se haba dedicado a escribir un crackeador tipo John pero especifico para hash SHA1. Se llama "lcrack" y si lo buscáis por Lepton's Crack seguro que lo podéis encontrar en algún sitio, como por ejemplo http://freshmeat.net/projects/lcrack/ o bien en http://www.nestonline.com/lcrack/ Convenientemente armado con el útil apropiado, solo había que lanzarlo sobre el fichero adecuado. De todas formas, antes de lanzarse a ataques tremebundos debe siempre hacerse alguna prueba, sobretodo si como en este caso se conoce alguna password. Enteradillo sabia que existía un usuario llamado "guest" porque había entrado como tal y porque veía claramente este usuario en el fichero passwd. También sabia que la password era "guest" ya que había entrado de esta forma. Solo se trataba de atacar el hash mediante un diccionario que contuviera dicha password. Ni corto perezoso eligió uno de los muchos diccionarios que contuvieran dicha password y configuro el lcrack de forma conveniente para atacar el problema. No vamos a contaros como se configura el lcrack para eso, leer el manual, lo importante es que obtuvo un total y decisivo fracaso. Había algo que hacia mal y no acababa de encontrar donde. UNA AYUDA INESPERADA Todas las sospechas recaían en el dichoso OStini. En un sistema modificado para que pudiera caber en una tarjeta PCI se podia esperar cualquier cosa. El mismo servicio telnet no era normal. Consistía en un desarrollo especial llamado "slush" y que se encontraba en forma de código abierto. Bajarse los fuentes y empezar a revisar el sistema de cifrado fue todo uno,... total para nada, toda la literatura seguía diciendo que el sistema de cifrado era SHA1 Lo bueno de tener amigos en el mundo es que siempre se puede pedir ayuda. Si estos amigos son totalmente desconocidos tiene la ventaja adicional de solo tener la moral obligación de devolver favores y que nunca llaman a tu puerta para tomarse una cerveza a tu salud y a tu costa. El problema es cuando careces totalmente de amigos con los conocimientos apropiados para resolverte el problema que te agobia. Entonces solo queda el recurso de llamar a una puerta cualquiera con la esperanza de que alguien te conteste. Esto fue lo que hizo Enteradillo, enviar un mensaje a uno de los desarrolladores del "lcrack". La primera sorpresa fue que el mensaje no rebotó. Es muy normal que las direcciones que se ponen en los programas de libre distribución sean falsos u obsoletos, pero no fue éste el caso. Una pronta respuesta llego a su buzón. El mensaje era pronto y conciso. En los usuales términos que utiliza alguien que no tiene mucho tiempo y que esta cansado de responder gansadas. Se puede resumir en unas pocas palabras "Léete el readme". Mucha gente reacciona mal ante este tipo de comunicación. Esto hay que evitarlo, Enteradillo era consciente que el favor lo estaba pidiendo él y que aunque no merecía este trato, "la paciencia es la madre de la ciencia", como decía su abuela. Por tanto tomo animo, información y teclado y empezó un largo mensaje,... larguísimo. También hay que evitar el lanzar mensajes kilométricos, ya que por ahí ronda un estudio que dice que raramente se lee mas de lo que cabe en una pantalla de ordenador. De todas formas de alguna forma había que llamar la atención y nuevamente e se vio enredado explicando que una de las características de las plataformas TINI es el sistema operativo, desarrollado por Dallas Semiconductor. Que esta libre de royaltis, es multitarea, multinoseque y que corre en un ambiente JAVA. Todo ello cabe en una memoria flash de 512 kB con suficiente espacio para alguna aplicación siempre que no supere los 64 kB. Todavía le queda tela para permitirse el lujo de tener una librería para C. Con animo de impresionarlo, le contó también que la interface via telnet se hacia a través de "slush", que proveía una serie de comandos tipo bourne, pero que en realidad eran de desarrollo interno. Total, que el sistema de cifrado podia ser cualquier locura que al programador de Dallas se le hubiese ocurrido en el momento del desarrollo. Puestos a hacer le envío algunos pedazos de código fuente para animarlo en la tarea. Eso fue mas arriesgado. Hay personas que no consiguen conciliar el sueño tras ver un código interesante, si no lo consiguen destripar, otros caen en profunda somnolencia nada mas verlo. En este caso hubo suerte . A los pocos días en uno de sus buzones de correo recibió un mensaje de contestación. La respuesta estaba ahí mismo en el código y no había que hacer juegos malabares. En uno de los comentarios de los desarrolladores de Dallas, decía claramente que la hash se construía con tres elementos concatenados. El "user", el carácter ":" y la password. O sea que si la password del usuario "guest" era "guest", la hash estaba construida con "guest:guest". Después de agradecer la información y el tiempo perdido ya que la educación no hace daño y nunca se sabe cuantas vueltas puede dar el mundo, paso a planificar un ataque. NO HAY QUE INVENTAR LA RUEDA No se si os habéis dado cuenta, pero la forma de calcular el hash mediante este sistema es menos inocente de lo que parece. El poner una serie de caracteres delante del password, aunque sean fijos y conocidos, dificulta un ataque mediante diccionario, ya que hay que reconstruirlos completamente e incrementa muchísimo el esfuerzo necesario para atacar mediante fuerzo bruta dado que de forma inmediata la longitud de la secuencia de caracteres a adivinar se incrementa en bastantes caracteres, variables en función de la identificación del usuario. Enteradillo estaba a punto de empezar a revisar el código algún cracker existente, pero antes pidió de nuevo auxilio a su amigo de Lemon. Este de nuevo le respondió que se leyera la documentación del programa y de nuevo, sonrojado, Enteradillo se dio cuenta que la respuesta estaba ahí. Todos los crackers tienen unas características similares. Todos te permiten elegir la longitud maxima a atacar, el set de caracteres a emplear y muchos guardan el estado del ataque, permiten distribuirlo, pero pocos pueden fijar un carácter de una posición dada. Esta es la característica de "lcrack" y esta era la solución. Si de los usuarios había un tal "pelaez", bastaba con decirle a lcrack que los siete primeros caracteres eran "pelaez:" y solo debía acabar el resto. Un primer ataque con una longitud extra de siete caracteres y el conjunto de caracteres clásico alfanumérico le identificó en menos de cuatro segundos que la password era "tini". El administrador no parecía tener mucha imaginación, pero solo lo parecía, ya que de entrada los usuarios normales no tenían mas privilegios que "guest" y después la resolución de la password del jefecito fue mucho mas difícil y tema de otro articulo. CONCLUSIONES Podéis encontrar en la red muchos artículos que hablan de seguridad en sistemas empotrados. Todos piensan en los teléfonos móviles y similares, pero en nuestra opinion un mayor peligro se cierne sobre los sistemas que controlan a su vez a otros dispositivos. La inminente escasez de direcciones IP y el desarrollo del nuevo protocolo Ipv6, tiene mas que ver con esto que con las maquinas normales que todos tenemos en mente. La prevista nueva explosión tiene mucho que ver con la implementación de maquinas agazapadas en cualquier cosa que nos rodea. Teléfonos, buscadores, cámaras inteligentes, lavadoras, secadores, el horno de tu casa, todo sera dirigido por estos bichos y podrás ser controlados a distancia. Tendrán su IP y ocuparan su sitio en la red. Hay otro aspecto y es el del software. En el caso que nos ha tenido ocupados en esta pequeña historia, es un software del cual disponemos de su código fuente, pero esto no le impide que padezca de bonitos agujeros de seguridad. El mismo problema que sin duda seria encontrado rápidamente por la comunidad si se trata de un producto conocido ampliamente, queda totalmente en el anonimato en un oscuro programita, desarrollado por una no menos oscura, para el gran publico, empresa perdida en las llanuras americanas. Esto no impide que la misma empresa sea extraordinariamente popular en ambientes restringidos. Militares, por un ejemplo. Hasta ahí nadie se preocupa demasiado. Si Enteradillo después de sus aventuras se da cuenta que ha entrado en el controlador de una cámara de vigilancia o en cerebro de la cafetera de la secretaria del undécimo piso, nadie se va a asustar. Lo peor que puede pasar es que nos graben la entrada triunfal del vendedor del mes o que nos programen un cafe doble cuando pedimos un capuchino. Es solo una molestia. Lo malo es si el personaje no es Enteradillo y sus intenciones son mas agresivas. Ya puede ser mucho peor si con lo que tropieza es con el cerebrito de la dirección asistida de un camion de transportes especiales, con el controlador de vuelo del nuevo Airbus o el corazón de una ojiva nuclear. Podéis pensar lo que queráis. Puede que seamos exagerados y que lo que decimos no tiene ni media palabra de cierto, pero por si tenéis curiosidad ahí os dejamos el fingerprint de TINI. OS details: Maxim-IC TiniOS DS80c400 OS Fingerprint: TSeq(Class=TR%IPID=Z%TS=U) T1(Resp=Y%DF=Y%W=1000%ACK=S++%Flags=AS%Ops=M) T2(Resp=Y%DF=Y%W=0%ACK=S%Flags=AR%Ops=) T3(Resp=Y%DF=Y%W=1000%ACK=S++%Flags=AS%Ops=M) T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=) T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=) T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=) T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=) PU(Resp=N) 2005 SET, Saqueadores Ediciones Técnicas. Información libre para gente libre *EOF*