Imagen abstracta de humo de tinta azul y roja entrelazándose sobre fondo oscuro

Curso y Master en Ciberseguridad

Exploiting y Reversing usando herramientas gratuitas - Parte I

Curso de explotación y reversing en Windows utilizando herramientas gratuitas. Veremos IDA Free,Radare, Windbg, X64dbg, Ghidra y mucho más.

Comenzamos un nuevo curso, el cual estará enfocado en la explotación y el reversing en Windows utilizando herramientas gratuitas y que se pueden conseguir fácilmente. (IDA Free,Radare, Windbg, X64dbg, Ghidra, etc). No utilizaremos ninguna herramienta pago, y la idea no es competir entre las diferentes herramientas, sino aprender a usarlas, en mi caso aprender a usar Radare y Ghidra que son herramientas que no uso en el día a día, por lo que trataré de usarlas lo mejor que pueda, con la salvedad que no soy un experto ni mucho menos en estas dos, así que si alguien ve algún error o mejor forma de usarlas, seria bueno que me avise (Con algún comentario), así voy corrigiendo y aprendiendo también.

Este curso empezara con la instalación de las herramientas, luego un poco de teoría sobre vulnerabilidades y posteriormente ejemplos ultra sencillos de explotación que se ira incrementando poco a poco en dificultad, lo que no habrá en este curso será la introducción a las instrucciones en ensamblado.

Para armar mi entorno de trabajo lo primero será instalar las herramientas.

Cómo instalar IDA Free

Para descargarse el IDA Free lo pueden hacer desde aquí.

Página de Hex-Rays con los enlaces de descarga gratuita de IDA Free

Aqui podreis bajos el archivo idafree70_windows y la instalación es muy sencilla, solo seguir las instrucciones del instalador y tendremos IDA Free funcionando en nuestra máquina rápidamente.

Ventana principal de IDA Pro 7.0 vacía esperando arrastrar un archivo para desensamblar

Cómo instalar RADARE

Lo siguiente será instalar radare2. Yendo a la página de radare , allí entramos en el último reléase.

Página de la versión 3.9.0 de radare2 en GitHub con flecha señalando el enlace de binarios

En este momento es el 3.9.0, más adelante será una versión mas nueva, no importa entramos en la web y nos bajamos el instalador de la versión más nueva para Windows.

Listado de descargas de radare2 3.9.0 resaltando el instalador radare2_installer-msvc_64-3.9.0.exe

Instalarlo también es muy sencillo una vez terminado solo hay que agregar el path donde se instaló en las environment variables.

Propiedades del sistema de Windows con flecha señalando el botón Variables de entorno

Y allí en la environment variable Path agregar

C:\Users\<nombre_de_usuario>\AppData\Local\Programs\radare2
C:\Users\<nombre_de_usuario>\AppData\Local\Programs\radare2\bin
Ventana de variables de entorno de Windows editando la ruta Path con radare2 añadido

La idea es que desde un command prompt (CMD) podamos tipear radare2 y lo reconozca:

Símbolo del sistema de Windows mostrando el mensaje de uso del comando radare2

Cómo instalar GHIDRA

Instalar GHIDRA es muy sencillo también. Accedemos a su web:

Página web de Ghidra con flecha roja señalando el botón de descarga v9.1-BETA

Aquí podemos descargar el zip, en mi caso se llamaba ghidra_9.1-BETA_DEV_20190923.zip y lo descomprimo en algún lugar, yo cree una maquina virtual de VMWARE, sin conexión a Internet, la cual uso solo para GHIDRA, no es que desconfíe de la NSA pero mejor, que trabaje aislada.

Una vez descomprimido hay que instalar un java compatible, en la pagina de Oracle se puede bajar o de otros sitios, en mi caso baje este instalador , tras terminar de instalarlo, se agrega el path a donde esta el bin de java a las environment variables.

La versión 11, en la página de Ghidra dice que es la más compatible. También dicen los que lo usaron que la versión 11 de OpenJDK es la que mejor va para GHIDRA.

Página de descarga de AdoptOpenJDK 11 con flecha señalando la opción Windows x64
Listado de archivos de AdoptOpenJDK resaltando el instalador .msi para Windows x64

Una vez descargado el instalador tiene la opción para agregar a la environment variable Path, la ruta al binario java.exe

Asistente de instalación de AdoptOpenJDK con flecha en la opción Set JAVA_HOME variable

Una vez terminada la instalación de Java, ya se puede ejecutar.

Explorador de Windows con la carpeta de Ghidra señalando el archivo ghidraRun.bat

Ejecutamos ese .bat y arrancamos GHIDRA

Ventana principal de Ghidra mostrando el estado sin proyecto activo

Cómo instalar X64DBG

De este programa salen nuevos snapshots casi a diario, por supuesto bajen el mas nuevo que haya en ese momento.

Página de SourceForge de x64dbg señalando el snapshot descargable del 14 de octubre

