RenX6 发布于2022年11月8日 分享 发布于2022年11月8日 0x00 前言 要远程注入指定的进程,通常使用Windows提供的API CreateRemoteThread创建一个远程线程,然后注入dll或者执行shellcode。 Sysmon可以用来监视和记录系统活动,并且可以记录CreateRemoteThread操作。 注入方法不仅是CreateRemoteThread,还有其他注入方法可以绕过Sysmon的监控? Casey Smith@subTee在他的文章中给出了答案: 通过QueueUserAPC注入外壳代码-对Sysmon隐藏 地址如下: http://subtox 10 . blogspot . com/2017/01/shellcode-injection-via-queueuser APC . html 0x01 简介 本文将介绍以下内容: Sysmon配置测试,监视CreateRemoteThread操作 c通过APC实现Dll注入 旁路Sysmon测试 Casey Smith@subTee分享的C#实现代码和目的 Sysmon: 可用于监视和记录系统活动,并将其记录在windows事件日志中,包括以下事件: 事件ID 1:流程创建 事件ID 2:进程更改了文件创建时间 事件ID 3:网络连接 事件ID 4: Sysmon服务状态已更改 事件ID 5:进程终止 事件ID 6:驱动程序已加载 事件ID 7:图像已加载 事件ID 8: CreateRemoteThread 事件ID 9: RawAccessRead 事件ID 10: ProcessAccess 事件ID 11:文件创建 事件ID 12: RegistryEvent(对象创建和删除) 事件ID 13: RegistryEvent(值集) 事件ID 14: RegistryEvent(键值重命名) 事件ID 15:文件创建流哈希 事件ID 255:错误 详情见https://technet.microsoft.com/en-us/sysinternals/sysmon。 注: CreateRemoteThread是事件ID 8 Dll注入 常用方法: 创建一个新线程 设置线程的上下文并修改寄存器。 插入Apc队列 修改注册表 挂钩窗口消息 手动实现LoadLibrary 引自http://www.cnblogs.com/uAreKongqi/p/6012353.html Shellcode Injection via QueueUserAPC - Hiding From Sysmon: # c实现,通过调用QueueUserAPC执行shellcode,可以应用于InstallUtil.exe和Msbuild.exe,可以绕过Sysmon对事件ID 8: CreateRemoteThread的监控。 文章地址: http://subtox 10 . blogspot . com/2017/01/shellcode-injection-via-queueuser APC . html 0x02 Sysmon简介 下载地址: https://technet.microsoft.com/en-us/sysinternals/sysmon 以系统服务和驱动的方式安装在系统上。 用于监视和记录系统活动,并将其记录在windows事件日志中。 提供有关进程创建、网络连接和文件创建时间更改的详细信息。 通过事件日志,可以识别异常活动,了解攻击者在网络上的操作。 注: 在系统中安装Sysmon之后,会添加新的服务Sysmon。 画 也就是说,如果攻击者获得主机权限,您可以通过查看安装的服务来查看Sysmon的安装。 安装 以默认配置安装: sysmon-accept EULAI-n 使用配置文件安装: sysmon -c config.xml 配置文件config.xml格式的示例如下: 注: Xml区分大小写。 * Microsoft windows 44380 ie xplore . exe 注: 这个例子引自http://www.freebuf.com/sectool/122779.html. 查看配置 sysmon -c 注: 配置保存在注册表的以下位置: HKEY _ LOCAL _ MACHINE \ SYSTEM \ current control set \ services \ SysmonDrv \ Parameters 画 查看日志记录 1.通过面板 位置如下: 控制面板\系统和安全-查看事件日志 应用程序和服务日志-Microsoft-Windows-Sysmon-操作 画 2.使用以下命令通过powershell查看: (管理员权限) get-WinEvent-filter hashtable @ { logname=' Microsoft-Windows-Sysmon/Operational ';} 监控并记录CreateRemoteThread 配置文件如下所示: * calc.exe 另存为RecordCreateRemoteTh.xml 注: 此配置文件表示对进程calc.exe的监视,如果捕获到CreateRemoteThread,它将被写入事件日志。 设置配置文件: Sysmon.exe-c记录CreateRemoteTh.xml 画 查看配置信息 Sysmon.exe-c 画 开始calc.exe。 CreateRemoteTh.exe被执行,calc.exe被注射和反弹,如图 CreateRemoteTh.exe的源代码可以参考: https://github。com/3g student/CreateRemoteThread/blob/master/createremotethreadtest。卡片打印处理机(Card Print Processor的缩写) 查看日志,发现事件ID 8 如下图,检测到创建远程线程 通过powershell查看事件ID 8 get-WinEvent-filter hashtable @ { logname=' Microsoft-Windows-Sysmon/Operational ';ID=8} 如下图,获取日志事件ID 8 0x03 c++实现通过APC对Dll注入 使用美国动力会议注入: 代码如下: https://github。com/3g学生/Inject-dll-by-APC/blob/master/test。卡片打印处理机(Card Print Processor的缩写) 关于代码的详细说明可参照: http://个博客。微软。co . il/pavely/2017/03/14/injecting-a-dll-without-a-remote-thread/ 如图,成功注入到calc.exe 使用ProcessExplorer查看calc.exe加载的dll,如下图,成功注入testdll 查看日志,并没有产生事件ID 8,成功绕过Sysmon对创建远程线程的监控 0x04 Casey Smith@subTee分享的C#实现代码和用途 可应用到InstallUtil.exe和Msbuild.exe的利用上面 InstallUtil.exe: https://要点。github。F8 dab 1 DC 926 def 8 a Msbuild.exe: https://要点。github。E1 b 06 cf 58 FCC 9 e 0255190 d30 C2 d 38 调用过程中没有产生事件ID 8 0x05 小结 本文对Sysmon的监控功能做了测试,并介绍如何通过美国动力会议实现动态链接库注入,绕过Sysmon对创建远程线程的监控 在特定环境下,如果无法手动关闭Sysmon服务,利用美国动力会议能在一定程度上绕过Sysmon对创建远程线程的监控 参考资料: http://子箱10。博格斯波特。com/2017/01/shellcode-injection-via-queue user APC。超文本标记语言 https://www.darkoperator.com/blog/2014/8/8/sysinternals-sysmon http://www.freebuf.com/sectool/122779.html http://www.cnblogs.com/uAreKongqi/p/6012353.html http://个博客。微软。co . il/pavely/2017/03/14/injecting-a-dll-without-a-remote-thread/ 留下回复 链接帖子 意见的链接 分享到其他网站 更多分享选项…
推荐的帖子