PersonalCorpus 版 (精华区)

发信人: ignorance (这片沉重的土地), 信区: Hacker
标  题: 口令破解器是怎样工作的
发信站: 紫 丁 香 (Thu Mar 23 22:07:40 2000), 转信


  要知道口令破解器是如何工作的,主要还是要知道加密算法。正
如上面所说的,许多口令破解器是对某些单词进行加密,然后在比较

  可以将口令破解器用下面的图来表示:
  
  侯选口令产生器的作用是产生认为可能是密码的单词。通常有好
几种方法产生侯选密码。一种是从一个字典里读取一个单词。这种方
法的理论根据是许多用户由于取密码有些不是很明智,比如将自己的
名字,或者用户名,或者一个好记住的单词等等。所以,攻击这通常
都将这些单词收集到一个文件里,叫做字典。在破解密码是,从这些
字典里取出侯选密码。
  另一种方法是用枚举法来产生这样的单词。通常从一个字母开始,
一直增加,知道破解出密码为止。这里,通常要指定组成密码的字符
集,比如从A-Z,0-9等等。为了便于协同破解密码,常常需要为密码
产生器指定产生的密码的范围。
  口令加密就是用一般的加密算法对从口令侯选器送来的单词进行
加密。通常,对于攻击不同的系统,要采用不同的加密算法。加密算
法有很多,通常是不可逆的。这就是造成了为什么口令破解器使用的
是这种结构。
  口令比较就是将从口令加密里出来的密文和要破解的密文进行比
较。如果一致,那么当前侯选口令发生器中出来的单词就是要找的密
码。如果不一致,则口令发生器再产生下一个侯选口令。
  下面我们分别介绍Unix和Windows 95屏幕保护程序的密码算法。
同时给出破解的源程序。另外还介绍Windows NT口令破解方法。
最后再举一个软件注册码破解实例。
  
  Unix口令破解简介
  首先讲讲怎样在Unix下得到口令文件。
  在标准的Unix系统中,口令文件是/etc/passwd。但是在使用NIS/yp
或shadow的系统时,口令数据可能放在别的地方。
  口令文件中的每一条目包含7个分号搁开的区域:
  用户名
  加密的password,口令有效期
  用户号码
  组号码
  GECOS信息
  Home目录
  Shell 
  
  下面举个实例:
  will:5fg63fhD3d5gh:9406:12:Will Spencer:/home/fsg/will:
/bin/bash

  
  上面这个条目包含了下面的信息:
  用户名: will 
  加了密的口令: 5fg63fhD3d5gh 
  用户号码: 9406 
  组号码: 12 
  GECOS信息: Will Spencer 
  Home目录: /home/fsg/will 
  Shell: /bin/bash 
  
  当入侵者拿到了这个密码文件后,就开始对密码进行破解。当用
户登录系统时,Unix将password的内容读入,并对这个密码进行加密,
并将运算结果和口令文件中的相比较。
  Unix口令破解器的基本结构就是我们前面分析的那种结构。目前
较为流行的是John程序。他运行在Windows系统下,并且能很快的破
解密码。
  那么,对于shadow的口令怎么办呢?口令shadow是指将口令文件
中的加了密的口令密文部分用一个特殊的符号表示,真正的密文放在
另一个单独的文件里,一般的用户无法读到这个文件。
  为了能读到这个文件,写一个程序,通过调用getpwent()函数来
