一、介绍

Amass 是一款开源的子域名信息收集工具,设计用于帮助安全专业人员、渗透测试人员和网络管理员收集目标域名的所有可能子域名。Amass 的目标是提供广泛的子域名信息,从而帮助用户更全面地了解目标,发现潜在的安全风险或攻击面。

以下是 Amass 的一些主要特点和功能:

  1. 字典和穷举攻击: Amass 支持使用预定义的字典文件进行字典攻击,也能够执行穷举攻击,尝试生成所有可能的子域名。

  2. 搜索引擎枚举: Amass 能够通过使用搜索引擎的高级搜索功能,如 Google、Bing 等,来查找与目标域名相关的子域名信息。

  3. 证书透明度日志(CT logs): Amass 使用证书透明度日志(Certificate Transparency logs)来查找通过TLS证书签名的域名,从而发现潜在的子域名。

  4. WHOIS信息: Amass 可以获取目标域名的 WHOIS 信息,包括域名的注册者、注册日期等,这有助于了解域名的背后情况。

  5. 集成其他工具: Amass 可以与其他常用的子域名收集工具和服务集成,如 Sublist3r、Censys、Virustota l等。

  6. 图形化界面和命令行接口: Amass 提供了图形化用户界面(GUI)和命令行接口,使用户可以根据自己的喜好选择使用。

  7. 活跃的开发社区: Amass 是一个开源项目,有一个活跃的开发社区,持续提供更新和改进,同时接受社区贡献。

使用 Amass 时,用户通常可以指定目标域名,选择相应的收集模块和技术,并获取详细的子域名报告。需要注意的是,使用这类工具时,应该始终遵循法律和道德规范,只能在合法授权的情况下使用。

二、安装 Amass

在 Kail Linux 中 OWASP Amass 是默认安装的,并且可以像任何其他 Kali 软件包一样进行管理。所以咱们只需打开 Kail 即可使用,若没有下载 Kail 的可以参考下面这篇文章来进行安装:

如何在 VM 虚拟机中安装 Kail Linux 2023.4 操作系统保姆级教程(附链接)icon-default.png?t=N7T8https://eclecticism.blog.csdn.net/article/details/135864762

打开 Kail

输入命令更新一波

apt-get update

三、使用 Amass

3.1 入门简单简单案例

amass 工具和所有子命令使用 “-h” 和 “-help” 标志显示选项:

amass -help

操作检查版本:

amass -version 

子域名枚举工具最基本的使用:

amass enum -d 域名

DNS 枚举的典型参数:

$ amass enum -brute -min-for-recursive 2 -d example.com


example.com (FQDN) --> node --> www.example.com (FQDN)
www.example.com (FQDN) --> a_record --> 123.456.789.01 (IPAddress) 

这段命令使用 Amass 工具执行子域名爆破和信息收集的操作,以下是命令中各个选项和输出的解释:

  • 命令: $ amass enum -brute -min-for-recursive 2 -d example.com

    • $ amass: 启动 Amass 工具。

    • enum: 执行子域名枚举操作。

    • -brute: 使用字典和穷举攻击来尝试发现子域名。这表示 Amass 将尝试使用预定义的字典文件和穷举攻击的方式来查找与目标域名相关的子域名。

    • -min-for-recursive 2: 设置递归搜索的最小深度为2。这表示 Amass 将从已发现的子域名中继续执行递归搜索,直到达到深度为2。

    • -d example.com: 指定目标域名为 example.com,即要执行子域名枚举的目标域名。 

  • 输出: example.com (FQDN) --> node --> www.example.com (FQDN)
    www.example.com (FQDN) --> a_record --> 123.456.789.01 (IPAddress)

    • example.com (FQDN): 源域名(Fully Qualified Domain Name),即目标域名。

    • --> node -->: 表示两个域名之间的关系。在这里,example.com 是根域名,www.example.com 是它的子域名。

    • www.example.com (FQDN): 子域名,通过子域名爆破或其他方式找到的目标域名的一个子域。

    • --> a_record -->: 表示域名与 IP 地址之间的关系。在这里,www.example.com 的A记录指向 IP 地址 123.456.789.01

    • 123.456.789.01 (IPAddress): 子域名对应的 IP 地址。

