Giter VIP home page Giter VIP logo

baddns's Introduction

BadDNS

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

本软件只做初步探测,请使用者遵守《中华人民共和国网络安全法》,勿将 BadDNS 用于非授权的测试,莲隐科技/雾隐实验室不负任何连带法律责任。

设计思路

  • 使用随机字符串作为子域名,使用内置数个公共 DNS 服务器解析,以此来生成泛解析白名单,为后面排除泛解析做铺垫
  • 读取 subdomain 字典用于生成待查询目标,读取 depth 字典用于判断是否进行深层子域名查询
  • 使用 TCP 进行解析查询
  • 检查解析结果是否存在于白名单,如果存在于白名单则抛弃结果
  • 检查 sub 字段是否存在于 depth 字典中,如果存在则进行下一个深度的域名探测,不存在则不进行后续处理

深度探测

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

命令行参数说明

参数 说明 默认值
-h 输出帮助 None
-v 输出日志信息 None
-V 输出版本信息 None
-t 指定目标文件 None
-d 指定depth字典文件 depthdict.txt
-l 设置子域深度 1
-m 设置内存占用率 0.5(50%)
-o 指定结果保存文件 baddns-output.json
-s 指定subdomain字典文件 domaindict-170W.txt
-w 设置线程池大小 500

入门示例

  • 使用默认配置

    ./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

推荐运行环境(防止各种诡异bug ^_^)

  • 该版本支持 Linux X64-86 平台
  • 入门配置1核2GB内存
  • 推荐配置8核16GB及以上内存
  • 推荐使用无限制带宽的VPS供应商
  • 需要配置Linux调优执行 ulimit -n 655350

演示视频

BadDNS example

源码编译

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

    • 安装Rust

      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    • 安装Linux-x86_64工具链

      rustup target add x86_64-unknown-linux-musl

    可参见官方教程

  2. 编译

    • git clone 源码

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

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

      • 交叉编译

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

      • 普通编译

        cargo build --release

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

baddns's People

Contributors

linkwik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

baddns's Issues

No file descriptors available

[util] Failure mem_total,Currently only supports Linux. msg:Os { code: 24, kind: Other, message: "No file descriptors available" }

baddns baddns-output.json Cargo.lock Cargo.toml depthdict.txt domaindict-170W.txt LICENSE README.md src target.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.