Analistas de malware Detect It Easy en Kali Linux
Analistas de malware Detect It Easy en Kali Linux
Detect It Easy (DIE) es una herramienta esencial para analistas de malware y entusiastas de la ingeniería inversa. Se utiliza para determinar los tipos de archivos, compiladores, empaquetadores (packers) y bibliotecas utilizadas en un archivo binario.
Aquí tienes una guía rápida en español sobre cómo obtenerlo y usarlo en Kali Linux.
1. Instalación en Kali Linux
Aunque Kali tiene muchas herramientas preinstaladas, es posible que necesites descargar la versión más reciente de DIE directamente desde su repositorio oficial de GitHub, ya que a menudo no está en los repositorios estándar de apt.
Opción A: Usando la versión de los repositorios
Puedes intentar buscar si está disponible mediante:
sudo apt update
sudo apt install detect-it-easy
Opción B: Descargar el binario (Recomendado)
Si no está en el repositorio, descarga el paquete .deb desde la página de GitHub de horsicq:
Descarga el archivo que termine en
_amd64.deb.Instálalo con el siguiente comando:
Bashsudo dpkg -i nombre_del_archivo.deb sudo apt install -f # Para corregir posibles dependencias faltantes
2. ¿Para qué sirve?
DIE es extremadamente útil porque no solo te dice qué es un archivo, sino cómo fue construido. Sus funciones principales incluyen:
Identificación de Packers: Detecta si un archivo está comprimido o protegido (ej. UPX, Themida).
Detección de Compiladores: Identifica si fue escrito en C++, Delphi, Go, .NET, etc.
Cálculo de Entropía: Ayuda a visualizar si hay datos cifrados o comprimidos dentro del archivo.
Escaneo de Firmas: Utiliza scripts basados en el lenguaje SGA (similar a JavaScript) para identificar firmas específicas.
3. Uso Básico
Interfaz Gráfica (GUI)
Simplemente ejecuta die o die-qt en tu terminal o búscalo en el menú de aplicaciones de Kali.
Arrastra el archivo sospechoso a la ventana.
Haz clic en "Scan".
Revisa la sección "Linker" y "Compiler" para saber el origen del archivo.
Línea de Comandos (CLI)
Si prefieres trabajar desde la terminal, puedes usar la versión diec:
diec archivo_sospechoso.exe
Esto te dará una salida rápida con la información del compilador y el formato del archivo.
4. Conceptos Clave en Español
Entropía: Si el gráfico de entropía es muy alto (cercano a 8), es muy probable que el archivo esté cifrado o "packeado".
Secciones: Permite ver las secciones del binario (como
.text,.data,.rsrc). Si ves nombres extraños, podría ser un indicio de malware.Signatures (Firmas): Puedes añadir tus propias reglas para detectar variantes específicas de software.
El uso de scripts de firmas es lo que hace que Detect It Easy sea tan potente. A diferencia de otros escáneres que usan firmas estáticas (hexadecimales), DIE utiliza un motor basado en JavaScript (específicamente un subconjunto llamado SGA) que permite lógica condicional.
Aquí te explico cómo funcionan y cómo puedes crear los tuyos.
1. Dónde se encuentran los scripts
En Kali Linux, las firmas suelen estar en una carpeta de base de datos dentro del directorio de instalación o en tu carpeta de configuración:
Ruta común:
/usr/share/die/db/o~/.config/die/db/
La base de datos está organizada por formatos de archivo:
PE: Archivos ejecutables de Windows.
ELF: Binarios de Linux.
MACH: Archivos de macOS.
Binary: Firmas genéricas para cualquier archivo.
2. Anatomía de un Script de Firma
Un script básico de DIE tiene una estructura definida. Aquí tienes un ejemplo de cómo se ve una firma para detectar un supuesto compilador:
// Ejemplo de firma personalizada
init("compiler", "Mi Compilador Personalizado");
function detect(bShowType, bShowVersion, bShowOptions) {
// Busca una cadena de texto específica en el archivo
if (Binary.compare("'MiFirmaSecreta'")) {
return _v("1.0", "Prototipo");
}
return "";
}
Funciones Principales:
init(tipo, nombre): Define qué estamos buscando (compiler, packer, tool) y el nombre que mostrará DIE.Binary.compare(cadena): Busca una secuencia de bytes o texto._v(versión, opciones): Devuelve la versión detectada a la interfaz.
3. Cómo añadir tu propia firma
Si quieres detectar un patrón específico en archivos que estás analizando en Kali:
Crea el archivo: Ve a la carpeta
db/Binary/(o la que corresponda al formato).Escribe el script: Crea un archivo con extensión
.sg(ejemplo:mi_malware.1.sg).Usa la lógica de búsqueda: Puedes usar funciones avanzadas para mayor precisión:
Binary.isSignaturePresent(offset, tamaño, "f0 de ad ba be"): Busca bytes específicos en un lugar exacto.Binary.getSize(): Útil para detectar archivos modificados por su tamaño.
4. Probando tus firmas (Modo Depuración)
No necesitas reiniciar la aplicación para probar tus scripts. DIE tiene un editor integrado:
Abre la interfaz gráfica de DIE.
Haz clic en el botón "Scripts" o "Log".
En la pestaña de búsqueda o editor, puedes escribir tu código y darle a "Run" para ver si detecta el archivo que tienes cargado actualmente.
5. Ejemplo: Detectar un script de Python empaquetado
Si sueles analizar herramientas de hacking hechas en Python que han sido convertidas a .exe (PyInstaller), podrías usar una firma como esta:
init("packer", "PyInstaller");
function detect(bShowType, bShowVersion, bShowOptions) {
if (Binary.compare("'pydata'", Binary.getSize() - 1000)) {
return "Detectado por rastro de datos";
}
return "";
}