得到这个文件。程序举例如下:
  
  #include < pwd.h> 
  main() 
  { 
  struct passwd *p; 
  while(p=getpwent()) 
  printf("%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd,

  p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell);

  } 
  
  那么这个shadow文件放在哪个目录下面呢?
  Unix Path Token 
  ---------------------------------------------------------

  HP-UX /.secure/etc/passwd * 
  IRIX 5 /etc/shadow x 
  Linux 1.1 /etc/shadow * 
  SCO Unix #.2.x /tcb/auth/files/< first letter * 
  of username>/< username> 
  SunOS4.1+c2 /etc/security/passwd.adjunct ##username 
  SunOS 5.0 /etc/shadow 
  < optional NIS+ private secure maps/tables/whatever> 
  System V Release 4.0 /etc/shadow x 
  System V Release 4.2 /etc/security/* database 
  Ultrix 4 /etc/auth[.dir|.pag] * 
  
  对于NIS/yp又怎样呢?
  现在的NIS (Network Information System)以前也叫yp (Yellow
Pages)。NIS的目的是允许一个网络上的多台计算机共享配置信息,
包括口令数据。NIS的目的是提高系统的安全性。如果你使用的系统
是NIS的,那么,口令文件相当小,看上去可能就是:
  
  +::0:0::: 
  如果要看真正的口令,需要使用命令:"ypcat passwd" 
  在有的口令文件中,还包含一项数据--口令有效期。口令有效期
的目的是促使用户在一定的时间后更改口令。这样就能提高系统的安
全性。
  /etc/passwd文件中如果保存口令有效期数据的话,这个条目看
上去是这样的。
  will:5fg63fhD3d,M.z8:9406:12:Will Spencer:/home/fsg/will:
/bin/bash

  
  上面这个条目中,密文后面有一个逗号,逗号后面的便是口令有
效期了。这里是:
  M.z8 
  
  对这四个字符的解释如下:
  1.口令可以不改变而存在的最大的周数。
  2.口令在改变之前必须使用的最小的周数。
  3&4.口令上次改变的时间,以从1970年算起的周数。
  
  如果1和2设置成"..",表示,下次登录的时候,必须改变口令了
。随后口令管理程序会将口令有效期移去,这样,用户以后就没有口
令有效期的限制了。
  如果3和4设置成"..",表示下次登录时,必须改变口令。口令有
效期由前两个字符表示。
  如果第一个字符小于第二个字符,就不允许用户改变口令了。只
有root才有权力改变这个用户的口令。必须注意,su命令并不检查口
令有效期。一个过期的口令可以在使用su是,没有被迫改变口令的要
求。
  
  口令有效期代码
  +--------------------------------------------------------+

  | | 
  | Character: . / 0 1 2 3 4 5 6 7 8 9 A B C D E F G H | 
  | Number: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
19 | 
  | | 
  | Character: I J K L M N O P Q R S T U V W X Y Z a b | 
  | Number: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
36 37 38 39 | 
  | | 
  | Character: c d e f g h i j k l m n o p q r s t u v | 
  | Number: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
56 57 58 59 | 
  | | 
  | Character: w x y z | 
  | Number: 60 61 62 63 | 
  | | 
  +------------------------------------------------------+

  
  Windows 95屏幕保护口令密码破解简介
  Window95共享目录口令与屏幕保护口令的加密方法是相同的。共
享目录的口令密文放在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\micorsoft\windows\current_version
\network\lanman\
目录名\Parm1enc和Parm2enc两位置,但有时注册库里缺少最后一个字
符的密文。明文与数列(前八个数是35,9a,4d,a6,53,a9,d4,6a)作异
或运算即得密文。屏幕保护程序的口令密文放在注册表的HKEY_CURRENT_USERS\ControlPanel\desktop\ScreenSave_Data
下面。
  关于PWL文件的一些说明:14个字符长的密码(均转为大写),用
它生成一个32位的密钥,由以下算法求得一个XOR串,接下来用此XOR
串XOR 20字节长的UserName(也转为大写),结果存于PWL文件offset 0x208-0x21B,
0x21C开始为一系列指向资源串的指针(当然已XOR过了)。资源串中
保存的主要是该USER的一些共享目录的口令,资源串也分别与XOR串XOR

  由注册表数据库system.dat极易解出共享目录,因此若Win95目录
被共享(不需口令)则解出其余需口令的目录就变得比较简单了。但Win95
目录没共享怎么办呢?用一个叫glide的程序,对从将别的机器上拷
回来的PWL文件进行解密。用glide解其资源,很有可能找到所需的password

  


--
                     天空是蔚蓝的。                                             
                     蔚蓝的天空中,有一只快乐的鸟儿在飞翔.....                  
                     这样的世界是美丽的,                                       
                     这样的生活是值得赞美的!                                   

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: music.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.240毫秒