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

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

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

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

工具目录

分类

查看所有分类
Loading categories
machinae — 自动安全情报收集器,查询公共源和API以获取IP、域名、URL、哈希和SSL指纹的威胁数据,支持YAML配置和JSON输出。 | Kitploit
工具/GitHubGitHub/hurricanelabs/machinae
OSINT (开源情报)威胁源与聚合器信息收集威胁情报
GitHubhurricanelabs/machinae

machinae

自动安全情报收集器,查询公共源和API以获取IP、域名、URL、哈希和SSL指纹的威胁数据,支持YAML配置和JSON输出。

查看仓库
53610183个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Build Status CII Best Practices Quality Gate Status

Machinae Logo

Machinae 安全情报收集器

Machinae 是一款用于从公共站点/订阅源收集关于各类安全相关数据(IP 地址、域名、URL、电子邮件地址、文件哈希和 SSL 指纹)情报的工具。它受另一款优秀的信息收集工具 Automater 启发。Machinae 项目源于希望在以下 4 个方面改进 Automater:

  1. 代码库 - 将 Automater 升级到 python3 兼容,同时让代码更 Pythonic
  2. 配置 - 使用更人类可读的配置格式 (YAML)
  3. 输入 - 默认支持 JSON 解析,无需编写正则表达式,同时在需要时仍支持正则抓取
  4. 输出 - 支持更多输出类型,包括 JSON,并使额外输出成为可选

安装

可以使用 pip3 安装 Machinae:

root@kitploit:~
pip3 install machinae

或者,如果您想尝试直接安装自 github:

root@kitploit:~
pip3 install git+https://github.com/HurricaneLabs/machinae.git

您的系统需要安装编译 Python 模块所需的各种依赖(在基于 Debian 的系统上为 python3-dev),以及 libyaml 开发包(在基于 Debian 的系统上为 libyaml-dev)。

您还需要获取最新的配置文件并将其放置于 /etc/machinae.yml。

配置文件

Machinae 支持一个简单的配置合并系统,允许您在不修改我们提供的 machinae.yml 的情况下对配置进行调整,使配置更新变得轻而易举。其原理是:首先读取系统范围的默认配置(默认为 /etc/machinae.yml),然后将系统范围的本地配置(/etc/machinae.local.yml)合并进去,最后再将用户级本地配置(~/.machinae.yml)合并进去。系统范围配置也可以位于当前工作目录中,或通过 MACHINAE_CONFIG 环境变量设置,当然也可以通过 -c 或 --config 命令行选项指定。如果希望禁用配置合并,可以传递 --nomerge 选项,此时 Machinae 只会加载默认的系统范围配置(或者命令行传入的配置)。

举例说明:假设您想启用默认被禁用的 Fortinet 分类站点。您可以修改 /etc/machinae.yml,但这些更改会被更新覆盖。相反,您可以将以下内容放入 /etc/machinae.local.yml 或 ~/.machinae.yml:

root@kitploit:~
fortinet_classify:
  default: true

或者,如果要禁用一个站点(例如 VirusTotal pDNS):

root@kitploit:~
vt_ip:
  default: false
vt_domain:
  default: false

使用

Machinae 的使用方式与 Automater 非常相似:

root@kitploit:~
usage: machinae [-h] [-c CONFIG] [--nomerge] [-d DELAY] [-f FILE] [-i INFILE] [-v]
            [-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
            [-s SITES] [-a AUTH] [-H HTTP_PROXY]
            [--dump-config | --detect-otype]
            ...
  • 关于 -c/--config 和 --nomerge 选项的详细信息请参见上文。

  • Machinae 支持 -d/--delay 选项,与 Automater 类似。不过 Machinae 默认使用 0。

  • Machinae 的输出由两个参数控制:

    • -o 控制输出格式,后跟单个字符表示所需的输出类型:
      • N 是默认输出(“正常”)
      • D 是默认输出,但点字符(.)被替换
      • J 是 JSON 输出
    • -f/--file 指定输出写入的文件。默认为 "-",代表标准输出。
  • Machinae 将尝试自动检测传入目标的类型(Machinae 将目标称为“可观测对象”,类型称为“otype”)。可以通过 -O/--otype 选项覆盖此检测。可选值已在用法中列出。

  • 默认情况下,Machinae 以冗长模式运行。在此模式下,它会在控制台上输出正在查询的服务的状态信息(查询过程中)。无论输出设置如何,此输出始终写入标准输出。要禁用冗长模式,请使用 -q。

  • 默认情况下,Machinae 会遍历配置中所有适用于每个目标 otype 且未被标记为 "default: false" 的服务。要修改此行为,您可以:

    • 传递一个逗号分隔的站点列表(使用配置中的顶层键)。
    • 传递特殊关键字 all,以遍历所有服务,包括那些被标记为 "default: false" 的服务。

开箱即用的数据源

Machinae 默认支持以下数据源:

  • IPVoid
  • URLVoid
  • URL Unshortener (http://www.toolsvoid.com/unshorten-url)
  • Malc0de
  • SANS
  • FreeGeoIP (freegeoip.io)
  • Fortinet Category
  • VirusTotal pDNS(通过网络抓取 - 已注释)
  • VirusTotal pDNS(通过 JSON API)
  • VirusTotal URL 报告(通过 JSON API)
  • VirusTotal 文件报告(通过 JSON API)
  • Reputation Authority
  • ThreatExpert
  • VxVault
  • ProjectHoneypot
  • McAfee Threat Intelligence
  • StopForumSpam
  • Cymru MHR
  • ICSI Certificate Notary
  • TotalHash(默认禁用)
  • DomainTools Parsed Whois(需要 API 密钥)
  • DomainTools Reverse Whois(需要 API 密钥)
  • DomainTools Reputation
  • IP WHOIS(使用 RIR REST 接口)
  • Hacked IP
  • Metadefender Cloud(需要 API 密钥)
  • GreyNoise(需要 API 密钥)
  • IBM XForce(需要 API 密钥)

更多数据源即将推出。

HTTP 基本认证与配置

Machinae 通过 --auth/-a 标志支持需要 HTTP Basic Auth 的站点。您需要创建一个包含凭证的 YAML 文件,其中包含需要凭证的站点的键以及一个包含两项(用户名和密码或 API 密钥)的列表。例如,对于内置的 PassiveTotal 站点,可能如下所示:

root@kitploit:~
passivetotal: ['[email protected]', 'my_api_key']

在站点配置的 request 下,您会看到一个类似这样的键:

root@kitploit:~
json:
  request:
    url: '...'
    auth: passivetotal

auth: passivetotal 指向通过命令行传递的认证配置中的键。

默认禁用

以下站点默认禁用:

  • Fortinet Category (fortinet_classify)
  • Telize Geo IP (telize)
  • TotalHash (totalhash_ip)
  • DomainTools Parsed Whois (domaintools_parsed_whois)
  • DomainTools Reverse Whois (domaintools_reverse_whois)
  • DomainTools Reputation (domaintools_reputation)
  • PassiveTotal Passive DNS (passivetotal_pdns)
  • PassiveTotal Whois (passivetotal_whois)
  • PassiveTotal SSL Certificate History (passivetotal_sslcert)
  • PassiveTotal Host Attribute Components (passivetotal_components)
  • PassiveTotal Host Attribute Trackers (passivetotal_trackers)
  • MaxMind GeoIP2 Passive Insight (maxmind)

输出格式

Machinae 提供有限的输出格式:普通、带点转义的普通以及 JSON。我们计划在未来增加更多输出格式。

添加额外站点

*** 即将推出 ***

已知问题

  • IPvoid 上有些 ISP 包含双重编码的 HTML 实体,这些实体不会被双重解码

即将推出功能

  • 添加 IDS 规则搜索功能(VRT/ET)
  • 为站点添加“更多信息”链接
  • 添加解析器设置的“去重”选项
  • 添加按 otype 设置请求的选项
  • 为错误代码添加自定义按站点输出

版本历史

版本 1.4.9 (2020-11-25)

  • 修复 JSON 中 as_time 处理的一个错误:当时间为纪元时间但类型为 str 时的问题

版本 1.4.1 (2018-08-31)

  • 新特性
    • 自动去毒化输出
    • MISP 支持(machinae.yml 中添加了示例)

版本 1.4.0 (2016-04-20)

  • 新特性
    • 用于传递认证配置文件的 "-a"/"--auth" 选项
      • 感谢 johannestaas 提交
    • HTTP 代理的 "-H"/"--http-proxy" 选项及环境支持
  • 新站点
    • Passivetotal(多种形式,感谢 johannestaas)
    • MaxMind
    • FraudGuard
    • Shodan
  • 更新站点
    • FreeGeoIP(将 freegeoip.net 替换为 freegeoip.io)

版本 1.3.4 (2016-04-01)

  • 错误修复
    • 在输出到 JSON 时将异常转换为字符串
      • 应该真正关闭 #14

版本 1.3.3 (2016-03-28)

  • 错误修复
    • 在输出到 JSON 时正确处理错误结果
      • 关闭 #14
      • 感谢 Den1al 报告错误

版本 1.3.2 (2016-03-10)

  • 新特性
    • “短”输出模式 - 仅对每个站点输出是/否/错误
    • "-i"/"--infile" 选项用于传递包含目标列表的文件

版本 1.3.1 (2016-03-08)

  • 新特性
    • 当 URL 目标不以 http:// 或 https:// 开头时自动为其添加 "http://" 前缀

版本 1.3.0 (2016-03-07)

  • 新站点
    • Cymon.io - eSentire 提供的威胁情报聚合/追踪器
  • 新特性
    • 支持简单的分页响应
    • 支持在请求 URL 中对 'target' 进行 URL 编码
    • 支持对结果中的值进行 URL 解码

版本 1.2.0 (2016-02-16)

  • 新特性
    • 支持返回多个 JSON 文档的站点
    • 能够为相对时间参数指定时间格式
    • 能够解析结果中的 Unix 时间戳并以 ISO-8601 格式显示
    • 能够按 API 指定要忽略的状态码
  • 新站点
    • DNSDB - FarSight Security 被动 DNS 数据库(高级版)

版本 1.1.2 (2015-11-26)

  • 新站点
    • Telize(高级版)- GeoIP 站点(高级版)
    • Freegeoip - GeoIP 站点(免费版)
    • CIF - 来自 csirtgadgets.org 的 CIFv2 API 支持
  • 新特性
    • 能够为单行多匹配 JSON 输出指定标签
    • 能够使用 relatime 库指定相对时间参数

版本 1.0.1 (2015-10-13)

  • 修复了 Spamhaus 的一个误报错误(GitHub #10)

版本 1.0.0 (2015-07-02)

  • 初始发布

许可证信息

MIT 许可证 (MIT)

版权所有 (c) 2015 Hurricane Labs LLC

特此授予任何人免费获得本软件及相关文档文件(“软件”)副本的权利,不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件的副本,并允许获得本软件的人员在满足以下条件的情况下这样做:

上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。

本软件按“原样”提供,不提供任何形式的明示或暗示担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易引起的任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他行为。

下载工具

请注意,在这两种情况下,仍会应用 otype 验证。

  • Machinae 支持通过命令行使用 -H/--http-proxy 参数传递 HTTP 代理。如果未指定代理,machinae 将搜索标准的 HTTP_PROXY 和 HTTPS_PROXY 环境变量,以及不太标准的 http_proxy 和 https_proxy 环境变量。

  • 最后,应传递一个目标列表。除上述选项外的所有参数都将被解释为目标。

  • FraudGuard (fraudguard)
  • Shodan (shodan)
  • Hacked IP
  • Metadefender Cloud(需要 API 密钥)
  • GreyNoise(需要 API 密钥)
  • IBM XForce(需要 API 密钥)