viernes, enero 26, 2018

Hoy "Un informático en el lado del mal" cumple 12 años

Desde que era un niño mis amigos siempre fueron mayores que yo. Como una forma de aprender más rápido de su experiencia, o simplemente por que había madurado un poco más deprisa, siempre tenía más afinidad con gente de más edad que yo. Y no me gustaba eso. Yo quería ser mayor.  Siempre quise tener más edad. Aprender más deprisa. Crecer más rápido. Hice cosas siempre fuera de mi edad. Descompensado con mi tiempo. Rápido. Muy rápido. Que hay muchas cosas aún por hacer. Un viejoven repelentillo que estudiaba mucho, leía todo lo que le caía en las manos y siempre pensaba en nuevas cosas que hacer.

Figura 1: Hoy "Un informático en el lado del mal" cumple 12 años

Tenía en las tripas un veneno que me hacía botar por la noche en la cama si no conseguía comenzar con el proyecto que tenía en mente. Circulando en mi cabeza. Arriba y abajo. Dando vueltas a cada detalle que podía imaginar. Quería hacer cosas. Y las quería hacer ya.

No, no penséis que estoy hablando de construir sistemas tecnológicos - que también - o hacer proyectos en mi etapa profesional. Hablo de cualquier iniciativa personal. Caricaturas. Un trabajo para el instituto. Un programa para mí mismo. Desde hacerme librerías para pintar ventanas, hasta programas para reprogramar el código ASCII y hacer dibujos y pequeñas animaciones. Dibujar un logo. Anunciarme para dar cases particulares en todos los medios que pudiera o encontrarme con Rodol para ver si conectábamos los equipos vía RRAS para jugar al Quake II. Veneno en las tripas que me obligaba a hacer cosas.

Y vaya que sí las hice. No recuerdo tener un día sin estar metido en algo. Sin tener algo que rondara mi cabeza al acostarme. Sin levantarme de un salto para pelear el día. El veneno sigue ahí.  No, ya no quiero ser mayor. Ya no soy el más joven de mis grupos sociales. Ya no quiero que el tiempo pase deprisa para hacer más cosas. Ahora quiero que el tiempo pase despacio para que pueda hacer más cosas. Paradojas de la edad.

Entre todas las cosas que pasaron por mi cabeza en una de esas noches envenenadas fue la construcción de este blog. Era el 26 de Enero de 2006 cuando publiqué el primer post. Un sitio sin muchas pretensiones al inicio, pero con vocación de durar. Yo no hago las cosas por hacer. Si me pongo a hacer algo, es que lo voy a hacer. No dejo las cosas a medias. No dejo las colecciones de cromos sin terminar. No dejo las series sin acabar. Y cuando di al botón de publicar en este blog sabía que era un camino que empezaba que sería largo, porque no tenía fecha de finalización.

Si me hubieran preguntado en aquellos años si iba a aguantar doce años con él, no habría sabido decir. Me hubiera dado un poco de vertigo. Doce años eran más que los años que llevaba trabajando en tecnología cuando abrí el blog. Lo cierto es que los he aguantado.

Por el camino he tenido tiempo de vivir varias vidas. De poner mi vida patas arriba varias veces. De vivir las experiencias de varios tipos de vidas. De construir y reconstruir mi vida profesional y a Chema Alonso varias veces. De ponerme el gorro en más de mil ocasiones sobre un escenario. De iniciar proyectos de todo tipo. De hacer Retos hacking. Publicar libros. Hacer herramientas. Arrancar con Talentum. ElevenPaths. LUCA. Aura. Informática 64. 0xWord. De cuidar de Cálico Electrónico. De viajar. De dibujar. De leer. De montar en monopatín. De ser Telefónica. De bañarme en el mar. De tirarme por la montaña con la tabla de Snowboard. De patinar sobre hielo. De hacer miles de kilómetros en bicicleta. De romperme las piernas en las rocas. De reír con "Los niños perdidos" hasta llorar y que me duela la tripa.

Por el camino he creado al Dragón Matías. He escrito cuentos a Mi hacker y a Mi Survivor. He escuchado música hasta la saciedad. He conocido a mucha gente que sigue en mi vida. A muchos que se fueron. He perdido a gente que se ha ido dejando vacíos. He conocido a gente maravillosa. De llamar a Rodol una vez más para decirle "Tengo una idea" y liarle para algo nuevo.

