• 注册
  • 易源码 易源码 关注:34 内容:784

    利用KernelCallbackTable实现内核帮你注入Dll

  • 查看作者
  • 打赏作者
  • 当前位置: 七七博客 > 易源码 > 正文
    • 易源码
    • Lv.14
      VIP1

      利用KernelCallbackTable实现内核帮你注入Dll

      本注入方案非线程注入。要理解本程序的实现过程首先需要了解什么是KernelCallbackTable。

      提示:因为借助Peb->KernelCallbackTable->__fnDWORD实现,所以InjectedDll暂时只能针对32位有窗口程序。

      实现过程

      1、首先利用NtQueryInformationProcess获取进程Peb。

      2、然后向进程写入ShellCode。

      3、接着将Peb->KernelCallbackTable->__fnDWORD改写为写入的ShellCode地址。

      4、向程序窗口发送重画消息,此后win32k.sys会处理消息,并且使用KeUserModeCallback从R0切换到R3并且调用ntdll!KiUserCallbackDispatcher,KiUserCallbackDispatcher接着会根据ApiNumber调用KernelCallbackTable中的函数,此时KernelCallbackTable->__fnDWORD已经被修改,导致程序调用LoadLibraryA实现Dll的注入。

      实现结果

      ShellCode已经编写好,调用第一次时自动恢复KernelCallbackTable,InjectedDll在调用完成后会立刻释放ShellCode。

      隐藏内容需要回复可以看见

      回复

      请登录之后再进行评论

      登录
    • 任务系统
    • 帖子间隔 侧栏位置: