[2021]process herpaderping原理 huoji process herpaderping,小黑的一百个疑问 2021-08-12 961 次浏览 10 次点赞 看了看国外这个process Herpaderping这个东西,被国内某些人吹的玄乎的要死,有点尬, 核心原理如下,杀毒软件用processcreatenotifycallback监视进程创建,然后做杀毒操作之类的,但是这个是有个问题: ![](https://key08.com/usr/uploads/2021/08/674615226.png) 这个回调需要有线程进入才会激活,没有自然是不会有信息的 所以国外这个作者,这样利用了磁盘缓存来绕过processcreatenotifycallback: 1. 打开一个黑文件和白文件 2. 把白文件的内容写到黑文件里面 3. NtCreateSection映射黑文件的内容【关键】 4. 创建白文件的进程,进程内存区段填写第三步映射黑文件的内容,此时不会触发processcreatenotifycallback 5. 给黑文件填充随机垃圾字符【关键】,并且修复参数通过写PEB 6. 创建线程启动第四步的进程 7. 再次启动进程.你会发现,黑文件代码顶着白文件的壳跑,并且杀毒软件不认为有异常 **所以为什么会这样,原因出在硬盘读写设计中,是有一层缓存的,缓存和硬盘内容不一定会实时同步,一般是在有完全关闭文件的操作后才会跟硬盘内容同步** 本次注入利用了,把白文件的内容写到黑文件里面的时候缓存并不会更新。 启动进程的时候,用的是NtCreateSection的内存,也就是缓存的内存,在启动线程去执行线程的时候,由于磁盘文件和内存镜像不同,走完processcreatenotifycallback后直接CloseFile关闭文件了(这里是系统自己关闭的) 现在就有了一个奇怪的文件 硬盘内容是白文件的内容、缓存里面是黑文件的代码,执行这个文件的时候, 由于部分其他的属性不是来自缓存而且来自于硬盘的,所以导致了,一个黑文件看起来顶着一个白文件跑..... 当然重启后缓存没了,这个黑文件就没了,就成白文件了 > ps: 很久之前我注意到了一个现象(18年左右写反作弊的时候),在修改SECTION_OBJECT_POINTERS->FILE_OBJECT的时候,我以为他是内存行为,关闭文件就没了,实际上他会有个操作系统缓存,也就是说你改了这玩意后,下次启动文件,他还是会访问缓存.导致我查了很久资料才发现这玩意居然是全局缓存共享的tm的 知道原理后,就很容易检测了,检测方法如下: 创建进程回调里面检查缓存是否与磁盘文件一致,不一致可以认为是搞破坏的(一般也不会不一致),sysmon里面 EventID 25的镜像被替换就是这样做的 本文由 huoji 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。 点赞 10
还不快抢沙发