网络安全应急响应工具之-流量安全取证NetworkMiner
在前面的一些文章中,用了很多的章节介绍流量分析和捕获工具wireshark。Wireshark是一款通用的网络协议分析工具,非常强大,关于wireshark的更多介绍,请关注专栏,wireshark从入门到精通。本文将介绍一个专注于网络流量取证的工具NetworkMiner,其视角和wireshark是不同的。
NetworkMiner 简介
NetworkMiner是一款C#编写的开源网络流量取证工具,官方网站,这里,源码这里,包含免费和付费两个版本。其主要目标是在从网络安全应急响应的视角从网络流量中提取有价值的信息,对相关的artifact的提取,包括文件提取,图片提取、主机识别,凭据提取,参数提取等,主要体现出攻防过程中重要的网络元素,目前多用于应急运营和响应人员的流量分析。免费版NetworkMiner主要包含如下的功能:
图1
付费版的NetworkMiner多出了如下功能:
图2
付费版的功能主要是向威胁情报领域更多信息的关联,同时提供更为精准的识别能力以及批量化处理能力。
NetworkMiner VS Wireshark
关于这两款工具最主要的区别如下:
1,NetworkMiner注重从网络流量中提取关键信息和文件,而Wireshark更注重于详细的协议分析。
NetworkMiner主要用取证,提取流量数据包中的关键信息,通常称之为artifact,例如主机识别、文件提取,图片提取,参数提取,凭据提取等。Wireshark用来捕获和分析网络流量的每个数据包,提供详细的协议信息、源/目标地址、端口等,支持网络协议众多,提供了强大的过滤功能。关于wireshark的更多介绍,请关注专栏,wireshark从入门到精通。
2,NetworkMiner主要用于调查取证,Wireshark适用于各种网络分析和故障排除场景。
NetworkMiner的主要用途是帮助网络安全运营人员,安全应急响应人员,安全取证人员进行网络取证,通过分析网络流量来发现潜在的威胁、检测恶意文件等。而Wireshark通常用于网络协议分析、网络故障排除、网络安全审计等方面。它是一种通用的网络分析工具,适用于多种场景。
NetworkMiner使用举例
下面将对NetworkMiner的主要功能通过具体的数据包做一下介绍。
协议分析
NetworkMiner出发点是网络取证,因此针对的协议多是网络攻防过程中高频出现的协议,如下是其支持的协议种类:
DHCP,DNS,FTP,HTTP,IRC,IEC 60870-5-104,IMAP,Kerberos v5,Modbus TCP,NetBios Name Service,NetBios Datagram Service,NetBios Session Service,OpenFlow,Oscar,Oscar File Transfer,POP3,RTP,SMB,SMB2,SMTP,SNMP,Socks,SSH,SSL,Syslog,Tabular Data Stream,TFTP,TPKT,UPnP,SIP,Spotify Server Protocol,VXLAN
NetworkMiner虽然没有wireshark支持丰富,但是上述这些协议都是在传统的IT环境中和网络攻击密切相关的协议,因此在安全领域非常的重要,对于网络安全研究人员,网络安全运营人员,网络安全应急响应人员想要详细了解上述协议,请关注我的专栏《网络攻防协议实战分析
》,见这里。
文件内容提取
NetworkMiner最重要的功能是提取流量中的artifact,其中文件是最为重要的artifact。目前NetworkMiner支持从如下的协议中提取文件:
FTP, TFTP, HTTP, HTTP/2, SMB, SMB2, SMTP, POP3, IMAP ,LPR
而wirehark目前只支持HTTP,TFTP,SMB,FTP等的文件提取,当然wireshark支持扩展的lua插件提取文件,需要自己编写程序实现,详见这里。
除此之外NetworkMiner还支持从加密的协议中提取证书文件,支持的协议如下:
HTTPS, SMTPS, IMAPS, POP3S, FTPS
整体来说提供的文件提取协议种类比wireshark丰富,同时侧重于攻击常见的文件传输行为,如图3所示:
图3
图3是一次实时捕获数据包的示例,可以看到提取的文件类型包括图片png和JPG,文本json文件、证书文件等,涉及http和TLS两种协议。
主机信息识别
NetworkMiner从主机的视角出发,针对主机层面的各种信息进行了聚合,例如主机的操作系统,主机名称,主机的服务器banner,ja3等信息,讲这些信息作为网络安全调查分析过程中重要的artifacts,NetworkMiner都将其聚合在主机目录之下,这有助于用户跟踪和分析网络活动,如下图4:
图4
图4识别出主机是一个android系统,并能根据DHCP的供应商够定位出手机的品牌,这些信息在取证的时候是存在一定价值的,wireshark是默认诶呦这方面能力的。
图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等内容。同时付费版本也提供了跟多扩展情报的能力,关于有哪些威胁情报可以使用,将会在专栏进行介绍《安全运营之网络攻击研判分析》,这里。
由于上述的配置文件都是明文进行存储,因此给用户一定的灵活度,可以添加用户自定义的指纹信息,来满足调查取证过程中的需求。
用户凭据识别
用户的凭据包括常见的用户名和密码,例如HTTP协议,FTP协议,POP3,SMTP协议都会传输用户名和密码,用户名是一项非常重要的信息,因为通过用户名可以知道是哪个用户的流量。想要知道哪些协议会在流量中传输用户明和密码,详见弱密码分析,这里。但是有的协议只传输用户名,例如SMB,RDP,MySQL,PGSQL,详见爆破流量分析,详见这里。关于用户凭据的提取示例如下图6,7,8:
图6
图6中提取了FTP协议的用户名和密码,HTTP协议的auth字段以及cookie字段,由于密码是敏感信息,因此我这里隐藏了密码。
图7
图7中提取了POP3,RDP,SQL的用户名等信息。
图8
图8提取了IMAP,IRC,kerberos的用户名信息。
在实际的应急响应和取证过程中,用户名能够提供非常有用的线索。
关键字搜索
NetworkMiner是基于取证场景出发的,因此提供强大的关键字搜索功能,这点比wireshark做的要好,用户可以通过自定义自己的关键字,来将匹配的数据包显示出来,如下图9:
图9
图9可以看出通过导入admin,anonymous等关键字的字典能够将匹配的数据包序号和payload进行显示,有利于快速的分析。
参数分析
从DFIR的角度来看,比较关注网络数据中的aritfacts,NetworkMiner认为,网络中各种参数的参数信息也是一种artifact,因此对这些元素进行了单独的提取,方便分析之用,如下图10,11:
图10
图11
可以看到图10中在参数分析栏中通过搜索server 关键字,可以快速的获取所有通信的服务器的server类型,图11通过搜索native os,可以知道通信的操作系统类型,这些功能在分期取证的过程中中非常的实用。当然,如果你想要了解为何能够在网络中提取到这些数据,详见专栏《网络攻防协议实战分析》,那里会有更为详尽的介绍。
DNS分析功能
从取证角度看DNS的展示应该如下图所示:
图12
可以看到该工具将DNS所有的记录按行显示,非常利于分析,同时通过关键字的功能还很容易过滤需要的域名。除此之外该工具对alex top 100万的域名进行了碰撞,用来辅助分析师的判断。只是该功能是付费功能,付费的功能还包括和DNS等危险情报碰撞,见上图2。由于该工具开源,也可以通过修改源码,导入alex前100万域名以及威胁情报判断即可。当然域名的分析属于威胁情报的范畴,仅仅判断其rank还是不够的,关于域名等IOC更多分析,详见这里。
在线和离线分析
工具支持实时监视网络流量,也可以对已捕获的PCAP文件进行离线分析。不仅如此该工具还支持从命名管道中读取数据,为用户提供更灵活的使用方式,这点不在赘述。
总结
总结该工具,该工具的主要特点是从安全分析取证视角出发,将网络流量中各种利于分析的artifacts提取单独显示,并关联相关的情报数据,帮助调查人员分析网络通信,发现潜在的威胁、异常通信、检测恶意文件,为取证调查提供有力支持,非常的有价值。当然其威胁情报是付费的,后续将会介绍如何将威胁情报的能力集成到wireshark中,方便分析师的分析,请关注专栏安全运营之网络攻击研判分析。
相关文章:

网络安全应急响应工具之-流量安全取证NetworkMiner
在前面的一些文章中,用了很多的章节介绍流量分析和捕获工具wireshark。Wireshark是一款通用的网络协议分析工具,非常强大,关于wireshark的更多介绍,请关注专栏,wireshark从入门到精通。本文将介绍一个专注于网络流量取…...
http 401 错误
HTTP 401 错误表示未被授权,指客户端通过请求头中的身份验证数据进行身份验证,服务器返回401状态码表示身份验证失败。HTTP 401 错误通常与身份验证和授权相关的 Web 请求有关。 一、HTTP 401错误的定义 HTTP 401 错误是 HTTP 状态码的一种。由于服务器…...

Docker-Compose部署Redis(v7.2)哨兵模式
文章目录 一、前提准备1. 主从集群2. 文件夹结构 二、配置文件1. redis server配置文件2. redis sentinel配置文件3. docker compose文件 三、运行四、测试 环境 docker desktop for windows 4.23.0redis 7.2 一、前提准备 1. 主从集群 首先需要有一个redis主从集群&#x…...

解决问题:PPT中插入视频编辑模式可以播放,幻灯片放映后播放不了
目录 一、原因分析二、解决办法三、其它问题 一、原因分析 这可能是由于PowerPoint的硬件图形加速功能导致的。 二、解决办法 禁用硬件图形加速。 (1)点击《文件》选项卡 (2)点击《选项》 (3)在《高级》…...

使用react+vite开发项目时候,部署上线后刷新页面无法访问解决办法
说一下我这边的环境和使用的路由模式:vitereactBrowserRouter路由模式,所以如果你和我一样的话,可以试试我的这种解决办法,我是将项目打包后直接丢到服务器上的目录里面,然后配置nginx直接访问根目录。 我的nginx配置…...
45. 跳跃游戏 II(Java)
题目描述: 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到…...

[足式机器人]Part4 南科大高等机器人控制课 CH12 Robotic Motion Control
本文仅供学习使用 本文参考: B站:CLEAR_LAB 笔者带更新-运动学 课程主讲教师: Prof. Wei Zhang 课程链接 : https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/ 南科大高等机器人控制课 Ch12 Robotic …...
【C++】知识点汇总(上)
C知识点复习上 一、C 概述1. 基本数据类型2. 变量定义和访问3. 常量与约束访问 二、程序控制结构详解与示例1. 表达式2. 选择控制2.1 if 语句2.2 switch 语句 3. 循环控制3.1 for 循环3.2 while 循环3.3 do-while 循环 4. goto 语句5. 控制语句的嵌套 三、函数1. 函数的定义和调…...

解决docker容器内无法连接宿主redis
背景 小程序的发短信服务挂了,随查看日志,该报错日志如下 Error 111 connecting to 127.0.0.1:6379. Connection refused. 6379是监听redis服务的端口,那大概是redis出错了。 首先查看了redis是否正常启动,检查出服务正常。 由于小…...

43 tmpfs/devtmpfs 文件系统
前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…...

C语言编译器(C语言编程软件)完全攻略(第十二部分:VS2010下载地址和安装教程(图解))
介绍常用C语言编译器的安装、配置和使用。 十二、VS2010下载地址和安装教程(图解) 为了更好地支持 Win7 程序的开发,微软于2010年4月12日发布了 VS2010,它的界面被重新设计,变得更加简洁。需要注意的是,V…...

【VRTK】【VR开发】【Unity】18-VRTK与Unity UI控制的融合使用
课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 VRTK和Unity自身的UI控制包可以配合使用发挥效果。本篇就讨论这方面的实战内容。 之前可以互动的立体UI并不是传统的2D UI对象,在实际使用中…...

BERT(从理论到实践): Bidirectional Encoder Representations from Transformers【3】
这是本系列文章中的第3弹,请确保你已经读过并了解之前文章所讲的内容,因为对于已经解释过的概念或API,本文不会再赘述。 本文要利用BERT实现一个“垃圾邮件分类”的任务,这也是NLP中一个很常见的任务:Text Classification。我们的实验环境仍然是Python3+Tensorflow/Keras…...

静态网页设计——校园官网(HTML+CSS+JavaScript)
前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 使用技术:HTMLCSSJS 主要内容:对学校官网的结构进行模仿,对布局进行模仿。 主要内容 1、首页 首页以多个div对页面进行分割和布局…...

phpstudy_pro 关于多版本php的问题
我在phpstudy中安装了多个PHP版本 我希望不同的网站可以对应不同的PHP版本,则在nginx配置文件中需要知道不同的PHP版本的监听端口是多少,如下图所示 然而找遍了php.ini配置,并未对listen进行设置,好奇是怎么实现不同的PHP监听不同…...

TemporalKit的纯手动安装
最近在用本地SD安装temporalkit插件 本地安装插件最常见的问题就是,GitCommandError:… 原因就是,没有科学上网,而且即使搭了ladder,在SD的“从网址上安装”或是“插件安装”都不行,都不行!!&am…...

人生重开模拟器
前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…...

优化算法3D可视化
编程实现优化算法,并3D可视化 1. 函数3D可视化 分别画出 和 的3D图 import numpy as np from matplotlib import pyplot as plt import torch# 画出x**2 class Op(object):def __init__(self):passdef __call__(self, inputs):return self.forward(inputs)def for…...

魔术表演Scratch-第14届蓝桥杯Scratch省赛真题第1题
1.魔术表演(20分) 评判标准: 4分:满足"具体要求"中的1); 8分:满足"具体要求"中的2); 8分,满足"具体要求"中的3)…...

LLM 中的长文本问题
近期,随着大模型技术的发展,长文本问题逐渐成为热门且关键的问题,不妨简单梳理一下近期出现的典型的长文本模型: 10 月上旬,Moonshot AI 的 Kimi Chat 问世,这是首个支持 20 万汉字输入的智能助手产品; 10 月下旬,百川智能发布 Baichuan2-192K 长窗口大模型,相当于一次…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...