持久性事件日志联机帮助
翻译自:https:pentestlab。blog20230307persistenceeventlogonlinehelp
事件查看器是MicrosoftWindows的一个组件,用于显示与应用程序、安全性、系统和安装事件相关的信息。尽管该事件查看器主要用于管理员对窗口错误进行故障排除,但也可以在红队操作期间用作持久性的形式。为了帮助管理员通过Web检索特定事件ID的直接信息,Microsoft嵌入了称为事件日志联机帮助的功能。
事件日志联机帮助将用户重定向到MicrosoftURL,并从以下注册表位置进行控制。HKEYLOCALMACHINESOFTWAREMicrosoftWindowsNTCurrentVersionEventViewer
如果已获得本地管理员访问权限,则可以修改三个注册表项,以便在用户单击事件日志联机帮助后执行任意有效负载。这些键可以在下面找到:微软重定向程序MicrosoftRedirectionProgramCommandLineParameters微软重定向网址
一个非常简单的概念证明是触发一个消息框。includewindows。hpragmacomment(lib,user32。lib)intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){MessageBox(NULL,pentestlab。blog,Pentestlab,MBOK);return0;}
上面的代码可以使用MinGW编译以生成可执行文件。x8664w64mingw32gO2messagebox。cppomessagebox。exeIusrsharemingww64includesffunctionsectionsfdatasectionsWnowritestringsfnoexceptionsfmergeallconstantsstaticlibstdcstaticlibgccfpermissive
注册表项MicrosoftRedirectionProgram可以修改以包含已编译的可执行文件的位置。单击事件日志联机帮助将显示消息框,指示代码已执行。
事件日志联机帮助消息框
以类似的方式,msfvenom可用于生成有效载荷。
msfvenom有效载荷生成
修改下面的注册表项以映射到以前生成的有效负载在磁盘上的位置将执行有效负载。
微软重定向计划注册表项
单击事件日志联机帮助时,将建立连接。
事件日志联机帮助计量器
第二个注册表项MicrosoftRedirectionProgramCommandLineParameters允许用户修改数据值以执行命令。一个非常常见的陆地二进制文件,如regsvr32,可以用来执行无文件有效载荷。
MicrosoftRedirectionProgramCommandLineParameters
OncetheEventLogOnlineHelpisclickedthecommandwillbeexecutedandacommunicationchannelwillestablished。
Meterpreterregsvr32
ThelastregistrykeyistheMicrosoftRedirectionURLwhichbydefaultitpointsouttoaMicrosoftlocation。TheregistryvaluecouldbechangedtopointeithertoamaliciousURLortoapayloadwhichisdroppedonthedisk。
微软重定向网址
在上述所有方案中,将创建以下条件:父进程(mmc。exe)子进程(有效负载)
MMC父进程
EDR应该标记mmc何时尝试生成不受信任的进程。此外,监视上述注册表项的更改可能会产生检测机会。由于需要访问Windows图形界面,并且考虑到普通用户通常不会打开事件查看器并单击Windows事件日志联机帮助,因此这种技术不太可能普及。但是,在假定的违规或恶意内部方案中,它可以用作通过C2通道维护活动连接的简单方法。