劫持自启动程序

原理:

通过篡改、替换或代理原dll文件来达到劫持。

方法:

1.DLL替换:用恶意DLL替换合法的DLL。 2.DLL搜索顺序劫持:在应用程序指定的不带路径的DLL中。根据搜索顺序,将恶意DLL放在实际DLL之前的搜索位置。大部分时候都是目标应用程序的工作目录。(微软文档:https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order) 3.Phantom DLL劫持:丢弃一个恶意的DLL来代替合法应用程序尝试加载的丢失/不存在的DLL。 4.DLL重定向:通过编辑,改变DLL被搜索的位置,例如%PATH%环境变量,或.exe.manifest/.exe.local文件。 5.WinSxS DLL替换:用恶意DLL替换WinSxS文件夹中合法的DLL。 6.相对路径DLL劫持:将合法的应用程序复制到用户可写文件夹中,并添加恶意DLL。

实际使用:

寻找开机自启的exe文件,并使用Process Explorer寻找是否有not found的dll文件,有的话直接放在对应位置(顺便提交拿一个CVE),没有就替换正常要加载的dll。建议做一个dll转发来保证程序正常运行。 厚颜无耻的放一个自己的文章:

可以考虑搭配下面这个文章实现user权限的劫持

附表

此处列出“c:\windows\system32”中易受DLL Hijacking的所有可执行文件。每个可执行文件的旁边是一个或多个可以被劫持的DLL,以及被调用的DLL的函数,可以方便的进行利用。

来源:

最后更新于