En mi caso es snapshot_2019-10-14_00-57.zip. Al unzipearlo vamos dentro de la carpeta reléase.

Carpeta extraída del snapshot de x64dbg con las subcarpetas pluginsdk y release

Al ejecutar como administrador, nos aparece un launcher para que elijamos la versión para 32 o 64 bits según necesitemos.

Carpeta release de x64dbg con el lanzador x96dbg.exe abierto mostrando las opciones x32dbg y x64dbg
Ventana principal de x64dbg vacía tras cargar el ejecutable desde el escritorio

Podemos bajar el plugin SNOWMAN para decompilar, ya que el IDA Free no trae el decompilador y agregárselos a la carpeta plugins.

Página de GitHub del plugin Snowman resaltando los archivos snowman.dp32 y snowman.dp64

El de 32 bits lo copiamos dentro de la carpeta plugins de la versión de 32 bits y el de 64 bits en la correspondiente.

Carpetas plugins de x64dbg mostrando los archivos snowman.dp32 y snowman.dp64 copiados

Cómo instalar X64DBG

Si tienen Windows 10 instalar Windbg es ir a Microsoft STORE y buscar WINDBG e instalarlo desde allí.

Microsoft Store con resultados de búsqueda de WinDbg mostrando la app WinDbg Preview

Desde allí se instala automáticamente WINDBG Preview que es la versión más nueva, si tienen Windows 7 tendrán que instalar una versión anterior de Windbg.

Página de descarga de WinDbg Standalone señalando el instalador X64 Debuggers And Tools

La más nueva para Windows 7 que tengo es esa, si no les va hay en OLD VERSIONS algunas anteriores que seguro irán.

Lo siguiente es configurar los símbolos para Windbg, crear la carpeta llamada symbols en C:/ y luego ir a las environment variables y agregar la variable _NT_SYMBOL_PATH.

Edición de la variable de entorno _NT_SYMBOL_PATH con la ruta de símbolos de Microsoft

Colocarle como valor SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

Con eso ya tendríamos instalado Windbg Preview.

Interfaz de WinDbg Preview vacía con las pestañas Home, Breakpoints y Time Travel

Despues podremos instalar algún editor hexadecimal como el HxD que es gratuito.

Ventana del editor hexadecimal HxD en español con el panel Inspector de datos

Cómo instalar PYTHON

Instalaremos Python 3 que es el más nuevo, para poder armar los exploits para cada ejercicio, y lo podremos descargar de la propia página de Python

Página de descargas de Python 3.8.0 resaltando el instalador ejecutable para Windows x86-64

Sera la última versión que exista en el momento que la bajen, en mi caso es esta ( python-3.8.0-amd64.exe )

Para agregar en la environment variable PATH la ruta al ejecutable Python.exe, el instalador tiene una pestaña para poder hacerlo automáticamente.

Normalmente el path está en:

C:\Users\XXXXX\AppData\Local\Programs\Python\Python38

Cambiando Python38 por la versión actual que te descargues. El tema es que al tipear en la command prompt podamos ejecutar Python y lo reconozca.

Terminal con el intérprete interactivo de Python 3.8.0 recién instalado en Windows

Cómo instalar PYCHARM Community

En mi caso es pycharm-community-2019.2.3.exe será la última versión que exista la que ustedes bajen en su momento.

Página de descarga de PyCharm con el botón Download de la edición Community señalado
Ventana de instalación de PyCharm Community mostrando las opciones de configuración marcadas

Creamos un proyecto una vez instalado:

Diálogo Create Project de PyCharm configurando un entorno virtualenv con Python 3.8

En RUN-DEBUG configuration mirar que este el interprete allí.

Configuración Run/Debug de PyCharm con el intérprete de Python 3.8 resaltado en rojo

También en SETTINGS buscar PROJECT INTERPRETER y ver que este detectado Python 3.8 o el que sea en nuestro caso.

Panel de ajustes Project Interpreter de PyCharm mostrando Python 3.8 sin paquetes instalados

La cuestión es que si hago un pepe.txt lo renombro a pepe.py y lo arrastro aquí:

Editor de PyCharm con el script pepe.py que imprime el PID obtenido con os.getpid

Si escribimos un pedazo de código al ejecutarlo con RUN debería imprimir.

Menú Run de PyCharm y consola con el PID 2248 tras ejecutar pepe.py

Y además debe autocompletar, y si pasamos el mouse por ejemplo sobre la palabra os, al apretar CTRL y hacer clic allí, nos debería abrir la librería correspondiente os.

Código fuente de la librería os.py de Python mostrando la función os.walk en PyCharm

Con eso terminamos la primera parte, con la instalación de las herramientas que vamos a utilizar. La parte 2 comenzara con buffer overflow, un poco de teoría y los primeros ejercicios sencillos, algunos hare yo, otros les dejare para que hagan ustedes.

Temas

No hay comentarios todavía