Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
inhale — 一个恶意软件分析与分类工具。 | Kitploit
工具/GitHubGitHub/netspooky/inhale
静态分析哈希分析取证分析信息收集恶意软件分析二进制分析
GitHubnetspooky/inhale

inhale

一个恶意软件分析与分类工具。

查看仓库
191335年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Inhale - 恶意文件吸入器

Inhale 是一款恶意软件分析与分类工具,能够自动化并扩展多种静态分析操作。

此为测试版发布版本,用于测试、反馈及社区开发。

背景

Inhale 最初是我在从多个来源收集和分析大量恶意软件时使用的一系列小脚本。市面上已有许多框架和工具可以完成类似工作,但没有一个能真正匹配我快速查找、分类和存储大量文件信息的工作流程。有些工具还要求昂贵的 API 密钥及其他付费服务。

最终我将这些脚本整合成了一个可以快速部署和使用的工具,无论你是在研究服务器、笔记本电脑还是像树莓派这样低成本的计算机上运行都可以。

安装

本工具设计在 Linux 系统上运行,依赖 Python3、ElasticSearch、radare2、yara 和 binwalk。同时还需要 jq 来美化数据库输出。以下是基本安装说明。

config.yml 文件中包含许多尚未实际设置的项目,除非本说明文档另有说明,否则请勿改动。

Python3

安装依赖

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

安装 ElasticSearch(Debian)

使用 Inhale 并非必须配置数据库,但如果你希望设置一个,请按照以下说明操作,并将 config.yml 中的 "enable_database" 选项设为 True。

文档

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

你也可以按照这份文档进行手动安装。

此外,你还可以搭建完整的 ELK 栈用于可视化与数据分析。对于使用本工具来说并非必需。

安装 radare2

务必从仓库安装 radare2,而不是通过包管理器。包管理器版本缺少 Inhale 所需的所有功能。

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

安装 Yara

文档

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

如果遇到关于共享对象的错误,请尝试以下修复方法。

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

安装 binwalk

直接从仓库安装 binwalk 通常是最好的选择。

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

有关 binwalk 附加功能的更多安装信息请参阅这里。

安装 telfhash/tshl

这是一个用于恶意软件家族分析的 ELF 文件节区哈希库。telfhash 依赖 tlsh,因此请按以下说明安装两者。

设置 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

设置 telfhash

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

设置 Web 服务器

如果你想使用 Web 服务器托管 Inhale 输出以便分享,请将 config.yml 中的变量设置为相应路径,并确保目录已存在!

root@kitploit:~
web:
  gen_html: False
  webdir: "/var/www/html/" # 实际的 Web 目录
  fqdn: "http://threat.land" # 你的网站
  in_path: "/var/www/html/inhaled/" # Inhale 输出的路径
  ex_path: "/var/www/html/exhaled/" # 数据库查询缓存输出的路径

要启用 HTML 输出,请按如下方式运行 inhale:

root@kitploit:~
python3 inhale.py [所有参数] --html

使用说明

通过类型指定要分析的文件:

root@kitploit:~
-f INFILE      分析单个文件
-d DIRECTORY   分析目录中的所有文件
-u URLFILE     分析远程文件(URL)
-r RDIRECTORY  分析远程目录(URL)
-l URLLIST     分析文本文件中的 URL 列表

其他选项:

root@kitploit:~
-t TAGS        为输出添加额外的标签。
-b             关闭 binwalk 签名
-y YARARULES   指定自定义 Yara 规则
-o OUTDIR      将提取的文件存储到指定的输出目录(默认:./files/<日期>/)
-i             仅打印信息,不将文件添加到数据库
--html         将输出保存为 HTML 到 webdir 目录。

示例

运行 inhale.py 将对指定文件/目录/URL 执行所有分析,并将结果显示在终端。

查看 /bin/ls 的信息,但不添加到数据库

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

将目录 'malwarez' 添加到数据库

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

下载此文件并添加到数据库

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

下载此远程目录中的所有内容,并全部标记为 "phishing":

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

提示:使用此 Twitter 话题标签搜索来查找可能包含恶意软件的有趣开放目录。使用时请自担风险。

Yara

你可以使用 -y 参数传递自己的 yara 规则。这仍是一个进行中的大工程,YaraRules 中的几乎所有规则都来自 https://github.com/kevthehermit/PasteHunter/tree/master/YaraRules。感谢 @KevTheHermit

查询数据库

使用 db.sh 进行查询(很快会变成一个好用的脚本)

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

数据模型

以下是用于 elasticsearch 数据库的当前数据模型。并非每个字段都会用于每个文件。通常,所有 r2_* 标签都保留给二进制文件。

问题解决方案

本项目存在一些已知问题(主要与包管理器的版本有关),在此我将记录所有有解决方案的问题。

ElasticSearch 索引字段限制

如果你遇到如下错误:

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

你可能使用了较旧版本的 ElasticSearch。你可以升级,或者使用以下一行命令增加字段限制。

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

未来功能

  • 重做 Discord / Matrix 的机器人插件
  • 额外的二进制分析功能——提取导入/导出表、对头部中的特定结构进行哈希、记录所有字符串等。有些已在 telfhash 中实现!
  • 在添加文件前检查是否已在数据库中。该功能因旧版本 ES 的特定问题被移除。
  • 为请求添加配置选项:用户代理、超时、代理等。
  • 将整个项目容器化(Docker)。

贡献

欢迎提交 PR!如果你希望提供具体的反馈,也可以在 Twitter 上通过私信联系我 @netspooky。

致谢

感谢所有帮助我测试此工具的人。还要感谢 Plazmaz 对代码进行了初步清理,使其更加整洁。

特别感谢:hermit, plazmaz, nux, x0, dustyfresh, aneilan, sshell, readme, dnz, notdan, rqu, specters, nullcookies, ThugCrowd,以及所有参与 ThreatLand 和 TC Safari Zone 的各位。

下载工具
名称描述
filename二进制文件的完整路径
file_ext文件扩展名
filesize文件大小
filetype基于魔数值的文件类型。不如 binwalk 签名可靠。
md5文件的 MD5 哈希
sha1文件的 SHA1 哈希
sha256文件的 SHA256 哈希
added文件添加的日期
r2_arch二进制文件的架构
r2_baddr二进制文件的基础地址
r2_binsz程序代码的大小
r2_bits架构位数 - 8/16/32/64 等
r2_canary是否启用了栈金丝雀
r2_class二进制文件类别
r2_compiled二进制文件编译的日期
r2_dbg_file二进制文件的调试文件
r2_intrp如果动态链接,二进制文件调用的解释器
r2_lang源代码的语言
r2_lsyms是否存在调试符号
r2_machine机器类型,通常指二进制文件所面向的 CPU
r2_os二进制文件应当运行的操作系统
r2_pic是否存在位置无关代码
r2_relocs是否存在重定位
r2_rpath运行时搜索路径(如果适用)
r2_stripped二进制文件是否被剥离
r2_subsys二进制文件的子系统
r2_format二进制文件格式
r2_iorw是否存在 ioctl 调用
r2_type二进制文件类型,是可执行文件、共享对象等
yara包含 yara 规则匹配列表
binwalk包含 binwalk 签名及其在二进制文件中的位置列表
tags通过 -t 标志传递的任何用户定义标签
url如果文件是通过远程下载的,则为其来源 URL
urls从二进制文件中提取的所有 URL