Desde Linux David Naranjo  

Ghidra, un conjunto de herramientas de ingeniería inversa de la NSA


Durante la conferencia RSA la Agencia de Seguridad Nacional de EE. UU. anunció la apertura del acceso al kit de herramientas de ingeniería inversa “Ghidra”, que incluye un desensamblador interactivo con soporte para descompilar el código C y proporciona herramientas poderosas para analizar ejecutables.

El proyecto se ha desarrollado durante casi 20 años y es utilizado activamente por las agencias de inteligencia de los EE. UU. Para identificar marcadores, analizar códigos maliciosos, estudiar diversos archivos ejecutables y analizar código compilado.

Por sus capacidades, el producto es comparable a la versión extendida del paquete propietario IDA Pro, pero está diseñado exclusivamente para el análisis de código y no incluye un depurador.

Por otro lado, Ghidra tiene soporte para descompilar en pseudocódigo que se parece a C (en IDA, esta característica está disponible a través de complementos de terceros), así como herramientas más potentes para el análisis conjunto de archivos ejecutables.

Características principales

Dentro del kit de herramientas de ingeniería inversa Ghidra podemos encontrar lo siguiente:

  • Soporte para varios conjuntos de instrucciones de procesador y formatos de archivos ejecutables.
  • Análisis de soporte de archivos ejecutables para Linux, Windows y macOS.
  • Incluye un desensamblador, un ensamblador, un descompilador, un generador de gráficos de ejecución de programas, un módulo para ejecutar scripts y un gran conjunto de herramientas auxiliares.
  • Capacidad para realizar en modos interactivos y automáticos.
  • Soporte de plug-in con la implementación de nuevos componentes.
  • Soporte para automatizar acciones y extender la funcionalidad existente a través de la conexión de scripts en lenguajes Java y Python.
  • Disponibilidad de fondos para el trabajo en equipo de los equipos de investigación y la coordinación del trabajo durante la ingeniería inversa de proyectos muy grandes.

Curiosamente, unas horas después de la publicación de Ghidra, el paquete encontró una vulnerabilidad en la implementación del modo de depuración (deshabilitado de forma predeterminada), que abre el puerto de red 18001 para la depuración remota de la aplicación mediante el JDWP (Java Debug Wire Protocol).

De forma predeterminada, las conexiones de red se realizaron en todas las interfaces de red disponibles, en lugar de 127.0.0.1, lo que le permite conectarse a Ghidra desde otros sistemas y ejecutar cualquier código en el contexto de la aplicación.

Por ejemplo, puede conectarse con un depurador y anular la ejecución a través de la configuración de un punto de interrupción y sustituir su código para una ejecución adicional mediante el comando “print new”, por ejemplo, ”
print new java.lang.Runtime().exec(‘/bin/mkdir /tmp/dir’)”.

Además, es posible observar la publicación de una edición casi completamente revisada del desensamblador interactivo abierto REDasm 2.0.

El programa tiene una arquitectura extensible que le permite conectar controladores para conjuntos adicionales de instrucciones y formatos de archivo en forma de módulos. El código del proyecto está escrito en C ++ (interfaz basada en Qt) y distribuido bajo la licencia GPLv3. Trabajo soportado en Windows y Linux.

El paquete básico es compatible con los formatos de firmware PE, ELF, DEX (Android Dalvik), Sony Playstation, XBox, GameBoy y Nintendo64. De los conjuntos de instrucciones, se admiten x86, x86_64, MIPS, ARMv7, Dalvik y CHIP-8.

Entre las características, podemos mencionar el soporte para la visualización interactiva en estilo IDA, el análisis de aplicaciones de subprocesos múltiples, la construcción de un gráfico de progreso visual, el motor de procesamiento de firma digital (que trabaja con archivos SDB) y las herramientas para la gestión de proyectos.

¿Cómo instalar Ghidra?

Para quienes estén interesados en poder instalar este kit de herramientas de ingeniería inversa “Ghidra”,, deberán de saber que deben de contar con al menos:

  • 4 GB RAM
  • 1 GB para el almacenamiento del Kit
  • Tener instalado Java 11 Runtime y el Kit de desarrollo (JDK).

Para descargar Ghidra tenemos que dirigirnos a su sitio web oficial en donde podremos realizar la descargar. El enlace es este.

Hecho esto solo tendrán que descomprimir el paquete descargado y dentro del directorio encontraremos el archivo” ghidraRun” el cual ejecutara el kit.

Si quieres conocer más al respecto puedes visitar el siguiente enlace.

El artículo Ghidra, un conjunto de herramientas de ingeniería inversa de la NSA aparece primero en Ghidra, un conjunto de herramientas de ingeniería inversa de la NSA.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.