Subrake最初是我个人的子域名枚举项目,现在已发展成一个详细的DNS扫描工具,可以一次性帮助你识别区域传输、DNS区域接管和子域名接管。
区域传输已经存在多年,如果由于某种原因在域名上启用,将允许另一方枚举区域中的所有记录。它们实际上用于当所有者将域名从一个提供商转移到另一个提供商时。
子域名接管与字面意思不同,它是对子域名所指服务的接管。该服务需要已过时或未被使用。
DNS区域接管与子域名接管相比,如果被利用,可能会更严重。它是对域的一个区域的接管。这比仅仅在后端创建服务要严重得多。你实际上可以设置自己的DNS记录并按自己的意愿操作它们。
更详细的细节,你可以阅读我的博客:区域传输、DNS区域接管和子域名接管指南
Subrake是一个DNS评估工具(大部分自动化),同时具有UI和CLI,通过多个阶段来覆盖DNS问题。该工具持续进行修改和开发,欢迎每个人为项目做贡献。
它主要面向漏洞赏金和信息安全行业设计,但也可以用于蓝队和内部渗透测试。它支持CLI和基于Web的GUI界面,并支持多种安装模式。主要功能包括:
csv格式导出。你可以通过自动模式或手动克隆仓库并使用setuptools安装来设置subrake。第一种方式提供更多控制,并且拥有灵活的UI。但如果你更喜欢简单的CLI模式或在windows上,请参考manual部分。
克隆仓库并进入:
$ git clone https://github.com/hash3liZer/Subrake.git
$ cd ./Subrake
你可以通过vagrant(与KVM一起)设置subrake,将生成一台机器并自动设置所有内容。首先安装依赖:
$ apt update
$ apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager vagrant vagrant-libvirt
然后在仓库内运行vagrant up:
$ vagrant up
这将花费一些时间来配置服务器。完成后,你将收到URL:http://127.0.0.1:9090
默认凭据为:subrake/password。你也可以在配置期间更改:
$ SUBRAKE_USERNAME="username" SUBRAKE_PASSWORD="password" vagrant up
完成后,你可以通过以下命令管理新创建机器的状态:
# 查看机器状态
$ vagrant status
# 挂起机器
$ vagrant suspend
# 恢复机器
$ vagrant resume
# 关闭机器
$ vagrant halt
# 重新启动
$ vagrant up
# 删除机器
$ vagrant destroy
通过手动设置,你可以直接进入目录并使用setuptools进行安装
安装依赖并运行setup.py:
$ pip3 install -r requirements.txt
$ python3 setup.py install
验证subrake是否已安装:
subrake --help
你也可以从Dockerfile构建docker镜像:
$ docker build -t subrake:latest .
验证docker容器:
$ docker run --rm subrake --help
你也可以将脚本部署在裸机服务器上。为此,启动一个全新的ubuntu 20.04服务器并运行以下命令:
$ chmod +x ./installer.sh
$ ./installer.sh --deploy
然后可以通过0.0.0.0:9090访问服务器。你可以设置一个nginx服务并将其用作反向代理。
使用UI,你可以直接跳转到Subtap a Domain页面并运行扫描。扫描过程中会询问一些问题:
扫描在tmux会话中启动。你可以按CTRL+E => d退出运行中的屏幕并启动新扫描。另外,要暂停屏幕并上下移动,可以按CTRL+E => [。这只是TMUX快捷键,全局绑定键更改为CTRL+E。
你也可以通过再次输入其名称跳回运行中的屏幕:
在命令行中,你可以直接输入subrake来访问该工具。以下是使用subrake的一些示例:
使用默认选项简单运行:
$ subrake -d google.com
多线程运行Subrake:
$ subtake -d google.com -t 50
使用模块和字典运行Subrake:
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt
使用OSINT结果 + 多个SecLists子域名列表运行Subrake:
注意:名称相似的子域名将自动被过滤并计为1个
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt,SecLists/Discovery/DNS/dns-Jhaddix.txt
不使用搜索引擎 + 合并多个工具的输出 + IP过滤(注意你可以将自己的工具集成到subrake中):
$ domain="google.com"
$ subfinder -d $domain -nW -o $domain/1.txt && sublist3r -d $domain -o $domain/2.txt && cat $domain/* >> /tmp/output.txt
$ subrake -d $domain -w tmp/output.txt --filter --skip-search
带端口扫描的Subrake:
注意:默认情况下,每个主机的80和443端口会进行HTTP/HTTPS横幅扫描。因此无需在此指定它们
$ subrake -d google.com --ports 8080,8443,8000,23,445
欢迎提交拉取请求和功能。你可以通过以下方式贡献: