在前面的一些文章中,用了很多的章节介绍流量分析和捕获工具wireshark。Wireshark是一款通用的网络协议分析工具,非常强大,关于wireshark的更多介绍,请关注专栏,wireshark从入门到精通。本文将介绍一个专注于网络流量取证的工具NetworkMiner,其视角和wireshark是不同的。
关于这两款工具最主要的区别如下:
1,NetworkMiner注重从网络流量中提取关键信息和文件,而Wireshark更注重于详细的协议分析。
NetworkMiner主要用取证,提取流量数据包中的关键信息,通常称之为artifact,例如主机识别、文件提取,图片提取,参数提取,凭据提取等。Wireshark用来捕获和分析网络流量的每个数据包,提供详细的协议信息、源/目标地址、端口等,支持网络协议众多,提供了强大的过滤功能。关于wireshark的更多介绍,请关注专栏,wireshark从入门到精通。
2,NetworkMiner主要用于调查取证,Wireshark适用于各种网络分析和故障排除场景。
NetworkMiner的主要用途是帮助网络安全运营人员,安全应急响应人员,安全取证人员进行网络取证,通过分析网络流量来发现潜在的威胁、检测恶意文件等。而Wireshark通常用于网络协议分析、网络故障排除、网络安全审计等方面。它是一种通用的网络分析工具,适用于多种场景。
下面将对NetworkMiner的主要功能通过具体的数据包做一下介绍。
协议分析
NetworkMiner出发点是网络取证,因此针对的协议多是网络攻防过程中高频出现的协议,如下是其支持的协议种类:
NetworkMiner虽然没有wireshark支持丰富,但是上述这些协议都是在传统的IT环境中和网络攻击密切相关的协议,因此在安全领域非常的重要,对于网络安全研究人员,网络安全运营人员,网络安全应急响应人员想要详细了解上述协议,请关注我的专栏《网络攻防协议实战分析
》,见这里。
文件内容提取
NetworkMiner最重要的功能是提取流量中的artifact,其中文件是最为重要的artifact。目前NetworkMiner支持从如下的协议中提取文件:
而wirehark目前只支持HTTP,TFTP,SMB,FTP等的文件提取,当然wireshark支持扩展的lua插件提取文件,需要自己编写程序实现,详见这里。
除此之外NetworkMiner还支持从加密的协议中提取证书文件,支持的协议如下:
主机信息识别
图5
图5 识别出主机是一个Windows系统,并提供了网卡品牌,主机名称,浏览器UA的名称,JA3等诸多信息。如果主机是一个linux主机,则还有能提供Linux上服务器的banner信息的。
那么networkminer是如何识别主机的操作系统信息,网卡信息,以及判定ja3等信息是否存在问题的,在NetworkMiner的安装目录的Fingerprints目录中存在tcp.xmld,dhcp.xml,etter.finger.os以及p0f相关的文件,查看这些文件发现都是操作系统指纹信息映射表,因此其基本原理也是根据TCP,SMB,DHCP流量中的指纹信息进行比对。
网卡名称的映射关系主要在oui.txt,根据MAC地址的前24位能够识别出对应的厂商。
NetworkMiner集成了abuse.ch中的ja3和ja3s的指纹信息来判断TLS链接是否是已知的威胁,详见ja3_fingerprints.csv,sslblacklist.csv等文件。值得注意的是,要想跟踪最新的威胁,需要到abuse的官网去更新最新的ja3s等内容。同时付费版本也提供了跟多扩展情报的能力,关于有哪些威胁情报可以使用,将会在专栏进行介绍《安全运营之网络攻击研判分析》,这里。
由于上述的配置文件都是明文进行存储,因此给用户一定的灵活度,可以添加用户自定义的指纹信息,来满足调查取证过程中的需求。
用户凭据识别
关键字搜索
参数分析
DNS分析功能
在线和离线分析
工具支持实时监视网络流量,也可以对已捕获的PCAP文件进行离线分析。不仅如此该工具还支持从命名管道中读取数据,为用户提供更灵活的使用方式,这点不在赘述。