这样程序就把自身的目录隐藏起来了
通过CMD进入到rewt目录。
- 38 -
我们用iceword查看进程情况,发现有个root.exe的进程标红,被隐藏起来了。
通过iceword的高级扫描模式发现有很多函数都被inline hook了,把大约87个被hook了的函数进行恢复,然后我们看进程里root.exe就没有了,而且被隐藏的文件夹就出现了。
- 39 -
2.1.2.9 SSDT hook rootkit检测
SSDT的全称是System Services Descriptor Table,系统服务描述符表。这个表就是一个把ring3的Win32 API和ring0的内核API联系起来的索引表。
SSDT中存放了所有系统服务函数的入口地址。系统服务调度程序通过查找 SSDT 来调用相应的系统服务。因此,Rootkit 可以将 SSDT 中的系统服务地址替换为自己代码的地址。这样,当调用系统服务时,实际运行的是Rootkit 代码,由Rootkit 代码调用真正的系统服务并对结果作相应处理。例如,ZwQuerySystemInformation是系统列举进程时须调用的系统服务, 通过挂钩它来实现进程的隐藏。
下面用一个ssdt hook 的demo程序来演示ssdt木马检测、ssdt hook的恢复。 用InstDrv工具安装示例驱动basic_mdl_flags.sys并加载执行。
- 40 -
该驱动hook了ZwQuerySystemInformation函数,实现了隐藏以_root_开头的进程的功能。执行程序_root_.exe,在任务管理器中无法看到此进程在运行,可对比使用冰刃可以看到该隐藏进程。
- 41 -
使用冰刃查看系统SSDT,可观察到被hook的ZwQuerySystemInformation函数当前地址与原始值不一致。
冰刃中用右键恢复改SSDT,再次执行_root_.exe,该进程在任务管理器中恢复显示。
- 42 -