红队开工前都在跑它,一个域名换回一整张资产关系网
原创
大白
大白
知白守黑1024
2026年11月1日 06:23
北京
去阅读
RECON / OWASP AMASS
Jeff Foley 从 2017 年写到现在的 Amass,子域名枚举只是它的零头——94 个情报源查回来的发现,会沉淀成一张带关系的资产图谱,跑一次厚一次。
01 / WHAT IT IS
先把它的身份说清楚
Amass 是 OWASP 的旗舰项目。这个头衔有分量——OWASP 旗下同时挂着旗舰牌子的,是 ZAP、Dependency-Check 这个级别的东西。项目由 Jeff Foley 从 2017 年维护至今,Go 语言编写,Apache 2.0 协议,今年 10 月 25 日刚发了 v5.1.3 版本,九年间没断更。
很多人的印象还停留在「子域名收集工具」。官方文档里对 v5 的定位写得明确:attack surface intelligence framework,攻击面情报框架。你丢给它一个域名,它去几十个情报源里翻这个组织暴露在互联网上的所有痕迹——域名、IP、网段、ASN、证书、邮箱、账号,v5 甚至把街址、联系人记录这类物理世界的信息也建了模。
和一般收集工具的根本差别在产出物。普通工具给你一份域名名单,跑完即走;Amass 把每次查到的东西写进一个资产图谱库,这次发现的 IP 和上次发现的证书自动关联,跨会话越积越厚。名单是一次性的,图谱是越养越值钱的。
02 / SOURCE MATRIX
93 个情报源,是怎么排兵的
仓库 README 里那张数据源矩阵,我逐项数了一遍:93 个具名情报源,横跨 7 个大类,另外还有暴力枚举、反向 DNS 遍历、NSEC 走步、域传送这 6 类主动 DNS 手法。分布相当悬殊——API 集成一枝独秀,网页抓取和路由情报跟在后面。
FIG. 01 — 数据源矩阵分布,依仓库 README 逐项统计;DNS 一栏为主动手法而非服务源。
这张表里能看到不少国内安全圈熟悉的身影:FOFA、Quake、ZoomEye、ThreatBook 都在 API 集成里,抓取类里连百度都有一席。Shodan、VirusTotal、Censys、SecurityTrails 这些主流情报源全部在列,证书透明日志接了 Crtsh、CertSpotter、FacebookCT 等六路。
实用主义者关心的问题是不配 API key 能不能跑。答案是能——Crtsh、Wayback 这类免费源开箱即用,但上限取决于你喂了多少 key。官方把凭证单独放在 datasources.yaml 里管理,和主配置分开,同一个源还能配多套账号分摊限速。
03 / THE MODEL
Open Asset Model,图谱的骨架
v5 架构的地基是一个叫 Open Asset Model 的数据模型。它定义了一整套资产类型——FQDN、IP 地址、ASN、网段、DNS 记录、账号、联系人记录、文件——以及把这些资产连起来的有向关系。每个发现都是一个带类型的实体,实体之间的关系作为边存储,边上还能挂属性。
建模的好处要用的时候才显出来。下面这张官方图库里截出来的图谱,一次枚举事件的下游挂着域名、A 记录、IP、网段、ASN,链路一目了然。想知道「这个 IP 上还挂着哪些域名」「这段网段属于哪个 ASN」——关系查询在名单时代是做不到的,在图谱上是一跳的事。
FIG. 02 — 官方图库示例:一次枚举事件(event)与 FQDN、IP、Netblock、ASN 实体的关联。
OAM 还有个设计很关键:循环扩展。查一个域名带出一个邮箱,邮箱关联出新的联系人记录,联系人再带出其他域名——每个发现都能成为下一轮枚举的种子,范围由数据自己长出来。这正是「攻击面情报」和「子域扫描」的差别。
04 / ENGINE AND DB
v5 的引擎和资产库
v5 是一次彻底换代。数据源全部插件化,每个插件向引擎注册 Handler,引擎处理到对应类型的资产事件就触发——查到新域名时证书类插件跟上,发现 IP 时路由类插件跟上,各管一摊。官方文档给的说法是 session 制:一次枚举即一次会话,会话的产出全部沉淀进资产库。
FIG. 03 — v5 数据流水线:插件 → 引擎 → OAM 图谱 → 资产库,依官方文档与源码整理。
资产库给了三种后端,按场景选:不配置就自动落本地 SQLite,临时跑分够用;正经团队上 PostgreSQL 做生产库;想对图谱做关系查询,接 Neo4j。数据库连接走 config.yaml 一行配置,或者用 AMASS\_DB\_HOST 那组环境变量,容器化部署时更顺手。
命令行也换了血。v5 的子命令是assoc / engine / enum / subs / track / viz六个,从源码里的用法声明就能确认。网上大量老教程还在写 v4 时代的 intel 和 db——看到可以直接关掉,那套接口已经是上个版本的事了。
05 / GET STARTED
装起来,跑第一轮
三条安装路,挑顺手的:装了 Go 的直接源码装;习惯容器的用官方镜像;都不想折腾就去 release 页下编译好的二进制,解压进 PATH 就能跑。
源码安装(需 Go)
CGO\_ENABLED=0 go install -v github.com/owasp-amass/amass/v5/cmd/amass@main
Docker
docker pull owaspamass/amass
或者:GitHub Releases 下载预编译包
v5 的玩法是配置文件驱动。主配置 config.yaml 定范围,scope 填你被授权的目标,seed 可选地喂初始种子;凭证单独放 datasources.yaml。官方文档给的示例长这样:
config.yaml
scope:
domains: [ \"owasp.org\" ]
ips: [ \"192.0.2.1\", \"192.168.0.10-192.168.0.20\" ]
cidrs: [ \"192.0.2.0/24\" ]
ports: [ 80, 443 ]
blacklist: [ \"test.owasp.org\" ]
datasources.yaml —— 每个源单独配凭证
datasources:
- name: Shodan
creds: { account: { apikey: YOUR\_API\_KEY } }
配好范围后,一条命令开跑:amass enum -d owasp.org。枚举结果自动进库,第二次跑同一个目标时,库里的旧发现会被翻出来重新做 DNS 验证——活着的留下,死掉的标记,图谱就是这么一轮轮养起来的。
06 / HOW TO DRIVE
怎么把它用出深度
第一步别急着枚举,先圈地。拿到一个组织名称,先用它的反查能力过一遍 WHOIS 记录,把同一家注册主体的域名都捞出来;再按 ASN 和 CIDR 圈出这个组织自己的网段。很多企业的暴露面根本不在主域名下,而在某个多年前收购的子品牌域名上——这一步就是干这个的。
枚举分三种打法,胆子越小越先跑被动。官方手册的定义:被动模式只查情报源,不碰目标一根手指头;普通模式在被动之上用 DNS 解析验证发现;主动模式才会去连目标拉证书、试域传送、爬页面。公网目标拿不准授权范围时,从被动跑起,零风险拿到八成情报。
把字典和变体开起来,枚举才算完整。仓库自带十一份词表,包括 top 一百万子域的全量版;暴力枚举配合递归阈值,发现两个以上子域的分支才继续往下炸,不至于一上来就把查询量打爆。变体生成也实用——拼写近似、连字符增减、单词换位这类手法,专抓那些「你以为不存在」的影子域名。
让图谱发挥后续价值。持续监控的场景下,每次枚举都是一次差量对比:新出现的资产就是新暴露面,值得立刻看一眼。接了 Neo4j 的团队可以直接写图查询,把「共用同一 IP 的域名群」「同一注册人名下的所有资产」这类关系直接捞出来。多个团队共用一个 PostgreSQL 库也是官方支持的路数,侦察成果全组共享。
一个实操细节:自备一份可信 DNS 解析器列表,配合限速参数控制查询节奏。默认解析器在企业网络里经常被劫持注入垃圾记录,解析器不干净,图谱里就会混进假资产——这是新手最容易踩的坑。
07 / USE CASES
什么人用它,用到什么程度
README 里两家企业的背书能说明它的主战场。Accenture 的攻防模拟团队说 Amass 是他们外部枚举项目和攻击面评估的主力工具套件;Visma 的内部红队说,管着几百家公司的外部资产,「多年来 Amass 一直是资产侦察领域的中坚」——连年发版、跟着新趋势演进。
对应到国内的工作场景:攻防演练前期侦察,一个域名进去把目标暴露面铺成图谱;赏金项目开工前,先被动扫一遍 scope 边界,省得手贱跑出界;企业安全部拿它做连续资产监控,对接 PostgreSQL 定时跑,新资产出来就告警。蓝队也别觉得这是攻击方的工具——库里跑出来的资产清单,和你 CMDB 里登记的清单对不上号的部分,就是没人管的影子资产。
FIG. 04 — 官方示例:对 owasp.org 的一次枚举产出,域名、IP、网段、ASN 到托管商全链路成图。
08 / EPILOGUE
写在最后
侦察工具每年都在冒新的,Amass 能在 OWASP 旗舰位置上坐十年,靠的不是某个独家数据源,而是把「收集」这件事做成了「沉淀」——图谱会累积,关系可查询,范围由数据自己长出来。这是名单类工具追不上的代差。
用之前把两件事想明白:一是数据源的上限就是 key 的上限,免费源能开箱跑,正经做监控就把 Shodan、VT 这些 key 配齐;二是它默认被动查询,加主动参数才会实际接触目标——只对授权范围内的资产开主动模式,这条红线跟工具无关,跟人有关。
PROJECT GITHUB / owasp-amass/amass
LICENSE APACHE 2.0 · LATEST V5.1.3 (2026-10-25)
觉得有用的话,点赞、在看、转发三连支持一下。
项目地址在后台回复下方关键字自取。
20261101
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论