中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > Unix高级技术
用DOS命令来破除UNIX系统管理员口令(2)
作者:佚名 时间:2007-10-10 16:10 出处:中国安全信息网 责编:月夜寒箫
              摘要:用DOS命令来破除UNIX系统管理员口令(2)

将DA0500H代入上述公式,并根据H=64,S=32,C0=2,可算出C1=3,H1=29,S1=21。因此根目录在硬盘上的物理地址为: 3柱面 29头 21扇。

下面就把它读出来。
            

-a

2039:0100 MOV AX,0201

2039:0103 MOV BX,1000

2039:0106 MOV CX,0315

2039:0109 MOV DX,1D80

2039:010C INT 13

2039:010E INT 20

2039:0110

-g

Program terminated normally

-d 1000

2039:1000 02 00 2E 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

2039:1010 02 00 2E 2E 00 00 00 00-00 00 00 00 00 00 00 00 ................

2039:1020 03 00 64 65 76 00 00 00-00 00 00 00 00 00 00 00 ..dev...........

2039:1030 0C 00 62 69 6E 00 00 00-00 00 00 00 00 00 00 00 ..bin...........

2039:1040 1F 00 75 73 72 00 00 00-00 00 00 00 00 00 00 00 ..usr...........

2039:1050 22 00 65 74 63 00 00 00-00 00 00 00 00 00 00 00 ".etc...........

2039:1060 4B 00 73 68 6C 69 62 00-00 00 00 00 00 00 00 00 K.shlib.........

2039:1070 4E 01 2E 6C 61 73 74 6C-6F 67 69 6E 00 00 00 00 N..lastlogin....

上面列出的就是根目录的前八项,从中可以看出 /etc 目录的 i-node 号为 22H,即34D。

因为每个扇区有8个 i-node,所以34号 i-node 必定在2柱面0头9扇。
            

-a

2039:0100 MOV AX,0201

2039:0103 MOV BX,1000

2039:0106 MOV CX,0209

2039:0109 MOV DX,0080

2039:010C INT 13

2039:010E INT 20

2039:0110

-g

Program terminated normally

-d 1000

2039:1000 C9 81 01 00 02 00 02 00-36 9F 00 00 04 07 00 05 ........6.......

2039:1010 07 00 06 07 00 07 07 00-08 07 00 09 07 00 0A 07 ................

2039:1020 00 0B 07 00 0C 07 00 0D-07 00 0E 07 00 00 00 00 ................

2039:1030 00 00 00 00 DA 83 C5 35-7C 22 A5 2B 37 4B 32 33 .......5|".+7K23

2039:1040 FD 41 16 00 02 00 15 00-00 12 00 00 2D 07 00 B8 .A..........-...

