Just-Metadata 是一款工具,可用于被动收集大量 IP 地址的智能信息,并尝试推断出原本可能不易察觉的关联关系。Just-Metadata 包含“收集”模块,用于从互联网上的多个资源中加载 IP 元数据。它还包含“分析”模块,用于分析加载到 Just-Metadata 中的数据,并执行各种操作以识别已加载系统之间的潜在关联。
Just-Metadata 允许你快速找出加载的 IP 地址所在的前“X”个州、城市、时区等。它允许你按国家搜索 IP 地址。你可以搜索所有 IP,找到哪些被 VirusTotal 识别为回调使用的 IP。想知道是否有已加载的 IP 被记录为参与了 Animus 项目发起的攻击?Just-Metadata 可以做到。
此外,创建新的分析模块也很容易,让人们可以根据已有数据找出 IP 之间的其他关联关系。新的情报收集模块同样可以轻松添加!
理想情况下,你可以运行安装脚本,它会安装所有必需的依赖项。
对于 Shodan 信息收集模块,你需要一个 Shodan API 密钥。这只需要 9 美元,拜托,这很值:)。
截至目前,Just-Metadata 被设计为读取一个包含 IP 地址的文本文件,每个 IP 单独一行。你可以从任何来源(如 C2 回调 IP、Web 服务器日志等)创建这个文件。有了这个文件后,通过以下命令启动 Just-Metadata:
./Just-Metadata.py
help - 进入框架后,输入“help”命令可查看可用命令列表及其功能描述。
load <filename> - load 命令需要额外参数,即你想让 Just-Metadata 从中加载 IP 地址的文件名。该命令会打开文件并将文件中的所有 IP 加载到框架中。
示例:load ipaddresses.txt
save - save 命令用于保存 Just-Metadata 的当前工作状态。这在多种情况下很有用,例如在收集完 IP 信息后,希望将状态保存到磁盘以便日后继续处理。只需输入“save”,Just-Metadata 就会将状态保存到磁盘,并显示保存状态的文件名。
import <statefile> - import 命令用于将之前保存的 Just-Metadata 状态加载到框架中。它会加载所有已保存的 IP 以及关于这些 IP 地址的所有已收集信息。该命令需要额外参数,即你想要 Just-Metadata 加载的状态文件名。
示例:import goodfile.state
list <module type> - list 命令用于列出加载到 Just-Metadata 中的不同类型模块。该命令需要额外参数,可以是“analysis”或“gather”。Just-Metadata 会显示用户请求类型的所有模块。
示例:list analysis
示例:list gather
gather <gather module name> - gather 命令告诉 Just-Metadata 运行指定的模块,并从该来源收集信息。可用于收集地理位置信息、VirusTotal、whois 等。这完全取决于模块。收集到的数据将存储在框架的内存中,也可以使用“save”命令保存到磁盘。
示例:gather geoinfo
示例:gather virustotal
analyze <analysis module name> - analyze 命令告诉 Just-Metadata 对框架中加载的数据运行分析模块。这些模块可用于查找共享相同 SSH 密钥或 SSL 公钥证书或证书链的 IP 地址。它们也可用于查找被恶意可执行文件用于相同回调的 IP 地址。
ip_info <IP Address> - 该命令用于转储有关特定 IP 地址的所有信息。目前常用于运行分析模块之后。例如,在识别出共享相同 SSH 密钥的 IP 地址后,我可以转储关于这些 IP 的所有信息。我将查看它们是否曾被恶意软件使用、位于何处等。
export - export 命令将使 Just-Metadata 将所有已收集的关于当前加载到框架中的所有 IP 地址的信息转储到 CSV 文件中。
感谢 Justin Warner (@sixdub) 在开发过程中提供初步反馈、设计思路和充当讨论对象!