Y el blog ha estado ahí. Como compañero de mis penas y alegrías. Como ventana al mundo para contar lo que vivía. Como mi bitácora emocional para que pueda recordar mi vida. Puedo leer los posts y saber cómo me sentía cuando lo publiqué. Qué hacía. Con quién estaba desayunando ese día. Con quién estaba comiendo cuando lo escribía para el día siguiente. Con quién lo comenté antes de escribirlo. Es difícil no haberme conocido y no estar conmigo en algún momento que tuviera que ver con el blog. He publicado desde New York, desde Buenos Aires, desde Inglaterra, desde China, desde Brasil, desde Alemania, desde Noruega, desde Egipto, desde Barcelona, desde Zamora u Orense, por citar solo algunos de los rincones del mundo desde los que he dado publicar un nuevo post.

He escrito en Noche Buena, en Noche Vieja, en mi cumpleaños, en días de mudanza, enfermo, alegre, contento y triste. Muy triste. Dolorido. Sufriendo o con fruición. En silencio. Con música - como ahora mismo -. Escuchando a Rosendo decir eso de "Voy a ser el enemigo disparando Pan de Higo", a Linkin Park con su "Sharp edges", a Queen, a Los Rodriguez con su "Todavía una canción de amor", a Loquillo con su "Voy a ser una Rock'n Roll Star" o a Bon Jovi y su "Born to be my baby". Doce años dan para muchos días. Muchas noches. Muchas canciones. Muchas letras. Muchos sentimientos. Muchos momentos. Muchas vivencias buenas y malas.

Y ahí están hoy. Doce años. Más de 4.400 posts. Con textos de todo tipo. Desde artículos técnicos, hasta chorradas personales. Con dedicatorias escondidas para amigos. Con mensajes de amor dentro de las letras. Con pullas. Con entrevistas. Textos que poco a poco han ido enriqueciéndose con los artículos de amigos que han subido el nivel de mis publicaciones. Con mis dibujos. Con tus comentarios. Con mis ideas. Mis anhelos. Con el toque que cada una de las personas que he conocido en mi vida ha influido en mis letras. Están ahí. 

¿Seré capaz de mantener Un informático en el lado del mal otros doce años más?

Si por mí fuera, no dudéis que así será. Me haré muy mayor para entonces, pero firmaría ahora. Aunque no creo que pase. Supongo que un día algo sucederá. Cambiará mi vida. Me esconderé del mundo y me iré, como dice Rodol, a una isla con un cocotero. Yo a dibujar y leer, seguro. Para que me visite Mi Hacker y se venga a pintar conmigo algún monstruo a pachas mientras se recuesta sobre mí. A esperar a ver si este año Mi Survivor encuentra un rato entre aventura y aventura para venir a ver su papaete. Tal vez con una sonrisa a mi lado que me regañe y me cuide cuando esté estresado.  Que me de un masaje relajante para calmar los nervios en mitad de la noche. Como me ha pasado tantas veces cuando el estrés me sacaba botando de la cama por culpa del trabajo o por no tener listo el post para publicar a tiempo en "Un informático en el lado del mal".

Saludos Malignos!

jueves, enero 25, 2018

Cómo pude haber aprobado un máster sin estudiar... pero lo reporté

Hace un tiempo comencé a buscar información sobre algún Máster para profundizar en mis estudios de informática. En la actualidad, con lo amplio que es el mundo del conocimiento en informática, se quedan cortos los pocos años de la Ingeniería de Informática de Sistemas que he estudiado en la URJC y quería profundizar algo más. Así que, utilicé Internet para revisar las ofertas de másteres en las universidades que más me llamaban la atención, escrutando la información que ofrecen en sus páginas web.

Figura 1: Cómo pude haber aprobado un máster sin estudiar... pero lo reporté

Pero la "deformidad profesional" que tengo en el desarrollo de "canales digitales" - una manera muy moderna de llamar a los puntos de interacción con los clientes, ya sean páginas web, aplicaciones móviles, los famosos chatbots o las redes sociales - me llevó a profundizar un poco más en algunas de las webs de las universidades en cómo estaban diseñadas y acabar haciendo algo de Hacking Web Technologies, lo que me llevó a descubrir un fallo de seguridad bastante relevante en la web de UAB.

Está página me llamo la atención porque descubrí que estaba desarrollada con un gestor de contenidos sobre el que tengo bastante conocimiento, Oracle Webcenter Sites. En concreto, delató el uso de este gestor de contenidos el formato no amigable de las URLs.

Figura 2: URLs del portal de contenidos

