迭代暴力破解域名工具

admin 2019年5月11日21:31:56评论214 views字数 2865阅读9分33秒阅读模式
摘要

原文:http://www.room362.com/blog/2014/02/19/iterative-dns-brute-forcing/翻译原则:没有原则,只是还原了文章的大概意思。

原文:http://www.room362.com/blog/2014/02/19/iterative-dns-brute-forcing/

翻译原则:没有原则,只是还原了文章的大概意思。

对于域名的暴力破解你肯定有一个包含多个主机名的文件。在我之前的文章中提到过一些方法是用 XARGS 或者 PARALLEL(译者注:需要的自己翻作者的 Blog)。但是众所周知的是即使是字典也不太可能 “All in one”(译者注:作者这么说是瞧不起天朝的黑客们了么?),但是近些年我在做 DNS 记录收集的时候注意到一个事情,就是大多数的域名都有大量比较短的主机名,因为很容易被记住,通常是四个字符或者更少。

我肯定你已经知道我即将做什么了,我想破解最多四个字符中所有可能的主机名(译者注:其实有这样的工具,比如 dnsmap、dnsenum 等)。【这段不翻译了,没意思,主要是作者没有写出想要的代码】。最后我偶然在 gist 上发现一个脚本:https://gist.github.com/petehamilton/4755855完美解决了我的需求。

为了解决我实际的需求我修改了这个脚本(仅仅是使用了 yield 方法)并且最后也是这么做的(记住 DNS 记录没有大小写之分)。

注意:除非你按 CTRL-C,否则脚本不会停止运行,它会查找更长的主机名。

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
#!/usr/bin/env ruby  # ## Brute code stolen form: https://gist.github.com/petehamilton/4755855 #  @domain = 'microsoft.com'  def result?(sub)   results = %x(dig +noall #{sub}.#{@domain} +answer)   if results != ""       puts "============================"       puts "FOUND: /t#{sub}"       puts "============================"       puts "#{results}"       puts "============================"   end   1 == 2 end  def crack_yielding(chars)   crack_yield(chars){ |p|       return p if result?(p)   } end   def crack_yield(chars)   chars.each { |c| yield c }    crack_yield(chars) { |c|       chars.each do |x|           yield c + x       end   } end  chars = ('a'..'z').to_a (0..9).each {|x| chars << x.to_s}   crack_yielding(chars) 

上面的脚本能够工作,但是很慢,我通过下面的方法加快了执行速度。

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
#!/usr/bin/env ruby  # ## Brute code stolen form: https://gist.github.com/petehamilton/4755855 #  def result?(sub)   puts sub       1 == 2 end  def crack_yielding(chars)   crack_yield(chars){ |p|       return p if result?(p)   } end   def crack_yield(chars)   chars.each { |c| yield c }    crack_yield(chars) { |c|       chars.each do |x|           yield c + x       end   } end  chars = ('a'..'z').to_a (0..9).each {|x| chars << x.to_s}   crack_yielding(chars) 

它仅仅是打印所有的可能

a b c d e f ... 

然后通过管道输送给 parallel 和 dig

ruby brutelist.rb | parallel -j100 dig +noall {}.microsoft.com +answer 

译者注:parallel 是 Linux 下并发执行的程序

最后得到下面的结果:

c.microsoft.com. 2   IN  CNAME   c.microsoft.akadns.net. c.microsoft.akadns.net.   499 IN  A   65.55.58.184 e.microsoft.com.  3599    IN  A   191.234.1.50 g.microsoft.com.  2798    IN  CNAME   g.msn.com. g.msn.com.        99  IN  CNAME   g.msn.com.nsatc.net. g.msn.com.nsatc.net.  148 IN  A   131.253.34.154 i.microsoft.com.  779 IN  CNAME   i.toggle.www.ms.akadns.net. i.toggle.www.ms.akadns.net. 44    IN  CNAME   i.g.www.ms.akadns.net. i.g.www.ms.akadns.net.    225 IN  CNAME   i.microsoft.com.edgesuite.net. i.microsoft.com.edgesuite.net. 116 IN CNAME   a1475.g.akamai.net. a1475.g.akamai.net.   16  IN  A   23.45.65.26 a1475.g.akamai.net.   16  IN  A   23.45.65.33 m.microsoft.com.  3599    IN  CNAME   origin.mobile.ms.akadns.net. origin.mobile.ms.akadns.net. 299 IN   A   65.55.186.235 s.microsoft.com.  3599    IN  CNAME   reroute.microsoft.com. reroute.microsoft.com.    3599    IN  A   65.55.58.201 reroute.microsoft.com.    3599    IN  A   64.4.11.37 cs.microsoft.com. 81  IN  CNAME   wedcs.trafficmanager.net. wedcs.trafficmanager.net. 7   IN  CNAME   wedcseus.cloudapp.net. wedcseus.cloudapp.net.    8   IN  A   137.116.48.250 ... 

破解愉快(愉快个蛋),你可以在我的 gists 页面找到上面的两个脚本:

Domain version: https://gist.github.com/mubix/9107284

Parallel version: https://gist.github.com/mubix/9107276

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2019年5月11日21:31:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   迭代暴力破解域名工具http://cn-sec.com/archives/66673.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息