Copy Link
Add to Bookmark
Report
SET 031 0x0B
-[ 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*