来源:http://hackbase.com
由于Unix是Internet最流行
![](/icons/90345de.gif)
服务器操作系统
![](/icons/90345dou.gif)
因此它
![](/icons/90345de.gif)
安全性倍受关注
![](/icons/90345dou2.gif)
这种安全主要靠口令实现
![](/icons/90345dou2.gif)
Unix
![](/icons/90345de.gif)
口令仅仅存储在
![](/icons/90345yi.gif)
个加密后
![](/icons/90345de.gif)
文本文件中
![](/icons/90345dou.gif)
文件
![](/icons/90345yi.gif)
般储存在/etc目录下
![](/icons/90345dou.gif)
名称为passwd
![](/icons/90345dou2.gif)
历史上
![](/icons/90345dou.gif)
Unix口令加密算法曾经历过几次修正
![](/icons/90345dou.gif)
现在普遍采用DES算法
![](/icons/90345dou2.gif)
用DES算法对口令文件进行25次加密
![](/icons/90345dou2.gif)
而对每次DES加密产生
![](/icons/90345de.gif)
结果
![](/icons/90345dou.gif)
都要用2
![](/icons/90345de.gif)
56次方次查找和匹配才能进行
![](/icons/90345yi.gif)
次遍历
![](/icons/90345dou.gif)
所以理论上要破解这样
![](/icons/90345de.gif)
口令
![](/icons/90345dou.gif)
其工作量是很大
![](/icons/90345de.gif)
本文先介绍Unix 口令文件
![](/icons/90345de.gif)
格式以及口令加密
![](/icons/90345de.gif)
原理;接着讲述如何构造
![](/icons/90345yi.gif)
个口令Crack
![](/icons/90345chengxu.gif)
;最后以John the Ripper做口令攻击
![](/icons/90345de.gif)
测试
![](/icons/90345dou.gif)
分析实验结果
![](/icons/90345dou.gif)
并给出口令安全
![](/icons/90345de.gif)
建议
1.1 Unix 口令文件
![](/icons/90345de.gif)
格式及安全机制
/etc/passwd文件是Unix安全
![](/icons/90345de.gif)
关键文件的
![](/icons/90345yi.gif)
![](/icons/90345dou.gif)
在区别
![](/icons/90345de.gif)
Unix系统中
![](/icons/90345dou.gif)
它
![](/icons/90345de.gif)
存储路径略有区别
![](/icons/90345dou.gif)
参见表5.1
![](/icons/90345dou2.gif)
该文件用于用户登录时校验用户
![](/icons/90345de.gif)
口令
![](/icons/90345dou.gif)
仅对root权限可写
表1.1 区别Unix系统中口令文件
![](/icons/90345de.gif)
存储路径
Unix系统 路径
UNICOS /etc/udb
Ultrix4 /etc/auth
![](/icons/90345System.gif)
V Release 4.2 /etc/security
![](/icons/90345System.gif)
V Release 4.0 /etc/shadow
SunOS 5.0 /etc/shadow
SCOUnix /tcb/auth/files/
OSF/1 /etc/passwd
Linux1.1 /etc/shadow
HP-UX /.secure/etc/passwd
BSD4.3 /etc/master.passwd
AIX3 /etc/security/passwd
IRIX5 /etc/shadow
口令文件中每行代表
![](/icons/90345yi.gif)
个用户条目
![](/icons/90345dou.gif)
格式为:
LOGNAME : PASSWORD : UID : GID : USERINFO : HOME : SHELL
每行
![](/icons/90345de.gif)
头两项是登录名和加密后
![](/icons/90345de.gif)
口令
![](/icons/90345dou.gif)
后面
![](/icons/90345de.gif)
两个数是UID和GID
![](/icons/90345dou.gif)
接着
![](/icons/90345de.gif)
![](/icons/90345yi.gif)
项是系统管理员想写入
![](/icons/90345de.gif)
有关该用户
![](/icons/90345de.gif)
任何信息
![](/icons/90345dou.gif)
最后两项是两个路径名:
![](/icons/90345yi.gif)
个是分配给用户
![](/icons/90345de.gif)
Home目录
![](/icons/90345dou.gif)
第 2个是用户登录后将执行
![](/icons/90345de.gif)
shell(若为空格则缺省为/bin/sh)
![](/icons/90345dou2.gif)
例如
![](/icons/90345dou.gif)
在口令文件中
![](/icons/90345dou.gif)
它
![](/icons/90345de.gif)
Root用户
![](/icons/90345de.gif)
条目为:
root : xyDfccTrt180x
![](/icons/90345dou.gif)
M.y8 : 0 : 0 : admin : / : /bin/sh
则
![](/icons/90345dou.gif)
它
![](/icons/90345de.gif)
含义如表1.2所示
表1.2 /etc/passwd文件中各个域
![](/icons/90345de.gif)
含义
域 含义
Root 用户名
XyDfccTrt180x
![](/icons/90345dou.gif)
M.y8 加密
![](/icons/90345de.gif)
口令
0 用户ID(UID)
0 用户
![](/icons/90345de.gif)
组ID(GID)
Admin 用户
![](/icons/90345de.gif)
全名
/ 用户
![](/icons/90345de.gif)
主目录
/bin/sh 用户
![](/icons/90345de.gif)
Shell
在目前
![](/icons/90345de.gif)
多数Unix系统中
![](/icons/90345dou.gif)
口令文件都做了Shadow变换
![](/icons/90345dou.gif)
即把/etc/passwd文件中
![](/icons/90345de.gif)
口令域分离出来
![](/icons/90345dou.gif)
单独存在/etc/shadow文件中
![](/icons/90345dou.gif)
并加强对shadow
![](/icons/90345de.gif)
保护
![](/icons/90345dou.gif)
以增强口令安全
![](/icons/90345dou2.gif)
因而
![](/icons/90345dou.gif)
在破解时
![](/icons/90345dou.gif)
需要做UnShadow变换
![](/icons/90345dou.gif)
将/etc/passwd和/etc/shadow文件合 2为
![](/icons/90345yi.gif)
1.1.1 口令加密
![](/icons/90345de.gif)
机理
Unix系统使用
![](/icons/90345yi.gif)
个单向
![](/icons/90345hanshu.gif)
crypt
![](/icons/90345kh.gif)
![](/icons/90345dou.gif)
来加密用户
![](/icons/90345de.gif)
口令
![](/icons/90345dou2.gif)
单向
![](/icons/90345hanshu.gif)
crypt
![](/icons/90345kh.gif)
从数学原理上保证了从加密
![](/icons/90345de.gif)
密文得到加密前
![](/icons/90345de.gif)
明文是不可能
![](/icons/90345de.gif)
或是非常困难
![](/icons/90345de.gif)
![](/icons/90345dou2.gif)
当用户登录时
![](/icons/90345dou.gif)
系统并不是去解密已加密
![](/icons/90345de.gif)
口令
![](/icons/90345dou.gif)
而是将输入
![](/icons/90345de.gif)
口令明文
![](/icons/90345zifu.gif)
串传给加密
![](/icons/90345hanshu.gif)
![](/icons/90345dou.gif)
将加密
![](/icons/90345hanshu.gif)
![](/icons/90345de.gif)
输出和/etc/passwd文件中该用户条目
![](/icons/90345de.gif)
PASSWORD域进行比较
![](/icons/90345dou.gif)
若匹配成功
![](/icons/90345dou.gif)
则允许用户登录系统
Crypt
![](/icons/90345kh.gif)
![](/icons/90345de.gif)
加密算法基于资料加密标准DES
![](/icons/90345dou.gif)
它将用户输入
![](/icons/90345de.gif)
口令作为密钥
![](/icons/90345dou.gif)
加密
![](/icons/90345yi.gif)
个64bit
![](/icons/90345de.gif)
0/1串
![](/icons/90345dou.gif)
加密
![](/icons/90345de.gif)
结果又使用用户
![](/icons/90345de.gif)
口令再次加密;重复该过程
![](/icons/90345dou.gif)
![](/icons/90345yi.gif)
共进行25次
![](/icons/90345dou2.gif)
最后
![](/icons/90345de.gif)
输出为
![](/icons/90345yi.gif)
个11
![](/icons/90345byte.gif)
![](/icons/90345de.gif)
![](/icons/90345zifu.gif)
串
![](/icons/90345dou.gif)
存放在/etc/passwd
![](/icons/90345de.gif)
PASSWORD域
Morris和Thompson修改了crypt
![](/icons/90345kh.gif)
![](/icons/90345hanshu.gif)
![](/icons/90345de.gif)
实现
![](/icons/90345dou2.gif)
现在Unix系统中使用
![](/icons/90345de.gif)
加密
![](/icons/90345hanshu.gif)
原型如下:
Char *crypt(char *salt, char *passwd)
Salt是
![](/icons/90345yi.gif)
个12位长
![](/icons/90345de.gif)
数字
![](/icons/90345dou.gif)
取值范围为0到4095
![](/icons/90345dou2.gif)
它略改变了DES
![](/icons/90345de.gif)
输出
![](/icons/90345dou.gif)
4096个区别
![](/icons/90345de.gif)
salt值使同
![](/icons/90345yi.gif)
个口令产生区别
![](/icons/90345de.gif)
输出
![](/icons/90345dou2.gif)
当改变口令时
![](/icons/90345dou.gif)
系统选择当天
![](/icons/90345de.gif)
![](/icons/90345yi.gif)
个时间
![](/icons/90345dou.gif)
得到
![](/icons/90345yi.gif)
个salt数值
![](/icons/90345dou2.gif)
该salt被存放在加密口令
![](/icons/90345de.gif)
最前面
![](/icons/90345dou2.gif)
因此
![](/icons/90345dou.gif)
passwd文件存放
![](/icons/90345de.gif)
密文口令是13位
![](/icons/90345dou2.gif)
![](/icons/90345yi.gif)
些Unix系统
![](/icons/90345dou.gif)
例如:HP-UX
![](/icons/90345dou.gif)
Ultrix和BSD4.4
![](/icons/90345dou.gif)
使用了16位或更长
![](/icons/90345de.gif)
salt值
![](/icons/90345dou.gif)
这种算法称为bigcrypt
![](/icons/90345kh.gif)
或crypt16
![](/icons/90345kh.gif)
![](/icons/90345dou2.gif)
1.1.2 口令时效
/etc/passwd文件
![](/icons/90345de.gif)
格式使系统管理员能要求用户定期地改变他们
![](/icons/90345de.gif)
口令
![](/icons/90345dou2.gif)
在口令文件中可以看到
![](/icons/90345dou.gif)
有些加密后
![](/icons/90345de.gif)
口令有逗号
![](/icons/90345dou.gif)
逗号后有几个
![](/icons/90345zifu.gif)
和
![](/icons/90345yi.gif)
个冒号
![](/icons/90345dou2.gif)
如:root : xyDfccTrt180x
![](/icons/90345dou.gif)
M.y8 : 0 : 0 : admin : / : /bin/sh
ruan : pomJk109Jky41
![](/icons/90345dou.gif)
.1 : 0 : 0 : admin : / : /bin/sh dcs : xmotTVoyumjls : 0: 0 : admin : / : /bin/sh
可以看到
![](/icons/90345dou.gif)
yjb
![](/icons/90345de.gif)
口令逗号后有4个
![](/icons/90345zifu.gif)
![](/icons/90345dou.gif)
ruan有2个
![](/icons/90345dou.gif)
dcs没有逗号
![](/icons/90345dou2.gif)
逗号后第
![](/icons/90345yi.gif)
个
![](/icons/90345zifu.gif)
是口令有效期
![](/icons/90345de.gif)
最大周数
![](/icons/90345dou.gif)
第 2个
![](/icons/90345zifu.gif)
决定了用户再次修改口令的前
![](/icons/90345dou.gif)
原口令应使用
![](/icons/90345de.gif)
最小周数(防止用户修改新口令后立刻又改回成老口令)
![](/icons/90345dou2.gif)
其余
![](/icons/90345zifu.gif)
表明口令最新修改时间
![](/icons/90345dou2.gif)
要能读懂口令中逗号后
![](/icons/90345de.gif)
信息
![](/icons/90345dou.gif)
必须首先知道如何用passwd_esc计数
![](/icons/90345dou.gif)
计数
![](/icons/90345de.gif)
思路方法是: . = 0
![](/icons/90345dou.gif)
/ = 1
![](/icons/90345dou.gif)
0-9 = 2-11
![](/icons/90345dou.gif)
A-Z = 12-37
![](/icons/90345dou.gif)
a-z= 38-63
系统管理员必须将前两个
![](/icons/90345zifu.gif)
放进 /etc/passwd文件
![](/icons/90345dou.gif)
以要求用户定期
![](/icons/90345de.gif)
修改口令
![](/icons/90345dou.gif)
另外两个
![](/icons/90345zifu.gif)
当用户修改口令时
![](/icons/90345dou.gif)
由passwd命令填入
![](/icons/90345dou2.gif)
若想让用户修改口令
![](/icons/90345dou.gif)
可在最后
![](/icons/90345yi.gif)
次口令被修改时
![](/icons/90345dou.gif)
放两个"."
![](/icons/90345dou.gif)
则下
![](/icons/90345yi.gif)
次用户登录时将被要求修改自己
![](/icons/90345de.gif)
口令
有两种特殊情况:
1. 最大周数(第
![](/icons/90345yi.gif)
个
![](/icons/90345zifu.gif)
)小于最小周数(第 2个
![](/icons/90345zifu.gif)
)
![](/icons/90345dou.gif)
则不允许用户修改口令
![](/icons/90345dou.gif)
仅超级用户可以修改用户
![](/icons/90345de.gif)
口令
2. 第
![](/icons/90345yi.gif)
个
![](/icons/90345zifu.gif)
和第 2个
![](/icons/90345zifu.gif)
都是"."
![](/icons/90345dou.gif)
这时用户下次登录时被要求修改口令
![](/icons/90345dou.gif)
修改口令后
![](/icons/90345dou.gif)
passwd命令将"."删除
![](/icons/90345dou.gif)
此后再不会要求用户修改口令
1.1.3 UID和GID
/etc/passwd中UID信息很重要
![](/icons/90345dou.gif)
系统使用UID而不是登录名区别用户
![](/icons/90345dou2.gif)
![](/icons/90345yi.gif)
般来说
![](/icons/90345dou.gif)
用户
![](/icons/90345de.gif)
UID应当是独
![](/icons/90345yi.gif)
无 2
![](/icons/90345de.gif)
![](/icons/90345dou.gif)
其它用户不应当有相同
![](/icons/90345de.gif)
UID数值
![](/icons/90345dou2.gif)
根据惯例
![](/icons/90345dou.gif)
从0到99
![](/icons/90345de.gif)
UID保留用作系统用户
![](/icons/90345de.gif)
UID(root
![](/icons/90345dou.gif)
bin
![](/icons/90345dou.gif)
uucp等)
![](/icons/90345dou2.gif)
如果在/etc/passwd文件中有两个区别
![](/icons/90345de.gif)
入口项有相同
![](/icons/90345de.gif)
UID
![](/icons/90345dou.gif)
则这两个用户对相互
![](/icons/90345de.gif)
文件具有相同
![](/icons/90345de.gif)
存取权限
/etc/group文件含有有关用户组
![](/icons/90345de.gif)
信息
![](/icons/90345dou.gif)
/etc/passwd中
![](/icons/90345de.gif)
每个GID在本文件中应当有相应
![](/icons/90345de.gif)
入口项
![](/icons/90345dou.gif)
入口项中列出了组名和组中
![](/icons/90345de.gif)
用户
![](/icons/90345dou2.gif)
这样可方便地了解每个组
![](/icons/90345de.gif)
用户
![](/icons/90345dou.gif)
否则必须根据GID在/etc/passwd文件中从头至尾地寻找同组用户
/etc/group文件对组
![](/icons/90345de.gif)
许可权限
![](/icons/90345de.gif)
控制并不是必要
![](/icons/90345de.gif)
![](/icons/90345dou.gif)
![](/icons/90345yinwei.gif)
系统用UID
![](/icons/90345dou.gif)
GID(取自/etc/passwd)决定文件存取权限
![](/icons/90345dou.gif)
即使/etc/group文件不存在于系统中
![](/icons/90345dou.gif)
具有相同
![](/icons/90345de.gif)
GID用户也可以组
![](/icons/90345de.gif)
存取许可权限共享文档
用户组和登录用户
![](/icons/90345yi.gif)
样可以拥有口令
![](/icons/90345dou2.gif)
如果/etc/group文件入口项
![](/icons/90345de.gif)
第 2个域为非空
![](/icons/90345dou.gif)
则将被认为是加密口令
![](/icons/90345dou.gif)
![](/icons/90345new.gif)
grp命令将要求用户给出口令
![](/icons/90345dou.gif)
然后将口令加密
![](/icons/90345dou.gif)
再和该域
![](/icons/90345de.gif)
加密口令比较
给组建立口令
![](/icons/90345yi.gif)
般不是个好作法
![](/icons/90345dou2.gif)
第
![](/icons/90345yi.gif)
![](/icons/90345dou.gif)
如果组内共享文档
![](/icons/90345dou.gif)
若有某人猜着组口令
![](/icons/90345dou.gif)
则该组
![](/icons/90345de.gif)
所有用户
![](/icons/90345de.gif)
文件就可能泄漏;其次
![](/icons/90345dou.gif)
管理组口令很费事
![](/icons/90345dou.gif)
![](/icons/90345yinwei.gif)
对于组没有类似
![](/icons/90345de.gif)
passwd命令
![](/icons/90345dou2.gif)
可用/usr/lib/makekey生成
![](/icons/90345yi.gif)
个口令写入/etc/group
以下情况必须建立新组:
1. 可能要增加新用户
![](/icons/90345dou.gif)
该用户不属于任何
![](/icons/90345yi.gif)
个现有
![](/icons/90345de.gif)
组
2. 有
![](/icons/90345de.gif)
用户可能时常需要独自为
![](/icons/90345yi.gif)
个组
3. 有
![](/icons/90345de.gif)
用户可能有
![](/icons/90345yi.gif)
个SGID
![](/icons/90345chengxu.gif)
![](/icons/90345dou.gif)
需要独自为
![](/icons/90345yi.gif)
个组
4. 有时可能要安装运行SGID
![](/icons/90345de.gif)
软件Software系统
![](/icons/90345dou.gif)
该软件Software系统需要建立
![](/icons/90345yi.gif)
个新组
要增加
![](/icons/90345yi.gif)
个新组
![](/icons/90345dou.gif)
必须编辑该文件
![](/icons/90345dou.gif)
为新组加
![](/icons/90345yi.gif)
个入口项
![](/icons/90345dou2.gif)
由于用户登录时
![](/icons/90345dou.gif)
系统从/etc/passwd文件中取GID
![](/icons/90345dou.gif)
而不是从/etc/group中取GID
![](/icons/90345dou.gif)
所以group文件和口令文件应当具有
![](/icons/90345yi.gif)
致性
![](/icons/90345dou2.gif)
对于
![](/icons/90345yi.gif)
个用户
![](/icons/90345de.gif)
组
![](/icons/90345dou.gif)
UID和GID应当是相同
![](/icons/90345de.gif)
![](/icons/90345dou2.gif)
多用户组
![](/icons/90345de.gif)
GID应当区别于任何用户
![](/icons/90345de.gif)
UID
![](/icons/90345dou.gif)
![](/icons/90345yi.gif)
般为5位数
![](/icons/90345dou.gif)
这样在查看/etc/passwd文件时
![](/icons/90345dou.gif)
就可根据5位资料
![](/icons/90345de.gif)
GID识别多用户组
![](/icons/90345dou.gif)
这将减少增加新组、新用户时可能产生
![](/icons/90345de.gif)
混淆
1.2 构造
![](/icons/90345yi.gif)
个Crack
在口令
![](/icons/90345de.gif)
设置过程中
![](/icons/90345dou.gif)
有许多个人原因在起作用
![](/icons/90345dou.gif)
可以利用这些原因来帮助解密
![](/icons/90345dou2.gif)
由于口令安全性
![](/icons/90345de.gif)
考虑
![](/icons/90345dou.gif)
禁止把口令写在纸上
![](/icons/90345dou.gif)
因此很多人都设法使自己
![](/icons/90345de.gif)
口令容易记忆
![](/icons/90345dou.gif)
这就给黑客提供了可乘的机
贝尔实验室
![](/icons/90345de.gif)
计算机安全专家R.Morris和K.Thompson提出了这样
![](/icons/90345yi.gif)
种攻击
![](/icons/90345de.gif)
可能性:可以根据用户
![](/icons/90345de.gif)
信息建立
![](/icons/90345yi.gif)
个他可能使用
![](/icons/90345de.gif)
口令
![](/icons/90345de.gif)
字典
![](/icons/90345dou.gif)
比如:个人
![](/icons/90345de.gif)
姓名、生日或姓名
![](/icons/90345dou.gif)
街道
![](/icons/90345de.gif)
号码等
![](/icons/90345dou2.gif)
然后
![](/icons/90345dou.gif)
每次取出
![](/icons/90345yi.gif)
个条目经过crypt
![](/icons/90345kh.gif)
![](/icons/90345hanshu.gif)
变换
![](/icons/90345dou.gif)
并和口令文件
![](/icons/90345de.gif)
密文口令匹配
![](/icons/90345dou.gif)
若
![](/icons/90345yi.gif)
致
![](/icons/90345dou.gif)
口令就被破解了
![](/icons/90345dou2.gif)
![](/icons/90345yi.gif)
般说来
![](/icons/90345dou.gif)
这种攻击策略是很有效
![](/icons/90345de.gif)
1.2.1 蛮力攻击和字典攻击
构造
![](/icons/90345yi.gif)
个Crack
![](/icons/90345chengxu.gif)
![](/icons/90345dou.gif)
有两种思路方法可选择
![](/icons/90345dou.gif)
![](/icons/90345yi.gif)
种是使用蛮力攻击
![](/icons/90345dou.gif)
另
![](/icons/90345yi.gif)
种是字典攻击
![](/icons/90345dou2.gif)
下面
![](/icons/90345dou.gif)
分别估算
![](/icons/90345yi.gif)
下它们
![](/icons/90345de.gif)
效率
Unix
![](/icons/90345yi.gif)
共是 [0x00~0xff] 共128个
![](/icons/90345zifu.gif)
![](/icons/90345dou.gif)
小于0x20
![](/icons/90345de.gif)
都是控制符
![](/icons/90345dou.gif)
不能输入为 口令, 0x7f 为转义符, 不能输入
![](/icons/90345dou2.gif)
那么总共128- 32 - 1 = 95 个
![](/icons/90345zifu.gif)
可作为口令
![](/icons/90345de.gif)
![](/icons/90345zifu.gif)
![](/icons/90345dou2.gif)
即10(数字)+33(标点符号)+26*2(大小写字母) = 95个
首先估算蛮力攻击
![](/icons/90345de.gif)
尝试次数
![](/icons/90345dou2.gif)
很显然
![](/icons/90345dou.gif)
该值为m
![](/icons/90345de.gif)
n次幂
![](/icons/90345dou2.gif)
其中
![](/icons/90345dou.gif)
基数m为可能使用
![](/icons/90345de.gif)
![](/icons/90345zifu.gif)
集
![](/icons/90345de.gif)
大小;幂次n为口令
![](/icons/90345de.gif)
长度
![](/icons/90345dou2.gif)
分下面几种情形讨论:
仅使用字母
![](/icons/90345de.gif)
组合序列
![](/icons/90345dou.gif)
则m = 26*2 = 52
使用字母数字
![](/icons/90345de.gif)
组合序列
![](/icons/90345dou.gif)
则m = 52 + 10 = 62
使用字母数字以及特殊
![](/icons/90345zifu.gif)
![](/icons/90345de.gif)
组合序列
![](/icons/90345dou.gif)
则m = 95
表1.3列举几个例子
![](/icons/90345dou.gif)
计算所需
![](/icons/90345de.gif)
尝试次数K
![](/icons/90345dou.gif)
对其数值大小得到
![](/icons/90345yi.gif)
个较确切
![](/icons/90345de.gif)
印象
表1.3 区别
![](/icons/90345zifu.gif)
集和长度
![](/icons/90345de.gif)
口令尝试次数
M N K 52
5 38,0204,032
52 6 19,770,609,664
52 7 1,028,071,702,528
62 5 916,132,832
62 6 56,800,235,584
62 7 3,521,614,606,208
95 5 7,737,809,375
95 6 735,091,890,625
95 7 69,833,729,609,375
从该表中可以看出
![](/icons/90345dou.gif)
随着
![](/icons/90345zifu.gif)
集
![](/icons/90345de.gif)
扩大和口令长度
![](/icons/90345de.gif)
增大
![](/icons/90345dou.gif)
所需
![](/icons/90345de.gif)
尝试次数明显增加
![](/icons/90345dou2.gif)
选择尽量大
![](/icons/90345de.gif)
![](/icons/90345zifu.gif)
集和较长
![](/icons/90345de.gif)
口令
![](/icons/90345dou.gif)
能获得较高
![](/icons/90345de.gif)
口令安全
但如果5个字母是
![](/icons/90345yi.gif)
个常用汉字
![](/icons/90345de.gif)
拼音或英文单词
![](/icons/90345dou.gif)
估算
![](/icons/90345yi.gif)
下设常用词10000条, 从10000个常用词中取
![](/icons/90345yi.gif)
个词和任意
![](/icons/90345yi.gif)
个数字
![](/icons/90345zifu.gif)
组合成口令,即:10000* 10 = 100000 (10万种可能性)
![](/icons/90345dou2.gif)
因此
![](/icons/90345dou.gif)
借助于资料字典
![](/icons/90345de.gif)
帮助
![](/icons/90345dou.gif)
可以使Crack
![](/icons/90345de.gif)
效率大大提高
1.2.2 数据字典
目前
![](/icons/90345dou.gif)
在因特网上
![](/icons/90345dou.gif)
有
![](/icons/90345yi.gif)
些数据字典可以下载
![](/icons/90345dou.gif)
包含
![](/icons/90345de.gif)
条目从1万到几十万条
![](/icons/90345dou2.gif)
数据字典
![](/icons/90345yi.gif)
般囊括了常用
![](/icons/90345de.gif)
单词
也许有人认为:我
![](/icons/90345de.gif)
口令毫无规律可言
![](/icons/90345dou.gif)
字典中不会有
![](/icons/90345dou.gif)
因此
![](/icons/90345dou.gif)
计算机是破译不了
![](/icons/90345de.gif)
![](/icons/90345dou.gif)
那就大错特错了
![](/icons/90345dou2.gif)
有很多专门生成字典
![](/icons/90345de.gif)
![](/icons/90345chengxu.gif)
![](/icons/90345dou.gif)
比如:Dictmake、txt2dict等等
![](/icons/90345dou2.gif)
以dictmake为例:启动
![](/icons/90345chengxu.gif)
后
![](/icons/90345dou.gif)
计算机会要求输入最小口令长度、最大口令长度、口令包含
![](/icons/90345de.gif)
小写
![](/icons/90345zifu.gif)
、大写
![](/icons/90345zifu.gif)
、数字、有没有空格、含不含标点符号和特殊
![](/icons/90345zifu.gif)
等
![](/icons/90345yi.gif)
系列
![](/icons/90345de.gif)
问题
![](/icons/90345dou2.gif)
当回答完了计算机提出
![](/icons/90345de.gif)
问题后
![](/icons/90345dou.gif)
计算机就会按照给定
![](/icons/90345de.gif)
条件自动将所有
![](/icons/90345de.gif)
组合方式列出来并存到文件中
![](/icons/90345dou.gif)
而这个文件就是资料字典
1.2.3 读写口令文件
![](/icons/90345de.gif)
![](/icons/90345yi.gif)
组子
为了对/etc/passwd文件进行方便
![](/icons/90345de.gif)
存取
![](/icons/90345dou.gif)
我编写了
![](/icons/90345yi.gif)
组访问/etc/passwd文件
![](/icons/90345de.gif)
子
![](/icons/90345chengxu.gif)
![](/icons/90345dou2.gif)
可读取文件
![](/icons/90345de.gif)
用户条目入口项或写入新
![](/icons/90345de.gif)
用户条目等
![](/icons/90345dou2.gif)
这组子
![](/icons/90345chengxu.gif)
可用于编写Crack
![](/icons/90345chengxu.gif)
Getpwuid
![](/icons/90345kh.gif)
![](/icons/90345hanshu.gif)
即可从/etc/passwd文件中获取指定
![](/icons/90345de.gif)
UID
![](/icons/90345de.gif)
用户条目
![](/icons/90345dou2.gif)
Getpwnam
![](/icons/90345kh.gif)
![](/icons/90345hanshu.gif)
则对于指定
![](/icons/90345de.gif)
登录名
![](/icons/90345dou.gif)
在/etc/passwd文件检索用户条目
![](/icons/90345dou2.gif)
getpwent
![](/icons/90345kh.gif)
![](/icons/90345dou.gif)
![](/icons/90345set.gif)
pwent
![](/icons/90345kh.gif)
![](/icons/90345dou.gif)
endpwent
![](/icons/90345kh.gif)
等
![](/icons/90345hanshu.gif)
则可对口令文件作后续处理
Getpwuid
![](/icons/90345kh.gif)
和Getpwnam
![](/icons/90345kh.gif)
返回
![](/icons/90345yi.gif)
指向passwd结构
![](/icons/90345de.gif)
指针
![](/icons/90345dou.gif)
该结构定义如下:
struct passwd {
char * pw_name; /* 登录名 */
char * pw_passwd; /* 加密后
![](/icons/90345de.gif)
口令 */
uid_t pw_uid; /* UID */
gid_t pw_gid; /* GID */
char * pw_age; /* 代理信息 */
char * pw_comment; /* 注释 */
char * pw_gecos;
char * pw_dir; /* 主目录 */
char * pw_shell; /* 使用
![](/icons/90345de.gif)
shell */
char * pw_shell; /* 使用
![](/icons/90345de.gif)
shell */
首次
![](/icons/90345diaoyong.gif)
getpwent
![](/icons/90345kh.gif)
![](/icons/90345dou.gif)
可打开/etc/passwd文件并返回指向文件中第
![](/icons/90345yi.gif)
个用户条目
![](/icons/90345de.gif)
指针
![](/icons/90345dou.gif)
并保持
![](/icons/90345diaoyong.gif)
的间文件
![](/icons/90345de.gif)
打开状态
![](/icons/90345dou.gif)
再
![](/icons/90345diaoyong.gif)
getpwent
![](/icons/90345kh.gif)
便可顺序地返回口令文件中
![](/icons/90345de.gif)
各用户条目
![](/icons/90345dou2.gif)
而
![](/icons/90345diaoyong.gif)
![](/icons/90345set.gif)
pwent
![](/icons/90345kh.gif)
又可把口令文件
![](/icons/90345de.gif)
指针重新置为文件
![](/icons/90345de.gif)
开始处
![](/icons/90345dou.gif)
最后使用完口令文件后
![](/icons/90345diaoyong.gif)
endpwent
![](/icons/90345kh.gif)
可关闭口令文件
1.2.4 构造Crack
综上所述
![](/icons/90345dou.gif)
构造
![](/icons/90345yi.gif)
个Crack工具只需以下步骤:
1.4 口令安全
![](/icons/90345de.gif)
建议
每个人都应该重视保护自己帐户
![](/icons/90345de.gif)
口令
![](/icons/90345dou.gif)
降低被他人截取
![](/icons/90345de.gif)
可能性
![](/icons/90345dou.gif)
从而保护个人
![](/icons/90345de.gif)
资料资料以及系统
![](/icons/90345de.gif)
安全
![](/icons/90345dou2.gif)
保护口令安全
![](/icons/90345de.gif)
要点如下:
不要将口令写下来
不要将口令存于计算机文件中
口令要容易记住
不要用字典中有
![](/icons/90345de.gif)
词作为自己
![](/icons/90345de.gif)
口令
不要用诸如自己
![](/icons/90345de.gif)
生日、电话号码、寻呼机号码、纯数字或纯字母做口令
口令应包含特殊
![](/icons/90345zifu.gif)
口令应该在允许
![](/icons/90345de.gif)
范围内尽可能取长
![](/icons/90345yi.gif)
点
不要在区别系统上使用同
![](/icons/90345yi.gif)
口令
为防止眼明手快
![](/icons/90345de.gif)
人窃取口令
![](/icons/90345dou.gif)
在输入口令时应确认没有人偷窥
定期改变口令
![](/icons/90345dou.gif)
至少6个月要改变
![](/icons/90345yi.gif)
次
最后这点是十分重要
![](/icons/90345de.gif)
![](/icons/90345dou.gif)
永远不要对自己
![](/icons/90345de.gif)
口令过于自信
![](/icons/90345dou.gif)
也许就在无意当中泄露了口令
![](/icons/90345dou2.gif)
定期地改变口令
![](/icons/90345dou.gif)
会使自己遭受hacker攻击
![](/icons/90345de.gif)
风险降到
![](/icons/90345yi.gif)
定限度的内
![](/icons/90345dou2.gif)
![](/icons/90345yi.gif)
旦发现自己
![](/icons/90345de.gif)
口令不能进入计算机系统
![](/icons/90345dou.gif)
应立即向系统管理员报告
![](/icons/90345dou.gif)
由管理员来检查原因
以上分析
![](/icons/90345de.gif)
是传统
![](/icons/90345de.gif)
保障口令安全
![](/icons/90345de.gif)
思路方法
![](/icons/90345dou2.gif)
当前
![](/icons/90345dou.gif)
也出现了
![](/icons/90345yi.gif)
些新型
![](/icons/90345de.gif)
口令安全机制
![](/icons/90345dou.gif)
例如:动态口令和利用使用者
![](/icons/90345de.gif)
生物唯
![](/icons/90345yi.gif)
识别信息作为口令验证
动态口令是周期性
![](/icons/90345de.gif)
改变口令
![](/icons/90345dou.gif)
以减少口令被破解
![](/icons/90345de.gif)
机会、增强口令安全
![](/icons/90345de.gif)
机制
![](/icons/90345dou.gif)
动态口令卡是
![](/icons/90345yi.gif)
种最常见
![](/icons/90345de.gif)
应用
![](/icons/90345dou2.gif)
在口令卡和服务器中都存储同
![](/icons/90345yi.gif)
口令种子(Seed)
![](/icons/90345dou2.gif)
验证口令时
![](/icons/90345dou.gif)
口令卡取出当前时间和口令种子
![](/icons/90345dou.gif)
经过单向
![](/icons/90345hanshu.gif)
![](/icons/90345de.gif)
变换
![](/icons/90345dou.gif)
计算出
![](/icons/90345yi.gif)
个口令
![](/icons/90345dou.gif)
服务器也采用同样
![](/icons/90345de.gif)
思路方法得到
![](/icons/90345yi.gif)
个口令
![](/icons/90345dou.gif)
比较这两个口令
![](/icons/90345dou.gif)
得到验证
![](/icons/90345dou2.gif)
动态口令卡和服务器的间
![](/icons/90345de.gif)
时间同步是确保准确验证
![](/icons/90345de.gif)
前提
![](/icons/90345dou2.gif)
目前
![](/icons/90345dou.gif)
![](/icons/90345yi.gif)
些安全方面
![](/icons/90345de.gif)
著名公司
![](/icons/90345dou.gif)
如:RSA、HP等推出了动态口令卡产品
![](/icons/90345dou2.gif)
本实验室也研制成功了动态口令卡(DID卡)
![](/icons/90345dou.gif)
并广泛运用于银行、军队和政府部门
利用使用者
![](/icons/90345de.gif)
生物唯
![](/icons/90345yi.gif)
识别信息作为口令验证
![](/icons/90345dou.gif)
这
![](/icons/90345yi.gif)
先进
![](/icons/90345de.gif)
安全认证机制正在积极
![](/icons/90345de.gif)
研究和完善中
![](/icons/90345dou.gif)
将逐渐应用于多种场合
![](/icons/90345dou2.gif)
可以利用
![](/icons/90345de.gif)
识别信息包括指纹、视网膜等
![](/icons/90345dou.gif)
这些特征信息是个人唯
![](/icons/90345yi.gif)
![](/icons/90345de.gif)
![](/icons/90345dou.gif)
提取这些特征
![](/icons/90345dou.gif)
可以用于个人
![](/icons/90345de.gif)
身份验证
![](/icons/90345dou2.gif)
提取
![](/icons/90345de.gif)
识别信息数据量过多
![](/icons/90345dou.gif)
存在存储开销大、传输效率低等缺陷;数据量过少
![](/icons/90345dou.gif)
又可能出现误判
![](/icons/90345dou2.gif)
因而如何准确
![](/icons/90345de.gif)
提取识别信息
![](/icons/90345dou.gif)
是当前
![](/icons/90345de.gif)
![](/icons/90345yi.gif)
个研究热点
上
篇文章: 如何防御Sn
fer攻击
下
篇文章: 判断Web数据库方式![](/icons/90345de.gif)
个小经验
延伸阅读
最新评论