论坛: 菜鸟乐园 标题: 口令攻击术 复制本贴地址    
作者: xht124016 [xht124016]    论坛用户   登录
本帖由 [NightColor] 从 << 网吧专题>> 转移而来

  黑客攻击目标时常常把破译普通用户的口令作为攻击的开始。先用"finger 远端主机名"找出主机上的用户帐号,然后就采用字典穷举法进行攻击.它的原理是这样的:网络上的用户常采用一个英语单词或自己的姓氏作为口令.通过一些程序,自动地从电脑字典中取出一个单词,作为用户的口令输入给远端的主机,申请进入系统。若口令错误,就按序取出下一个单词,进行下一个尝试,并一直循环下去,直到找到正确的口令,或字典的单词试完为止。由于这个破译过程由计算机程序来自动完成,几个小时就可以把字典的所有单词都试一遍。这类程序的典型是 LetMeIn version 2.0。若这种方法不能奏效,黑客就会仔细寻找目标的薄弱环节和漏洞,伺机夺取目标中存放口令的文件shadow或passwd。因为在现代的Unix操作系统中,用户的基本信息存放在passwd文件中,而所有的口令则经过DES加密方法加密后专门存放在一个叫shadow(影子)的文件中,并处于严密的保护之下.老版本的Unix没有shadow文件,它所有的口令都存放在passwd文件中。一旦夺取口令文件,黑客们就会用专解DES加密法的程序来解口令。好,首先先让我们把Unix口令的可能值统计一下:

  Unix一共有[0x00~0xff]共128个字符,小于0x20的都算是控制符,不能输入为口令, 0x7f 为转义符, 不能输入。那么总共有 128 - 32 - 1 = 95 个字符可作为口令的字符。也就是 10(数字)+33(标点符号)+26*2(大小写字母)=95个。如果passwd取任意5个字母+1位数字或符号(按顺序) 可能性是52*52*52*52*52*43=16,348,773,000(163亿种可能性)但如果5个字母是一个常用词,估算一下设常用词5000条,从5000个常用词中取一个词与任意一个字符组合成口令,即 5000*(2*2*2*2*2)(大小写)*43=6,880,000 (688万种可能性) 注:实际情况下绝大多数人都只用小写字符,可能性还要小.但这已经可以用微机进行穷举了,在Pentium 200上每秒可算3,4万次, 象这样简单的口令要不了3分钟. 如果有人用P200算上一周,将可进行200 亿次攻击,所以6位口令是很不可靠的,至少要用7位.可惜很多用户确实是这么设passwd的.以上只是粗略估算常见的一种情况, 实际情况还要复杂,主要是根据用户取口令格式的变化而变化.那些hacker 并不需要所有人的口令,他们得到几个用户口令就能获取系统的控制权,所以取口令过于简单是对系统安全的不负责。


  以下举个解密码程序的例子:
  John The Ripper 1.4 这个软件由著名的黑客组织--UCF出的,它支持Unix,Dos,Windows,速度超快, 可以说是目前同类中最杰出的作品.对于老式的passwd档(就是没shadow的那种, 任何人能看的都可以把 passwd密文存下来),John可以直接读取并用字典穷举击破. 对于现代的passwd+shadow的方式,John提供了UNSHADOW程序直接把两者合成出老式passwd文件。


  John 的用法简介:
(1) JOHN -P:PASSWD -W:WORDLIST WORDLIST是字典文件. PASSWD是你拿到的密码文件.
(2) 没有字典档时, 在John的配置文件-->john.ini里,有密码长度和字母、数字、符号的设置,设好 后就自动在内存里生成密码去找。这样你用软盘也可以,但机器的速度一定 要快。
(3) 用暴力法破密码时使用参数-i:all 格式为JOHN -I:ALL -P:PASSWD 就可破象5e5t56e6这样的密码了。 这样可以产生A----ZZZZZZZZ的密码,不过时间...嘿嘿....
(4) 当破解到一半因种种原因需要暂时停止破解,按ctrl+c, 下次破解不必从新来过,只要john -restore:restore即可接着破。 john在纯dos下要比在win95下快,用unix更快,
(5) 对于象a2e4u7的密码是很难破出的,但JOHN的INCREMENTAL(渐进)方式的密码组合引入了一些字母的频率统计信息,即“高频先试”的原则,倒是有些启发意义。 在JOHN.INI中INCREMENTAL中的B,M,E各行意思如下: B...Begin M...Middle E...End。如想要加一种方式, 比如字母加数字, 可以设成 [Incremental:a1] CharCount = 36 (字符的个数,这儿是26个字母+10个数字) MinLen = 8 (passwd的最小长度) MaxLen = 8 (passwd的最大长度) CharsetB = 1203984567smcbtdpajrhflgkwneiovyzuqx CharsetM = 1203984567eaiornltsuchmdgpkbyvwfzxjq CharsetE = 1203984567erynsatldoghikmcwpfubzjxvq加在john.ini里, 执行是incremental参数选a1就行了.
(6) 按Ctrl-C中止运行时,输出是这样: v: 18 c: 1295458688 t: 1:14:28:08 9% c/s: 11036 w: oentl - obftl v: 0 c: 5424000 s: 862 c/s: 6292 w: fbymgf
V:是Victory,是破解成功的个数,因为俺运行一段后,破解了2个密码,显示 了V:2,后来又破了几个,V后面的数字也相应变化。 C:Compare,是比较的次数, T:time,程序已运行了多长时间. 9%: 当前完成度.至100%即全部完成. c/s:是每秒比较的次数,随机器性能的高低而变化. W:是当前正在试的一个word,这个word可能位于你的字典中(如果你用字典的话) 或是john产生的。根据W所报告的数字可以估计破解到什么地方了。
(7) 运行需要的字典可以在internet上下载别人已做好的,如:ftp.cads.com.tw 在 /pub/security下的DICT.ZIP ftp.uni-koeln.de /pub/dictionaries/ ftp.ox.ac.uk /pub/wordlists 也可以自己做,用txt2dict或pass2dic等专用工具可自动把英语文件转换成字典.



地主 发表时间: 04-08-23 02:07

回复: bluecat_ [bluecat_]   论坛用户   登录
你在干嘛

B1层 发表时间: 04-08-23 14:37

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号