Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
inhale — Una herramienta de análisis y clasificación de malware. | Kitploit
Herramientas/GitHubGitHub/netspooky/inhale
Análisis EstáticoAnálisis de HashAnálisis ForenseRecopilación de InformaciónAnálisis de MalwareAnálisis de Binarios
GitHubnetspooky/inhale

inhale

Una herramienta de análisis y clasificación de malware.

Ver Repositorio
19133hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Inhale - Malware Inhaler

Inhale es una herramienta de análisis y clasificación de malware capaz de automatizar y escalar muchas operaciones de análisis estático.

Esta es la versión beta, destinada a pruebas, retroalimentación y desarrollo comunitario.

Antecedentes

Inhale comenzó como una serie de pequeños scripts que usaba al recolectar y analizar una gran cantidad de malware de diversas fuentes. Existen muchos frameworks y herramientas para realizar trabajos similares, pero ninguno se ajustaba realmente a mi flujo de trabajo de encontrar, clasificar y almacenar rápidamente información sobre una gran cantidad de archivos. Algunos también requieren costosas claves API y otros servicios que cuestan dinero.

Terminé convirtiendo estos scripts en algo que la gente pueda instalar y usar rápidamente, ya sea desde un servidor de investigación, una laptop o una computadora de bajo costo como una Raspberry Pi.

Instalación

Esta herramienta está diseñada para ejecutarse en Linux usando Python3, ElasticSearch, radare2, yara y binwalk. También se necesita jq para imprimir de forma ordenada la salida de la base de datos. Aquí hay algunas instrucciones básicas para instalarla.

Hay varias cosas en el archivo config.yml que aún no están configuradas; déjalas como están a menos que se indique lo contrario en esta documentación.

Python3

Instalar los requisitos

root@kitploit:~
python3 -m pip install -r requirements.txt

Instalación de ElasticSearch (Debian)

No es obligatorio usar una base de datos para Inhale, pero si deseas configurar una, solo sigue estas instrucciones y establece la opción "enable_database" en config.yml como True.

Documentación

root@kitploit:~
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo service elasticsearch start

También puedes instalarlo manualmente siguiendo esta documentación

Además, puedes configurar un stack ELK completo para visualización y análisis de datos. No es necesario para usar esta herramienta.

Instalación de radare2

Es importante instalar radare2 desde el repositorio, no desde el gestor de paquetes. Las versiones del gestor de paquetes no incluyen todas las funcionalidades necesarias para Inhale.

root@kitploit:~
git clone https://github.com/radare/radare2
cd radare2
sys/install.sh

Instalación de Yara

Documentación

root@kitploit:~
sudo apt-get install automake libtool make gcc
wget https://github.com/VirusTotal/yara/archive/v3.10.0.tar.gz
tar xvzf v3.10.0.tar.gz
cd yara-3.10.0/
./bootstrap.sh
./configure
make
sudo make install

Si aparecen errores sobre objetos compartidos, prueba esto para solucionarlo.

root@kitploit:~
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'
sudo ldconfig

Instalación de binwalk

Lo más recomendable es instalar binwalk desde el repositorio.

root@kitploit:~
git clone https://github.com/ReFirmLabs/binwalk
cd binwalk
sudo python3 setup.py install

Hay más información sobre la instalación de funciones adicionales de binwalk aquí.

Instalación de telfhash/tshl

Esta es una librería que hashea secciones de archivos ELF para el análisis de familias de malware. telfhash depende de tlsh, por lo que las instrucciones para instalar ambos son las siguientes:

Configurar tlsh

root@kitploit:~
git clone https://github.com/trendmicro/tlsh
cd tlsh
./make.sh
cd py_ext/
python3 ./setup.py build
sudo python3 ./setup.py install

Configurar telfhash

root@kitploit:~
git clone https://github.com/trendmicro/telfhash
cd telfhash
sudo python3 setup.py install

Configuración del servidor web

Si deseas usar un servidor web para alojar la salida de Inhale y compartirla, establece las variables en config.yml con las rutas adecuadas y asegúrate de que los directorios existan.

root@kitploit:~
web:
  gen_html: False
  webdir: "/var/www/html/" # El directorio web real
  fqdn: "http://threat.land" # Tu sitio web
  in_path: "/var/www/html/inhaled/" # La ruta a la salida de Inhale
  ex_path: "/var/www/html/exhaled/" # La ruta para la salida en caché de consultas a la base de datos

Para usar la salida HTML, ejecuta Inhale de la siguiente manera:

root@kitploit:~
python3 inhale.py [todos tus argumentos aquí] --html

Uso

Especifica el archivo que deseas analizar por tipo:

root@kitploit:~
-f INFILE      Analizar un solo archivo
-d DIRECTORY   Analizar un directorio de archivos
-u URLFILE     Analizar un archivo remoto (url)
-r RDIRECTORY  Analizar un directorio remoto (url)
-l URLLIST     Analizar una lista de URLs en un archivo de texto

Otras opciones:

root@kitploit:~
-t TAGS        Agregar etiquetas adicionales a la salida.
-b             Desactivar firmas de binwalk
-y YARARULES   Especificar reglas Yara personalizadas
-o OUTDIR      Almacenar archivos analizados en un directorio de salida específico (por defecto: ./files/<date>/)
-i             Solo mostrar información, no agregar archivos a la base de datos
--html         Guardar la salida como HTML en el webdir.

Ejemplos

Ejecutar inhale.py realizará todo el análisis sobre un archivo/directorio/url determinado y lo imprimirá en tu terminal.

Ver información sobre /bin/ls, pero sin agregarlo a la base de datos

root@kitploit:~
python3 inhale.py -f /bin/ls -i 

Agregar el directorio 'malwarez' a la base de datos

root@kitploit:~
python3 inhale.py -d malwarez/

Descargar este archivo y agregarlo a la base de datos

root@kitploit:~
python3 inhale.py -u https://thugcrowd.com/chal/skull

Descargar todo en este directorio remoto, etiquetarlo todo como "phishing":

root@kitploit:~
python3 inhale.py -r http://someurl.com/opendir/ -t phishing

PROTIP: Usa esta búsqueda de hashtag de Twitter para encontrar directorios abiertos interesantes que posiblemente contengan malware. Úsalo bajo tu propio riesgo.

Yara

Puedes pasar tus propias reglas yara con -y. Esto es un gran trabajo en progreso y casi todo en "YaraRules" proviene de https://github.com/kevthehermit/PasteHunter/tree/master/YaraRules. Un saludo a @KevTheHermit

Consultar la base de datos

Usa db.sh para consultar (próximamente será un script bonito)

root@kitploit:~
db.sh *algo* | jq .

Modelo de datos

El siguiente es el modelo de datos actual utilizado para la base de datos elasticsearch. No todos estos campos se usarán para cada archivo. Las etiquetas r2_* suelen reservarse para binarios de algún tipo.

Soluciones a problemas

Hay algunos problemas conocidos con este proyecto (principalmente relacionados con versiones de gestores de paquetes), y aquí rastrearé todo aquello que tenga una solución.

Límite de campos en el índice de ElasticSearch

Si recibes un error como este:

root@kitploit:~
elasticsearch.exceptions.RequestError: RequestError(400, 'illegal_argument_exception', 'Limit of total fields [1000] in index [inhaled] has been exceeded')

Puede que tengas una versión anterior de ElasticSearch. Puedes actualizar o aumentar el límite de campos con este comando de una línea.

root@kitploit:~
curl -XPUT 'localhost:9200/inhaled/_settings' -H 'Content-Type: application/json' -d'{ "index" : { "mapping" : { "total_fields" : { "limit" : "100000" }}}}'

Funcionalidades futuras

  • Rehacer el plugin de bot para Discord / Matrix
  • Funcionalidades adicionales de análisis de binarios: extraer tablas de importación/exportación, hash de estructuras específicas en el encabezado, registro de todas las cadenas, etc. ¡Algunas ya implementadas en telfhash!
  • Verificar si el archivo ya está en la base de datos antes de agregarlo. Esta funcionalidad se eliminó anteriormente debido a problemas específicos con versiones antiguas de ES.
  • Opciones de configuración para peticiones como: user agent, timeout, proxy, etc.
  • Dockerización de todo el proyecto.

Contribución

¡Las PR son bienvenidas! Si deseas dar retroalimentación específica, también puedes enviarme un DM a @netspooky en Twitter.

Agradecimientos

Me gustaría agradecer a todos los que me ayudaron a probar esta herramienta. También me gustaría agradecer a Plazmaz por hacer una revisión inicial del código para que fuera un poco más ordenado.

Saludos a: hermit, plazmaz, nux, x0, dustyfresh, aneilan, sshell, readme, dnz, notdan, rqu, specters, nullcookies, ThugCrowd, y todos los involucrados con ThreatLand y la Zona Safari de TC.

Descargar herramienta
NombreDescripción
filenameLa ruta completa del binario
file_extLa extensión del archivo
filesizeEl tamaño del archivo
filetypeTipo de archivo según el valor mágico. No es tan fiable como las firmas de binwalk.
md5El hash MD5 del archivo
sha1El hash SHA1 del archivo
sha256El hash SHA256 del archivo
addedLa fecha en que se agregó el archivo
r2_archArquitectura del archivo binario
r2_baddrDirección base del binario
r2_binszTamaño del código del programa
r2_bitsBits de arquitectura - 8/16/32/64, etc.
r2_canarySi los canarios de pila están habilitados
r2_classClase del binario
r2_compiledFecha en que se compiló el binario
r2_dbg_fileArchivo de depuración del binario
r2_intrpIntérprete que llama el binario si está enlazado dinámicamente
r2_langLenguaje del código fuente
r2_lsymsSi hay símbolos de depuración
r2_machineTipo de máquina, generalmente la CPU para la que es el binario
r2_osSO en el que se supone que debe ejecutarse la máquina
r2_picSi hay código independiente de posición (PIC)
r2_relocsSi hay reubicaciones
r2_rpathRuta de búsqueda en tiempo de ejecución - si aplica
r2_strippedSi el binario está "stripped" (sin símbolos)
r2_subsysSubsistema del binario
r2_formatFormato del binario
r2_iorwSi hay llamadas ioctl presentes
r2_typeTipo de binario, si es un ejecutable, objeto compartido, etc.
yaraContiene una lista de coincidencias de yara
binwalkContiene una lista de firmas de binwalk y sus ubicaciones en el binario
tagsCualquier etiqueta definida por el usuario pasada con la bandera -t
urlLa URL de origen si el archivo se descargó remotamente
urlsCualquier URL que se haya extraído del binario