ICMP/DNS 隧道处置方法 | Windows 应急响应

0x01 简介

大家好,我们是 NOP Team,书接上回,我们给大家讲述了如何在 Linux 上找到 ICMP/DNS 隧道,但是现在工具都是全平台的,只有 Linux 似乎还不足以帮助蓝队兄弟们全面地解决问题

在学习这部分的时候,我找到了一篇文章 《如何找到发送异常ICMP流量的进程?》

https://www.anquanke.com/post/id/281835

这是一篇绿盟cert写的,发表在安全客上的文章,其中介绍了 Windows 和 Linux 下如何找到异常icmp 包的发包程序,这里提供了一个通过监控进程间通信,确定时间,之后通过时间和 Wireshark 抓包做对比的方法,可能有一丢丢误报,这是一种很巧的方法,不见得有多妙,但是很巧

今天给大家带来一种确切的,不会产生误报的方法

0x02 Microsoft Message Analyzer

1. MMA 简介

微软官方曾经出过一款类似 Wireshark 的网络协议分析工具 —— Microsoft Message Analyzer(MMA),旨在帮助用户在Windows操作系统中监控、截获、分析网络流量,并对系统或应用程序产生的事件和消息进行深入诊断。它是之前Windows平台上的网络抓包工具Network Monitor的后续产品,功能更为强大和全面。以下是MMA的主要用途:

  1. 网络流量分析:MMA能够捕获网络数据包,帮助用户分析网络通信中的细节,包括不同协议层级的数据,这对于识别网络瓶颈、故障排除和安全审计至关重要。
  2. 协议解析:支持广泛的网络协议,能够解码并展示各种网络协议的详细信息,便于理解数据包的内容和结构。
  3. 事件和日志分析:除了网络数据包,MMA还可以分析系统和应用程序事件日志,将网络行为与系统事件关联起来,为问题诊断提供更全面的视角。
  4. 灵活的数据视图:提供多种查看数据的方式,包括表格视图、图表视图等,以及强大的筛选和搜索功能,帮助用户快速定位关键信息。
  5. 脚本和扩展性:支持使用脚本和APIs自定义分析场景,用户可以根据需要创建或调整分析方案,提高工作效率。
  6. 跨平台支持:虽然主要是针对Windows平台设计,但MMA在一定程度上也支持跨平台网络分析,增强了其在多环境下的适用性。
  7. 诊断和故障排除:特别是在解决复杂的网络和应用程序交互问题时,MMA能够提供深入的数据分析能力,帮助识别和解决问题。

尽管Microsoft Message Analyzer在功能上非常强大,但需要注意的是,Microsoft在2017/18年停止了对该工具的开发和支持,并且于 2019年11月25日从官网删除了该软件包

https://learn.microsoft.com/en-us/openspecs/blog/ms-winintbloglp/dd98b93c-0a75-4eb0-b92e-e760c502394f

下载后安装使用

ICMP/DNS 隧道处置方法 | Windows 应急响应
ICMP/DNS 隧道处置方法 | Windows 应急响应

2. 模拟 icmp 隧道

https://github.com/esrrhs/pingtunnel/releases/download/2.8/pingtunnel_windows_amd64.zip

还是使用 pingtunnel 来模拟攻击者搭建的 icmp 隧道,其中攻击者控制服务器端为 192.168.31.83

攻击者的服务端启动 pingtunnel 服务器

wget https://github.com/esrrhs/pingtunnel/releases/download/2.8/pingtunnel_linux_amd64.zip
unzip pingtunnel_linux_amd64.zip

# 启动服务端,设置 key 为 1234
sudo ./pingtunnel -type server -key 1234
ICMP/DNS 隧道处置方法 | Windows 应急响应

客户端 windows 11 下载 pingtunnel 后启动

# 连接服务端
pingtunnel.exe -type client -l :4445 -s 192.168.31.83 -t 192.168.31.83:4444 -tcp 1 -key 1234
ICMP/DNS 隧道处置方法 | Windows 应急响应

3. 使用 MMA 追踪 ICMP 隧道

ICMP/DNS 隧道处置方法 | Windows 应急响应
ICMP/DNS 隧道处置方法 | Windows 应急响应
ICMP/DNS 隧道处置方法 | Windows 应急响应

输入过滤条件后,可以直接筛选出相关的流量,这个 Wireshark 也可以做到,现在我们看看能不能找到进程id

ICMP/DNS 隧道处置方法 | Windows 应急响应
ICMP/DNS 隧道处置方法 | Windows 应急响应

默认好像看不出什么,就是分析了 ICMP 数据包,我们点击上方的 Tools 调出其他 details 界面

ICMP/DNS 隧道处置方法 | Windows 应急响应
ICMP/DNS 隧道处置方法 | Windows 应急响应
ICMP/DNS 隧道处置方法 | Windows 应急响应

成功找到进程id以及对应的启动命令

4. 成功找到恶意进程 pid

我们使用 system informer 验证一下

ICMP/DNS 隧道处置方法 | Windows 应急响应

成功找到 icmp 隧道进程的 pid

0x03 netsh

1. netsh 简介

Netsh(Network Shell)是Windows操作系统中一个强大的命令行工具,主要用于配置和管理网络设置。这个工具允许用户通过命令行界面或脚本文件来查看、修改和故障排查各种网络相关的配置,包括但不限于以下几个方面:

  1. 网络接口配置:可以用来配置网络接口卡(NIC)的IP地址、子网掩码、默认网关、DNS服务器等参数。
  2. Windows防火墙管理:允许用户创建、修改或删除防火墙规则,以及查看防火墙的状态和配置。
  3. IPSec配置:支持配置IPSec策略,用于保护网络通信的安全。
  4. 无线网络管理:可以用来管理无线网络的配置,包括连接到无线网络、设置首选网络列表等。
  5. 路由和远程访问服务(RRAS):配置和监控路由表、拨号连接、VPN等。
  6. HTTP代理和监听配置:在支持的Windows版本中,可以配置HTTP代理设置和监听器,用于应用层的网络请求处理。
  7. 网络诊断和故障排除:提供命令来帮助诊断网络连接问题,比如重置网络设置、查看网络堆栈状态等。

此外,Netsh支持上下文切换,这意味着用户可以进入特定的网络配置上下文(如netsh interface, netsh wlan, netsh firewall等),以便于更精确地操作相关领域的网络配置。它还提供脚本功能,意味着可以编写脚本文件来批量执行一系列网络配置命令,这对于自动化网络部署和维护非常有用

更多 netsh 的使用参考下面的官方文档

https://learn.microsoft.com/zh-cn/windows-server/networking/technologies/netsh/netsh-contexts

并不是所有场景都允许我们上传工具,而且这还是一个已经被放弃的工具,以后不兼容的可能性也很大,所以今天的重点是利用 Windows 自带的工具  netsh 来帮助我们找出 Windows 上的 icmp 隧道

2. 隧道模拟

直接使用上面的隧道就好,攻击者的服务端为 192.168.31.83

3. netsh 追踪网络行为

启动网络追踪功能(以管理员权限运行)

netsh trace start persistent=yes capture=yes tracefile=.icmp_capture.etl
ICMP/DNS 隧道处置方法 | Windows 应急响应

此时开启抓包,配合流量设备,我们觉得抓到了相关数据包后,停止抓包

netsh trace stop
ICMP/DNS 隧道处置方法 | Windows 应急响应

我们需要将 .etl 格式的包转化为 Wireshark 能够解析的包,这需要 etl2pcapng.exe

https://github.com/microsoft/etl2pcapng

命令非常简单

etl2pcapng.exe in.etl out.pcapng
ICMP/DNS 隧道处置方法 | Windows 应急响应

4. 找出恶意进程

将上述文件拿回本地,使用 Wireshark 打开

ICMP/DNS 隧道处置方法 | Windows 应急响应

此时通过过滤可以看到这些通信流量,可能大家会想,这不就是抓包嘛,也没看出什么区别呀

大家看这个包的最上面有一个 Packet comments ,我们点击看一下内容是什么

ICMP/DNS 隧道处置方法 | Windows 应急响应

这里面备注了发送给请求数据包的 pid 以及 tid,这样我们就找到了恶意进程,使用 system informer 验证一下

ICMP/DNS 隧道处置方法 | Windows 应急响应

就是这个进程起的隧道


至于 DNS 或者其他协议的隧道或者恶意程序其实都是一样的处置方法,icmp 比较有挑战性和代表性

往期文章

ICMP/DNS 隧道处置方法 | Windows 应急响应

有态度,不苟同


原文始发于微信公众号(NOP Team):ICMP/DNS 隧道处置方法 | Windows 应急响应

版权声明:admin 发表于 2024年6月24日 下午9:03。
转载请注明:ICMP/DNS 隧道处置方法 | Windows 应急响应 | CTF导航

相关文章