
Plugin de búsqueda de hashes de la API de HashDB para IDA Pro
Plugin de búsqueda de hashes de cadenas de malware para IDA Pro. Este plugin se conecta al Servicio de Búsqueda HashDB de OALABS.
La base de datos de algoritmos de hash es de código abierto y se pueden agregar nuevos algoritmos en GitHub aquí. Las solicitudes de extracción son en su mayoría automatizadas y, siempre que nuestras pruebas automatizadas pasen, el nuevo algoritmo estará disponible en HashDB en cuestión de minutos.
HashDB se puede utilizar para buscar cadenas que han sido hasheadas en malware haciendo clic derecho en la constante hash en la vista de desensamblado de IDA y lanzando el cliente HashDB Lookup.
Antes de que el plugin pueda usarse para buscar hashes, se deben configurar los ajustes de HashDB. La ventana de configuración se puede lanzar desde el menú de plugins Edit->Plugins->HashDB.
Haga clic en Refresh Algorithms para obtener una lista de algoritmos de hash compatibles desde la API de HashDB, luego seleccione el algoritmo utilizado en el malware que está analizando.
También hay una opción para habilitar XOR con cada valor hash, ya que esta es una técnica común utilizada por los autores de malware para ofuscar aún más los hashes.
La URL de la API por defecto para el Servicio de Búsqueda HashDB es https://hashdb.openanalysis.net/. Si está utilizando su propio servidor interno, esta URL se puede cambiar para que apunte a su servidor.
Cuando HashDB identifica un nuevo hash, el hash y su cadena asociada se agregan a un enum en IDA. Este enum se puede usar luego para convertir constantes hash en IDA a su nombre de enum correspondiente. El nombre del enum es configurable desde la configuración en caso de que haya un conflicto con un enum existente.
Una vez que se han configurado los ajustes del plugin, puede hacer clic derecho en cualquier constante en la ventana de desensamblado o Pseudocódigo (Hex-Rays) de IDA y buscar la constante como un hash. El clic derecho también proporciona una forma rápida de establecer el valor XOR si es necesario.
Si un hash es parte de un módulo, aparecerá un aviso preguntando si desea importar todos los hashes de ese módulo. Esta es una forma rápida de obtener hashes en masa. Por ejemplo, si uno de los hashes identificados es Sleep del módulo kernel32, HashDB puede obtener todas las exportaciones hasheadas de kernel32.
Después de que se resuelve un hash (o se importa en masa un módulo), HashDB escanea la función actual y convierte cada constante coincidente a su nombre de enum — en los operandos 0–2, con un fallback de máscara de 32 bits para valores con extensión de signo. Las vistas de desensamblado y Hex-Rays se actualizan automáticamente. Los módulos que ya ha importado se almacenan en caché para la sesión, por lo que no se le volverá a preguntar para importar kernel32 (etc.) en cada nuevo hash.
HashDB también incluye una búsqueda básica de algoritmos que intentará identificar el algoritmo de hash basado en un valor hash. La búsqueda devolverá todos los algoritmos que contengan el valor hash, depende del analista decidir qué algoritmo (si corresponde) es correcto. Para usar esta funcionalidad, haga clic derecho en la constante hash y seleccione HashDB Hunt Algorithm.
Todos los algoritmos que contengan este hash se mostrarán en un cuadro de selección. El cuadro de selección se puede usar para seleccionar directamente el algoritmo que HashDB debe usar. Si se selecciona Cancel, no se seleccionará ningún algoritmo.
En lugar de resolver hashes de API individualmente (en línea en el código), algunos desarrolladores de malware crean un bloque de hashes de importación en la memoria. Estos hashes se resuelven todos dentro de una sola función, creando una tabla de direcciones de importación dinámica que luego se referencia en el código. En estos escenarios se puede utilizar la función HashDB Scan IAT.
Simplemente seleccione el bloque de hash de importación, haga clic derecho y elija HashDB Scan IAT. HashDB intentará resolver cada tipo entero individual (DWORD/QWORD) en el rango seleccionado.
HashDB requiere el módulo requests de Python. Instálelo desde un shell fuera de IDA con pip install requests.
Luego puede instalar el plugin de dos maneras:
hashdb.py en su directorio plugins de IDA.El plugin HashDB está dirigido a IDA 7.5+ (incluyendo IDA 9.0) con Python 3 y no es compatible hacia atrás.