De We Live Security: Radare2: abriendo las puertas al reversing (17/08/2016)

Radare2: abriendo las puertas al reversing

Por Diego Perez publicado 17 Aug 2016 – 02:50PM

radare2_reversing-e1471455920943-623x432

La ingeniería inversa tiene como fin obtener la mayor cantidad de información posible de una aplicación o software del cual no se tiene el más mínimo conocimiento técnico en cuanto a su diseño, estructura y funcionamiento. A menudo es utilizada por los expertos en seguridad para buscar algún tipo de vulnerabilidad en aplicaciones, como también para el análisis de códigos maliciosos.

Para realizar reversing sobre un ejecutable existen herramientas que nos pueden ayudar a comprender qué acciones podría tomar en un equipo luego de ser ejecutado; estas aplicaciones son conocidas como desensambladores o depuradores. Algunos de los software más populares de este tipo podrían ser IDA, Immunity Debugger y OllyDbg.

En esta ocasión, les mostraremos un framework de reversing muy poderoso llamado Radare2. La herramienta es gratuita y se encuentra disponible para plataformas Android, GNU/Linux, BSD, iOS, OSX, QNX, W32, W64, Solaris, Haiku y Firefox OS. Además de extraer información, nos permite realizar un análisis estático y dinámico de la aplicación que deseemos auditar.

¿Qué tipo de archivos podemos analizar con Radare2?

Además de poder analizar archivos .EXE, como normalmente hacen todos los desensambladores, este framework nos brinda una generosa cantidad de tipos de archivos que acepta para auditar: bios, CGC, dex, elf, elf64, filesystem, java, fatmach0, mach0, mach0-64, MZ, PE, PE+, TE, COFF, plan9, dyldcache, Commodore VICE emulator, Game Boy (Advance), Nintendo DS ROMs y Nintendo 3DS FIRMs.

Usando Radare2

Luego de haber descargado e instalado Radare2, ejecutamos la aplicación con el comando radare2 seguido del archivo a analizar. En la siguiente captura podemos observar tres comandos. El primero, aaa, analiza todas las funciones del ejecutable; el segundo, afl, lista todas las funciones que se encontraron y el tercero, iz, nos muestra las strings del archivo:

radare2_strings-1024x628

Como mencionamos, es una herramienta para reversing, con la cual podemos obtener el código del ejecutable en lenguaje ensamblador. Esto es posible con el comando pd (print disassemble) o en caso de querer desensamblar alguna función en especial utilizaremos pdf @ seguido de la función. A continuación se puede apreciar un ejemplo de las dos opciones mencionadas:

radare2_funciones

Una de las funcionalidades más interesantes que contiene Radare2 es la de brindar al usuario una vista más agradable con respecto al flujo de instrucciones. Esto significa que la aplicación puede tomar las instrucciones en ensamblador, reconocer determinados bucles, sentencias y demás, y volcar el resultado en forma de gráfica. Con el comando v o v @ seguido de alguna función, podemos obtener el modo gráfico, tal como se puede apreciar en la siguiente captura de pantalla:

radare2_modo-grafico-1024x818

Otra de las particularidades a destacar de Radare2 es que no solo puedes interactuar con el framework por medio de una consola, sino que también puedes hacerlo vía web. Para ello debemos abrir una terminal e ingresar radare2 –c=H seguido del archivo que deseemos. La pantalla principal nos brindará información general del archivo y en la columna que se encuentra a la izquierda tenemos los diferentes módulos que podemos consultar, como por ejemplo el código desensamblador, las funciones o los encabezados.

De este modo, podremos realizar las mismas acciones y obtener los mismos resultados que tuvimos anteriormente, pero de una forma más agradable. En la siguiente captura se observa la interfaz web del framework:

radare2_interfaz-web-1024x529

Estas son algunas de las más importantes cualidades de este framework, de entre la gran cantidad de opciones que contiene; Radare2 no tiene nada que envidiarle a las demás, ya que puede extraer una enorme cantidad de información.

Sin duda, los gustos e intereses recaen en cada uno de los usuarios o analistas, dependiendo de las metodologías de trabajo que elijan y utilicen; pero claro está que Radare2 es una muy buena opción a la hora de realizar alguna auditoría, análisis o búsqueda de vulnerabilidad en archivos ejecutables.

Créditos imagen: ©haven’t the slightest/Flickr

Acerca de Hector Suarez Planas

Es Licenciado en Ciencia de la Computación (3 de julio de 2002). Ha sido Administrador de Red en varias organizaciones, Programador y Analista de Sistemas. Actualmente se desempeña como Administrador de Red del Telecentro Tele Turquino de Santiago de Cuba. Tiene experiencia con sistemas Windows y GNU/Linux, Infraestructura de Redes (Cisco, AlliedTelesis, Netgear y HP ProCurve, Vyatta/VyOS), Servidores tanto físicos como virtuales (plataformas VMWare, Proxmox VE y Xen), Sistemas de Seguridad Informática (Snort/Suricata IDS, appliances AlienVault OSSIM), programador (Delphi, C++ Builder, Perl [poco], Python [algo]), entre otras cosas. Actualmente estoy incursionando en todo lo que tiene relación con Cloud Computing (OpenStack) y Centros de Datos. :-)
Esta entrada fue publicada en Análisis Forense, Ingeniería Inversa o Reversing, Malware, Seguridad. Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *