系统调用劫持】

劫持系统调用与上一种方法不同之处在于:它并不直接修改系统调用表中的入口地址,即指向每个系统调用的跳转指针,而是在想要hook的系统调用之前加一段跳转代码,使执行流重定向到入侵者自己的内核态函数,这些被hook的系统调用前部通常有call,jmp之类的汇编指令。

要检测这种攻击,同样使用gdb加vmlinux-2.4.*及/proc/kcore两个参数,然后反汇编系统调用:

#gdb /boot/vmlinux-2.4.* /proc/kcore

(gdb) disass sys_read

Dump of assembler code for function sys_read:

0xc013fb70 : mov $0xc88ab0a6,%ecx

0xc013fb73 :  jmp *%ecx <<--

0xc013fb77 :  mov %esi,0x1c(%esp,1)

0xc013fb7b : mov %edi,0x20(%esp,1)

0xc013fb7f : mov $0xfffffff7,%edi

...

我们注意“mov $0xc88ab0a6,%ecx -- jmp *%ecx”这两条指令,他跳转到了其他的地方去执行了

然后再来看一下被hook之前的系统调用指令:

#gdb /boot/vmlinx-2.4.*

(gdb) disass sys_read

Dump of assembler code for function sys_read:

0xc013fb70 :sub $0x28,%esp

0xc013fb73 : mov 0x2c(%esp,1),%eax

0xc013fb77 : mov %esi,0x1c(%esp,1)

0xc013fb7b : mov %edi,0x20(%esp,1)

0xc013fb7f : mov $0xfffffff7,%edi

...

看到了吧,不一样的。

  1. 详解LINUX 2.4.x 内核网络安全框架
  2. Linux内核完全剖析---数学协处理器
  3. Linux内核完全剖析---math_emulate.c程序


相关内容

    暂无相关文章