
Machinae 是一款用于从公共站点/订阅源收集关于各类安全相关数据(IP 地址、域名、URL、电子邮件地址、文件哈希和 SSL 指纹)情报的工具。它受另一款优秀的信息收集工具 Automater 启发。Machinae 项目源于希望在以下 4 个方面改进 Automater:
可以使用 pip3 安装 Machinae:
pip3 install machinae
或者,如果您想尝试直接安装自 github:
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:
fortinet_classify:
default: true
或者,如果要禁用一个站点(例如 VirusTotal pDNS):
vt_ip:
default: false
vt_domain:
default: false
Machinae 的使用方式与 Automater 非常相似:
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 控制输出格式,后跟单个字符表示所需的输出类型:
-f/--file 指定输出写入的文件。默认为 "-",代表标准输出。Machinae 将尝试自动检测传入目标的类型(Machinae 将目标称为“可观测对象”,类型称为“otype”)。可以通过 -O/--otype 选项覆盖此检测。可选值已在用法中列出。
默认情况下,Machinae 以冗长模式运行。在此模式下,它会在控制台上输出正在查询的服务的状态信息(查询过程中)。无论输出设置如何,此输出始终写入标准输出。要禁用冗长模式,请使用 -q。
默认情况下,Machinae 会遍历配置中所有适用于每个目标 otype 且未被标记为 "default: false" 的服务。要修改此行为,您可以:
all,以遍历所有服务,包括那些被标记为 "default: false" 的服务。Machinae 默认支持以下数据源:
更多数据源即将推出。
Machinae 通过 --auth/-a 标志支持需要 HTTP Basic Auth 的站点。您需要创建一个包含凭证的 YAML 文件,其中包含需要凭证的站点的键以及一个包含两项(用户名和密码或 API 密钥)的列表。例如,对于内置的 PassiveTotal 站点,可能如下所示:
passivetotal: ['[email protected]', 'my_api_key']
在站点配置的 request 下,您会看到一个类似这样的键:
json:
request:
url: '...'
auth: passivetotal
auth: passivetotal 指向通过命令行传递的认证配置中的键。
以下站点默认禁用:
fortinet_classify)telize)totalhash_ip)domaintools_parsed_whois)domaintools_reverse_whois)domaintools_reputation)passivetotal_pdns)passivetotal_whois)passivetotal_sslcert)passivetotal_components)passivetotal_trackers)maxmind)Machinae 提供有限的输出格式:普通、带点转义的普通以及 JSON。我们计划在未来增加更多输出格式。
*** 即将推出 ***
MIT 许可证 (MIT)
版权所有 (c) 2015 Hurricane Labs LLC
特此授予任何人免费获得本软件及相关文档文件(“软件”)副本的权利,不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件的副本,并允许获得本软件的人员在满足以下条件的情况下这样做:
上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易引起的任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他行为。
请注意,在这两种情况下,仍会应用 otype 验证。
Machinae 支持通过命令行使用 -H/--http-proxy 参数传递 HTTP 代理。如果未指定代理,machinae 将搜索标准的 HTTP_PROXY 和 HTTPS_PROXY 环境变量,以及不太标准的 http_proxy 和 https_proxy 环境变量。
最后,应传递一个目标列表。除上述选项外的所有参数都将被解释为目标。
fraudguard)shodan)