
Malwoverview 是一款用于威胁狩猎的第一响应工具,支持 VirusTotal、Hybrid Analysis、URLHaus、Polyswarm、Malshare、Alien Vault、Malpedia、Malware Bazaar、ThreatFox、Triage、IPInfo、Shodan、AbuseIPDB、GreyNoise、URLScan.io、Whois/RDAP、NIST 和 VulnCheck。支持 LLM 增强、IOC 提取、YARA 扫描和 Android 分析。
Copyright (C) 2018-2026 Alexandre Borges (https://exploitreversing.com)
本程序是自由软件:您可以依照自由软件基金会发布的 GNU 通用公共许可证
(GNU General Public License)的条款重新分发和/或修改本程序,
许可证版本为第 3 版,或(由您选择)任何更高版本。
本程序的分发希望它会有用,
但不提供任何担保;甚至不提供适销性或特定用途适用性的
默示担保。有关详细信息,请参阅
GNU 通用公共许可证。
请参阅 <http://www.gnu.org/licenses/> 上的 GNU 公共许可证。
重要说明:默认情况下,Malwoverview 不会向任何端点提交样本,
因此它遵守可能的保密协议(NDA)。有一些特定选项
会明确提交样本,但这些选项在帮助中已有说明。
Malwoverview.py 是一款用于威胁狩猎的应急响应工具,可对恶意软件样本、URL、IP 地址、 域名、恶意软件家族、IOC 和哈希值进行初步快速分类。此外,Malwoverview 能够获取动态和静态行为报告,从多个端点提交和下载样本。 简而言之,它是现有主流沙箱的客户端。
该工具的目标如下:
Alexandre Borges (https://github.com/alexandreborges) | 项目所有者兼主要开发者
Artur Marzano (https://github.com/Macmod) | 联合主要开发者
Corey Forman (https://github.com/digitalsleuth) | 负责 REMnux 集成
Christian Clauss (https://github.com/cclauss)
自 6.0.0 版本起,新增了一个名为 "dev" 的分支。所有贡献和建议 都必须提交到这个 "dev" 分支。
希望贡献的专业人员必须打开一个 issue,说明您建议的改进 以及它将如何使项目变得更好。一旦被接受,他/她就可以 提交 PR,并且该 PR 将经过测试。
所有更改经过测试后,这个新版本的 Malwoverview 会被复制到 master 分支,并生成一个新的 Python 包。
该工具已在 REMnux、Ubuntu、Kali Linux、macOS 和 Windows 上测试过。可以通过执行以下命令安装 Malwoverview:
* pip3.11 install git+https://github.com/alexandreborges/malwoverview
or...
* python -m pip install -U malwoverview
如果要在 macOS 上安装 Malwoverview,必须执行以下命令:
* /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
* brew install libmagic
* pip3 install urllib3==1.26.6
* pip3 install -U malwoverview
* 通过编辑主目录中的 .bash_profile 文件,将 Python 二进制目录添加到 PATH 变量中。
示例:
export PATH=$PATH:/Users/alexandreborges/Library/Python/3.9/bin
* 执行:. ./.bash_profile
如果在 Windows 上安装 Malwoverview,请确保在安装 Malwoverview 后满足以下条件:
* python-magic 未安装。(pip show python-magic)
* python-magic-bin 已安装。(pip show python-magic-bin)
某些功能需要可选依赖项。请按需安装:
* YARA 扫描: pip install malwoverview[yara]
* 签名检查: pip install malwoverview[signature]
* PDF 报告导出: pip install malwoverview[pdf]
* TUI 仪表盘: pip install malwoverview[tui]
* 全部可选: pip install malwoverview[all]
即使不填入所有 API,也可以开始使用 Malwoverview。但是, 要使用 Malwoverview 的所有选项,必须将以下服务的相应 API 插入: VirusTotal、Hybrid Analysis、URLHaus、Malshare、Polyswarm、Alien Vault、Malpedia、Triage、 IPInfo、Malware Bazaar、ThreatFox、VulnCheck、Shodan、AbuseIPDB、GreyNoise 和 URLScan.io 填入 .malwapi.conf 配置文件中,该文件 必须存在于(或创建于)主目录中(/home/[用户名] 或 Linux 下的 /root,以及 Windows 下的 C:\Users[用户名]。或者,用户可以创建 自定义配置文件,并通过 -c 选项指定它。
需要强调:如果主目录中不存在 .malwapi.conf 文件,那么您必须创建它!
关于 Alien Vault 的特别说明:在使用 -n 1 选项之前,需要在 Alien Vault 网站上订阅 pulses。
关于 Malshare 和 Shodan 的特别说明:这两个服务都要求将其 API 密钥放在 URL 本身中发送,并且两者都没有记录头或请求正文的替代方式(Malshare 的 hashlookup 端点是 POST,但密钥仍然通过查询字符串传输)。Malwoverview 在打印的每条错误消息中用 [REDACTED] 替换这两个密钥,因此它们不会出现在您粘贴到错误报告中的输出中,但该密钥仍然会记录在这些服务的访问日志以及任何在您与它们之间终止 TLS 的代理中。请将这两个密钥视为已暴露给服务运营商,并像轮换其他任何凭证一样轮换它们。
.malwapi.conf 配置文件具有以下格式:
[VIRUSTOTAL]
VTAPI =
[HYBRID-ANALYSIS]
HAAPI =
[MALSHARE]
MALSHAREAPI =
[HAUSSUBMIT]
HAUSSUBMITAPI =
[POLYSWARM]
POLYAPI =
[ALIENVAULT]
ALIENAPI =
[MALPEDIA]
MALPEDIAAPI =
[TRIAGE]
TRIAGEAPI =
[IPINFO]
IPINFOAPI =
[BAZAAR]
BAZAARAPI =
[THREATFOX]
THREATFOXAPI =
[VULNCHECK]
VULNCHECKAPI =
[URLHAUS]
URLHAUSAPI =
[SHODAN]
SHODANAPI =
[ABUSEIPDB]
ABUSEIPDBAPI =
[GREYNOISE]
GREYNOISEAPI =
[URLSCANIO]
URLSCANIOAPI =
[LLM]
PROVIDER = claude
CLAUDE_API_KEY =
CLAUDE_MODEL = claude-opus-4-8
GEMINI_API_KEY =
OPENAI_API_KEY =
OPENAI_MODEL = gpt-4o-mini
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = llama3.1
可以在相应服务网站上申请 API:
Malwoverview 通过 --enrich 标志支持基于 LLM 的威胁增强。 在任何查询之后,都会附加 AI 生成的风险评估,包括风险等级、 恶意软件家族识别、MITRE ATT&CK 映射和分析师建议。
支持三个提供商。请在 .malwapi.conf 的 [LLM] 部分配置其中一个:
18. Anthropic Claude(付费,最佳质量)
在威胁情报分析方面效果最佳。能准确识别恶意软件
家族,映射精确的 MITRE ATT&CK 技术,并提供基于
真实威胁知识的可操作建议。
设置:
a) 在 https://console.anthropic.com/ 创建 API 帐户(与
claude.ai 订阅分开)
b) 转到“设置”→“计费”→“添加余额”(最低 $5,按使用量付费)
c) 转到“设置”→“API 密钥”→“创建密钥”
d) 复制密钥(以 sk-ant-api03-... 开头)
e) 配置 .malwapi.conf:
[LLM]
PROVIDER = claude
CLAUDE_API_KEY = sk-ant-api03-your-key-here
CLAUDE_MODEL = claude-opus-4-8
CLAUDE_MODEL 是可选的,默认为 claude-opus-4-8。常见选择:
- claude-opus-4-8 — 最佳质量(默认)
- claude-sonnet-4-6 — 质量与成本的绝佳平衡
- claude-haiku-4-5 — 最快且最便宜
成本:使用默认的 Opus 模型,每次增强调用约 $0.02-0.04(使用
Sonnet 或 Haiku 则更低)。$5 余额大约可进行 125-250 次 Opus 增强调用。
19. Google Gemini(需要计费)
质量不错的结果。需要一个 Google Cloud 计费帐户。
设置:
a) 前往 https://aistudio.google.com/apikeys
b) 使用 Google 帐户登录
c) 点击“创建 API 密钥”→ 复制密钥
d) 启用计费:点击密钥旁边的项目链接 → Google Cloud
控制台 → 计费 → 关联计费帐户
e) 配置 .malwapi.conf:
[LLM]
PROVIDER = gemini
GEMINI_API_KEY = your-gemini-key-here
GEMINI_MODEL = gemini-2.0-flash
注意:免费版速率限制较低(每分钟 2-5 个请求)。要获得
更高的限制,请启用按使用量付费的计费方式。
20. OpenAI(付费)
使用 GPT 模型可获得良好质量的结果。需要一个具有
API 额度的 OpenAI 帐户。
设置:
a) 在 https://platform.openai.com/signup 创建帐户
b) 前往 https://platform.openai.com/api-keys → 创建新的秘密密钥
c) 在 https://platform.openai.com/settings/organization/billing 添加计费
d) 配置 .malwapi.conf:
[LLM]
PROVIDER = openai
OPENAI_API_KEY = sk-your-key-here
OPENAI_MODEL = gpt-4o-mini
可用模型:
- gpt-4o-mini — 最便宜(每次增强约 $0.002),质量不错(默认)
- gpt-4o — 质量更好(每次增强约 $0.01)
21. Ollama(免费、本地、私有)
完全在您自己的机器上运行。无需 API 密钥,数据不会离开您的
系统。适用于不允许将威胁数据发送到云端 API 的环境。
质量取决于所选的模型。
设置:
a) 从 https://ollama.com/download 下载并安装 Ollama
(适用于 Windows、Linux 和 macOS)
b) 打开终端并拉取一个模型:
ollama pull qwen2.5:14bRecommended models:
- qwen2.5:14b — 大小合理,质量最佳(9 GB,需 16 GB 内存)
- llama3.1:8b — 质量良好,体积更小(5 GB,需 8 GB 内存)
- llama3.1:70b — 质量极佳,体积较大(40 GB,需 48 GB 内存)
c) Ollama 会自动启动,并监听于 http://localhost:11434
d) 配置 .malwapi.conf:
[LLM]
PROVIDER = ollama
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = qwen2.5:14b
性能:配备 12+ GB 显存的 GPU 可提供快速响应(5-10 秒)。
仅 CPU 模式较慢(30-60 秒),但仍可用。较大的模型(14b、70b)
需要更多显存,如果可用内存不足,在 CPU 上可能会超时。
对于显存有限(6 GB 或更少)的机器,建议使用
llama3.1:8b 模型。
预期响应时间:
- Claude API: 3-8 秒
- Gemini API: 3-8 秒
- Ollama(GPU 且显存充足):5-15 秒
- Ollama(仅 CPU,8b 模型):30-60 秒
- Ollama(仅 CPU,14b+ 模型):60-300 秒
使用示例:
# CLI: append --enrich to any query
malwoverview -v 8 -V <hash> --enrich
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
# Interactive REPL: toggle enrichment on/off or switch provider
malwoverview --interactive
malwoverview> set enrich on # use provider from config
malwoverview> set enrich claude # switch to Claude
malwoverview> set enrich ollama # switch to Ollama
malwoverview> set enrich openai # switch to OpenAI
malwoverview> set enrich off # disable enrichment
malwoverview> vt hash <hash> # malware analysis + enrichment
malwoverview> nist cve CVE-2024-3400 # CVE lookup + enrichment
malwoverview> vulncheck cve CVE-2024-3400 # VulnCheck + enrichment
# TUI: click the Enrich button to cycle through providers
# Enrich (OFF) → claude → gemini → openai → ollama → OFF
# Green button = provider active and configured
# Yellow button = provider selected but API key missing
# Default button = enrichment disabled
malwoverview --tui
该服务及其受理基于社区审核。因此,建议您使用企业邮箱地址提交 API 请求, 而不要使用公共/免费邮箱(Gmail、Outlook 等)。此外,如果您能提供更多 关于您本人的信息(LinkedIn 账号、X/Twitter、Mastodon、BlueSky 等), 将有助于核验您的身份、职业背景和正当性,从而加快您的请求审批速度。
每次 Triage 操作都基于每个工件(artifact)的 Triage ID,因此您需要 使用 "-x 1 -X <attribute>:<value>" 来搜索正确的工件 ID,然后 将该 ID 信息与其余 Triage 选项(-x [2-7])配合使用,以从 Triage 端点 获取更多威胁狩猎信息。
从 2025 年下半年开始,使用 URLHaus、Malware Bazaar 和 Threat Fox 服务将需要 Auth-Key(API)。
Malwoverview 旨在为深色终端背景生成输出。不过,有一个 -o 0 选项, 可以更改并调整输出颜色,以适应浅色背景。
要检查安装是否成功,请执行:
malwoverview --help
更多信息可在以下位置获取:
(PYPI.org 仓库) https://pypi.org/project/malwoverview/
(Github) https://github.com/alexandreborges/malwoverview
如果您希望进行手动安装(通常没有必要),只需执行少量步骤, 如下一小节所示。
Python 3.11 或更高版本(仅支持 Python 3.x !!! 使用 Python 2.7 无法运行)
$ apt-get install python3.11 (for example)
Python-magic.
要安装 python-magic 包,可执行以下命令:
$ pip3.11 install python-magic
或者,您可以从 GitHub 仓库编译安装:
$ git clone https://github.com/ahupp/python-magic
$ cd python-magic/
$ python3.11 setup.py build
$ python3.11 setup.py install
由于 python-magic 包的两个现有版本存在严重问题, 建议从 GitHub 安装(上述第二种方法), 并将 magic.py 文件复制到 与 malwoverview 工具相同的目录中。
安装所有必需的 Python 包:
$ pip3.11 install -r requirements.txt
OR
$ pip3.11 install -U pefile
$ pip3.11 install -U colorama
$ pip3.11 install -U simplejson
$ pip3.11 install -U python-magic
$ pip3.11 install -U requests
$ pip3.11 install -U validators
$ pip3.11 install -U geocoder
$ pip3.11 install -U polyswarm-api
$ pip3.11 install -U pathlib
$ pip3.11 install -U configparser
要检测 Android 手机,您需要安装 "adb" 工具:
$ sudo apt get install adb
PS:在尝试 Android 相关选项之前,请检查:
* adb 工具是否已列入 PATH 环境变量。
* 系统是否已通过使用 "adb devices -l" 获得设备的授权访问。
usage: python malwoverview.py -c -d -o <0|1> -v <1-20> -V -a <1-13> -A -l <1-8> -L <hash|file type> -j <1-8> -J -p <1-8> -P -y <1-5> -Y -n <1-5> -N -m <1-9> -M -b <1-15> -B -x <1-9> -X -ip <1-8> -IP -O --nist <1-5> --NIST -vc <1-8> -VC -s <1-2> -S -ab <1> -AB -gn <1> -GN -wh <1-2> -WH -ct <1-2> -CT -u <1-5> -U --correlate-hash --extract-iocs <file|url> --yara --yara-target --peinfo <file|directory> --entropy-threshold --sigcheck <file|directory> --no-signature --sig-verify-mode <any|first|all|best> --output-format text|json|csv --proxy --quiet --verbose --no-cache --cache-ttl --cache-stats --prune-cache --clear-cache --no-resolve --defang --no-ioc-filter --report html|pdf --interactive --tui --attack-map
Malwoverview 是 Alexandre Borges 编写的一款用于威胁狩猎的第一响应工具。
恶意软件选项: 恶意软件分析与情报查询选项
-h, --help
+ 显示此帮助信息并退出
-c CONFIG FILE, --config CONFIG FILE
+ 使用自定义配置文件来指定 API。
-d DIRECTORY, --directory DIRECTORY
+ 指定包含恶意软件样本的目录,这些样本将提交至 VIRUS TOTAL 进行检查。
+ 使用 -D 选项来决定您使用的是公共 VT API 还是高级
VT API。
-o BACKGROUND, --background BACKGROUND
+ 将输出颜色调整为适用于浅色背景的终端。
+ 默认为深色背景终端。
-v VIRUSTOTAL, --virustotal_option VIRUSTOTAL
+ -v 1:使用 -V 选项提供文件时,查询 VIRUS TOTAL 数据库(API v.3),
通过 -V 选项获取该文件的报告。
+ v 2:使用 -V 选项显示给定文件的防病毒报告(API v.3);
+ v 3:与 -v2 相同,但还会显示二进制文件的 IAT 和 EAT(API v.3);
+ v 4:提取 overlay(附加数据);
+ v 5:将 URL 提交至 VT 进行扫描;
+ v 6:将 IP 地址提交至 Virus Total;
+ v 7:从 Virus Total 获取所提供域名的报告;
+ v 8:在 Virus Total 中核验给定的哈希;
+ v 9:将样本提交至 VT(最大 32 MB)。在 Windows 系统上,使用正斜杠指定目标文件。
需要通过 -V 选项提供样本文件;
+ -v 10:通过 -V 选项验证所提供文件中的哈希。此选项使用公共 VT API v.3;
+ -v 11:通过 -V 选项验证所提供文件中的哈希。此选项使用高级 API v.3;
+ -v 12:通过 -V 选项提供哈希,显示样本的行为信息。此选项使用 VT API v.3;
-v 13:使用 API v.3 向 VT 提交大文件(超过 32 MB);
+ -v 14:使用 -V 提供的 YARA 规则文件或规则目录提交 Retrohunt 任务
(VT 将针对这些规则扫描过去几个月收到的样本);
+ -v 15:列出您的 Retrohunt 任务,可选择通过 -V 传入状态进行筛选
(starting、running、aborting、aborted 或 finished);
+ -v 16:显示通过 -V 提供的 ID 所对应的 Retrohunt 任务状态和进度;
+ -v 17:列出与通过 -V 提供的 ID 所对应的 Retrohunt 任务匹配的文件;
+ -v 18:根据 -V 提供的 YARA 规则文件或规则目录创建 Livehunt 规则集
(随后 VT 会针对该规则集匹配每一个新提交);
+ -v 19:列出您的 Livehunt 规则集;
+ -v 20:列出您的 Livehunt 通知。选项 14 至 20 需要具有高级(企业)权限的 VT 密钥;
-V VIRUSTOTAL_ARG, --virustotal_arg VIRUSTOTAL_ARG
+ 为 -v 选项提供参数。如果使用 "-v 1" 至 "-v 4",则 -V 必须是
文件路径;如果使用 "-v 5",则 -V 必须是 URL;如果使用 "-v 6",则 -V 必须是
IP 地址;如果使用 "-v 7",则 -V 必须是域名;如果使用 "-v 8",则
-V 必须是哈希(MD5/SHA1/SHA256);如果使用 "-v 9" 或 "-v 13",则 -V 必须是
待提交的文件路径;如果使用 "-v 10" 或 "-v 11",则 -V 必须是文件
包含哈希(每行一个);如果使用 "-v 12",则 -V 必须是用于行为分析的哈希;
如果使用 "-v 14" 或 "-v 18",则 -V 必须是 YARA 规则文件或规则目录;
如果使用 "-v 15",则 -V 可以是任务状态;
如果使用 "-v 16" 或 "-v 17",则 -V 必须是 Retrohunt 任务 ID。
-a HYBRID_ANALYSIS, --hybrid_option HYBRID_ANALYSIS
+ 该参数可从 HYBRID ANALYSIS 获取报告、下载样本并提交样本进行分析。
+ 可能的取值如下:
+ 1:获取给定哈希或样本在 Windows 7 32 位环境中的报告;
+ 2:获取给定哈希或样本在 Windows 7 32 位环境中的报告(支持 HWP);
+ 3:获取给定哈希或样本在 Windows 64 位环境中的报告;
+ 4:获取给定哈希或样本在 Android 环境中的报告;
+ 5:获取给定哈希或样本在 Linux 64 位环境中的报告;
+ 6:将样本提交至 Windows 7 32 位环境;
+ 7. 将样本提交至支持 HWP 的 Windows 7 32 位环境;
+ 8. 将样本提交至 Windows 7 64 位环境;
+ 9. 将样本提交至 Android 环境;
+ 10. 将样本提交至 Linux 64 位环境;
+ 11. 根据给定哈希下载样本(存储的样本不随沙箱环境的不同而改变,因此单个选项替代了原来 11 至 15 的选项);
+ 12. 从文件进行批量哈希检查(每行一个哈希);
+ 13. 目录扫描 - 计算每个文件的 SHA256,并与 Hybrid Analysis 进行核对。
-A SUBMIT_HA, --ha_arg SUBMIT_HA
+ 为 HYBRID ANALYSIS 的 -a 选项提供参数。如果使用 "-a 1" 至
"-a 5",则 -A 必须是哈希或文件路径(自动检测);如果使用 "-a 6"
至 "-a 10",则 -A 必须是待提交的文件路径;如果使用 "-a 11",则 -A
必须是待下载的哈希;如果使用 "-a 12",则 -A 必须是文件
包含哈希(每行一个);如果使用 "-a 13",则 -A 必须是目录
待扫描路径。
-D VT_PUBLIC_PREMIUM, --vtpubpremium VT_PUBLIC_PREMIUM
+ 此选项必须与 -d 选项一起使用。
+ 可能的取值:
+ <0> 使用高级 VT API v3(默认);
+ <1> 使用公共 VT API v3。
-l MALSHARE_HASHES, --malsharelist MALSHARE_HASHES
+ 该选项可下载样本,并显示过去 24 小时内 MALSHARE 仓库中特定类型的哈希。
+ 可能的取值如下:
+ 1:下载样本;
+ 2:PE32(默认);
+ 3:ELF;
+ 4:Java;
+ 5:PDF;
+ 6:列出过去 24 小时内可用的文件类型(以及每种类型的样本数量);
+ 7:列出过去 24 小时内的哈希;
+ 8:列出通过 -L 指定的文件类型的哈希(使用 -l 6 可发现有效的文件类型)。
-L MALSHARE_HASH_SEARCH, --malshare_hash MALSHARE_HASH_SEARCH
+ 为从 MALSHARE 仓库下载样本(-l 1)提供哈希作为参数;与 -l 8 配合使用时,
提供需要列出哈希的文件类型。
-j HAUS_OPTION, --haus_option HAUS_OPTION
+ 该选项根据传入参数的值从 URLHaus 获取信息:
+ 1:下载给定样本;
+ 2:查询所提供哈希的相关信息;
+ 3:搜索给定 URL 的相关信息;
+ 4:按给定标签(区分大小写)搜索恶意 URL;
+ 5:按标签搜索载荷(payload);
+ 6:获取近期载荷的可下载链接列表;
+ 7:获取近期恶意 URL 列表;
+ 8:从文件进行批量哈希检查(每行一个哈希)。
-J HAUS_ARG, --haus_arg HAUS_ARG
+ 为 URLHaus 的 -j 选项提供参数。如果使用 "-j 1",则 -J 必须是
用于下载样本的 SHA256 哈希;如果使用 "-j 2",则 -J 必须是
用于搜索的哈希(MD5/SHA1/SHA256);如果使用 "-j 3",则 -J 必须是待检查的 URL;
如果使用 "-j 4",则 -J 必须是标签(区分大小写);如果使用 "-j 5",则
-J 必须是签名名称。
-p POLY_OPTION, --poly_option POLY_OPTION
+ (仅适用于 Linux)此选项与 POLYSWARM 操作相关:
+ 1. 搜索与通过 -P 选项提供的给定哈希相关的信息;
+ 2. 将 -P 选项提供的样本提交至 Polyswarm 引擎进行分析;
+ 3. 通过 -P 选项提供哈希,从 Polyswarm 下载样本。
注意:Polyswarm 每月最多允许 20 个样本;
+ 4. 通过 -P 选项提供样本文件,搜索相似样本;
+ 5. 通过 -P 选项提供 IP 地址,搜索相关样本;
+ 6. 通过 -P 选项提供域名,搜索相关样本;
+ 7. 通过 -P 选项提供 URL,搜索相关样本;
+ 8. 通过 -P 选项提供恶意软件家族,搜索相关样本。
-P POLYSWARM_ARG, --poly_arg POLYSWARM_ARG
+ (仅适用于 Linux)为 POLYSWARM 的 -p 选项提供参数。
-y ANDROID_OPTION, --android_option ANDROID_OPTION
+ 此 ANDROID 选项具有多个可能取值:
+ <1>:使用多线程,检查通过 USB 连接的 Android 设备上的所有第三方 APK 包,
并与 Hybrid Analysis 进行比对。注意:Android 设备无需 root,系统需要将 adb 工具加入 PATH
环境变量;
+ <2>:使用公共 API,检查通过 USB 连接的 Android 设备上的所有第三方 APK 包,
并与 VirusTotal 进行比对(由于每个 4 个哈希有 60 秒延迟,速度较慢)。注意:Android 设备无需 root,
系统需要将 adb 工具加入 PATH 环境变量;
+ <3>:使用多线程,检查通过 USB 连接的 Android 设备上的所有第三方 APK 包,
并与 VirusTotal 进行比对(仅适用于 Private Virus API)。注意:Android 设备无需 root,
系统需要将 adb 工具加入 PATH 环境变量;
+ <4>:将通过 USB 连接的 Android 设备上的第三方 APK 发送至 Hybrid Analysis;
+ 5. 将通过 USB 连接的 Android 设备上的第三方 APK 发送至 Virus-Total。
-Y ANDROID_ARG, --android_arg ANDROID_ARG
+ 此选项为 ANDROID 的 -y 选项提供参数。
-n ALIENVAULT, --alienvault ALIENVAULT
+ 从 ALIENVAULT 检查多种信息。可能的取值如下:
+ 1:获取已订阅的 pulses;
+ 2:获取 IP 地址的信息;
+ 3:获取域名的信息;
+ 4:获取哈希的信息;
+ 5:获取 URL 的信息。
-N ALIENVAULT_ARGS, --alienvaultargs ALIENVAULT_ARGS
+ 为 ALIENVAULT 的 -n 选项提供参数。如果使用 "-n 1",则 -N
必须是待获取的已订阅 pulses 数量;如果使用 "-n 2",则 -N
必须是 IP 地址;如果使用 "-n 3",则 -N 必须是域名;如果使用 "-n 4"
则 -N 必须是哈希(MD5/SHA256);如果使用 "-n 5",则 -N 必须是 URL。
-m MALPEDIA, --malpedia MALPEDIA
+ 此选项与 MALPEDIA 相关,根据所选值的不同具有不同含义。因此:
+ 1:列出所有家族(family)的元信息;
+ 2:列出所有参与者(actor)ID;
+ 3:列出 Malpedia 中按家族组织的所有可用载荷;
+ 4:获取特定参与者的元信息,因此需要使用 -M 选项。此外,请尝试通过执行带 -m 3 选项的 malwoverview 来确认正确的参与者 ID;
+ 5:列出所有家族 ID;
+ 6:获取特定家族的元信息,因此需要使用 -M 选项。此外,请尝试通过执行带 -m 5 选项的 malwoverview 来确认正确的家族 ID;
+ 7:从 malpedia 获取恶意软件样本(zip 格式 -- 密码:infected)。需要通过 -M 选项指定所需哈希;
+ 8:获取包含特定家族 Yara 规则的 zip 文件(可使用 -m 5 获取可能的家族列表),该家族必须通过 -M 选项指定;
+ 9:获取包含 TLP 级别完整 Malpedia Yara 规则集的 zip 文件,该级别必须通过 -M 指定为 tlp_white、tlp_green、tlp_amber 或 auto 之一(也接受 white、green 和 amber 的简写形式)。将其与 --yara 结合使用,可使用下载的规则进行扫描。
-M MALPEDIAARG, --malpediarg MALPEDIAARG
+ 为 MALPEDIA 的 -m 选项提供参数。如果使用 "-m 4",则 -M 必须
是参与者名称(可使用 -m 2 确认);如果使用 "-m 6",则 -M 必须是
家族名称(可使用 -m 5 确认);如果使用 "-m 7",则 -M 必须是用于下载样本的哈希;
如果使用 "-m 8",则 -M 必须是用于获取 YARA 规则的家族名称。
-b BAZAAR, --bazaar BAZAAR+ 从 MALWARE BAZAAR 和 THREATFOX 检查多项信息。
可能的值有:
+ 1: (Bazaar) 查询恶意软件哈希样本的信息;
+ 2: (Bazaar) 获取相关信息以及根据特定标签关联的恶意软件样本列表;
+ 3: (Bazaar) 根据给定的 imphash 获取恶意软件样本列表;
+ 4: (Bazaar) 查询最新恶意软件样本;
+ 5: (Bazaar) 通过提供 SHA256 哈希从 Malware Bazaar 下载恶意软件
样本。下载的样本使用以下密码压缩:
infected;
+ 6: (ThreatFox) 获取由选项 -B 指定的最近 x 天的当前 IOC 数据集
(最多 7 天);
+ 7: (ThreatFox) 在 ThreatFox 上搜索由选项 -B 指定的 IOC;
+ 8: (ThreatFox) 根据选项 -B 指定的标签搜索 IOC;
+ 9: (ThreatFox) 根据选项 -B 提供的恶意软件家族搜索 IOC;
+ 10. (ThreatFox) 列出所有可用的恶意软件家族。
+ 11: (Bazaar) 从文件批量哈希检查(每行一个哈希)对照
Malware Bazaar;
+ 12: (Bazaar) 目录扫描 — 计算目录中每个文件的 SHA256 并
对照 Malware Bazaar 检查;
+ 13: (Bazaar) 搜索匹配选项 -B 给定的 YARA 规则名称的样本。
规则名称列在哈希报告(-b 1)的末尾,也是使用
-b 14 下载并使用 -b 15 解压的 YARAify 规则集中的
规则名称;
+ 14: (YARAify) 下载 YARAify 规则集(abuse.ch),即 Malware Bazaar
背后的规则集;
+ 15: (YARAify) 将下载的 YARAify 规则集解压到可提供给 --yara 的
规则目录中。
-B BAZAAR_ARG, --bazaararg BAZAAR_ARG
+ 为 -b MALWARE BAZAAR 和 THREAT FOX 选项提供参数:
+ "-b 1" 表示 -B 的参数必须是哈希,并将检索有关该样本的报告;
+ "-b 2" 表示 -B 的参数必须是恶意软件标签,并将显示匹配
该标签的最近样本;
+ "-b 3" 表示 -M 给定的参数必须是 imphash,并将显示匹配该
imphash 的最近样本;
+ "-b 4" 表示 -M 给定的参数必须是 "100 或 time",其中 "100"
列出最近 "100 个样本","time" 列出最近 60 分钟内添加到
Malware Bazaar 的样本;
+ "-b 5" 表示将下载样本,且 -B 的参数必须是您想从
Malware Bazaar 下载的样本的 SHA256 哈希;
+ "-b 6" 表示将检索 IOC 列表,-B 的值是过滤此类 IOC
的天数。最长时间为 7(天);
+ "-b 7" 表示 -B 的参数是您要搜索的 IOC;
+ "-b 8" 表示 -B 的参数是您要搜索的 IOC 的标签(TAG);
+ "-b 9" 表示 -B 参数是您要搜索其 IOC 的恶意软件家族;
-x TRIAGE, --triage TRIAGE
+ 根据指定值提供来自 TRIAGE 的信息:
+ 1: 此选项通过以以下可能格式提供 -X 选项的参数来获取样本的
常规信息:
- sha256:<value>
- sha1:<value>
- md5:<value>
- family:<value>
- score:<value>
- tag:<value>
- url:<value>
- wallet:<value>
- ip:<value>;
+ 2: 获取给定 Triage ID 的摘要报告(从选项 -x 1 获得);
+ 3: 提交样本进行分析;
+ 4: 通过 URL 提交样本进行分析;
+ 5: 下载由 Triage ID 指定的样本;
+ 6: 从与给定 Triage ID 关联的样本下载 pcapng 文件;
+ 7: 获取给定 Triage ID 的动态报告(从选项 -x 1 获得);
+ 8: 从文件批量哈希检查(每行一个哈希)对照 Triage;
+ 9: 目录扫描 — 计算目录中每个文件的 SHA256 并对照 Triage 检查。
-X TRIAGE_ARG, --triagearg TRIAGE_ARG
+ 为来自 TRIAGE 的 -x 选项提供参数。如果 "-x 1",则 -X 必须
是搜索查询(例如,sha256:<hash>、family:<name>、tag:<tag>、
ip:<ip>);如果 "-x 2",则 -X 必须是 Triage 样本 ID(从
-x 1 获得);如果 "-x 3",则 -X 必须是提交的文件路径;如果 "-x 4"
则 -X 必须是提交的 URL;如果 "-x 5" 或 "-x 6",则 -X 必须是
要下载的 Triage 样本 ID;如果 "-x 7",则 -X 必须是用于
动态报告的 Triage 样本 ID;如果 "-x 8",则 -X 必须是一个
包含哈希的文件(每行一个);如果 "-x 9",则 -X 必须是
要扫描的目录路径。
-O OUTPUTDIR, --output-dir OUTPUTDIR
+ 为所有样本下载设置输出目录。
-ip IP, --ip IP
+ 从各种来源获取 IP 信息。可能的值有:
+ 1: 从 IPInfo 获取由 -IP 提供的 IP 地址的详细信息;
+ 2: 已在 8.1.0 中移除(BGPView 已关闭);
+ 3: 从所有可用的情报服务(VirusTotal/Alienvault)获取由 -IP 提供的
IP 地址的详细信息;
+ 4: 从 Shodan 获取 IP 地址的详细信息;
+ 5: 从 AbuseIPDB 获取 IP 地址的详细信息;
+ 6: 从 GreyNoise 获取 IP 地址的详细信息;
+ 7: 从所有服务获取 IP 地址的详细信息(全面);
+ 8: 从文件批量检查 IP 地址(每行一个)对照 VirusTotal,并显示摘要表
(IP 地址、国家/地区、AS 所有者、检测结果)。使用 -D 在公共
(-D 1)和高级(-D 0,默认)VT API 之间进行选择。
-IP IPARG, --iparg IPARG
+ 为 -ip 选项提供参数。对于 -ip 1 到 7,必须是有效的 IP 地址
(IPv4 或 IPv6);对于 -ip 8,必须是包含 IP 地址的文件
(每行一个)。
-s SHODAN, --shodan SHODAN
+ SHODAN 选项:
+ 1: IP 查询;
+ 2: 搜索查询。
-S SHODAN_ARG, --shodanarg SHODAN_ARG
+ 为来自 SHODAN 的 -s 选项提供参数。如果 "-s 1",则 -S 必须
是 IP 地址;如果 "-s 2",则 -S 必须是搜索查询(例如,
"apache"、"port:22 country:BR")。
-ab ABUSEIPDB, --abuseipdb ABUSEIPDB
+ ABUSEIPDB 选项:
+ 1: 检查 IP 信誉。
-AB ABUSEIPDB_ARG, --abuseipdbarg ABUSEIPDB_ARG
+ 为来自 ABUSEIPDB 的 -ab 选项提供 IP 地址。
-gn GREYNOISE, --greynoise GREYNOISE
+ GREYNOISE 选项:
+ 1: 快速 IP 检查(社区 API)。
-GN GREYNOISE_ARG, --greynoisearg GREYNOISE_ARG
+ 为来自 GREYNOISE 的 -gn 选项提供 IP 地址。
-wh WHOIS, --whois WHOIS
+ WHOIS 选项:
+ 1: 域名 whois 查询;
+ 2: IP whois/RDAP 查询。
-WH WHOIS_ARG, --whoisarg WHOIS_ARG
+ 为来自 WHOIS 的 -wh 选项提供参数。如果 "-wh 1",则 -WH 必须
是域名;如果 "-wh 2",则 -WH 必须是 IP 地址。
-ct CRTSH, --crtsh CRTSH
+ 通过 crt.sh 查询证书透明度(Certificate Transparency)日志,无需
API 密钥。可能的值有:
+ 1: 列出为与 -CT 一起给定的域颁发的证书中出现的不同 DNS 名称,
这是一种廉价的子域枚举方式。属于其他域的名称(因为一个证书
可以覆盖多个租户而出现)会被单独计数和报告;
+ 2: 列出证书本身(标识符、颁发者、通用名称和有效期,
最新的在前)。
-CT CRTSH_ARG, --crtsharg CRTSH_ARG
+ 提供由 -ct 选项查询的域名。
-u URLSCANIO, --urlscanio URLSCANIO
+ URLSCAN.IO 选项:
+ 1: 提交 URL 进行扫描;
+ 2: 按 UUID 获取扫描结果;
+ 3: 使用 Elasticsearch 查询语法搜索扫描
(例如,"page.server:nginx"、"task.tags:phishing");
+ 4: 按域搜索扫描;
+ 5: 按 IP 搜索扫描。
-U URLSCANIO_ARG, --urlscanioarg URLSCANIO_ARG
+ 为来自 URLSCAN.IO 的 -u 选项提供参数。如果 "-u 1",则 -U
必须是提交扫描的 URL;如果 "-u 2",则 -U 必须是 UUID
(从 -u 1 获得);如果 "-u 3",则 -U 必须是 Elasticsearch 查询
(例如,"page.server:nginx"、"task.tags:phishing");如果 "-u 4",
则 -U 必须是域;如果 "-u 5",则 -U 必须是 IP 地址。
--correlate-hash HASH
+ 跨服务哈希关联:在 VirusTotal、Hybrid Analysis、Triage 和 AlienVault
中查询哈希,生成合并报告。
--extract-iocs SOURCE
+ 从文件(.txt、.pdf、.eml)或 URL(http/https)中提取 IOC
(哈希、IP、URL、域、电子邮件、CVE)。
PDF 提取需要:pip install malwoverview[pdf]
--yara RULES_FILE
+ 用于扫描的 YARA 规则文件。必须与 --yara-target 一起使用。
需要:pip install malwoverview[yara]
--yara-target TARGET
+ 要使用 YARA 规则扫描的文件或目录。
--peinfo TARGET
+ 对文件或目录进行本地 PE 分类(无需 API 密钥):文件类型、大小、
overlay、overlay 大小和熵。目录会被递归扫描。
熵是 PE 节区中的最高熵,或非 PE 文件的整个文件 Shannon 熵。
--entropy-threshold VALUE
+ --peinfo 将文件标记为加壳或加密的熵值。默认值:7.0
--sigcheck TARGET
+ 检查文件或目录的 Authenticode 签名(无需 API 密钥):
状态、签名者、颁发者、证书日期、摘要算法、证书
指纹和序列号。状态为 VALID、TAMPERED、
UNTRUSTED、EXPIRED、MALFORMED、INVALID、NONE(无嵌入签名)、
PRESENT(存在签名但未验证)或 N/A(不是 PE
文件)之一。只读取嵌入签名:报告为 NONE 的文件
仍可能通过 Windows 目录(catalog)签名。
完整验证需要:pip install malwoverview[signature]
VALID 表示文件仍然与其签名时使用的证书匹配。
这不是对文件的定论:签名证书会被窃取、
滥用和错误颁发,恶意软件也曾携带有效的 Microsoft
签名。嵌入签名存储在 overlay 中,因此签名
文件总会报告一个 overlay,且该 overlay 不是附加的有效载荷。
不检查证书吊销。不会发出网络请求,因此使用之后
被吊销的证书签名的文件仍报告为 VALID。
当签名带有副署签名(countersignature)时,即使证书已过期,签名
仍保持 VALID,因为副署签名证明文件是在证书仍然有效时
签名的。这正是 Authenticode 的预期工作方式,报告在发生这种情况时
会说明:VALID 旁边的过去到期日期并不是矛盾。
一个文件可以携带多个嵌入签名,通常是为兼容性而设的 SHA-1
加上 SHA-256,签名者经常不同。Signer 列显示其中一个,
并将其余标记为 (+N);对单个文件运行 --sigcheck 会列出
每个签名及其各自的摘要算法、证书、指纹和序列号。
--no-signature
+ 在 --peinfo 和 --sigcheck 中跳过签名验证,仅报告签名是否存在。
在大型目录上很有用。
--sig-verify-mode MODE
+ 哪个嵌入签名决定多签名文件的状态:
any、first、all 或 best。默认值:best
best 遵循使用最强摘要算法生成的签名,即 Windows 认可的签名。
first 遵循文件顺序,与 sigcheck.exe 一致。all 要求每个签名
都验证通过,而 any 只要有一个签名验证通过就接受该文件。
这个选择很重要:在 517 个多签名驱动程序中,37 个会因该设置
改变状态,any 会在 first 拒绝的 21 个文件上报告 VALID。
--attack-map
+ 为行为报告启用 MITRE ATT&CK 技术映射。
GENERAL OPTIONS: 输出格式、代理、缓存和详细级别选项
--output-format text|json|csv
+ 输出格式:text(默认,彩色终端)、json 或 csv。
--proxy URL
+ HTTP/HTTPS/SOCKS5 代理 URL(例如,socks5://127.0.0.1:9050)。
--quiet
+ 抑制横幅和装饰性输出。
--verbose
+ 显示调试信息(请求 URL、计时等)。
--no-cache
+ 禁用结果缓存。
--cache-ttl SECONDS
+ 缓存生存时间(秒)(默认值:3600)。
--cache-stats
+ 显示本地结果缓存的位置、包含的条目数、在当前 --cache-ttl 下
已过期的条目数以及磁盘占用大小。然后退出。
--prune-cache
+ 仅根据 --cache-ttl 删除本地结果缓存中已过期的条目,然后退出。
--clear-cache
+ 删除本地结果缓存中的所有条目并退出。
--no-resolve
+ 不解析或定位结果中发现的主机名。当您列出订阅源(例如 URLHaus
载荷和标签列表)时,通常会使您的主机查询其显示的每个 URL,
这会让该基础设施的运营者知道正在被调查。使用此选项时,
位置列将显示 "Not Resolved" 代替。
--defang
+ 以 defanged 形式(hxxp://example[.]com)打印 --extract-iocs 列出的
IOC,以便可以复制到报告或工单中而不会变为可点击。它仅适用于
该列表,并且只更改输出:查询仍使用真实值进行。
--no-ioc-filter
+ 关闭 --extract-iocs 默认应用的噪音过滤。通常,HTML 页面的
<script>、<style> 和 <svg> 块会被跳过,只有当域名的最后一个
标签是真正的顶级域时才报告该域名,并且会丢弃指向源站点或
已知页面元素(分析、字体、社交按钮)的链接。使用此选项时,
将改为报告原始源中的每个正则匹配。
--report html|pdf
+ 以指定格式生成报告。
PDF 导出需要:pip install malwoverview[pdf]
--report-file PATH
+ 生成报告的输出路径。
--interactive
+ 启动交互式 REPL 模式。
--tui
+ 启动 TUI(文本用户界面)仪表盘模式,带服务选择器、查询输入和
可滚动结果面板。需要:pip install malwoverview[tui]
--enrich
+ 启用结果的 LLM 增强。在每个查询结果后附加 AI 生成的威胁评估。
适用于所有查询类型,包括恶意软件哈希查询、IP 信誉检查、
CVE 搜索(NIST 和 VulnCheck)以及跨服务关联。使用 .malwapi.conf
[LLM] 部分中配置的提供商,或使用 --llm 覆盖。支持的提供商:
- claude: Anthropic Claude API(质量最佳,付费)
- gemini: Google Gemini API(需要计费)
- openai: OpenAI API(付费,GPT 模型)
- ollama: 本地 Ollama 实例(免费,私有)
--llm PROVIDER
+ 覆盖用于增强的 LLM 提供商(与 --enrich 一起使用)。
示例:
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm claude
malwoverview -vc 3 -VC CVE-2024-3400 --enrich --llm ollama
VULNERABILITY OPTIONS: 漏洞数据库查询选项
NIST CVE 数据库查询:
NIST CVE 数据库的查询选项(查询类型和值是必需的;其他选项为可选)
--nist NIST_OPTION, 查询类型:1=CPE/产品搜索,2=CVE ID 搜索,
3=CVSS v3 严重性,4=关键字搜索,5=CWE ID 搜索
--NIST NIST_ARG 搜索值(格式取决于查询类型)
--time YEARS 将结果限制为最近 N 年
--rpp NUM 每页结果数(默认值:100,最大值:2000)
--startindex NUM 分页起始索引(默认值:0)
--ncves NUM 将输出限制为前 N 个 CVE
VulnCheck 数据库查询:
VulnCheck 漏洞数据库的查询选项(社区/免费层级)
-vc VULNCHECK_OPTION, --vulncheck VULNCHECK_OPTION
+ 查询类型:1:列出可用索引;
2:获取 KEV(已知被利用漏洞);
3:在 KEV 中搜索 CVE;
4:获取 KEV 备份链接;
5:列出 MITRE CVE;
6:列出 NIST NVD2 CVE;
7:在 MITRE 中搜索 CVE;
8:在 NIST NVD2 中搜索 CVE。
-VC VULNCHECK_ARG, --VULNCHECK VULNCHECK_ARG
+ 搜索值(选项 3/7/8 为 CVE ID,选项 2/5/6 为最大结果数,
例如 50)。
从 8.0 版开始,Malwoverview 在传统的基于标志的语法之外,还支持另一种 子命令语法。两种语法均完全受支持,并产生相同的结果。
可用的子命令:
vt VirusTotal 操作(file、av、hash、url、ip、domain、submit、behavior、batch)
ha Hybrid Analysis 操作(report、submit、download、batch、dir)
bazaar Malware Bazaar 操作(hash、tag、download、batch、dir)
triage Triage 操作(search、summary、submit、dynamic、batch、dir)
urlhaus URLHaus 操作(hash、url、tag、download、batch)
ip IP 地址查询(info、shodan、abuse、greynoise、all、batch)
whois Whois/RDAP 查询(domain、ip)
shodan Shodan 操作(ip、search)
correlate 跨服务关联(hash)
extract 从文件或 URL 提取 IOC
yara YARA 规则扫描
nist NIST CVE 数据库查询
vulncheck VulnCheck 数据库查询
子命令示例(与基于标志的语法等效):
# These pairs are equivalent:
malwoverview vt hash <sha256> # same as: malwoverview -v 8 -V <sha256>
malwoverview vt behavior <sha256> # same as: malwoverview -v 12 -V <sha256>
malwoverview ha report <hash> --env 3 # same as: malwoverview -a 3 -A <hash>
malwoverview ha batch <hashfile> # same as: malwoverview -a 12 -A <hashfile>
malwoverview bazaar hash <sha256> # same as: malwoverview -b 1 -B <sha256>
malwoverview bazaar batch <hashfile> # same as: malwoverview -b 11 -B <hashfile>
malwoverview bazaar dir <directory> # same as: malwoverview -b 12 -B <directory>
malwoverview triage search sha256:<value> # same as: malwoverview -x 1 -X sha256:<value>
malwoverview triage batch <hashfile> # same as: malwoverview -x 8 -X <hashfile>
malwoverview ip all <ipaddr> # same as: malwoverview -ip 7 -IP <ipaddr>
malwoverview ip shodan <ipaddr> # same as: malwoverview -ip 4 -IP <ipaddr>
malwoverview ip batch <ipfile> # same as: malwoverview -ip 8 -IP <ipfile>
malwoverview whois domain <domain> # same as: malwoverview -wh 1 -WH <domain>
malwoverview correlate hash <sha256> # same as: malwoverview --correlate-hash <sha256>
malwoverview extract <file|url> # same as: malwoverview --extract-iocs <file|url>
malwoverview yara <rules> <target> # same as: malwoverview --yara <rules> --yara-target <target>
malwoverview nist 2 CVE-2021-44228 # same as: malwoverview --nist 2 --NIST CVE-2021-44228
使用 --help 配合任何子命令查看详细信息:
malwoverview vt --help
malwoverview ip --help
malwoverview ha report --help
malwoverview -v 1 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 2 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 3 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 4 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe,
malwoverview -v 5 -V http://jamogames.com/templates/JLHk/
malwoverview -v 6 -V 185.220.100.243
malwoverview -v 7 -V xurl.es
malwoverview -v 8 -V ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview -v 9 -V cc2d791b16063a302e1ebd35c0e84e6cf6519e90bb710c958ac4e4ddceca68f7.exe
malwoverview -v 10 -V /home/remnux/malware/hash_list_3.txt
malwoverview -v 11 -V /home/remnux/malware/hash_list_3.txt
malwoverview -v 12 -V 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
malwoverview -v 13 -V /largefiles/4b3b46558cffe1c0b651f09c719af2779af3e4e0e43da060468467d8df445e93
malwoverview -v 14 -V /home/remnux/rules/apt_rules.yar
malwoverview -v 14 -V /home/remnux/rules/
malwoverview -v 15
malwoverview -v 16 -V 1712345678-abcdef0123456789
malwoverview -v 17 -V 1712345678-abcdef0123456789
malwoverview -v 18 -V /home/remnux/rules/livehunt.yar
malwoverview -v 19
malwoverview -v 20
malwoverview -a 1 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 1 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8.exe
malwoverview -a 2 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 3 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 4 -A malware1.apk
malwoverview -a 4 -A 82eb6039cdda6598dc23084768e18495d5ebf3bc3137990280bc0d9351a483eb
malwoverview -a 5 -A 2b03806939d1171f063ba8d14c3b10622edb5732e4f78dc4fe3eac98b56e5d46
malwoverview -a 5 -A 2b03806939d1171f063ba8d14c3b10622edb5732e4f78dc4fe3eac98b56e5d46.elf
malwoverview -a 6 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 7 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 8 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 9 -A malware_7.apk
malwoverview -a 10 -A 925f649617743f0640bdfff4b6b664b9e12761b0e24bbb99ca72740545087ad2.elf
malwoverview -a 11 -A cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview -a 12 -A /home/remnux/malware/hash_list.txt
malwoverview -a 13 -A /home/remnux/malware/samples/
malwoverview -l 1 -L d3dcc08c9b955cd3f68c198e11d5788869d1b159dc8014d6eaa39e6c258123b0
malwoverview -l 2
malwoverview -l 3
malwoverview -l 4
malwoverview -l 5
malwoverview -l 6
malwoverview -l 8 -L PE32
malwoverview -j 1 -J 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview -j 2 -J 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview -j 3 -J https://unada.us/acme-challenge/3NXwcYNCa/
malwoverview -j 4 -J Qakbot
malwoverview -j 5 -J Emotet
malwoverview -j 5 -J Icedid
malwoverview -j 6
malwoverview -j 7
malwoverview -j 8 -J /home/remnux/malware/hash_list.txt
malwoverview -p 1 -P 1999ba265cd51c94e8ae3a6038b3775bf9a49d6fe57d75dbf1726921af8a7ab2
malwoverview -p 2 -P 301524c3f959d2d6db9dffdf267ab16a706d3286c0b912f7dda5eb42b6d89996.exe
malwoverview -p 3 -P 68c11ef39769674123066bcd52e1d687502eb6c4c0788b4f682e8d31c15e5306
malwoverview -p 4 -P 68c11ef39769674123066bcd52e1d687502eb6c4c0788b4f682e8d31c15e5306.exe
malwoverview -p 5 -P 188.40.75.132
malwoverview -p 6 -P covid19tracer.ca
malwoverview -p 7 -P http://ksahosting.net/wp-includes/utf8.php
malwoverview -p 8 -P Qakbot
malwoverview -y 1
malwoverview -y 2
malwoverview -y 3
malwoverview -y 4 -Y com.spaceship.netprotect
malwoverview -y 5 -Y com.mwr.dz
malwoverview -v 1 -V 368afeda7af69f329e896dc86e9e4187a59d2007e0e4b47af30a1c117da0d792.apk
malwoverview -n 1 -N 10
malwoverview -n 2 -N 176.57.215.100
malwoverview -n 3 -N threesmallhills.com
malwoverview -n 4 -N 6d1756aa6b45244764409398305c460368d64ff9 -o 0
malwoverview -n 5 -N http://ksahosting.net/wp-includes/utf8.php
malwoverview -m 1 | more
malwoverview -m 2 | more
malwoverview -m 3 | more
malwoverview -m 4 -M apt41 | more
malwoverview -m 5 | more
malwoverview -m 6 -M win.qakbot
malwoverview -m 7 -M 3d375d0ead2b63168de86ca2649360d9dcff75b3e0ffa2cf1e50816ec92b3b7d
malwoverview -m 8 -M win.qakbot
malwoverview -m 9 -M tlp_white
malwoverview -m 9 -M tlp_green
malwoverview -b 1 -B c9d7b5d06cd8ab1a01bf0c5bf41ef2a388e41b4c66b1728494f86ed255a95d48
malwoverview -b 2 -B Revil | more
malwoverview -b 3 -B f34d5f2d4577ed6d9ceec516c1f5a744
malwoverview -b 4 -B 100
malwoverview -b 4 -B time | more
malwoverview -b 5 -B bda50ff249b947617d9551c717e78131ed32bf77db9dc5b7591d3e1af6cb2f1a
malwoverview -b 6 -B 3 | more
malwoverview -b 7 -B 193.150.103.37:21330
malwoverview -b 8 -B Magecart | more
malwoverview -b 9 -B "Cobalt Strike"
malwoverview -b 10 | more
malwoverview -x 1 -X score:10 | more
malwoverview -x 1 -X 71382e72d8fb3728dc8941798ab1c180493fa978fd7eadc1ab6d21dae0d603e2
malwoverview -x 2 -X 220315-qxzrfsadfl
malwoverview -x 3 -X cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview -x 4 -X http://ztechinternational.com/Img/XSD.exe
malwoverview -x 5 -X 220315-xmbp7sdbel
malwoverview -x 6 -X 220315-xmbp7sdbel
malwoverview -x 7 -X 220315-xmbp7sdbel
malwoverview -ip 1 -IP 8.8.8.8
malwoverview -ip 3 -IP 8.8.8.8
malwoverview -b 5 -B <hash> -O <directory>
malwoverview -b 11 -B /home/remnux/malware/hash_list.txt
malwoverview -b 12 -B /home/remnux/malware/samples/
malwoverview -b 13 -B Windows_Trojan_Emotet
malwoverview -b 14
malwoverview -b 15
malwoverview -x 8 -X /home/remnux/malware/hash_list.txt
malwoverview -x 9 -X /home/remnux/malware/samples/
malwoverview -ip 4 -IP 8.8.8.8
malwoverview -ip 5 -IP 8.8.8.8
malwoverview -ip 6 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt -D 1
malwoverview -s 1 -S 8.8.8.8
malwoverview -s 2 -S "apache"
malwoverview -ab 1 -AB 185.220.100.243
malwoverview -gn 1 -GN 185.220.100.243
malwoverview -wh 1 -WH example.com
malwoverview -wh 2 -WH 8.8.8.8
malwoverview -ct 1 -CT iana.org
malwoverview -ct 2 -CT iana.org
malwoverview -u 1 -U https://example.com
malwoverview -u 2 -U 019ce889-ab8d-768b-894e-3e5bf5401f8d
malwoverview -u 3 -U task.tags:phishing
malwoverview -u 4 -U example.com
malwoverview -u 5 -U 8.8.8.8
malwoverview --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview --extract-iocs /home/remnux/malware/report.txt
malwoverview --extract-iocs /home/remnux/malware/report.pdf
malwoverview --extract-iocs https://example.com/threat-report.html
malwoverview --yara /home/remnux/rules/malware.yar --yara-target /home/remnux/malware/samples/
malwoverview --yara /home/remnux/rules/ --yara-target /home/remnux/malware/samples/
malwoverview --peinfo /home/remnux/malware/samples/
malwoverview --peinfo /home/remnux/malware/dropper.exe
malwoverview --peinfo /home/remnux/malware/samples/ --entropy-threshold 7.5
malwoverview --peinfo /home/remnux/malware/samples/ --output-format csv
malwoverview --peinfo /home/remnux/malware/samples/ --no-signature
malwoverview --sigcheck /home/remnux/malware/suspicious.exe
malwoverview --sigcheck /home/remnux/malware/samples/
malwoverview --sigcheck /home/remnux/malware/samples/ --output-format json
malwoverview --sigcheck /home/remnux/malware/samples/ --sig-verify-mode all
malwoverview --interactive
malwoverview --tui
malwoverview -v 8 -V <hash> --output-format json
malwoverview -ip 3 -IP 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview -v 12 -V <hash> --attack-map
malwoverview -a 1 -A <hash> --attack-map
malwoverview --correlate-hash <hash> --attack-map
# Local result cache
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
# Download the YARAify rule set and scan with it (-b 15 extracts into
# <output directory>/yaraify-rules, so use the same -O for both steps)
malwoverview -b 14 -O /home/remnux/rules
malwoverview -b 15 -O /home/remnux/rules
malwoverview --yara /home/remnux/rules/yaraify-rules --yara-target /home/remnux/malware/samples/
# Malpedia rule set (-m 9 saves malpedia_yara_<level>.zip; extract it first)
malwoverview -m 9 -M tlp_white -O /home/remnux/rules
unzip /home/remnux/rules/malpedia_yara_tlp_white.zip -d /home/remnux/rules/malpedia
malwoverview --yara /home/remnux/rules/malpedia --yara-target /home/remnux/malware/samples/
# LLM enrichment (append AI threat assessment to any query)
malwoverview -v 8 -V <hash> --enrich # uses provider from config
malwoverview -v 8 -V <hash> --enrich --llm claude # override: use Claude
malwoverview -v 8 -V <hash> --enrich --llm ollama # override: use Ollama
malwoverview -v 8 -V <hash> --enrich --llm openai # override: use OpenAI
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich # CVE enrichment (NIST)
malwoverview -vc 3 -VC CVE-2024-3400 --enrich # CVE enrichment (VulnCheck)
malwoverview --nist 4 --NIST palo alto --enrich # keyword search + enrichment
# VirusTotal
malwoverview vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview vt file 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt av 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt url http://jamogames.com/templates/JLHk/
malwoverview vt ip 185.220.100.243
malwoverview vt domain xurl.es
malwoverview vt submit cc2d791b16063a302e1ebd35c0e84e6cf6519e90bb710c958ac4e4ddceca68f7.exe
malwoverview vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
malwoverview vt batch /home/remnux/malware/hash_list_3.txt
malwoverview vt batch /home/remnux/malware/hash_list_3.txt --public
# Hybrid Analysis
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8 --env 3
malwoverview ha submit 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview ha download cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview ha batch /home/remnux/malware/hash_list.txt
malwoverview ha dir /home/remnux/malware/samples/
# Malware Bazaar
malwoverview bazaar hash c9d7b5d06cd8ab1a01bf0c5bf41ef2a388e41b4c66b1728494f86ed255a95d48
malwoverview bazaar tag Revil | more
malwoverview bazaar download bda50ff249b947617d9551c717e78131ed32bf77db9dc5b7591d3e1af6cb2f1a
malwoverview bazaar batch /home/remnux/malware/hash_list.txt
malwoverview bazaar dir /home/remnux/malware/samples/
# Triage
malwoverview triage search score:10 | more
malwoverview triage search sha256:71382e72d8fb3728dc8941798ab1c180493fa978fd7eadc1ab6d21dae0d603e2
malwoverview triage summary 220315-qxzrfsadfl
malwoverview triage submit cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview triage dynamic 220315-xmbp7sdbel
malwoverview triage batch /home/remnux/malware/hash_list.txt
malwoverview triage dir /home/remnux/malware/samples/
# URLHaus
malwoverview urlhaus hash 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview urlhaus url https://unada.us/acme-challenge/3NXwcYNCa/
malwoverview urlhaus tag Qakbot
malwoverview urlhaus download 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
# IP lookups
malwoverview ip info 8.8.8.8
malwoverview ip shodan 8.8.8.8
malwoverview ip abuse 185.220.100.243
malwoverview ip greynoise 185.220.100.243
malwoverview ip all 8.8.8.8
# Shodan (standalone)
malwoverview shodan ip 8.8.8.8
malwoverview shodan search "apache"
# Whois
malwoverview whois domain example.com
malwoverview whois ip 8.8.8.8
# Cross-service correlation
malwoverview correlate hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# IOC extraction (text, PDF, email, or URL)
malwoverview extract /home/remnux/malware/report.txt
malwoverview extract /home/remnux/malware/report.pdf
malwoverview extract https://example.com/threat-report.html
# YARA scanning
malwoverview yara /home/remnux/rules/malware.yar /home/remnux/malware/samples/
# NIST CVE queries
malwoverview nist 1 "windows" --ncves 50
malwoverview nist 2 CVE-2021-44228
malwoverview nist 3 CRITICAL --ncves 50
malwoverview nist 4 "remote code execution" --ncves 50
# VulnCheck queries
malwoverview vulncheck 2 30
malwoverview vulncheck 3 CVE-2021-44228
# Subcommands combined with global options
malwoverview vt hash <sha256> --output-format json
malwoverview ip all 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview vt behavior <sha256> --attack-map
malwoverview --interactive
# Inside the prompt (type "help" for the full list):
vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
vt file /home/remnux/malware/sample.exe
vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
vt batch /home/remnux/malware/hash_list.txt
vt retrohunt submit /home/remnux/rules/
vt retrohunt list
vt retrohunt status 1712345678-abcdef0123456789
vt livehunt notifications
bazaar yara Windows_Trojan_Emotet
bazaar yaradownload
bazaar yaraextract
bazaar dir /home/remnux/malware/samples/
urlhaus batch /home/remnux/malware/hash_list.txt
urlhaus payloads
triage submit /home/remnux/malware/sample.exe
triage pcap 220315-xmbp7sdbel
malpedia ruleset tlp_white
malpedia meta emotet
malshare types
malshare type PE32
hybrid file /home/remnux/malware/sample.exe
hybrid dir /home/remnux/malware/samples/
threatfox malwarelist
ip batch /home/remnux/malware/ip_list.txt
ip multi 8.8.8.8
ip all 8.8.8.8
crtsh subdomains iana.org
crtsh certs iana.org
android ha
android sendvt com.example.app
yara /home/remnux/rules/ /home/remnux/malware/samples/
iocs /home/remnux/malware/report.pdf
peinfo /home/remnux/malware/samples/
peinfo /home/remnux/malware/samples/ 7.5
sigcheck /home/remnux/malware/suspicious.exe
cache stats
cache prune
set attack on
set enrich claude
export json
export csv results.csv # the export path must be inside the current directory
malwoverview --tui
# Pick a service on the left panel, type the query, press Enter.
# F3 copies the result, F4 picks an ID out of it, F5 exports the
# collected results to json, F6 exports them to csv, Ctrl+L clears.
# Ctrl+V (or Shift+Insert) pastes the clipboard into the query box from
# anywhere in the dashboard, so a hash can be pasted without clicking
# into the box first.
# The key list is printed above the results and is written again every
# time the pane is cleared, which includes the start of every search.
# While the query box has the focus, quitting is Ctrl+Q, because Q itself
# has to remain typeable.
# Search for Windows vulnerabilities
malwoverview --nist 1 --NIST "windows" --ncves 50
# Search for Apache vulnerabilities
malwoverview --nist 1 --NIST "apache" --ncves 30
# Search for Chrome vulnerabilities
malwoverview --nist 1 --NIST "chrome" --ncves 25
# Search for Chromium vulnerabilities
malwoverview --nist 1 --NIST "chromium" --ncves 25
# Search for Linux vulnerabilities
malwoverview --nist 1 --NIST "linux" --ncves 25
# Search for MacOS vulnerabilities
malwoverview --nist 1 --NIST "MacOS" --ncves 25
# Search for Log4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-44228"
# Search for ProxyShell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-34473"
# Search for Spring4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2022-22965"
# Search for CRITICAL severity vulnerabilities
malwoverview --nist 3 --NIST "CRITICAL" --ncves 50
# Search for HIGH severity vulnerabilities
malwoverview --nist 3 --NIST "HIGH" --ncves 40
# Search for MEDIUM severity vulnerabilities
malwoverview --nist 3 --NIST "MEDIUM" --ncves 30
# Search for Authentication Bypass vulnerabilities
malwoverview --nist 4 --NIST "authentication bypass" --ncves 30
# Search for Remote Code Execution (RCE) vulnerabilities
malwoverview --nist 4 --NIST "remote code execution" --ncves 50
# Search for SQL injection vulnerabilities
malwoverview --nist 4 --NIST "sql injection" --ncves 25
# Search for Path Traversal vulnerabilities (CWE-22)
malwoverview --nist 5 --NIST "CWE-22" --ncves 30
# Search for SQL Injection vulnerabilities (CWE-89)
malwoverview --nist 5 --NIST "CWE-89" ---ncves 40
# Search for Cross-Site Scripting vulnerabilities (CWE-79)
malwoverview --nist 5 --NIST "CWE-79" --ncves 35
# List available VulnCheck indexes (Community/Free tier)
malwoverview -vc 1
# Get Known Exploited Vulnerabilities (KEV) - 30 results
malwoverview -vc 2 -VC 30
# Get Known Exploited Vulnerabilities (KEV) - 100 results
malwoverview -vc 2 -VC 100
# Search for a specific CVE in KEV database
malwoverview -vc 3 -VC CVE-2021-44228
# Search for a specific CVE in KEV database
malwoverview -vc 3 -VC CVE-2022-22965
# Get backup download link for VulnCheck KEV dataset
malwoverview -vc 4
# List recent CVEs from MITRE database
malwoverview -vc 5
# List recent CVEs from MITRE database - 20 results
malwoverview -vc 5 -VC 20
# List recent CVEs from NIST NVD2 database
malwoverview -vc 6
# List recent CVEs from NIST NVD2 database - 50 results
malwoverview -vc 6 -VC 50
# Search for specific CVE in MITRE database (official CVE records)
malwoverview -vc 7 -VC CVE-2024-21412
# Search for specific CVE in NIST NVD2 (CVSS scores, CWE, CISA KEV status)
malwoverview -vc 8 -VC CVE-2024-21412
这是唯一的破坏性变更。五个 Hybrid Analysis 下载选项功能相同,因此合并为一个,其后的两个选项依次下移:
# Download a sample from Hybrid Analysis (was -a 11, -a 12, -a 13, -a 14 or -a 15)
malwoverview -a 11 -A 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# Batch hash check from a file (was -a 16)
malwoverview -a 12 -A /home/remnux/malware/hashes.txt
# Scan every file in a directory (was -a 17)
malwoverview -a 13 -A /home/remnux/malware/samples/
其他所有选项的编号保持不变。所有新编号均为新增。
# Triage a directory: type, size, overlay, overlay size, entropy, signature
malwoverview --peinfo /home/remnux/malware/samples/
# Lower the bar for what counts as packed or encrypted (default 7.0)
malwoverview --peinfo /home/remnux/malware/samples/ --entropy-threshold 6.5
# Skip signature verification on a large sweep
malwoverview --peinfo /home/remnux/malware/samples/ --no-signature
# YARA now accepts a whole rules directory, scanned recursively
malwoverview --yara /home/remnux/rules/ --yara-target /home/remnux/malware/samples/
# One file: status, signer, issuer, certificate dates, thumbprint, serial
malwoverview --sigcheck /home/remnux/malware/suspicious.exe
# A whole directory, one row per file
malwoverview --sigcheck /home/remnux/malware/samples/
一个文件可能带有多个嵌入式签名——通常是为了兼容性而同时包含 SHA-1 和 SHA-256——而且签名者往往不同。表格将额外的签名标记为 (+N);运行单文件形式可列出全部签名。由哪个签名决定状态是可以选择的:
# Strongest digest decides (default, and what Windows honours)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode best
# First in file order decides (what sigcheck.exe reports)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode first
# Every signature must verify (strictest)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode all
# Any one signature verifying is enough (most permissive)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode any
现在也会显示 VirusTotal 自身的签名数据,因此哈希查询会报告签名者链、签名日期以及每个证书指纹:
# Signature block from VirusTotal, by hash
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# Same block when checking a local file
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
# Distinct DNS names seen in certificates issued for a domain
malwoverview -ct 1 -CT example.com
# The certificates themselves: identifier, issuer, common name, validity
malwoverview -ct 2 -CT example.com
# Submit a Retrohunt job from a rules file or a rules directory
malwoverview -v 14 -V /home/remnux/rules/hunting.yar
# List your Retrohunt jobs, optionally filtered by status
malwoverview -v 15
malwoverview -v 15 -V finished
# Status and progress of one job, then the files it matched
malwoverview -v 16 -V 1234abcd-5678-90ef-1234-567890abcdef
malwoverview -v 17 -V 1234abcd-5678-90ef-1234-567890abcdef
# Create a Livehunt ruleset, list your rulesets, list notifications
malwoverview -v 18 -V /home/remnux/rules/livehunt.yar
malwoverview -v 19
malwoverview -v 20
哈希查询现在会列出与该样本匹配的 YARA 规则,下一条命令所需的规则名称即来源于此:
# 1. look a sample up: the report ends with the rules that matched it
malwoverview -b 1 -B 3b89db05cd1e6283a5d23e32eb6a6c17d92953c80c93befa194a0c93a633c1b5
tags: elf Mirai upx-dec
yara rules:
ELF_Mirai
linux_generic_ipv6_catcher
unixredflags3
# 2. take one of those names and pull every other sample it matched
malwoverview -b 13 -B ELF_Mirai
规则名称也存在于规则集本身中,这些规则集可以下载并在本地读取:
# Download the YARAify rule set from abuse.ch, then extract it.
# Both use -O for the working directory; -b 15 finds the archive there.
malwoverview -b 14 -O /home/remnux/rules/
malwoverview -b 15 -O /home/remnux/rules/
压缩包会保存为 /home/remnux/rules/yaraify-rules.zip 并解压到 /home/remnux/rules/yaraify-rules/,每条规则对应一个 .yar 文件。该目录就是 --yara 的扫描目标,其文件名即规则名称:
malwoverview --yara /home/remnux/rules/yaraify-rules/ --yara-target /home/remnux/malware/samples/
从众多作者处收集的规则集无法在所有 YARA 版本下都能顺利编译。存在语法错误的文件会被列出并跳过,扫描将使用其余文件继续运行:上述规则集在一次运行中成功编译了 557 个文件中的 548 个。
# The complete Malpedia YARA ruleset for a TLP level
malwoverview -m 9 -M white
# -m 1 returned the family list; it now returns family meta information
malwoverview -m 1
# -l 6 lists the file types seen in the last 24 hours, -l 8 lists one of them
malwoverview -l 6
malwoverview -l 8 -L PE32
# -ip 3 and -ip 7 used to be identical; -ip 3 is VirusTotal + OTX,
# -ip 7 queries every configured service (IPInfo was never reached)
malwoverview -ip 3 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
# -j 8 (URLhaus batch hash check) was unreachable
malwoverview -j 8 -J /home/remnux/malware/hashes.txt
json 和 csv 现在适用于整个工具,而不再只是其中三分之一的功能:
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --output-format json
malwoverview --sigcheck /home/remnux/malware/samples/ --output-format csv
malwoverview -b 6 -B 3 --output-format json
# LLM enrichment reaches json and csv too, as a typed record
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --enrich --output-format json
# Do not resolve attacker-controlled hostnames to IP addresses
malwoverview -j 2 -J http://malicious.example.com/payload.bin --no-resolve
# Defang the extracted IOCs so the list can be pasted into a ticket
malwoverview --extract-iocs /home/remnux/malware/report.txt --defang
# The source can equally be a URL, so a published report can be read and
# its IOCs defanged in one step
malwoverview --extract-iocs https://example.com/threat-report.html --defang
# A vendor blog is mostly navigation, analytics and minified JavaScript, so
# the extractor skips <script>, <style> and <svg>, drops links back to the
# source site and to known page furniture, and only reports a domain whose
# last label is a real top-level domain
malwoverview --extract-iocs https://www.fortinet.com/blog/threat-research/dprk-related-campaigns-with-lnk-and-github-c2
# Turn all of that off and report every regex match in the raw source
malwoverview --extract-iocs https://example.com/threat-report.html --no-ioc-filter
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
# Command-line REPL
malwoverview --interactive
# Full-screen dashboard: 111 services, Ctrl+V pastes, F5 exports json,
# F6 exports csv
malwoverview --tui
8.0.0 一次性增加了大量功能,因此这里的命令按用途分组,而非按选项编号排列。8.0.1 至 8.0.5 主要是修复,位于末尾。如果 8.1.0 后来更改了某个选项编号,下面的命令会使用当前编号,并注明其原来的编号。
# URLScan.io (-u): submit a URL, fetch a result by id, search,
# then look up a domain or an IP
malwoverview -u 1 -U https://example.com
malwoverview -u 2 -U 019ce889-ab8d-768b-894e-3e5bf5401f8d
malwoverview -u 3 -U task.tags:phishing
malwoverview -u 4 -U example.com
malwoverview -u 5 -U 8.8.8.8
# Shodan (-s): a single IP, or a search query
malwoverview -s 1 -S 8.8.8.8
malwoverview -s 2 -S "apache"
# AbuseIPDB (-ab): IP reputation
malwoverview -ab 1 -AB 185.220.100.243
# GreyNoise (-gn): background internet noise, or aimed at you?
malwoverview -gn 1 -GN 185.220.100.243
# Whois / RDAP (-wh): a domain, then an IP
malwoverview -wh 1 -WH example.com
malwoverview -wh 2 -WH 8.8.8.8
新的 IP 服务也可以通过 -ip 访问,因此一个地址可以逐个服务查询,也可以一次性通过所有服务查询:
malwoverview -ip 4 -IP 8.8.8.8
malwoverview -ip 5 -IP 8.8.8.8
malwoverview -ip 6 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
malwoverview --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# Malware Bazaar: a file of hashes, then a directory of samples
malwoverview -b 11 -B /home/remnux/malware/hash_list.txt
malwoverview -b 12 -B /home/remnux/malware/samples/
# Hybrid Analysis (8.0.0 numbered these -a 16 and -a 17)
malwoverview -a 12 -A /home/remnux/malware/hash_list.txt
malwoverview -a 13 -A /home/remnux/malware/samples/
# Triage
malwoverview -x 8 -X /home/remnux/malware/hash_list.txt
malwoverview -x 9 -X /home/remnux/malware/samples/
# Pull hashes, IPs, URLs, domains, emails and CVEs out of a report
malwoverview --extract-iocs /home/remnux/malware/report.txt
malwoverview --extract-iocs /home/remnux/malware/report.pdf
malwoverview --extract-iocs https://example.com/threat-report.html
# Scan samples with YARA rules
malwoverview --yara /home/remnux/rules/malware.yar --yara-target /home/remnux/malware/samples/
# Provider taken from the [LLM] section of .malwapi.conf
malwoverview -v 8 -V <hash> --enrich
# Override it per run: claude, gemini, openai or ollama
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm gemini
malwoverview -v 8 -V <hash> --output-format json
malwoverview -ip 1 -IP 8.8.8.8 --output-format csv
malwoverview -v 12 -V <hash> --attack-map
malwoverview -v 8 -V <hash> --report html --report-file /home/remnux/report.html
malwoverview -v 8 -V <hash> --report pdf --report-file /home/remnux/report.pdf
malwoverview -v 8 -V <hash> --no-cache
malwoverview -v 8 -V <hash> --cache-ttl 86400
malwoverview -ip 3 -IP 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview -v 8 -V <hash> --quiet
malwoverview -v 8 -V <hash> --verbose
malwoverview --interactive
malwoverview --tui
# 8.0.1: these take a file path again, not only a hash
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
malwoverview -a 1 -A /home/remnux/malware/suspicious.exe
malwoverview -l 1 -L ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# 8.0.2: batch IP check against VirusTotal, Premium then Public API
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt -D 1
# 8.0.2: Android scans work on current devices again, hashing with SHA256
malwoverview -y 1
malwoverview -y 2
# 8.0.3 and 8.0.4: Claude enrichment works again and is rendered with colour
malwoverview -v 8 -V <hash> --enrich --llm claude
# 8.0.5: overlay and entropy in the directory check and the hash report
malwoverview -d /home/remnux/malware/samples/
malwoverview -v 8 -V <hash>
版本 8.1.0:
此版本新增 YARA 狩猎与本地 PE 分类功能,修复了名不副实的
选项,并包含一组安全修复。
注意:两个选项的编号发生了变化。五个 Hybrid Analysis 下载选项
(-a 11 至 -a 15)现在合并为单个选项 -a 11。批量哈希检查移至
-a 12(原为 -a 16),目录扫描移至 -a 13(原为 -a 17)。
其他编号均未改变。
新选项
* --sigcheck:对文件或目录进行 Authenticode 签名检查,无需
API 密钥,也不发起网络请求。报告 VALID、TAMPERED、
UNTRUSTED、EXPIRED、MALFORMED、INVALID、NONE 或 N/A,并附有
签名者、颁发者和证书日期。会列出每个嵌入式签名及其各自的
摘要算法、指纹和序列号。验证需要
pip install malwoverview[signature];未安装时状态为
PRESENT 或 NONE。
* --sig-verify-mode any|first|all|best:由哪个签名决定多签名
文件的状态,默认值为 best。
* --no-signature:在大型目录上跳过签名验证。
* --peinfo 和 --entropy-threshold:对文件或目录进行本地 PE
分类,列出文件类型、大小、覆盖数据、覆盖数据大小、熵和
签名状态,并高亮达到或超过阈值(默认 7.0)的文件。支持
递归,无需 API 密钥。
* -ct 1|2 和 -CT:通过 crt.sh 查询证书透明度,无需 API
密钥。-ct 1 列出为某个域名签发的证书中出现的 DNS 名称,
-ct 2 列出证书本身。
* -v 14 至 -v 20:VirusTotal Retrohunt 和 Livehunt。提交任务、
列出任务、跟踪任务、列出匹配文件、创建规则集、列出规则集和
列出通知。需要高级密钥。
* -b 13、-b 14 和 -b 15:按 YARA 规则名称搜索 Malware Bazaar,
以及下载并解压 YARAify 规则集。
* -m 9:下载指定 TLP 级别的 Malpedia YARA 规则集。
* -l 8:列出通过 -L 指定的 MalShare 文件类型的哈希。
* -j 8:URLHaus 批量哈希检查,此前没有任何选项能够访问它。
* --cache-stats、--prune-cache 和 --clear-cache。
* --no-resolve:不解析 -j 2 和 -j 3 显示的主机名,也不对其
进行地理定位。
* --defang:将 --extract-iocs 列出的 IOC 以
hxxp://example[.]com 的形式输出。仅影响输出。
* --no-ioc-filter:关闭 --extract-iocs 的噪音过滤,并在原始
来源中报告每一个正则匹配。
* --yara 现在接受包含规则的目录,每个文件在自己的命名空间
中编译。编译失败的文件会被报告并跳过。
已修复的选项
* -m 1 之前调用与 -m 5 相同的端点。现在它会获取家族元信息,
并接受通过 -M 传入的可选过滤器。
* -l 6 之前标记为 "Composite(OLE)" 并列出 PDF 样本。现在它会
列出最近 24 小时内出现的文件类型及数量。
* -ip 3 和 -ip 7 之前产生相同的输出。-ip 3 现在只查询
VirusTotal 和 AlienVault;-ip 7 查询所有其余服务,包括
IPInfo。
* -l 1 之前会为每个样本写入一个零字节文件并报告成功。现在
会跟随重定向,并拒绝空响应体。
* -a 6 至 -a 10 和 -y 4 之前总是以 "Requested URI - Not
Found" 失败。Hybrid Analysis 请求不再经过 www 主机,
该主机的重定向此前会丢弃上传。
* -b 14 之前返回 HTTP 301。现在使用 abuse.ch Auth-Key
从有效地址获取规则集。
* -v 20 现在从 hunting_notification_files 端点读取 Livehunt
通知,该端点带有 sha256。
* -b 6、-m 4 以及其他需要参数的选项现在必须提供参数。此前有
八个选项在省略参数时会以原始 TypeError 停止。
* -A 现在接受原生 Windows 路径(-a 1 至 -a 5),此前会被
拒绝并提示 "Input contains invalid characters"。
* --report html、--report pdf 和 --enrich 现在可用于
--correlate-hash、--extract-iocs 和 --yara,此前这些选项
不会生成报告。
* Malpedia 样本和规则下载不再在报告及 json/csv 导出之前
提前结束程序。
* 现在使用每个参数经过验证之后的形式。此前以
hxxp://example[.]com 形式书写的 URL 会被原样去毒后发送给
服务,而 ~/samples 之类的路径则不会被展开。
* -ip 2(BGPView)已被移除:其域名不再解析。该编号予以保留,
并报告移除情况,同时指向 -ip 1 和 -ip 7。其他 -ip 编号
均未改变。
* --defang 的文档说明其仅适用于 --extract-iocs,这是唯一
读取该选项的选项。
新行为
* -y 1、-y 2 和 -y 3 现在对软件包中的每个 APK 进行哈希计算,
而不仅仅是基础 APK。在测试设备上,一次扫描从 35 个 APK
增加到 79 个。-y 4 和 -y 5 会在所选软件包为拆分 APK 时
报告。
* -b 1 现在列出与样本匹配的 YARA 规则,因此可以将规则名称
传给 -b 13。
* -v 1 和 -v 8 现在显示 VirusTotal 原本就会返回的签名块:
是否验证通过、签名者与副署者链、签名日期,以及每个证书的
状态、算法、日期、序列号和指纹。
* --sigcheck 和 --peinfo 会在报告以及 json 和 csv 中报告
证书指纹、序列号和摘要算法。
* --extract-iocs 不再报告网页自身的代码。在某厂商博客上,
它曾返回 855 个 IOC,其中 743 个是由压缩后的 JavaScript
产生的"域名"。现在会跳过 script、style、svg 和 noscript
块,只有在域名的最后一个标签是真实顶级域名时才报告该域名,
并丢弃指回来源站点和页面固定元素的链接:855 个 IOC 变为
16 个,同时保留所有样本哈希和命令与控制 URL。被抑制的
内容会计数并报告。代码托管、粘贴和消息服务永远不会被抑制。* --extract-iocs 在获取失败时会指出主机及失败类型,而不是打印原始 urllib3 异常。
* GreyNoise Community 的 404 现在按实际情况报告:该地址不是互联网扫描器,而不是报告为错误。
* 网络故障不再以 Python 回溯的形式呈现在用户面前。43 个 try 块只捕获了 ValueError,因此连接错误会逃逸而未被捕获。报告的主机取自解析后的 URL,绝不取自异常文本。
* TLS 失败得到解释:完成握手后关闭、证书验证失败、端口无 TLS 响应以及握手被拒绝,各自单独一行说明。异常文本会被读取但从不打印。
* crt.sh 采用耐心的重试策略(5 次重试,2 秒退避),因为它会在相隔数秒内对同一 URL 返回 200、404 或 502。其他所有服务保持原有策略。
* HTTP 429 现在最多重试三次,同时尊重两种形式的 Retry-After,且绝不等待超过 300 秒。样本上传不重试。
* 熵计算按块读取文件,而不是一次性载入整个文件。报告的值不变。
* YARA 扫描器在编译规则时不再改变进程的工作目录。
* --attack-map 的匹配是精确匹配,而非子串搜索;子串搜索曾把不相关的技术计入(空标签匹配了全部 691 项)。该功能已扩展到 Hybrid Analysis 报告和 --correlate-hash。
* --enrich 现在接收收集到的记录,而不是从终端抓取的文本,并且现在可与 --output-format json 和 csv 配合使用,此前会被静默忽略。
* 每个选项现在都会为 --output-format json 和 csv 生成记录。此前只有三分之一能做到。
* MalShare 结果包含在 json 和 csv 中。
* [INQUEST] 和 [VIRUSEXCHANGE] 部分已从 .malwapi.conf 及其对应代码中移除。
* 最低 Python 版本为 3.10,分类器声明支持 3.10 至 3.13。
交互与图形模式
* --interactive 新增了原本仅命令行可用的全部命令:VirusTotal 报告、上传、行为报告、批量检查、Retrohunt 和 Livehunt;Malware Bazaar 的 imphash、下载、批量、目录、YARA 规则搜索和 YARAify 规则集;URLHaus 的载荷下载、签名搜索、载荷列表、批量检查和订阅源;Triage 的提交、下载、动态报告、批量和目录检查;Malpedia 的家族元数据、载荷列表和规则集;MalShare 的文件类型列表;Hybrid Analysis 的提交、批量和目录检查;ThreatFox 的家族列表;IP 批量与多服务查询;以及 crtsh、android、yara、iocs 和 cache。ATT&CK 通过 "set attack on|off" 切换。
* --tui 重新构建于命令行所用的模块代码之上,而不是各服务调用的独立副本:3013 行缩减为 818 行,服务列表从 37 项增加到 111 项。结果可用 F5(json)和 F6(csv)导出,此前完全不支持导出。
* --tui 的粘贴问题已修复。在点击进入查询框之前粘贴的哈希会被无提示丢弃,因为只有聚焦的控件能收到粘贴事件,而仪表盘启动时焦点在服务列表上。现在整个窗口都会捕获粘贴。
* --tui 新增 Ctrl+V 和 Shift+Insert,对于从不发送粘贴事件的终端,可直接读取剪贴板。无需第三方软件包。
* --tui 的按键列表在结果窗格每次被清除时都会重写,并根据按键绑定本身构建。按键栏保留 Quit(Ctrl+Q)和 Paste,当查询框聚焦时显示,且标签不再重复按键本身。
报告
* --peinfo 和 --sigcheck 根据被扫描的文件来调整列宽,绝不缩短文件名(通常为 SHA256)。Type 和 Signer 保持上限;被截短的值只在屏幕上缩短显示。
* 每个表格列都按终端单元格而非字符来度量,因此中文/日文/韩文证书主题或文件名不再把列挤出对齐。截断在字符边界处停止。
* 表格的横线现在等于各列之和,列标题和横线为中性色,空单元格显示 n/a,结束计数以 "[+] " 开头。应用于 -j 8、-a 12、-a 13、-b 11、-b 12、-b 13、-x 8、-x 9、-l 6、-s 2、-u 3、--yara、--peinfo 和 --sigcheck,此前这些横线与列相差最多 51 个字符。
* 同样的处理已在其余所有报告中完成。不再有任何横线写死为固定数字:每条横线都取自命名宽度或其所处的表头,因此标题、横线和列不会再相互不一致。19 个文件中的 88 条横线,覆盖工具查询的每一个服务。
* 38 个报告标题带有 28 个尾部空格,使标题行超出其下方的横线。在屏幕上不可见,但一旦输出被管道、重定向或复制就会显现。
* -b 6 至 -b 10:长值会按报告宽度换行。参考 URL 或以逗号连接的可选列表曾最多撑到 137 列,而横线为 100 列;在一次 -b 6 运行中,5936 行里有 52 行如此。
* -j 2 至 -j 7:每个报告都按实际打印列数取一个宽度,取代了此前使用的六个不同数字(100、104、126、130、136 和 146)。-j 2 还会根据响应调整 URL 列宽度,并且不再重复打印表头。
* -l 1 和 -l 8 是表格。表头在 126 的横线下宣告三列居中于 75、38 和 8,而其下方的行打印的是 "sha256: ... md5: ... type: ...",因此表头没有对齐任何内容。MalShare 错误不再打印在承诺结果却始终不出现的表头下方。
* -ct 1 和 -ct 2:报告表头按其引入的表格宽度绘制,状态、错误和计数行以项目符号提示的形式换行适应,而不是超出宽度。
* -a 12 和 -a 13:Hybrid Analysis 从未见过的哈希曾产生空白行,现在显示 not found,与"unknown"判定区分开。HTTP 失败会如实报告。-a 13 不再把每个文件名截为 40 个字符。
* -j 8:Status 列曾显示原始应答,因此命中时显示 "ok"。现在显示 found、not found、invalid hash 或 bad request。哈希列跟随文件中的哈希顺序。
* -x 8 和 -x 9:文件名和标签曾被简单切片截断,现在以省略号截断,分数按值着色。
* -b 11 和 -b 12:Signature 列为 17 列宽,未知样本显示 n/a,而不是留下空白。
* -s 2 是一个表格,而不是每个主机四行带标签的输出(一次查询上百个块)。列为 IP、Port、Country、Product、Vulns 和 Organization。原始横幅被 Product 取代,即 Shodan 从横幅或 Server 头解析出的内容;完整横幅仍会进入 json 和 csv。Vulns 是 Shodan 列出针对该主机的 CVE 数量。
* -u 3:Score 列曾始终为零,因为搜索端点根本不返回判定,而代码默认了该值;json 和 csv 记录中每次钓鱼查询的结果都带有 "malicious": "False"。这两个字段都已移除,替换为 Age(d),即域名的年龄(天),按值着色。单元格以省略号截断而不是切片,IP 列不再把 IPv6 地址拦腰截断。
* -u 2:判定、评分、分类、标签和品牌会被高亮,而不是像 MIME 类型那样绘制;值会换行而不是超出屏幕;证书日期以 UTC 显示,而不是原始 epoch 秒。页面标题不再截断为 80 个字符。
* -u 1:结尾注释以 "[+] " 为前缀,以建议而非另一个字段的形式绘制,并带有刚提交扫描的 UUID,以便复制检索命令。
* --correlate-hash、-wh 1 和 -wh 2 会换行显示,续行与首行对齐。WHOIS 状态曾达到 187 列,而横线为 100 列;一个脉冲集的 ATT&CK ID 曾达到 200 列。SHA512 会跨行断开;记录中每个值仍保持在一行。
* --yara 不再打印每个文件的编译器错误,这些错误属于规则集而非样本,并曾把报告挤出屏幕。计数保留在摘要中,细节可用 --verbose 查看。File 和 Rule 列按其内容调整宽度,因为截断任何一列都会破坏回到样本或规则的链接。
* -v 1 和 -v 8 的证书块在 120 列处换行。状态以每问题一句、逗号连接的形式显示,曾在一行达到 233 个字符。
* --enrich 输出按其上方的横线宽度换行,续行在列表标记下缩进。json 和 csv 记录保留未换行的应答。
* -y 1 在表格末尾而不是表格上方报告其 APK 清单,以 "[+] " 为前缀并使用中性色。行由每包一个线程打印,这些线程在 Windows 之外从未被 join,因此该行现在在它们之后打印。-y 2 和 -y 3 同样处理。
* -ip 3 和 -ip 7:两条交叉引用注释以 "[+] " 为前缀,此前读起来像是其上方数据的一部分。
* 被跳过的 YARA 规则文件现在会报告原因。此前路径占满整行,原因被截断。
* --correlate-hash、--extract-iocs 和 --yara 的 json 和 csv 输出不再以空行开头。
* 报告不再与 json 或 csv 一起打印到标准输出,这曾使结果无法解析;29 个函数不再在导出前结束程序。当命令不产生任何记录时,文本写入标准错误,因此失败可与空结果区分开。
* Windows 上写入标准输出的 csv 不再每行后跟一个空行,json 和 csv 都以 UTF-8 写入,而不是控制台编码。
* 交互模式下 "export csv" 写入的 csv 在 Windows 上不再每行以两个回车符结尾。
* 包含控制台无法表示字符的证书不再以 UnicodeEncodeError 结束运行。
* PolySwarm 家族搜索中的无效转义序列不再发出 SyntaxWarning。
* 截断或损坏的 ATT&CK 缓存不再以 "Error while connecting to Virus Total!" 崩溃。它会被检测、重新下载并以原子方式写入。
* Hybrid Analysis 提交被拒绝时不再以 KeyError 停止;会打印服务给出的原因。
* 43 个围绕请求的处理器只捕获了 ValueError,因此网络故障仍可能以 Python 回溯的形式到达用户。现在它们也捕获请求错误,并指明服务和主机。消息从不包含异常文本,因为 MalShare 和 Shodan 在 URL 中带有 API 密钥。
* URLHaus 中这些处理器有七个不可达:其上方一个更宽泛的处理器先捕获了故障,什么都不打印就退出。对不可达服务执行 -j 7 曾打印表头、横线,然后什么都没有,读起来就像一个什么都没找到的搜索。
* --defang 现在也会对 IOC 提取报告的 Source 行进行 defang,因此整个报告可以安全地粘贴到某处。本地文件路径保持不变,导出记录在两种情况下都保留真实值。
* 此文件中的 SUBCOMMANDS 列表曾是 "ip bgp"(已在本版本移除),遗漏了 "ip batch" 和 "urlhaus batch",并列出过从未存在的 urlscanio 子命令。URLScan.io 可通过 -u 访问。
颜色
* 在浅色背景上不再使用青色或浅蓝色,只使用蓝色。在深色背景上两者仍在使用。这涉及 16 个文件中的 298 处,包括共享的 info() 颜色。
* 对整个软件包的审计发现另外 26 处违反规则的地方,有些在背景测试内部,有些为两种背景只着色一次。深色背景上的绿色现在是浅绿色。
* 中性色在 Windows 深色背景上从未被应用:它以扩展 256 色转义写入,而 colorama 使用的转换器只理解基本代码,因此会被丢弃,之前的颜色继续生效。每条表格横线、列标题和项目符号提示都受到影响。
* -x 8 和 -x 9:Tags 列在深色背景上为浅蓝色,浅色背景上为蓝色。此前它与旁边的 Hash 列色调相同。
* -b 1:字段标签在深色背景上为浅青色,浅色背景上为蓝色,与其他报告一致;此前浅色背景使用绿色。
* -j 8:哈希列在深色背景上为浅紫色,浅色背景上为蓝色。状态列为灰色,直到有内容可报告。
* -ab 1:字段标签在深色背景上为浅蓝色,浅色背景上为蓝色。
* -y 1:Package 列在深色背景上为浅蓝色。
* -y 2 和 -y 3:Hash 列在深色背景上为粉色,浅色背景上为紫色。
* -s 2:Product 列在深色背景上为浅蓝色,浅色背景上为青色。
以下变更属于安全修复。它们均不改变任何命令语法。
* 修复来自服务响应的终端转义序列注入(HIGH)。打印到终端的攻击者可控字段(VirusTotal 行为数据和样本名称,Malware Bazaar 和 URLHaus 的文件名、签名和标签,AlienVault OTX 脉冲名称和描述,ThreatFox 和 Hybrid Analysis 字段)能够移动光标并覆盖已打印的判定、设置窗口标题、写入剪贴板或清屏。现在每个 JSON 响应在解析后立即被清理。
* 修复图形模式中相同的转义序列注入(HIGH)。--tui 曾自行在十六处解析服务响应,没有一处经过清理。现在它不再解析任何响应。
* 修复来自命令行和输入文件的终端转义序列注入(MEDIUM)。-B、-X、-TR、-S、-M、-L、-NIST 及其他自由文本参数接受 ESC、8 位 CSI 和退格,验证器在将拒绝的值回显到终端前未先清理。这只影响 Linux 和 macOS。
* 修复来自另外三个来源的终端转义序列注入(MEDIUM):--extract-iocs 提取的值(其 URL 模式排除了空白,但未排除其他控制字符);WHOIS 字段(由注册商和注册人书写的纯文本到达);以及从 USB 连接的 Android 设备读取的 sha256,现在会对照 64 个十六进制字符的允许列表进行检查。
* 修复 --extract-iocs 中的拒绝服务(MEDIUM)。HTML 处理曾使用惰性正则表达式移除 script、style、svg 和注释块,当开始标签从未闭合时复杂度为二次方:400 KB 中 50,000 个未闭合 script 标签耗时 158 秒,而该选项从 URL 读取最多 10 MB。现在这些块由单次正向扫描移除。
* 修复 IOC 提取中可能的拒绝服务(LOW/MEDIUM):域名和电子邮件正则表达式在构造的文档上可能耗时极长。现在文本在匹配前被拆分为有界令牌,提取的 IOC 不变。
* 修复导出报告中的 CSV 公式注入(MEDIUM)。以 "="、"+"、"-"、"@" 或制表符开头的值会被 Excel 和 LibreOffice 当作公式执行。现在它们以单引号为前缀,并移除内嵌换行。
* 修复导出报告表头行中的 CSV 公式注入(LOW)。列名取自服务响应,写入时没有上述保护。
* 修复交互和图形模式下通过错误消息到达终端的转义序列(LOW)。两者都打印了未处理异常的文本而未清理。
* 修复 --extract-iocs 中的 DNS 重绑定(MEDIUM)。经过验证的地址现在是实际连接的地址,而主机名保留在 Host 头和 TLS SNI 中。无法解析的主机名会被拒绝。通过代理发出的请求不固定地址。
* 修复使用 IPv4 映射 IPv6 地址(如 ::ffff:127.0.0.1)绕过私网地址保护的问题(MEDIUM)。组播和未指定地址现在也被拒绝。* 修复了错误消息中 API 密钥泄露的问题(中危)。
Malshare 和 Shodan 的密钥现在会被替换为 [REDACTED],并且
Malshare 连接错误会被处理,而不再抛出异常。
* 为所有未自行设置超时的 HTTP 请求添加默认超时:连接 15 秒、
读取 180 秒(中危)。
* 不再将样本的完整本地路径发送给 VirusTotal(低/中危)。
使用 -v 9 时仅发送文件名。
* 在 Android 扫描期间拒绝包含 ".." 的 APK 路径(低危)。
* 对 Triage 提交中使用的文件名进行净化处理(低危)。
* 从 LLM 富化输出中移除所有转义序列,而不再仅限于颜色相关的
转义序列(低危)。
* 当 .malwapi.conf 可被其他用户读取时发出警告,并建议执行
"chmod 600"(Linux 和 macOS)。
Version 8.0.5:
This version:
* 为 VirusTotal 选项新增 overlay 与熵值报告:目录检查(-d)新增
"Overlay" 列(YES/NO,非 PE 文件显示 N/A)和 "Ent" 列
(0.00 至 8.00);文件报告(-v 1/2/3)新增 overlay、其 KB/MB
大小及熵值;哈希报告(-v 8)新增从 VirusTotal 的 pe_info 数据中
获取的 overlay 和大小,无需下载样本。熵值为该 PE 各节区熵值中的
最高值,是识别加壳或加密节区的最佳信号;对于非 PE 文件,则回退为
整个文件的香农熵。"AV Detection" 已更名为 "AV",并且 -d 表格
已重新对齐。
Version 8.0.4:
This version:
* 以彩色方式渲染 LLM 富化报告,而不是原始的 Markdown:标题和
**粗体** 关键词会被高亮显示,并移除标记符号。在深色背景上,
正文使用接近白色的色调,而标题保留其蓝色/紫色/青色强调色。
CLI、REPL 和 TUI 共用该渲染器,提示词会要求模型输出此结构,
以保持一致性。
Version 8.0.3:
This version:
* 修复了 Claude(Anthropic)LLM 富化功能——由于模型名称被硬编码
为一个已退役的模型,每次调用都会失败。现在该名称由 .malwapi.conf
的 [LLM] 部分中的 CLAUDE_MODEL 设置,与 GEMINI_MODEL /
OPENAI_MODEL / OLLAMA_MODEL 并列,默认值为 claude-opus-4-8。
Claude 现在也是默认提供商,该修复覆盖 CLI、REPL 和 TUI。
Version 8.0.2:
This version:
* 新增针对 VirusTotal 的批量 IP 检查(-ip 8 / "ip batch"),
从文件中逐行读取 IP 地址,并打印 IP 地址、国家/地区、AS 所有者
及检测率。使用 -D 1 调用 Public API(每检查 4 个 IP 会休眠
61 秒以遵守速率限制),或使用 -D 0 调用 Premium(默认)。
* 修复了在当前的 Android 版本上已失效的 Android 设备扫描选项
(-y 1、-y 2 和 -y 3)。包列表现在能识别现代 /data/app 目录
布局(Android 10+ 引入的 '~~' 前缀和 '==' 分段)以及 adb 的
CRLF 输出,因此这些选项也能在 Windows 上工作。设备端哈希计算
改用 sha256sum 而非 md5sum;当 adb 不在 PATH 中或未找到第三方
软件包时,会打印清晰的提示信息。
* 修复了 --extract-iocs <url> 中的两个 SSRF 绕过。第一个
(issue #96)使用 urlparse() 进行验证,而 requests 对 URL 的
规范化方式不同,因此 http://127.0.0.1:6666\@1.1.1.1 能通过
公共主机名检查并仍可访问内部地址;现在验证器会拒绝反斜杠、空白
字符和控制字符,并验证取自 requests.PreparedRequest 的有效 URL。
第二个问题是在检查通过后自动跟随重定向,使公共 URL 能够访问内部
或云元数据地址(如 169.254.169.254);现在每一步跳转都会针对
私有/保留地址白名单重新验证,并设有重定向限制。
* 强化了 Android 发送选项(-y 4 和 -y 5),以防范来自恶意或被
入侵设备的路径遍历攻击:adb 报告的包名被限制为合法的 Android
包字符,输出文件名被缩减为其基本名称,因此精心构造的包列表无法
在输出目录之外写入文件。
Version 8.0.1:
This version:
* 修复了一个回归问题:-v 1、-v 2、-v 3、-v 4(VirusTotal 文件
提交选项)和 -v 10、-v 11(VirusTotal 批量哈希检查)之前被
错误地当作哈希而非文件路径进行验证。现在这些选项与 7.1.2 中
一样接受文件名。
* 修复了一个回归问题:-a 1 至 -a 5(Hybrid Analysis 哈希/文件
自动检测选项)之前仅被当作哈希进行验证。新增
sanitize_hash_or_path 以接受两者。
* 修复了一个回归问题:-a 6 至 -a 10(Hybrid Analysis 文件上传
选项)以及 -a 16、-a 17(批量/目录检查)之前被同时当作哈希和
路径进行双重验证,导致失败。
* 为 Polyswarm(-p 1 至 -p 8)和 Malshare(-l 1 配合
-L <hash>)补充缺失的 CLI 输入验证。
Version 8.0:
This version:
* 引入由 LLM 驱动的威胁富化功能(--enrich),支持 Anthropic
Claude、Google Gemini、OpenAI 和本地 Ollama。为任何查询结果
提供 AI 生成的风险评估、MITRE ATT&CK 映射和安全分析师的建议。
* 引入 URLScan.io 集成,用于 URL 扫描、结果获取和搜索查询
(-u 选项)。
* 引入 Shodan 集成,用于 IP 查询和搜索查询(-s 选项和 -ip 4)。
* 引入 AbuseIPDB 集成,用于 IP 信誉检查(-ab 选项和 -ip 5)。
* 引入 GreyNoise 集成,用于 IP 分类(-gn 选项和 -ip 6)。
* 引入针对域名和 IP 的 Whois/RDAP 查询(-wh 选项)。
* 引入跨服务哈希关联功能,涵盖 VirusTotal、Hybrid Analysis、
Triage 和 AlienVault(--correlate-hash)。
* 为 Malware Bazaar(-b 11)、Hybrid Analysis(-a 16)和
Triage(-x 8)引入批量哈希检查。
* 为 Malware Bazaar(-b 12)、Hybrid Analysis(-a 17)和
Triage(-x 9)引入目录扫描。
* 引入跨所有服务的全面 IP 查询(-ip 7)。
* 引入从文本文件、PDF、电子邮件和 URL 中提取 IOC 的功能
(--extract-iocs)。
* 引入 YARA 规则扫描,支持容错编译和表格化目录输出(--yara /
--yara-target)。
* 引入交互式 REPL 模式(--interactive)。
* 引入 JSON 和 CSV 结构化输出(--output-format)。
* 引入可配置 TTL 的结果缓存(--no-cache、--cache-ttl)。
* 引入 HTTP/HTTPS/SOCKS5 代理支持(--proxy)。
* 引入 MITRE ATT&CK 技术映射(--attack-map)。
* 引入安静模式和详细模式(--quiet、--verbose)。
* 引入 HTML/PDF 报告生成功能(--report)。
* 新增集中式会话工厂,为所有 API 请求提供自动重试逻辑和速率
限制处理。
* 为批量操作新增进度条(tqdm)。
* 启动时新增对必需 API 密钥的配置验证。
* 新增哈希类型(MD5/SHA1/SHA256)自动检测。
* 引入 TUI 仪表盘模式(--tui),使用 Textual 库实现基于面板的
导航(可选依赖)。
* 安全加固:SSRF 防护、URL 参数编码、强制 HTTPS、速率限制上限、
安全临时文件。
Version 7.1.2:
This version:
* 修复资源泄漏——文件句柄(5 处):hash.py(sha256hash、
md5hash)、hybrid.py(文件上传)、virustotal.py(2 处)和
triage.py(文件上传)中的文件在未使用上下文管理器的情况下打开。
* 修复 alienvault.py 中的 URL 注入/SSRF 漏洞(3 处):域名、
文件和 URL 指标的用户输入未进行 URL 编码。
* 修复 malpedia.py 中的 URL 注入/SSRF 漏洞(4 处):针对
actor、family、sample 和 yara 端点的用户输入未进行 URL 编码。
* 改进 bgpview.py 中的 IP 验证——新增 ipaddress.ip_address()
验证以防止注入攻击。
* 修复裸 except 子句(3 处):bgpview.py、vulncheck.py、nist.py
现在使用 except Exception:,以避免捕获 KeyboardInterrupt 和
SystemExit。
Version 7.1.1:
This version:
* 修复路径遍历漏洞(9 处):malpedia.py 中用户可控的文件名未
进行净化处理。
* 修复 triage.py 中的 URL 注入/SSRF 漏洞:用户输入未经编码直接
插入 URL。
* 修复 triage.py 中不完整的 URL 编码:对所有 4 个端点
(overview、sample、pcap、report)应用 quote(),而不仅仅是
search。
* 修复 ipinfo.py 中的 URL 注入/SSRF 漏洞:IP 地址参数未经验证,
API 令牌已移至 Authorization 请求头中。
* 改进 ipinfo.py 中的 IP 验证:用标准库 ipaddress.ip_address()
替换宽松的正则表达式,以进行正确验证。
* 修复 android.py 中的子进程注入漏洞:未净化的路径被传递给了
ADB shell 命令。
* 强化 Android 路径验证:用安全的白名单(仅允许
/a-zA-Z0-9._-)替换不完整的元字符黑名单。
* 修复资源泄漏——文件句柄(9 处):malpedia.py 中的文件在未使用
上下文管理器的情况下打开。
* 修复不安全的 HTTP 重定向(4 处):allow_redirects=True 允许
重定向到攻击者控制的 URL。
* 修复无限制的响应大小(4 处):下载的文件没有大小限制,现已
添加 500MB 限制。
* 优化下载性能(4 处):使用 bytearray 而非 bytes 拼接,以避免
O(n²) 复杂度。
* 修复 ipinfo.py 中缺失的超时设置:HTTP 请求原本没有超时。
* 修复 CLI 验证错误——原本接受仅含参数(无命令)的调用。
* 修复 Polyswarm 崩溃问题:得分查询失败时抛出 NameError。
* 修复 IPInfo 错误处理:返回的错误结构不正确。
Version 7.1:
This version:
* 引入在 Vulncheck 上列出和搜索漏洞的选项。
Version 7.0:
This version:
* 引入在 NIST 上搜索漏洞的选项。
* 修复多个 URLHaus 选项。
* 移除 InQuest 和 Virus Exchange 选项。
* 修复并调整了多个小问题。
* 修复 Python requirements 文件。
* 修复 setup.py 文件。
Version 6.2:
This version:
* 修改 Malware Bazaar 选项以使用 Auth-Key。
* 修改 Threat Fox 选项以使用 Auth-Key。
Version 6.1.1:
This version:
* 修改代码,不再要求在首次使用时注册所有 API。
* 在 README(本文件)中新增一个关于必需 API 的部分。
Version 6.1.0:
This version:
* 为 Virus Exchange 引入 -vx 选项。
* 为 IPInfo 和 BGPView 引入 -ip 选项。
* 引入 -O 选项,用于将样本保存到集中目录中。
* 修复多个其他问题。
Version 6.0.1:
This version:
* 已修复 Malshare 下载选项中的问题。
Version 6.0.0:
This version:
* 该版本已完全重构。
* README.md 也已更改。
* 特别感谢 Artur Marzano,他贡献并投入了自己的时间
来编写和完成这个新版本。
Version 5.4.5:
This version:
* 包含一项与安装路径相关的修复。
Version 5.4.4:
This version:
* 仅包含 README.md 中的一些小改动和更新。
Version 5.4.3:
This version:
* 修复了 -v 10 和 11 选项(VT)最近出现的问题,原因是
所用的某个库发生变更。








