miércoles, marzo 07, 2012

Owning bad guys & mafia with Javascript botnets (2 de 5)

**************************************************************************************************
- Owning bad guys & mafia with Javascript botnets (1 de 5)
- Owning bad guys & mafia with Javascript botnets (2 de 5)
- Owning bad guys & mafia with Javascript botnets (3 de 5)
- Owning bad guys & mafia with Javascript botnets (4 de 5)
- Owning bad guys & mafia with Javascript botnets (5 de 5)
**************************************************************************************************

Arquitectura de la solución: Infección de Javascript

Para conseguir el objetivo de poder infectar a clientes con ficheros Javascript maliciosos, lo ideal sería no añadir un nuevo fichero, sino modificar los ficheros Javascript que pasaran por el servidor Proxy malicioso añadiendo un poco de código para cargar un payload cada vez que se ejecutase ese código en una pestaña del navegador. Es decir, una arquitectura más o menos como la que se puede ver en la imagen siguiente:

Figura 4: Arquitectura de Proxy Malicioso

Es decir, que la arquitectura lo que hace es modificar el código de los ficheros Javascript que pasan por el servidor Proxy para que cargue dinámicamente los payloads que se van a configurar más adelante con un panel de control como BeEF.

Montando el servidor Proxy: SQUID

Para conseguir hacer la reescritura de los ficheros Javascript los pasos necesarios son:
1) Descargar el fichero de su ubicación original
2) Guadarlo en una ubicación temporal
3) Añadir el código Javascript de la infección al final del fichero Javascript
4) Hacer que ese fichero tenga una fecha de expiración de 3.000 días
5) Entregar al cliente el nuevo fichero Javascript creado.
Con el objetivo de poder realizar todos estos pasos, lo primero que hay que hacer es activar la opción del servidor SQUID de URL_Rewrite_Program, que permite ejecutar un programa para reescribir los ficheros que cumplan una determinada condición. En este caso, la regla se aplica a todos los ficheros y se utiliza un programa en Perl llamado poison.pl.

Figura 5: squid.conf con activación de url_rewrite_program

El fichero poison.pl realiza los pasos 1 a 5 - con la excepción del paso 4 - del proceso descrito anteriormente. Para ello, primero comprueba que el nombre del fichero termina en .js con una pequeña expresión regular. Una vez que se cumpla que el fichero sea Javacript, el programa lo descarga de la ubicación original, lo copia a una ubicación temporal, le cambia los permisos para poder escribir en él, y le vuelca el contenido del fichero de infección, que en nuestro ejemplo se llama pasarela.js

Figura 6: Módulo poison.pl para realizar la infección de ficheros Javascript

El último paso a configurar consiste en modificar la fecha de expiración de los objetos. Para ello es necesario instalar en Apache el módulo mod_expires y realizar un pequeño cambio en el fichero .htaccess de la ubicación desde la que se van a servir todos los ficheros Javascript infectados.

Figura 7: Fichero .htaccess en la carpeta temporal con fecha de expiración alargada

La infección

Por último, cabe destacar que lo único que es necesario infectar en los ficheros Javascript es algo que se llamó pasarela.js y que lo único que hace es cargar el poison payload.php desde el servidor malicioso y reportar su identidad cargando una imagen con jsonip.php.

Figura 8: pasarela.js que se copia en todos los archivos Javascript que pasan por el Proxy

En el código se puede ver como se comprueba si hay creado un elemento y si no se crea. El objeto es que no se ejecute más de una vez por página el código de la pasarela.

Y ahora... ¿cómo conseguir que alguien se infecte con este Proxy Malicioso?

Saludos Malignos!

**************************************************************************************************
- Owning bad guys & mafia with Javascript botnets (1 de 5)
- Owning bad guys & mafia with Javascript botnets (2 de 5)
- Owning bad guys & mafia with Javascript botnets (3 de 5)
- Owning bad guys & mafia with Javascript botnets (4 de 5)
- Owning bad guys & mafia with Javascript botnets (5 de 5)
**************************************************************************************************

7 comentarios:

  1. anuncio subliminal:

    En el siguiente capitulo, el maligno desplegará sus mejores técnicas: la crema en bandeja de plata, así que si quieres seguirlo, apuntate a todo: a volleyball a tenis y también a informática64. FOCAAAA FOCAAAAAAA FOCAAAAAAAAAAAAAAAAAAAAAA!

    ResponderEliminar
  2. http://www.youtube.com/watch?v=8pYCvM3B9Rw Ey Foca bum buuuummmm!!!!

    ResponderEliminar
  3. La Foca ya hace de todo http://www.youtube.com/watch?v=wwylfKYWb1Y

    ResponderEliminar
  4. Deseando leer el resto!!

    ResponderEliminar
  5. La proxima vez buscare que sitios no han sido encontrados por elmaligno y en elos me conectare....

    XD buen post maligno

    ResponderEliminar
  6. Como haces para que es script en perl tenga los permisos para poder escribir en la carpeta temporal?

    Saludo y gracias

    ResponderEliminar