2039:1050 17 00 78 1A 00 68 83 00-28 9E 00 00 00 00 00 00 ..x..h..(.......

2039:1060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

2039:1070 00 00 00 00 2A 31 C1 35-C7 83 C5 35 C7 83 C5 35 ....*1.5...5...5

偏移1040H至107FH正是 /etc 目录的 i-node 。我们把它的数据块也读出来。先读第一个数据块。将2D0700H代入公式,算出 /etc第一个数据块物理地址是3柱面50头27扇。
            

-a

2039:0100 MOV AX,0201

2039:0103 MOV BX,1000

2039:0106 MOV CX,031B

2039:0109 MOV DX,3280

2039:010C INT 13

2039:010E INT 20

2039:0110

-g

Program terminated normally

-d 1000

2039:1000 22 00 2E 00 00 00 00 00-00 00 00 00 00 00 00 00 "...............

2039:1010 02 00 2E 2E 00 00 00 00-00 00 00 00 00 00 00 00 ................

2039:1020 23 00 54 49 4D 45 5A 4F-4E 45 00 00 00 00 00 00 #.TIMEZONE......

2039:1030 24 00 62 61 64 74 72 6B-00 00 00 00 00 00 00 00 $.badtrk........

2039:1040 25 00 62 63 68 65 63 6B-72 63 00 00 00 00 00 00 %.bcheckrc......

2039:1050 26 00 64 65 66 61 75 6C-74 00 00 00 00 00 00 00 &.default.......

2039:1060 2B 00 64 69 76 76 79 00-00 00 00 00 00 00 00 00 +.divvy.........

2039:1070 2C 00 64 6B 69 6E 69 74-00 00 00 00 00 00 00 00 ,.dkinit........

-d

2039:1080 2D 00 65 6D 75 6C 61 74-6F 72 00 00 00 00 00 00 -.emulator......

2039:1090 2D 00 65 6D 75 6C 61 74-6F 72 2E 6D 73 00 00 00 -.emulator.ms...

2039:10A0 2E 00 66 64 69 73 6B 00-00 00 00 00 00 00 00 00 ..fdisk.........

2039:10B0 2F 00 66 73 63 6B 00 00-00 00 00 00 00 00 00 00 /.fsck..........

2039:10C0 30 00 66 73 63 6D 64 2E-64 00 00 00 00 00 00 00 0.fscmd.d.......

2039:10D0 37 00 66 73 73 74 61 74-00 00 00 00 00 00 00 00 7.fsstat........

2039:10E0 38 00 67 72 6F 75 70 00-00 00 00 00 00 00 00 00 8.group.........

2039:10F0 39 00 68 61 6C 74 73 79-73 00 00 00 00 00 00 00 9.haltsys.......

-d

2039:1100 39 00 72 65 62 6F 6F 74-00 00 00 00 00 00 00 00 9.reboot........

2039:1110 3A 00 68 64 62 6F 6F 74-30 00 00 00 00 00 00 00 :.hdboot0.......

2039:1120 3B 00 68 64 62 6F 6F 74-31 00 00 00 00 00 00 00 ;.hdboot1.......

2039:1130 3C 00 69 6E 69 74 00 00-00 00 00 00 00 00 00 00 <.init..........

2039:1140 AD 13 69 6E 69 74 74 61-62 00 00 00 00 00 00 00 ..inittab.......

2039:1150 3E 00 69 6F 63 74 6C 2E-73 79 73 63 6F 6E 00 00 >.ioctl.syscon..

2039:1160 3F 00 6D 61 73 74 65 72-62 6F 6F 74 00 00 00 00 ?.masterboot....

2039:1170 40 00 6D 6B 66 73 00 00-00 00 00 00 00 00 00 00 @.mkfs..........

-d

2039:1180 41 00 6D 6B 6E 6F 64 00-00 00 00 00 00 00 00 00 A.mknod.........

2039:1190 42 00 6D 6F 75 6E 74 61-6C 6C 00 00 00 00 00 00 B.mountall......

2039:11A0 0C 02 70 61 73 73 77 64-00 00 00 00 00 00 00 00 ..passwd........

2039:11B0 44 00 70 69 70 65 00 00-00 00 00 00 00 00 00 00 D.pipe..........

2039:11C0 45 00 73 63 73 69 62 61-64 62 6C 6B 00 00 00 00 E.scsibadblk....

2039:11D0 46 00 73 65 74 6D 6E 74-00 00 00 00 00 00 00 00 F.setmnt........

2039:11E0 47 00 73 77 61 70 00 00-00 00 00 00 00 00 00 00 G.swap..........

2039:11F0 48 00 74 74 79 74 79 70-65 00 00 00 00 00 00 00 H.ttytype.......

偏移11A0H至11AFH是 /etc 目录下的passwd文件名。我们把它改成zls。
            

-e 11a2

2039:11A2 70.7a 61.6c 73.73 73.00 77.00 64.00

-a 100

2039:0100 MOV AX,0301

2039:0103

-g

Program terminated normally

现在退出DEBUG命令。

取出软盘,重启机器,引导UNIX操作系统。

按照引导顺序,UNIX显示出硬件配置信息后就该提问超级用户口令了,但就在此时它却突然发现 /etc/passwd 文件失踪了!(其实只是被改名为zls,但UNIX对此一无所知。)

没有了这个文件,UNIX无法提问超级用户口令,于是它只好在屏幕上显示如下信息并允许用户以系统管理员身份直接进入系统维护态:
            

su: Unknown id: root

/etc/tcbck: file /etc/passwd is missing or zero length

/etc/tcbck: either slash (/) is missing

from /etc/auth/system/files or there

are malformed entries in /etc/passwd or /etc/group

/etc/smmck: restore missing files from backup or distribution.

INIT: SINGLE USER MODE

**** PASSWORD FILE MISSING! ****

Entering System Maintenance Mode

#

现在既然已经进入维护态,当然就可以“为所欲为”了。但最好先设置一个新的超级用户口令。

首先,我们必须恢复passwd文件名。
#mv/etc/zls /etc/passwd

然后,就可以用passwd命令设置新的超级用户口令了。
            

# passwd

Setting password for user: root

Choose password

You can choose whether you pick a password,

or have the system create one for you.

1. Pick a password

2. Pronounceable password will be generated for you

Enter choice (default is 1): 1

Please enter new password:

New password:

Re-enter password:

# reboot

以后就可以用新口令登录系统了。

结束语

在本文行将结束时,我们再来作一个小小的总结。

传统方案有操作平台、操作工具和操作对象局限性。新方案则突破了这三大局限性。

一、新方案突破了操作平台局限性。传统方案的操作平台必须是UNIX,而新方案则是DOS。DOS比UNIX普及得多,中国的绝大部分计算机用户对UNIX陌生,但对DOS却相当熟悉,使用起来也有亲切感。

二、新方案突破了操作工具局限性。传统方案的操作工具必须是两张紧急启动软盘,而新方案仅使用一张DOS系统盘,其上只需拷贝一个DEBUG.EXE文件。紧急启动软盘只能专盘专用,DOS系统盘却不存在这个问题用任何一台机器上的DOS制作出的系统盘,可以用来解决任何一台机器上的UNIX超级用户口令被忘记的问题。至于用来访问物理硬盘的软件,当然更不是非 DEBUG不可,任何软件??只要支持访问物理盘均可。作者推荐使用Norton 8.0 软件包里的diskedit程序,对不懂汇编语言编程的人来说该程序无疑是一个最好的选择。

三、新方案突破了操作对象局限性。传统方案的操作对象是文件系统管理下的文件,而新方案撇开了文件系统,直接在底层修改数据。

最后需要强调的是,本文的要旨所在绝非仅仅体现在解决超级用户口令被遗忘的问题上。事实上,利用这种直接读取硬盘物理扇区的方法,还可以恢复那些在UNIX上被误删除的文件。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有