发信人: gerald.bbs@bbs.nju.edu.cn (duke), 信区: cnhacker
标  题: 口令的攻击术
发信站: nju_bbs (Wed Apr 29 13:33:20 1998)
转信站: Lilac!ustcnews!nju_bbs

   黑客攻击目标时常常把破译普通用户的口令作为攻击的开始.先用
"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等专用工具可自动把英语文件转换成字典.


 防范的办法
  防范的办法很简单,只要使自己的口令不在英语字典中,且不可能被别人猜测出
就可以了. 一个好的口令应当至少有7个字符长,不要用个人信息(如生日,名字
等),口令中要有一些非字母(如数字,标点符号,控制字符等),还要好记一些,
不能写在纸上或计算机中的文件中,选择口令的一个好方法是将两个不相关的词
用一个数字或控制字符相连,并截断为8个字符.例如我以前的口令是me2.hk97


    保持口令安全的要点如下:
     *不要将口令写下来.
     *不要将口令存于电脑文件中.
     *不要选取显而易见的信息作口令.
     *不要让别人知道.
     *不要在不同系统上使用同一口令.
     *为防止眼明手快的人窃取口令,在输入口令时应确认无人在身边.
     *定期改变口令,至少6个月要改变一次.
     最后这点是十分重要的,永远不要对自己的口令过于自信,也许就在无意当
     中泄露了口令.定期地改变口令,会使自己遭受黑客攻击的风险降到了一定
     限度之内.一旦发现自己的口令不能进入计算机系统,应立即向系统管理员报
     告,由管理员来检查原因.

    系统管理员也应定期运行这些破译口令的工具,来尝试破译shadow文件,若有
用户的口令密码被破译出,说明这些用户的密码取得过于简单或有规律可循,应尽
快地通知他们,及时更正密码,以防止黑客的入侵.


--
※ 来源:.南大小百合信息交换站 bbs.nju.edu.cn.[FROM: dialup61-079.nj]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.533毫秒