Windows Defender dll sideload
不说废话,直接开始,老版本defender存在一个dll sideload问题,我们可以通过替换正常的mpsvc.dll,从而实现白利用,
虽然私底下和一些朋友有过相关的交流,但是由于部分朋友在利用过程中存在一些问题,所以记录其中的步骤。
- 主程序:MsMpEng.exe
- 加载dll:mpsvc.dll
- 导出函数:ServiceCrtMain
你没有看错就是defender主程序。
dll sideload
攻击者可以通过劫持用于加载DLL的库清单来执行自己的恶意负载。攻击者可以通过将合法的库替换为恶意的库,来利用程序的库清单中模糊的引用,从而导致操作系统在受害程序调用时加载其恶意库。
dll编写
- MsMpEng.exe不会加载dllmain函数,它会直接调用导出函数ServiceCrtMain
1 | STDAPI ServiceCrtMain(void) { |
- CFF explorer要能看到编译后dll的导出函数表,且表中有ServiceCrtMain函数。
- 导出函数表需要定义在def文件中,并导入到源文件,这里位dllmain.del
- 通过链接器设定模块定义文件。
- 编译dll,并运行MsMpEng.exe进行复现,上线进程MsMpEng。