信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
文章作者:asm(http://www.sbasm.cn)
写了个对抗扫描的东西,跟大家分享!技术含量不高,大牛飘过。
一直以来写的都是ring3代码,现在很认真的拼凑了一份山寨版的驱动代码,很久没这么认真过了。希望哪位大牛能指点一下,指出代码中可能存在BOSD的隐患。其他人就跟我一起学习吧~~
很久以来,做木马免杀一般都是文件表面免杀,内存免杀。文件免杀一般的思路是通过修改代码重,或者文件自身来做到。另外还有一种免杀方式就是隐藏你的木马,让杀软认为你的木马是不存在的,自然就达到免杀的效果了。
内存免杀其实不需要用OD来修改,有两种办法就可以,第一,隐藏内存dll木马的模块,第二,挂钩杀软扫描内存所需要的函数,一般是NtReadVirtualMemory即可到达内存免杀的效果。
隐藏内存模块,我所知道的有3种办法,第一,先给dll做一份内存拷贝,接着FreeLibrary释放原来的dll模块,再次申请和原来同样基址的内存,并还原dll即可;第二:摘链;第三:就是本文所说的挂钩NtReadVirtualMemory。有很多办法可以挂钩,这里我选择SSDT,呵呵,被人玩烂了的玩意,但是却也是相对成熟稳定的一种hook的方式,科普一下吧,毕竟还是有很多人徘徊在门外的 :)
文章作者:asm(http://www.sbasm.cn)
写了个对抗扫描的东西,跟大家分享!技术含量不高,大牛飘过。
一直以来写的都是ring3代码,现在很认真的拼凑了一份山寨版的驱动代码,很久没这么认真过了。希望哪位大牛能指点一下,指出代码中可能存在BOSD的隐患。其他人就跟我一起学习吧~~
很久以来,做木马免杀一般都是文件表面免杀,内存免杀。文件免杀一般的思路是通过修改代码重,或者文件自身来做到。另外还有一种免杀方式就是隐藏你的木马,让杀软认为你的木马是不存在的,自然就达到免杀的效果了。
内存免杀其实不需要用OD来修改,有两种办法就可以,第一,隐藏内存dll木马的模块,第二,挂钩杀软扫描内存所需要的函数,一般是NtReadVirtualMemory即可到达内存免杀的效果。
隐藏内存模块,我所知道的有3种办法,第一,先给dll做一份内存拷贝,接着FreeLibrary释放原来的dll模块,再次申请和原来同样基址的内存,并还原dll即可;第二:摘链;第三:就是本文所说的挂钩NtReadVirtualMemory。有很多办法可以挂钩,这里我选择SSDT,呵呵,被人玩烂了的玩意,但是却也是相对成熟稳定的一种hook的方式,科普一下吧,毕竟还是有很多人徘徊在门外的 :)
已经尽最大努力去除硬编码了,下面是部分代码(完整代码见压缩包):
代码:
}2楼 sudami
很用心,思路简单明了.
一点儿见解:
杀毒软件一般是在驱动中attach到指定进程直接读内存的,不需要调用Nt*系列的科普函数;
好多软件是事先保存SSDT的原始地址到全局变量中,再进行调用(eg:微点).
3楼 grayfox
比较PID不保险啊,+1 +2 +3就绕过了