Rootkit隐形技术入门
作者: 宇文, 出处:51CTO.com , 责任编辑: 韩博颖,
2008-03-24 09:28
在安全界,rootkit已越来越引起人们的关注,而rootkit技术的过人之处就在于它的隐形技术,本文旨在向读者打开一扇通向rootkit隐形技术的大门。
四、交换数据流
利用Windows提供的交换数据流功能,我们可以在不影响文件及其大小的情况下,捎带其他一些东西,如图标等。想当初,微软公司将此功能添加至Windows操作系统的初衷并非向用户提供一种隐藏文件的把戏,但它的确有这种功效:我们正好可以利用它为配置文件提供藏身之所。其实,该方法不仅适用于文件,同样也是用于目录,因为目录也是文件的一种。与其把配置文件附着在一个“惹眼”的系统文件上,倒不如将其挂在一个不起眼的目录上,后者的保险系数更高一些。
为了让读者感性地认识一下交换数据流,您可以亲自在DOS命令提示符下做个小实验。首先,建立一个文件,并将其命名为test .txt ,保存,然后看一下该文件的大小。 现在,在DOS提示符下键入以下命令:
| echo nihao >test.txt:alternate.txt |
| notepad test.txt:alternate.txt |
好了,现在看看我们需要隐藏的配置的具体格式,如下所示:
| XXX.XXX.XXX.XXX:YYYYY |
至于数据流所挂靠的目录,如C:\WINDOWS \Resources 在fileManager.h文件中加以定义。虽然使用硬编码的路径即在代码中直接给出目录名如C:\WINDOWS比较直接,但是需要考虑健壮性的时候,在给rootkit指定隐藏文件的位置时,通过操作系统来查找%WINDOWS%目录更为稳妥。
上面介绍了配置文件的格式和对配置文件的处理,不过具体工作都是由软件代劳的。完成这部分工作的软件我们称其为文件管理器。这里是我们的文件管理器的头文件,源代码如下所示:
| //fileManager.h #ifndef _FILE_MANAGER_H_ #define _FILE_MANAGER_H_ //尽管微软的文档没有提及,但是NTFS-ADS还能用于目录。 //为了防止rootkit被一网打尽,黑客通常不会一个目录用到底,而是打一枪换一个地方 #define MASTER_FILE L"\\??\\C:\\WINDOWS\\Resources" NTSTATUS GetFile( WCHAR* filename, CHAR* buffer, ULONG buffersize, PULONG fileSizePtr ); NTSTATUS PutFile( WCHAR* filename, CHAR* buffer, ULONG buffersize ); #endif |
- 本文关键词:

