<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址:http://drops.wooyun.org/tools/950

                    原文: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,否則腳本不會停止運行,它會查找更長的主機名。

                    #!ruby
                    #!/usr/bin/env ruby
                    
                    #
                    ## Brute code stolen form: https://gist.github.com/petehamilton/4755855
                    #
                    
                    @domain = 'microsoft.com'
                    
                    def result?(sub)
                      results = %x(dig +noall [email protected]} +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)
                    

                    上面的腳本能夠工作,但是很慢,我通過下面的方法加快了執行速度。

                    #!ruby
                    #!/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

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频