执着成就未来 技术成就梦想
文字横幅以及760*60黄金广告位置招租,欢迎恰谈! 广告业务联系QQ:8019399 声明:在本站所投放广告内容均与本站立场无关!

您现在的位置: 中国安全在线 >> 攻防技术 >> 菜鸟学习 >> 文章正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
清除所有多余的启动项目
一键清除所有多余的桌面右键菜单
一键清理系统垃圾文件
如何破解MS SQL SERVER密码
学习木马部分隐藏技术披露
轻松拥有自己的超级Http后门
入侵论坛各种手段
挂溢出型网马的一个小技巧
5种方法逃过防火墙控制系统的研究
高级技巧之Linux后门技术及实践
暴力破解的艺术
作者:佚名 来源:安全在线 更新时间:2007-10-12 12:02:51 【字体:
<%=(int(rnd()*1)+1)%>您当前的位置:中国安全在线cnsafer.com 请进入[技术论坛]发表评论

暴力破解简单的说就是使用所有可能的字符或数字进行尝试,直到全部试完为止。比如说我们有一个密码,只允许使用两位数字,为获得这个密码我们须得尝试从00-99的所有数字(假设是十进制),直到我们找到那个正确数字的为止。该数字的每一位都可以是0-9的任何一个。
ip扫描器会扫描一个特定子网(集)的所有节点,每个子网有255个节点,这就是暴力扫描子网。
尝试所有组合所需耗费的时间由以下三个因素决定:
1、数的进位制(或者ascii码范围)。
2、欲破解的字串长度。
3、开始或结束所需的最小密码长度。
这一规则对远程或本地破解均适用。显然也应考虑cpu速度和带宽,但上述三项不管机器快慢或网速如何都是相对更重要的因素。
现在我们回到重点:暴力密码破解和ip扫描十分相似,只不过我们在这里是增加ASCII代码而不是节点号。还记得在ip扫描的时候,当最后一个字节达到255以后应当怎么做么?我们会把邻接的字节加一并把最后一个字节归零,然后再一个一个加到255,如此循环往复。检查是否达到255是决定什么时候将节点号重置为1的条件,这和密码破解差不多,但是因为密码中并未直接包含数字,所以处理方法会稍有不同。
让我们举例说明一下,假设我们要破解一个3字节密码,开始的时候我们应当把美的字节的ASCII码设为32(小于32的都是控制字符),范围从32到127,因为这是所有允许使用的字符(不包括扩展ASCII码),是包括元符号(特殊字符)在内的在包括在键盘上的所有可能的字符。
for(x=0; x<=passlen-1; x++)
pass[x]=32;
赋值完成,下面显示了暴力破解循环是怎样的,括号中是ASCII码:
char 2(32) char 1(32) char 0(32) <----- 第一次尝试
char 2(32) char 1(32) char 0(33) <----- 第二次尝试

 

*下面的过程跳过,假设char 0已经加到127*

char 2(32) char 1(32) char 0(127) <----- 第95次尝试
^
|________ 最大允许值

char 2(32) char 1(33) char 0(32) <----- 第96次尝试
^ ^
| |
| ------- 重置为32
----------- 加1

char 2(32) char 1(33) char 0(33) <------ 第97次尝试
^
|
------ 加1

*下面的过程跳过,假设char 1已经加到127*

char 2(32) char 1(127) char 0(127)

char 2(33) char 1(32) char 0(32)
^
|
------------------- 注意这里的变化
我们不仅改变了第二位而且把char 0 和 char 1 重新赋值为32。这就使以试验所有组合来进行密码破解所需要做的工作。
接下来这些步骤还会重复下去。一旦一个字符到达127,则其左边相邻的字符就加一,再靠左的字符保持不变,而所有后面的字符都被设为32!
简单的计算一下,为暴力破解上面的密码最多需要尝试(127-32)^3= 884736次。
当字串长度增加时,暴力破解所花费的时间会很长。你可以想象若破解一个12字符的密码的情况么?那就是(127-32)^12= 540360087662636962890625个可能的组合。
这只是你知道密码确实是12位的情况,如果密码最短是8位的,那么从8位一直尝试到12位,总共需要:
(127-32)^8
+
(127-32)^9
+
(127-32)^10
+
(127-32)^11
+
(127-32)^12
次。
可以看出在远程破解密码的时候这个办法并不值得考虑(但是在一段时间内仍然还是一个现实的方法),而对于本地密码,如果你知道密码方案并假定它是单向的(one way)可以用暴力破解(取决于你的CPU速度)。
还要记住一点就是如果密码是以加密的形式存储的,那么每次循环中产生的字符组合也需要先加密,然后尝试与暗文比较以确定其是否合正确的密码相符。由于用于认证的密码通常是单向加密的,所以上述方法就是我们唯一可用的。尽管我的例子中没有这样做,但我还是演示了如何尝试每一个可能的组合及如何这样做的规则。
你也可以通过减少字符区间,如从32-127减为比方说只包含大写字符或小写字符的方法来减少暴力破解的时间消耗,但我们这里不涉及这样做的方法。这样做仅仅是一个可能性。
下面是我写的用于此例的暴力破解引擎。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力

文章录入:ls1238    责任编辑:ls1238 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系方式 | 友 情链接 | 关于我们 | 网站留言 |
    Copyright ?2003-2007 www.cnsafer.com All Rights Reserved.
    如有意见请与我们联系 Email:admin#mail.cnsafer.com 联系QQ:8589101
    友情提示:建议使用IE6.0版本, 分辩率1024*768进行浏览
    中国安全在线 敢想 敢做 挑战自我 努力做最好
    中网科技有限公司 技术支持 鄂ICP备05006475号