如果你已经意识到你想通过生成组合和/或从其他来源抓取被动数据来拆分你的DNS枚举方法论,那么subgen就是你可能正在寻找的排序与连接工具
如果你有正确配置的GOPATH并且$GOPATH/bin位于你的PATH中,那么运行以下命令进行一行安装,谢谢golang!
go get -u github.com/pry0cc/subgen
cat wordlist.txt | subgen -d "uber.com" | zdns A | jq -r "select(.data.answers[0].name) | .name"
cewl.rb -d 3 -u https://uber.com/ | subgen -d "uber.com"
这将接收一个词表,与域名拼接,实时排序去重(过滤已经产生的行),并通过正则表达式过滤掉任何非DNS安全的字符,如特殊字符。
wordlist.txt
admin
dashboard
www
helloworld
HELLOWORLD
helLoWorld
autodiscover
aUtOdiscover
*sd&^%$£$%^&*
zabbix
login
cat wordlist.txt | subgen -d "uber.com"
将产生:
admin.uber.com
dashboard.uber.com
www.uber.com
helloworld.uber.com
autodiscover.uber.com
zabbix.uber.com
login.uber.com
然后你可以通过管道将其传递给解析工具,如MassDNS或ZDNS,并打印出已解析的子域名。
cat ~/lists/sorted-all.txt | subgen -d uber.com | zdns A | jq -r "select(.data.answers[0].name) | .name"
cat ~/lists/jhaddix-all.txt | subgen -d uber.com | massdns -r dns.txt -t A -o S -w results.txt