我个人的理解是:通过一些方法来劫持或者替换原程序运行时调用的dll,欺骗程序加载该恶意dll。
dll劫持可用来做权限维持,钓鱼攻击等等。(当然师傅们肯定还有其他骚思路,这里不一一举例)
1、运行D盾客户端(我这里是v.2.1.5.4),使用Process Explorer查看程序加载了哪些dll。
2、在这里还需要介绍下SafeDllSearchMode和KnownDLLs,前者是windows针对dll劫持设置的安全机制,后者包含了系统中常见的dll,但如果在该注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs,创建KnownDLLs中同名dll并指定位置,同名dll将保护失效。(具体原理请自行百度)
3、检测方式
如果没有不存在KnownDLLs中的项(即都为SUCCESS),使用开源的自动化检测工具Rattler进行检测
再如果Rattler也检测不出来呢,放弃(划掉),使用ChkDllHijack.exe
使用Process Explorer导入D盾的dll路径,然后用该工具加载即可,一顿操作后显示winsta.dll存在劫持。
使用Rattler中的payload.dll改名为winsta.dll,运行D盾弹出计算器,没毛病铁子们!
按说到上面了我是已经写完了,但怕各位表哥的水遁术喷死,我就再挤点牙膏,使用轮子哥的Dll(IAT)来实现CS上线。(IAT这个工具我实在忘了是哪找到的,所以没链接呀,各位大表哥自己找找,我这个还报毒,害怕)
把CS生成的shellcode复制到工具中生成dll
把这两个文件拖入D盾运行文件夹,wwwcomw.dll改为winsta.dll,点击劫持文件,然后运行D盾,cs已经上线,火绒无反应。
由于D盾大多设置自启,可以通过该方式进行权限维持。
该漏洞已经提交cnvd,文章只用来讨论技术,切勿用在非法途径!!!