Skip to main content

基本用法

有关 AlterX 选项的详细概述,请访问用法页面。
如果您有任何问题,请通过我们的帮助页面联系我们。

为什么选择 AlterX?

alterx 区别于其他子域置换工具(如 goaltdns)的地方在于它的脚本功能。AlterX 接受模式作为输入,并基于这些模式生成子域置换词列表——类似于 Nuclei 如何使用 fuzzing-templates 工作。 主动子域枚举的挑战在于找到实际存在域名的概率。在规模上,这个过程可以被可视化为:
   使用词表 < 用子域生成置换 (goaltdns) < alterx
大多数子域置换工具依赖于硬编码模式,生成可能包含数百万子域的大型词表——这使得使用像 dnsx 这样的工具进行暴力破解变得不可行。使用 alterx,您可以基于被动子域枚举的结果创建模式,显著提高找到有效子域的机会,并使暴力破解更有效率。

变量

alterx 使用类似于 nuclei-templates 的变量语法。您可以使用这些变量创建自定义模式。当域名作为输入传递时,alterx 评估输入并从中提取变量。

基本变量

{{sub}}     :  子域前缀或子域的最左部分
{{suffix}}  :  子域名中除了 {{sub}} 之外的所有内容都是后缀
{{tld}}     :  顶级域名 (例如 com, uk, in 等)
{{etld}}    :  也称为公共后缀 (例如 co.uk, gov.in 等)
变量api.scanme.shadmin.dev.scanme.shcloud.scanme.co.uk
{{sub}}apiadmincloud
{{suffix}}scanme.shdev.scanme.shscanme.co.uk
{{tld}}shshuk
{{etld}}--co.uk

高级变量

{{root}}  :  也称为 eTLD+1,即仅根域名 (例如对于 api.scanme.sh => {{root}} 是 scanme.sh)
{{subN}}  :  这里 N 是一个整数 (例如 {{sub1}}, {{sub2}} 等)。

// {{subN}} 是一个高级变量,其存在取决于输入
// 假设有一个多级域名 cloud.nuclei.scanme.sh
// 在这种情况下 {{sub}} = cloud 和 {{sub1}} = nuclei
变量api.scanme.shadmin.dev.scanme.shcloud.scanme.co.uk
{{root}}scanme.shscanme.shscanme.co.uk
{{sub1}}-dev-
{{sub2}}---

模式

简单来说,模式是描述 AlterX 应该生成什么类型的置换的模板
// 以下是一些可用于生成置换的示例模式
// 假设输入了 api.scanme.sh,变量 {{word}} 作为输入,其值为 prod
// alterx 为以下模式生成子域

"{{sub}}-{{word}}.{{suffix}}" // 例如: api-prod.scanme.sh
"{{word}}-{{sub}}.{{suffix}}" // 例如: prod-api.scanme.sh
"{{word}}.{{sub}}.{{suffix}}" // 例如: prod.api.scanme.sh
"{{sub}}.{{word}}.{{suffix}}" // 例如: api.prod.scanme.sh
您可以在这里找到模式配置文件的示例。这个文件可以根据您的安全评估或渗透测试需求进行自定义。 这个配置文件使用可自定义的模式和动态负载为安全评估或渗透测试生成子域置换。模式包括基于破折号、基于点和其他模式。用户可以创建自定义负载部分,例如单词、区域标识符或数字,以满足他们的特定需求。 例如,用户可以定义一个新的负载部分 env,其值为 proddev,然后在模式中使用它,如 {{env}}-{{word}}.{{suffix}},以生成子域,如 prod-app.example.comdev-api.example.com。这种灵活性允许为独特的测试场景和目标环境定制子域列表。 用于生成的默认模式配置文件存储在 $HOME/.config/alterx/ 目录中,也可以使用 -ac 选项使用自定义配置文件。

示例

tesla.com 的现有被动子域列表上运行 alterx 的示例,使用 dnsx 解析,产生了10个额外的新有效的子域
$ chaos -d tesla.com | alterx | dnsx

 

   ___   ____          _  __
  / _ | / / /____ ____| |/_/
 / __ |/ / __/ -_) __/>  <  
/_/ |_/_/\__/\__/_/ /_/|_|              

      projectdiscovery.io

[INF] Generated 8312 permutations in 0.0740s
auth-global-stage.tesla.com
auth-stage.tesla.com
digitalassets-stage.tesla.com
errlog-stage.tesla.com
kronos-dev.tesla.com
mfa-stage.tesla.com
paymentrecon-stage.tesla.com
sso-dev.tesla.com
shop-stage.tesla.com
www-uat-dev.tesla.com
类似地,-enrich 选项可用于填充已知子域作为世界输入,以生成目标感知置换
$ chaos -d tesla.com | alterx -enrich

   ___   ____          _  __
  / _ | / / /____ ____| |/_/
 / __ |/ / __/ -_) __/>  <  
/_/ |_/_/\__/\__/_/ /_/|_|              

      projectdiscovery.io

[INF] Generated 662010 permutations in 3.9989s
您可以使用 -pattern CLI 选项在运行时更改默认模式。
$ chaos -d tesla.com | alterx -enrich -p '{{word}}-{{suffix}}'

   ___   ____          _  __
  / _ | / / /____ ____| |/_/
 / __ |/ / __/ -_) __/>  <  
/_/ |_/_/\__/\__/_/ /_/|_|              

      projectdiscovery.io

[INF] Generated 21523 permutations in 0.7984s
您还可以使用 -payload CLI 选项覆盖现有变量值。
$ alterx -list tesla.txt -enrich -p '{{word}}-{{year}}.{{suffix}}' -pp word=keywords.txt -pp year=2023

   ___   ____          _  __
  / _ | / / /____ ____| |/_/
 / __ |/ / __/ -_) __/>  <  
/_/ |_/_/\__/\__/_/ /_/|_|              

      projectdiscovery.io

[INF] Generated 21419 permutations in 1.1699s
更多信息,请查看发布**博客**
探索其他可能与您的工作流程很好集成的子域置换工具: