热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

迭代暴力破解域名工具

心伤的胖子2014022021:32原文:www.room362.comblog20140…翻译原则:没有原则,只是还原了文章的大概意思。

心伤的胖子 · 2014/02/20 21:32

原文:www.room362.com/blog/2014/0…

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

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

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

为了解决我实际的需求我修改了这个脚本(仅仅是使用了 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 "============================"end1 == 2
enddef crack_yielding(chars)crack_yield(chars){ |p|return p if result?(p)}
enddef crack_yield(chars)chars.each { |c| yield c }crack_yield(chars) { |c|chars.each do |x|yield c + xend}
endchars = ('a'..'z').to_a
(0..9).each {|x| chars <

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

#!ruby
#!/usr/bin/env ruby#
## Brute code stolen form: https://gist.github.com/petehamilton/4755855
#def result?(sub)puts sub 1 &#61;&#61; 2
enddef crack_yielding(chars)crack_yield(chars){ |p|return p if result?(p)}
enddef crack_yield(chars)chars.each { |c| yield c }crack_yield(chars) { |c|chars.each do |x|yield c &#43; xend}
endchars &#61; (&#39;a&#39;..&#39;z&#39;).to_a
(0..9).each {|x| chars <

它仅仅是打印所有的可能

a
b
c
d
e
f
...

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

ruby brutelist.rb | parallel -j100 dig &#43;noall {}.microsoft.com &#43;answer

译者注&#xff1a;parallel 是 Linux 下并发执行的程序

最后得到下面的结果&#xff1a;

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

破解愉快&#xff08;愉快个蛋&#xff09;&#xff0c;你可以在我的 gists 页面找到上面的两个脚本&#xff1a;

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

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




推荐阅读
author-avatar
用户tkeex06qp1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有