3.2 命令行使用信息

amass 工具具有如下所示的几个子命令,用于处理您的互联网暴露调查。

子命令描述
intel收集开源情报以调查目标组织
enum对暴露于 Internet 的系统执行 DNS 枚举和网络映射
db管理存储枚举结果的图数据库

所有子命令都有一些默认的全局参数,如下所示。

旗帜描述例子
-h/-heip显示程序使用信息amass 子命令 -h
-configYAML 配置文件的路径amass 子命令 -config config.yaml
-dir包含图形数据库的目录的路径amass 子命令 -dir PATH -d example.com
-nocolor禁用彩色输出amass 子命令 -nocolor -d example.com
-slient执行期间禁用所有输出amass 子命令 -silent -json out.json -d example.com

3.2.1 intel 子命令

intel 子命令可以帮助您发现与您正在调查的组织关联的其他根域名。该子命令利用配置文件的数据源部分来获取被动情报,例如反向 whois 信息。

Flag描述例子
-active启用主动侦察方法amass intel -active -addr 192.168.2.1-64 -p 80,443,8080
-addrIP 和范围 (192.168.1.1-254) 以逗号分隔amass intel -addr 192.168.2.1-64
-asnASN 以逗号分隔(可多次使用)amass intel -asn 13374,14618
-cidrCIDR 以逗号分隔(可多次使用)amass intel -cidr 104.154.0.0/15
-d域名以逗号分隔(可多次使用)amass intel -whois -d example.com
-demo审查输出以使其适合演示amass intel -demo -whois -d example.com
-df提供根域名的文件的路径amass intel -whois -df domains.txt
-ef提供要排除的数据源的文件的路径amass intel -whois -ef exclude.txt -d example.com
-exclude要排除的数据源名称以逗号分隔amass intel -whois -exclude crtsh -d example.com
-if提供要包含的数据源的文件的路径amass intel -whois -if include.txt -d example.com
-include要包含的数据源名称以逗号分隔amass intel -whois -include crtsh -d example.com
-ip显示已发现名称的 IP 地址amass intel -ip -whois -d example.com
-ipv4显示已发现名称的 IPv4 地址amass intel -ipv4 -whois -d example.com
-ipv6显示已发现名称的 IPv6 地址amass intel -ipv6 -whois -d example.com
-list打印所有可用数据源的名称amass intel -list
-log将写入错误的日志文件的路径amass intel -log amass.log -whois -d example.com
-o文本输出文件的路径amass intel -o out.txt -whois -d example.com
-org针对 AS 描述信息提供的搜索字符串amass intel -org Facebook
-p端口以逗号分隔(默认值:80、443)amass intel -cidr 104.154.0.0/15 -p 443,8080
-r首选 DNS 解析器的 IP 地址(可以多次使用)amass intel -r 8.8.8.8,1.1.1.1 -whois -d example.com
-rf提供首选 DNS 解析器的文件路径amass intel -rf data/resolvers.txt -whois -d example.com
-timeout执行枚举的分钟数amass intel -timeout 30 -d example.com
-v输出状态/调试/故障排除信息amass intel -v -whois -d example.com
-whois所有发现的域名都通过反向 whois 运行amass intel -whois -d example.com

3.2.2 enum 子命令

在Amass工具中,enum是用于执行子域名枚举操作的子命令

模式说明:

  • 正常:运行 enum 子命令而不指定主动或被动标志将从数据源中播种枚举,并利用 DNS 来验证结果并进一步调查范围内的命名空间(提供的域名)

    amass enum -d example.com

  • 主动:它将执行所有正常模式并访问已发现的资产并尝试获取 TLS 证书、执行 DNS 区域传输、使用 NSEC 行走以及执行网络爬行。

    amass enum -active -d example.com -p 80,443,8080

  • 被动:只会从数据源获取信息并盲目接受。

    amass enum --passive -d example.com

Flag描述例子
-active启用主动侦察方法amass enum -active -d example.com -p 80,443,8080
-alts启用更改名称的生成amass enum -alts -d example.com
-aw用于更改的不同单词列表文件的路径amass enum -aw PATH -d example.com
-awm用于名称更改的“hashcat-style”单词列表掩码amass enum -awm dev?d -d example.com
-bl不予调查的子域名黑名单amass enum -bl blah.example.com -d example.com
-blf提供黑名单子域的文件的路径amass enum -blf data/blacklist.txt -d example.com
-brute执行暴力子域枚举amass enum -brute -d example.com
-d域名以逗号分隔(可多次使用)amass enum -d example.com
-demo审查输出以使其适合演示amass enum -demo -d example.com
-df提供根域名的文件的路径amass enum -df domains.txt
-dns-qps所有解析器每秒的最大 DNS 查询数amass enum -dns-qps 200 -d example.com
-ef提供要排除的数据源的文件的路径amass enum -ef exclude.txt -d example.com
-exclude要排除的数据源名称以逗号分隔amass enum -exclude crtsh -d example.com
-if提供要包含的数据源的文件的路径amass enum -if include.txt -d example.com
-iface提供网络接口来发送流量amass enum -iface en0 -d example.com
-include要包含的数据源名称以逗号分隔amass enum -include crtsh -d example.com
-ip显示已发现名称的 IP 地址amass enum -ip -d example.com
-ipv4显示已发现名称的 IPv4 地址amass enum -ipv4 -d example.com
-ipv6显示已发现名称的 IPv6 地址amass enum -ipv6 -d example.com
-list打印所有可用数据源的名称amass enum -list
-log将写入错误的日志文件的路径amass enum -log amass.log -d example.com
-max-depth暴力破解的最大子域标签数amass enum -brute -max-depth 3 -d example.com
-min-for-recursive递归暴力破解之前看到的子域标签(默认值:1)amass enum -brute -min-for-recursive 3 -d example.com
-nf提供已知子域名的文件路径(来自其他工具/来源)amass enum -nf names.txt -d example.com
-norecursive关闭递归暴力破解amass enum -brute -norecursive -d example.com
-o文本输出文件的路径amass enum -o out.txt -d example.com
-oA用于命名所有输出文件的路径前缀amass enum -oA amass_scan -d example.com
-p端口以逗号分隔(默认值:443)amass enum -d example.com -p 443,8080
-passive纯粹被动的执行模式amass enum -passive -d example.com
-r不受信任的 DNS 解析器的 IP 地址(可以多次使用)amass enum -r 8.8.8.8,1.1.1.1 -d example.com
-rf提供不受信任的 DNS 解析器的文件的路径amass enum -rf data/resolvers.txt -d example.com
-rqps每个不受信任解析器每秒的最大 DNS 查询数amass enum -rqps 10 -d example.com
-scripts包含 ADS 脚本的目录的路径amass enum -scripts PATH -d example.com
-timeout执行枚举的分钟数amass enum -timeout 30 -d example.com
-tr受信任的 DNS 解析器的 IP 地址(可以多次使用)amass enum -tr 8.8.8.8,1.1.1.1 -d example.com
-trf提供可信 DNS 解析器的文件的路径amass enum -trf data/trusted.txt -d example.com
-trqps每个可信解析器每秒的最大 DNS 查询数amass enum -trqps 20 -d example.com
-v输出状态/调试/故障排除信息amass enum -v -d example.com
-w用于暴力破解的不同单词列表文件的路径amass enum -brute -w wordlist.txt -d example.com
-wm用于 DNS 暴力破解的“hashcat 式”字表掩码amass enum -brute -wm ?l?l -d example.com
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