Esto se puede configurar de otra forma, pero a partir de este pequeño detalle, un cúmulo de errores mucho mayores en la gestión de la seguridad da a cualquier persona la capacidad de acceder a la base de datos de la web, al gestor de contenidos e incluso poder ejecutar una Shell Remota contra los servidores de la universidad. En definitiva, cualquier persona podría aprobar el máster sin pasar por clase - a falta de ver otros controles que se tengan más allá del sistema informático .-  Para entender bien el problema, hay que tener en cuenta dos cosas principalmente.
  • Arquitectura de Webcenter Sites: La arquitectura común de Webcenter Sites, es similar a la de cualquier otro gestor de contenidos. Existe un usuario "lector" capaz de navegar por la web de manera pública, pero sin acceso a la aplicación de gestión de contenidos. Este "bloqueo" de acceso, como en otros gestores está basado en permisos de usuario. 
  • Aplicaciones de Gestión de Webcenter Sites: Es habitual en este gestor de contenidos instalar una "extensión" comúnmente conocida como Support-Tools que nos brinda unas herramientas para detallar la configuración del servidor donde se instala Webcenter Sites, y que además nos habilita de un catálogo operaciones de mantenimiento/administración extremadamente útiles. El acceso a esta extensión, como ocurre con el acceso a la interfaz de "contribución" de contenidos está basado en Roles.
Los errores en esta web

En este caso existían dos errores graves que permitían el ataque:
1.- Se ha dejado accesible desde internet el acceso a la herramienta "Support-Tool" 
2.- Se ha otorgado al usuario "lector" el ROL necesario para acceder a la herramienta "Support-Tool"
Y a partir de esto,  cualquier atacante podría tomar control del sistema. Vamos a ver cómo es el proceso. Como ya os he dicho, conocía el gestor de contenidos, así que lo primero que miré al llegar a la web fue ver si estaba accesible la herramienta Support-Tool desde Internet, y como veis el resultado fue positivo.

Figura 3: Support-Tool expuesta a Internet

Esto es un error de fortificación, ya que habría que reducir la superficie de exposición, haciendo que solo estuviera accesible desde dentro de la red, o vía conexiones VPN, pero en muchos casos, acaban siendo publicadas en Internet.

Como se puede ver, el portal además se ofrece vía HTTP, y no bajo HTTPs, lo que es un problema que permite a cualquier ataque de sniffing o man in the middle, capturar las credenciales de los usuarios, algo muy peligroso cuando hablamos de un sistema expuesto a Internet.

Figura 4: Páginas de administración indexadas en Google

Lo siguiente, lógicamente, era comprobar las credenciales, para ver si tenían los usuarios por defecto con sus passwords por defecto, si habrían implementado sistemas de Segundo Factor de Autenticación como Latch o como un TOTP, o no. Probé con los usuarios por defecto, los cuales rechazaban el login. Pero una última prueba me reveló el problema del rol que os comenté antes. Las páginas de administración de la herramienta eran accesibles sin necesidad de password de administración o gestión.

Figura 5: Páginas de administración accesibles sin necesidad de sesión de administración

Una vez dentro se pueden realizar multitud de operaciones, entre ellas tirar consultas contra el motor de la base de datos del gestor de contenidos. Siendo posible poder recuperar, por ejemplo, el listado de usuarios existentes con los hashes de las passwords.

Figura 6: Consulta para sacar los usuarios del SGBD

Realizar cambios sobre el SGBD ya nos da acceso casi completo a la web, pero la sorpresa vino cuando al tratar de descifrar el password del usuario administrador desde una herramienta de coincidencias online, se produjo un "match".

Figura 7: Hash de password de administrador descifrado

Este match quiere decir que tenemos acceso a la herramienta como usuario administrador. Lo que nos permitirá además de modificar la web a nuestro antojo, subir diferentes programas Java - como una Shell Remota, o un RansomWare tan de moda últimamente - que se  ejecutará sobre la máquina el usuario que esté corriendo el servidor. Por supuesto, no había configurado ningún 2FA como Latch, por lo que una vez que se tiene la password, cualquiera puede entrar.

Figura 8: Acceso como Administrador

En resumen, lo que me encontré fue:
- Exposición de portal de administración en Internet. 
-  Páginas de login sin usar conexiones cifradas bajo HTTPs. 
- Gestión de sesiones inseguras, lo que permitía acceder a administración. 
- Usuarios sin 2FA. 
- Webs sin auditorías de seguridad.
- Mala gestión de las opciones de indexación del sitio web.
Después de esta aventura no acabé con cinco másters y una beca pre-concedida para el resto de mi vida. Les avisé de todo esto a los administradores del sitio, y a día de hoy la web ha sido cambiada por completa. Con esto aprendí que antes de que se publique cualquier tecnología por un "canal digital" hay que hacerle unas buenas pruebas de seguridad.

Saludos y a estudiar mucho, no seáis malignos!

Autor: Eduardo Trujillo, Ingeniero de Sistemas.

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares