lunes, abril 09, 2012

Hacking de aplicaciones Lasso (I de IV)

**************************************************************************************************
- Hacking de aplicaciones Lasso (I de IV)
- Hacking de aplicaciones Lasso (II de IV)
- Hacking de aplicaciones Lasso (III de IV)
- Hacking de aplicaciones Lasso (IV de IV)
**************************************************************************************************

Hace ya bastante tiempo me tocó pegarme en un pentesting con una aplicación web basada en las tecnologías Lasso. Como seguramente muchos de vosotros no conocía bien este entorno, pero al final acabé disfrutando y aprendiendo mucho de todo aquello.

El pasado fin de semana, en un rato en el que tenía ganas de enredar un poco, me acordé de ellos y fui a ver cuántas webs a día de hoy había con las tecnologías Lasso - algo que yo hacía totalmente en desuso - y me sorprendió ver la cantidad de webs abiertas en Internet que aún las están utilizando.

Figura 1: Más de 4 millones de webs con Lasso

Como tenía algo de tiempo, decidí probar cosas y escribir esta serie de posts sobre ellas, por si os viene bien en alguna auditoría web en la que te lo encuentres.

Lasso Web Server

La importancia de las tecnologías web de Lasso en el mundo de Internet es tal que ni el artículo de la Wikipedia está acabado, pero llama poderosamente la atención que a día de hoy todavía sigan apareciendo versiones. Como bien se cuenta en la historia, nacieron como un medio de conectar las bases de datos de FileMaker con el mundo de Internet, con lo que su entorno se hizo bastante popular entre el mundo de lo servidores web basados en Mac.

La idea era dotar a las aplicaciones web de un conector que llevase las bases de datos FileMaker a la web, aunque a día de hoy se puede conectar con casi cualquier base de datos, y su tecnología se integró con muchas de las aplicaciones populares de diseñadores de páginas web, como Adobe GoLive o Dreamweaver.

La zona de administración

En casi todos los servidores en que está corriendo Lasso es fácil localizar la zona de administración, o bien "escondida" en el directorio lasso, el directorio admin, o lo mucho más común, en la aplicación ServerAdmin.LassoApp.

Figura 2: Panel de administración de Lasso 6 (2002) en /lasso

De esta forma, en cualquier sitio en que aparezca una aplicación web con extensión lasso, merece la pena intentar encontrar esta aplicación. En este ejemplo se puede ver que Apple utilizó estas tecnologías, y en el servidor dónde lo hizo es posible encontrar la zona de administración.

Figura 3: Pannel de administración de Lasso Server Admin en Apple.com

Según la documentación, ena algunas versiones hay un usuario por defecto llamado _lasso, pero no tiene una contraseña por defecto que yo haya encontrado, por lo que encontrando el lugar se puede hacer algún ataque de fuerza bruta o usando _lasso o algún usuario del sistema que os explicaré cómo encontrar.

Los errores 404 del framewok

Como buen framework, y al igual que pasa con JSP, TCL de WebDNA o ColdFusion, es él y no el servidor web el encargado de gestionar los errores que se produzcan con los ficheros de extensión .lasso. Así, es común encontrar que no están controlados y sacar algo de información de ellos.

Lo primero y más sencillo es sacar la fecha y hora del sistema,  que nos puede dar cosas curiosas, como la franja horaria en la que está o si está o no sincronizada con Internet, la dirección IP del cliente, que si existe un Proxy Reverso en la red nos puede dar el direccionamiento IP de la red Interna, y el sitio Lasso que genera el error - la base de datos o el conector - como se puede ver en el ejemplo inferior.

Figura 4: Error 404 típico de una aplicación Lasso

Estos errores también se pueden utilizar para sacar información de la estructura interna de las bases de datos pero antes hay que entender un poco más cómo funcionan estas tecnologías.

La base de datos, la tabla y el layout

Las aplicaciones lasso pueden ser simples scripts que hacen algo y no tienen ninguna conexión con una base de datos, pero lo más común es que sí que tengan esa conexión con una base de datos de la que extraen datos o visualización. Para ello, entre los parámetros de la llamada aparecen tres modificadores a tener en cuenta.
- Database: Es la conexión con la base de datos que almacena la información que se está consultando. Esta puede ser un fichero de datos, o el nombre de una conexión. Dependiendo de la versión de Lasso tendremos una cosa u otra. 
- Layout: Es una vista o una representación de los datos que se extraen. Para ello debe existir ese layout dentro de la base de datos. Si no hay un layout para mostrar los datos no se podrá ejecutar la aplicación. Una de las ideas que seguro que se pasa por vuestras cabezas es usar un layout de una base de datos en otra, pero no es posible. 
- Table: En algunas ocasiones no se utiliza un layout, y se tira directamente contra la tabla, por lo que aparecerá en la URL.
Haciendo uso de los mensajes de error, y manipulando los valores de database y layout, por ejemplo, se puede sacar información de lo contenido dentro de un servidor.

Figura 5: La base de datos lasso_a no existe

Como recomendaciones útiles, existen varias bases de datos de administración que debes conocer, como son lasso_admin, lasso_application, lasso_internal, lasso_global o lasso_site_1, pero también son comunes admin.fp3 o admin.fm5.

Figura 6: Existe la base de datos lasso_admin, pero no el layout users

En cuanto a layouts, el más común, sin duda alguna, es web, ya que aparece en muchas de las URLs que he visto indexadas en Google.

Saludos Malignos!


**************************************************************************************************
Hacking de aplicaciones Lasso (I de IV)
Hacking de aplicaciones Lasso (II de IV)
Hacking de aplicaciones Lasso (III de IV)
Hacking de aplicaciones Lasso (IV de IV)
**************************************************************************************************

2 comentarios:

  1. Aupa Chema
    Te has colado al poner los enlaces a los nuevos libros. En ambos enlaces, vas al mismo libro sobre TCP/IP
    Un saludo

    ResponderEliminar
  2. Vale, veo que ya lo has corregido.
    Siento haber escribido algo que no venia con el tema aqui. Borra los comentarios si quieres
    Un saludo

    ResponderEliminar