全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

首发先知社区:https://xz.aliyun.com/t/
首发作者:qianlan

一、前言

前些天有位师傅在后台私信我,关于通讯流量下资产识别的一些问题,此前有做过相关技术实现,所以交流了不少,后续也整理记录了这篇文章,还是比较有意义。

这次交流让我想起此前的一次流量威胁挖掘分析类业务,发现内网中有一个资产在对整个内网做探测,存活检测、端口和服务识别等,并且匹配到了Nmap的部分字段长度特征,起初以为是内网横向渗透,但经过简单研判,发现是发起扫描的实体是友商的安全设备,将Nmap工具嵌入产品中做主动的内网资产识别,算是一个小乌龙。

主动识别没什么好说的,此篇文章记录一下主机和用户被动识别的一些思路和细节实现。

二、背景

在网络攻防对抗中,通过特征规则、行为模型、威胁情报等要素做组合匹配检测,在通讯流量中挖掘恶意行为,是蓝队工作最主要的思路之一,而资产识别也是全流量分析产品的重要组成功能模块,对告警研判、资产设备管理和定位等都有非常大的帮助。

主动识别提供详细和准确的资产信息,适用于定期的详细审查和安全评估。而被动识别虽然精确度和全面性差一点,并且依赖通讯流量,但适合持续监控和不间断的资产识别,特别是在不允许干扰正常业务的环境中。二者结合起来,就可以对网络资产的做相对全面、准确和实时的识别和管理。

三、被动方式的资产识别

被动资产识别的原理是通过监听和分析网络流量来识别网络中的设备和服务,在可能包含主机信息的通讯协议解析时,将相应字段中去做解析和取值入库,后续建立索引等汇总信息,在用户交互界面做资产信息展示。

3.1 DHCP协议中的主机信息

DHCP(动态主机配置协议,Dynamic Host Configuration Protocol)是一种网络管理协议,用于在IP网络中自动分配IP地址和其他网络配置参数给设备(如计算机、服务器、打印机等)。

其中DHCP请求(DHCP Request)报文,功能为向DHCP服务器请求确认提供的IP地址。此报文载荷字段Dynamic Host Configuration Protocol (Request)如图。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

其中包含字段 Option:Host Name,标识了DHCP Request客户端的主机名。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

MAC 地址的前3个字节被wireshark解析为供应商标识,但是流量捕获的mac地址是流量传输链路中最近一跳的地址,复杂环环境中更常见于路由器、交换机或其他中间设备的地址,这个还是要仔细甄别。

我们可以结合协议字段信息,就可以大概对设备做一个资产标识。

  • ip,172.16.1.38
  • mac,Apple_04:a5:7b (f8:ff:c2:04:a5:7b)
  • 主机名,jeremiahs-MBP

结合供应商和主机名,还可以猜测其可能是Apple MacBook Pro设备。

3.2 NBNS协议中的主机信息

NBNS(NetBIOS Name Service)协议是NetBIOS(Network Basic Input/Output System)协议套件的一部分,主要用于局域网(LAN)内的名字解析服务。

其中NBNS Name Registration请求报文,功能为通过广播发送一个NBNS Name Registration请求,声明其NetBIOS名和对应的IP地址。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理udp载荷“NetBIOS Name Service”中会包含主机名信息。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

结合IP、mac、主机名可以大致标识此设备信息,设备和dhcp中的例子一致。

下图是一个windows主机的NBNS Name Registration请求报文。可见主机名“DESKTOP-HVKYP4S”。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

3.3 Active Directory(AD)环境下的主机信息

协议是一种基于对称密钥加密技术的网络身份验证协议,旨在允许通过不安全网络安全地验证用户或主机的身份。相信做域环境下的后渗透师傅们对Kerberos流量非常熟悉了。

其中 AS-REQ(Authentication Service Request)请求报文,是Kerberos认证过程中用户首次向认证服务器(AS)发送的请求消息。这是Kerberos协议的第一步,用户通过AS-REQ请求获取票据授予票据(TGT,Ticket Granting Ticket)。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

通过协议字段可以提取到如下标识信息。

  • 域环境名,www.pcapworkshop[.]net
  • 域控IP,172.16.1[.]16
  • 域控主机名,PCAPWORKSHOP-DC
  • 网关地址,172.16.1[.]1
  • Windows客户端,172.16.1[.]141
  • Windows客户端主机名,DESKTOP-HSJD5R8
  • Windows客户端用户名,Rene McCollum

通过这些信息就可以标识域环境下的资产信息。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

TGS-REP中包含域控主机名。全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

以及轻量级目录访问协议 (LDAP) 流量中可以找到用户的名字和姓氏或其他主机信息的标识符。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

3.4 http协议下的主机信息

http头中的User-Agent字段也可能会有客户端主机信息,但是随着加密流量的普及,以及各类工具对User-Agent的伪造,该种方法已经变得不可靠。

但是大致还是可以从浏览器生成的未加密HTTP流量中识别平台类型(Windows、Apple设备、Linux 或Android)。

以下图http请求为例。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理此 User-Agent字段由Microsoft Edge Web 浏览器版本110.0.1587.69从Windows11主机生成。

User-Agent中的以下字段:

(Windows NT 10.0;Win64;x64)

Windows NT 10.0代表 Windows 10或Windows 11。对于用户代理行,这些Windows NT字符串代表不同版本的 Microsoft Windows。

Windows NT版本 Windows操作系统版本
Windows NT 5.1 Windows XP
Windows NT 6.0 Windows Vista
Windows NT 6.1 Windows 7
Windows NT 6.2 Windows 8
Windows NT 6.3 Windows 8.1
Windows NT 10.0 Windows 10 or Windows 11

Chrome、Edge和Firefox等Web浏览器的开发人员已将其用户代理行中的Windows版本号固定在Windows NT 10.0中。

从2023年的某个时间开始,最新版本的Google Chrome浏览器现在将在User-Agent行中将任何版本的Windows报告为Windows NT 10.0。

这也是浏览器开发者层面去减少代理的方法之一。

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

Android 设备生成的未加密 HTTP Web 流量也可能泄露设备的品牌名称和型号。

例如下图中的字段,Android 13; Pixel 4a (5G)全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

此通讯流量是从运行iOS 16.4.1的Apple iPhone捕获。字段,iPhone; CPU iPhone OS 16_4_1 like Mac OS X

全流量采集分析(NTA)产品主机和用户“资产识别”实现原理



资产识别模块相对成熟以后,资产信息准确且时效性高,对我们研判告警,或者受害实体定位,上机取证检查都有很较大的帮助。

还有其他部分不太常见的,私有协议、工控协议字段也会包含主机信息,但其应用并不广泛,不过多赘述。

谢谢读者观看~


原文始发于微信公众号(帅仔回忆录):全流量采集分析(NTA)产品主机和用户“资产识别”实现原理

版权声明:admin 发表于 2024年5月23日 上午9:28。
转载请注明:全流量采集分析(NTA)产品主机和用户“资产识别”实现原理 | CTF导航

相关文章