其实即便是一个暴力破解法,对一些有一定复杂度的密码也是素手无策的,尽管电脑运算速度很快,但是并不足以快到可以用有限短的时间处理巨多亿次的测试运算,为什么这么说?举个例子,假设密码只有8位,每位可能是26个字母(分大小写就是52种),加上10个数,在加上一些特殊字符(如@#$%^等等,假设只有10个,其实不止),也就是每位上的可能性就有52+10+10=72,8位遍历就是72的8次方, 也就是大约600万亿!!!所有,这样去破解密码,通常是不可能的,那么这就是所谓字典档和密码规则设定来减少这种遍历。
首先解释字典档,字典档是黑客认为一些网络用户所经常使用的密码,以及以前曾经通过各种手段所获取的密码,集合在一起的的一个文本文件,破解器程序就会自动逐一顺序进行测试,也就是说,只有被破解用户的密码存在于字典档中,才会被这种方式所找到,千万不要小看这个看上去满守株待兔的方法,由于网络上经常有不同的黑客彼此交换字典档,因此一份网上流传的字典档,通常是包含了很多很多黑客经验的累积,对于安全意识不高的用户,破解率是很高的。
规则破解也是一种非常有效的方式,这里面还会具体分为两种,一种是与帐号关联的规则,另外一种是与帐号无关的规则,与帐号关联的规则,比如注册帐号test,注册密码test123这样的(是不是很多人有这个习惯?), 那简直是任何一个破解器的简单规则都可以胜任的;与帐号无关的,通常是有限度遍历模式,比如日期类型8位数字(如19730221)或6位数字(如780112)遍历或两位字母+六位数字遍历,(我知道很多朋友喜欢用生日做密码,那可真就不妙了),或者13+8个数字遍历(用手机号码做密码的朋友小心了),以及6位任意数字遍历,6位小写字母遍历(对付那些密码简单的朋友),2位字母+四位任意数字密码混排遍历(如ma1234),1位字母+4-5位数字混排遍历(如s7564),这些都是比较容易出彩的规则,按照规则遍历,是黑客对用户心理的一种考验,一些用户图好记而采用的密码,也就是黑客最容易想到和突破的了。
以上是破解的原理,破解的途径也分为两种,一种是通过通讯程序远程试探,这种效率比较低,但是门槛也非常低,你不需要对对方服务器有太深入了解,只要知道一个用户帐号和登陆入口就可以开始了;另外一种是通过密码文件在本地破解,密码文件,可能是通过嗅探获得(比如加密传输的密码,明文传输的就无须破解了),可能是通过某个系统漏洞获得,可能是通过CGI漏洞获取,可能是因为本人就具有主机的普通用户权限,可以阅读密码文件(对于一些未经安全配置的linux,普通用户通常可以在/etc/passwd中看到全部用户密文的密码),有的读者就奇怪了,如果我拿到密码文件了,又知道加密算法(是呀,现在的加密算法几乎全是公开的),直接解密不就ok了?干吗要一个一个试探?这里涉及了一个数学问题,就是密码的加密算法通常是单向散列函数,也就是不可逆的(顺便,邮件的加密算法是可逆的,否则邮件接收人就无法打开邮件了,但是可逆的前提是需要私人密钥,这里就不多做解释了),举个例子,取模(整除后的余数)就是一个不可逆计算(18 mod 7 =4 ,不能通过x mod 7=4 推导出x=18,这就是不可逆),当然加密算法不会只是取模的这么简单,但是限于笔者水平,也就不在这里拓展讨论,让专家取笑了。
攻击手段:
远程通讯法:
第一,确立攻击目标,凡是需要帐号密码输入的地方都可以是攻击目标,不管是web的,还是pop的,telnet的,甚至加密传输的诸如ssh的也都可以进行这种方式的攻击
第二,建立socket通信,为提高效率,通常是多进程
第三,输入正确的帐号(连对方的帐号都不知道,那你攻击谁呀?)
第四,通过字典档或规则生成的待测试的密码
第五,发送密码,取得验证反馈
第六,拒绝密码,重复第四步起,如果密码通过,程序停止,显示密码
文章转载地址:http://www.cnpaf.net/Class/hack/06101110491459986111.html