BadDNS多层子域名探测的极速工具

BadDNS多层子域名探测的极速工具 


BadDNS 是一款使用 Rust 开发的使用公共 DNS 服务器进行多层子域名探测的极速工具。
设计思路

  • 使用随机字符串作为子域名,使用内置数个公共 DNS 服务器解析,以此来生成泛解析白名单,为后面排除泛解析做铺垫

  • 读取 subdomain 字典用于生成待查询目标,读取 depth 字典用于判断是否进行深层子域名查询

  • 使用 TCP 进行解析查询

  • 检查解析结果是否存在于白名单,如果存在于白名单则抛弃结果

  • 检查 sub 字段是否存在于 depth 字典中,如果存在则进行下一个深度的域名探测,不存在则不进行后续处理

深度探测

以 sub 为 api 探测为例,该探测有结果并且不存在于泛解析白名单及 api 存在于 depth 字典,则进行下一级子域名探测;如果该探测没有相应的结果则不再进行 api 下一子域的探测。这样解决市面上的爆破工具大量字典傻傻的问题 同时,希望大家能踊跃补充 depth 字典


入门示例

  • 使用默认配置

    ./baddns -t target.txt -s domaindict-170W.txt -d depthdict.txt

  • 配置8个线程和结果保存至 baddns-outputs-8.json

    ./baddns -t target.txt -w 8 -o baddns-outputs-8.json -s domaindict-170W.txt -d depthdict.txt

  • 配置二级子域深度探测

    ./baddns -t target.txt -s domaindict-170W.txt -d depthdict.txt -l 2


源码编译

  • 安装Rust并配置交叉编译环境

    可参见官方教程

    • 安装Rust

      curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | sh

    • 安装Linux-x86_64工具链

      rustup target add x86_64-unknown-linux-musl

  • 编译

    • 交叉编译

      cargo build –target x86_64-unknown-linux-musl –release

    • 普通编译

      cargo build –release

    • git clone 源码

      git clone https://github.com/joinsec/BadDNS.git

    • 进入项目目录执行编译命令

    • 可执行文件位于target目录下


文章来源:

https://github.com/joinsec/BadDNS

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
相关推荐
  • 暂无相关文章
  • 评论 抢沙发

    请登录后发表评论

      暂无评论内容