SuperDllHijack icon indicating copy to clipboard operation
SuperDllHijack copied to clipboard

思路新颖 但是隐藏性不好

Open bigsinger opened this issue 4 years ago • 6 comments

被劫持程序在自己模块里通过比对模块,就很容易发现有劫持。

原来的那个方法,是在调用函数时再去load原始的dll,调完就释放,这样被劫持的程序里只有一份dll

bigsinger avatar May 11 '20 09:05 bigsinger

反复load反而容易被发现。 只需要在DllMain里面做个模块去链,一般情况就看不到dll了。

xiaoyao66 avatar May 11 '20 09:05 xiaoyao66

反复load反而容易被发现。 只需要在DllMain里面做个模块去链,一般情况就看不到dll了。

ZwQuerySystemInformation 可以找到

bigsinger avatar May 11 '20 09:05 bigsinger

最好的方法是隐藏自己而不是不加载原dll。因为自己的dll毕竟没有正确的签名,文件路径也不对。一般检查的时候签名和路径肯定是首先检查的。

xiaoyao66 avatar May 11 '20 09:05 xiaoyao66

或者换一种思路,dll进去以后用自己编写的loadlibrary加载真正的Inject代码,然后自己再把自己FreeLibrary了,这样就完全查不出来了。

xiaoyao66 avatar May 11 '20 09:05 xiaoyao66

把真正的inject代码编译成binary然后存到注册表的某个驱动键下面,需要的时候从注册表里load。先加载一个该进程绝对不会用到的系统dll,然后直接把注册表Inject代码覆盖上去,然后Hook掉一个常用API,让这个API跳转到Inject代码执行。 这样做 没有dll/没有可以线程/甚至都找不到可疑代码。

xiaoyao66 avatar May 11 '20 10:05 xiaoyao66

是的 只有shellcode

bigsinger avatar May 11 '20 10:05 bigsinger