新方案的应用
----新方案已经提出,下面我们来看看它是如何应用于实践的。
----首先需要指出,由于文章篇幅和性质的限制,本文不可能将新方案实施过程中涉
及到的所有知识以"入门讲座"的方式加以介绍。因此,在阅读本小节前,读者应具备下
列基础:熟悉硬盘主引导扇区和UNIX分区及UNIX文件系统的构造(这对UNIX系统管理
员来说不成问题)、了解中断13H入口参数含义、使用过DEBUG命令。
----一台COMPAQDESKPROXL/466服务器,主板内含PCISCSI-2控制器一个,上接富
士通硬盘一只,该硬盘主要参数为:1041柱面,64头,32扇。硬盘上装有SCOUNIX
SystemV/386Release3.2operatingsystemVersion4.2。现在假设其超级用
户口令被忘记。
----首先,随便找一台安装了DOS的计算机,制作一张DOS系统盘,并在系统盘上拷贝
一个DEBUG.EXE文件。
C:\DOS>format/sa:
C:\DOS>copydebug.exea:
----然后将该盘插入COMPAQ服务器A驱,开机启动DOS操作系统,执行DEBUG命令。
A:\>debug
----现在我们就编写一段汇编语言程序(以下简称app),来读出硬盘0柱0头1扇区的
内容。该扇区存放的是主引导记录,读出它是为了确定SCOUNIX分区的起始位置。app
是调用中断13H实现的,以后我们还要反复用到它,当然入口参数将随所读内容物理地
址的变化而变化。
-a
2039:0100MOVAX,0201
2039:0103MOVBX,1000
2039:0106MOVCX,0001
2039:0109MOVDX,0080
2039:010CINT13
2039:010EINT20
2039:0110
-g
Programterminatednormally
----现在我们可以用"dump"命令查看被读到内存里的扇区内容。从偏移11BEH处开始
是分区表,其中类型标志字节为63H的分区是SCOUNIX分区。该分区起始于1柱面0磁
头1扇。
----下面,读出UNIX根文件系统i-node表的第一个扇区,以确定根目录的物理位置。
----根据UNIX分区起始位置可知根文件系统始于2柱0头1扇。并且,由于2柱0头1扇是
引导块,2扇是超级块,3、4扇为间隔,所以i-node表必定始于第5扇。
----我们用app读出它(CX的赋值应改为"0205")。
----读出后用"dump"命令查看偏移1040H至107FH的64个字节,这就是2号i-node,即
根目录的i-node。
----下面我们就根据i-node计算根目录在硬盘上的物理地址。
----我们从偏移1040H看起:
----ED41H表示文件类型与存取权限为"drwxr-xr-x";
----1000H表示文件连结数为16;
----0000H表示文件属主ID为0;
----0200H表示文件组ID为2;
----80020000H表示文件字节数为640个;
----DA0500H表示第一个数据块地址。由于其它12个数据块地址均为0,所以可断定
根目录在硬盘上只占了一个数据块。现在我们必须依据DA0500H计算出这个数据块存
放在硬盘的第几柱面、第几磁头、第几扇区。计算公式如下:
C=TRUNC(P/(H*S))
C1=C0+C
H1=TRUNC((P-C*H*S)/S)
S1=P-C*H*S-H1*S+1
----其中:
----C1、H1、S1分别为数据块物理地址柱面号、磁头号、扇区号
----P等于数据块地址翻译成十进制数后再乘以2
----H为硬盘磁头数
----S为每磁头扇区数
----C0为根文件系统起始柱面
----C只是一个中间量
----将DA0500H代入上述公式,并根据H=64,S=32,C0=2,可算出C1=3,H1=29,S1=21。
因此根目录在硬盘上的物理地址为:3柱面29头21扇。
----用app把它读出来(CX和DX的赋值应分别改为"0315"和"1D80")。
----读出后用"dump"命令查看,可以发现偏移1050H至105FH是/etc目录的i-node号
和文件名,其中i-node号为22H,即34D。因为每个扇区有8个i-node,所以34号
i-node必定在2柱面0头9扇。
----用app读出它(CX和DX的赋值分别改为"0209"和"0080")。
----用"dump"命令可看出偏移1040H至107FH正是/etc目录的i-node。我们把它的
数据块也读出来。先计算第一个数据块的物理地址。将2D0700H代入公式,算出/etc第
一个数据块物理地址是3柱面50头27扇。
----用app读出它(CX和DX的赋值分别改为"031B"和"3280")。
----用"dump"命令可看出偏移11A0H至11AFH是/etc目录下的passwd文件名。我们
用"enter"命令把它改成zls,然后再运行app(AX的赋值应改为0301)。
----现在退出DEBUG命令。
| 利用php.exe进行入侵 | 04-08 | |
| 渗透心得 | 04-07 | |
| 魔力论坛最新漏洞利用 | 04-07 | |
| 织梦内容管理系统(DEDECMS)3.X | 04-07 | |
| asp.dll解析成system提升权限 | 04-06 | |
| webshell+serv-u获取系统最高权限 | 04-06 | |
| 一次完全利用社会工程学的域名劫 | 03-28 | |
| 利用DNS欺骗在局域网中挂马 | 03-21 | |
| 渗透某资源网站笔记 | 03-20 | |
| 渗透同学学校网络 | 03-20 | |
| 针对虚拟主机提升权限的实现 | 03-20 | |
| 利用QQ文件共享漏洞入侵 Windows | 03-20 | |