荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: playboy (冷冷的太阳), 信区: Program
标  题: [转载] 口令破解器是怎样工作的
发信站: BBS 荔园晨风站 (Fri Mar 17 21:13:14 2000), 转信

【 以下文字转载自 Hacker 讨论区 】
【 原文由 bstone 所发表 】
发信人: wanghai (笨小孩), 信区: Security
标  题: 口令破解器是怎样工作的
发信站: 武汉白云黄鹤站 (Fri Mar 17 07:40:54 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()函数来
  为了能读到这个文件,写一个程序,通过调用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>
  < 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
  | 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\cu
rrent_version
\network\lanman\
目录名\Parm1enc和Parm2enc两位置,但有时注册库里缺少最后一个字
符的密文。明文与数列(前八个数是35,9a,4d,a6,53,a9,d4,6a)作异
符的密文。明文与数列(前八个数是35,9a,4d,a6,53,a9,d4,6a)作异
或运算即得密文。屏幕保护程序的口令密文放在注册表的HKEY_CURRENT_USERS\Control
Panel\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

--
                   \                    /
                    \       ╭╮       /
                     \____╱/__\╲____/
 ●════╤══╤═\    ╲╲╱╱    /═╤══╤════●
           ╳    ●   \____/\  /\____/   ●    ╳
                             ▽

或运算即得密文。屏幕保护程序的口令密文放在注册表的HKEY_CURRENT_USERS\Control
※ 来源:.武汉白云黄鹤站 bbs.whnet.edu.cn.[FROM: 202.114.11.20]

--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@192.168.28.23]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.90]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店