martes, 29 de junio de 2010

Atacando ensamblados .NET: Otra forma de inyectar código

En un artículo anterior (http://soctano.blogspot.com/2010/03/inyeccion-de-codigo-en-ensablados-net.html) escribí como inyectar código en ensamblados .NET. En ese post explicaba los pasos a realizar para cargar nuestra librería en otro ejecutable programado en la plataforma .NET.

En éste otro artículo explicaré una forma más sencilla de realizar la inyección de código pero desde otra perspectiva. Aquí no seremos nosotros los que inyectemos nuestro código en la aplicación, sino que será la aplicación la que se inyecte en nuestro código.

Los pasos a realizar son similares, únicamente necesitaremos una aplicación a atacar (Utilizaré el fuzzer web CAT), reflector, reflexil (versión >= 1.1) y el Visual Studio.

Cargaremos el binario a atacar en reflector, y utilizaremos el plugin reflexil para poder modificar las propiedades de privadas a públicas de los controles o métodos que queramos utilizar.

En este caso, como únicamente realizaré una inyección de un control en el FormMain.Controls, no será necesaria ningún tipo de modificación, pero si quisiéramos acceder a controles ya existentes, deberíamos hacerlos públicos mediante ésta técnica (a no ser que se quiera tirar de reflexión…)

clip_image002

Una vez modificado, guardamos el binario situándonos en el nivel dl arbol ‘AppTool.exe’ , y haciendo clic en el botón del panel derecho ‘Save as’.

clip_image004

A continuación, creamos un proyecto .NET y agregamos nuestro binario modificado como referencia.

clip_image006

Una vez lo tenemos referenciado, podemos crear una nueva instancia del MainForm del CAT, acceder a la propiedad ‘Controls’, y agregar nuestro código como control del formulario.

Crearemos un control, el cual será el que inyectaremos…

clip_image007

Un par de líneas código para instanciar el formulario, y agregar el nuevo control, y ponerlo al frente.

clip_image008

Ahora solo queda generar la solución del programita que hará la inyección, y un paso importante… Copiar el ejecutable generado en la carpeta donde esté localizado la referencia cargadas por el binario del CAT, ósea en ‘C:\Program Files (x86)\Context Information Security Ltd\CAT

clip_image010

y… voilá!, ahí tenemos nuestro controlzuelo

clip_image012

¡¡visca el barça!!

miércoles, 9 de junio de 2010

TMap 0.2 Released

En el articulo anterior anunciaba una preview de esta herramienta, la cual ahora en un estado más o menos aceptable en cuanto a usabilidad, paso a publicar.

El objetivo de esta herramienta es la semi-automatización de ciertas técnicas de auditoria web como la busqueda de directorios abiertos, de metodos inseguros (PUT, DELETE…) en directorios, y de versiones antiguas de ficheros o copias de seguridad.

Para empezar a usar TMap es necesario realizar una recopilación de URLs, las cuales TMap utilizará para generar una base de datos mediante la cual realizará los ataques.

Ante una auditoria web, una forma rápida y eficiente de recopilar URLs sobre un dominio es navegar a través de un proxy como BurpSuite, y utilizar el ‘Spider’ para incrementar más aun el tráfico.

Una vez tengamos suficiente información recopilada podemos copiar todas las URLs extraidas haciendo clic desde ‘Site Map’ sobre el dominio y luego en ‘Copy URLs in this host’.

clip_image001

Ahora que tenemos las URLs en el portapapeles, las guardaremos en un archivo y abriremos TMap J.

(@Pedro, ¿Creias que te librarias del icono del diablillo? ;D)

clip_image003

Para generar la base de datos debemos introducir el comando ‘load’, y luego el nombre del fichero que contiene las URLs. Esta operación puede llevar varios minutos si el fichero de URLs es algo grande.

Los principales comandos son los siguientes:

· Map folders: Realiza búsquedas de directorios abiertos

· Map files: Realiza búsquedas de copias de seguridad o versiones antiguas.

· Map methods: Realiza búsquedas en directorios o archivos que tengan habilitados métodos específicos (Ejpl: PUT , DELETE…)

clip_image005

TMAP 0.2 Binary

TMAP 0.2 Source