南宫28暗箭逃逸 Sysmon 东西对 DNS 的监控日期:2021-07-04 11:32:23 浏览次数:63 分类:下一代DNS 来源:ng28南宫娱乐官网 作者:ng28南宫娱乐注册 |
||
Sysmon 是微软的一款轻量级的死而复生监控东西,最开端是由 Sysinternals 开发的,后来 Sysinternals 被微软收买,现在归于 Sysinternals 系列东西。它通过死而复生服务和驱动程序完成记载进程创立、文件拜访以及网络信息的记载,并把相关的信息写入并展现在 windows 的日志事情里。
最近 Sysmon 的开发人员又对 Sysmon 进行了改善,在其中加入了一项新功用,答应 Sysmon 记载 DNS 事情。尽管这为安全管理人员供给了一个很好的事情追寻办法,但任何事物都有其两面性,假如咱们作为进犯者,这意味着假如咱们植入的歹意软件或有效载荷测验通过 DNS 进行通讯,则 Sysmon 就会呈现许多 DNS 进犯的监控目标,进犯者就能够运用这些目标做文章。
这篇文章中,我将介绍一种暗箭逃逸 Sysmon (Sysmon 10.1 版别)东西对 DNS 的监控的办法。
但在咱们开端寻求详细的逃逸办法之前,咱们需求首要布置一下测验环境。本文中,我运用的是@ SwiftOnSecurity的 sysmon-config,并运用以下指令装置 Sysmon:
跟着咱们的测验环境的发动和运转,你将开端看到事情正在进行。对事情 ID 22 的过滤会集在 DNS 查询 上,如下图所示:
为了了解逃逸检测时可用的选项,我想首要回忆一下一般的安全监控东西是暗箭作业的。以 Sysmon 为例, ETW 被广泛用于网络连接监控等方面,ETW ( Event Tracing for Windows ) 供给了一种对用户层应用程序和内核层驱动创立的事情目标的盯梢记载机制。因而,DNS 监控也是以类似的办法履行。假如咱们运用以下指令,首要会发现监控是从 ETW 开端的。
通过一些查找之后,飘动在许多方位运用 microsoft – windows – dn – client provider 作为显现 DNS 查询信息的适宜方位。但在咱们将其作为逃逸办法之前,我一般喜爱与履行套件的服务穿插引证。本文,咱们运用了 Ghidra,Ghidra 是由美国国家安全局 ( NSA ) 研讨部分开发的软件逆向工程 ( SRE ) 套件 , 用于支撑网络安全使命。进入 Ghidra 后,查找 我的事情盯梢会话 作为一个界说的字符串,以下便是咱们发现的函数 :
此刻,咱们在 SysMon64.exe 中有一个引证盯梢称号的函数(此函数和称号也与Microsoft 文档中供给的示例代码十分类似)。上面的 EnableTraceEx2 调用的第二个参数供给了指向以下数据的指针:
让咱们运用一个常见的 DNS API 调用 DnsQuery_A,并测验找出 ETW 数据或许呈现的方位。清楚明了的起点是 dnsapi.dll,它承载 API 调用。将其与 PDB 一同加载到 Ghidra 中,咱们能够开端检查或许杰出显现正在运用的 ETW 的功用。因为咱们现已知道 GUID 与 DNS 事情相关联,因而在测验查找起点时,咱们将运用这个 GUID 作为数据点。有点令人惊奇的是,咱们是在 DLL 中找到了这个 GUID,并引证了 DNS_CLIENT 的符号:
为了了解这个句柄在 DLL 中的实践运用情况,让咱们创立一个小应用程序,它将为咱们履行 DNS 查询 :
假如咱们编译它并在 WinDBG 中将其旋转,咱们能够运用以下指令增加一个断点,在读取 DNS_CLIENT_Context 的内存时触发它。
依据上面的解说,咱们知道某些事情是从 DnsApi.dll 中发送的。假如在发送过程中调用 DLL,咱们就能够干涉检测目标。
暗箭做到这一点取决于个人喜爱,不过飘动参阅以下本文的示例,点此观看此视频,咱们会测验在运转时修补 DNSAPI!McTemplateU0zqxqz 以回来履行,而不通过 EtwEventWriteTransfer 发送事情。假如咱们测验履行咱们的应用程序进行 DNS 查询,就会发现调用 DNS 客户端 API 时不会触发任何事情。
南宫28