介绍
Netcap (NETwork CAPture) 是一个基于命令行的工具,用于对网络流量进行数据包数据分析。
Netcap:安全和可扩展的网络流量分析工具
- Netcap 在通过网络流量收集数据包方面非常有效,数据包可以从离线PCAP-NG或PCAP转储文件等输入源收集,其它数据包可以通过实时界面访问和收集。
- Netcap 使用 Google 的 Protocol Buffers 对其输出进行编码,解析很方便。也可以通过逗号分隔的CSV格式传输。为了不让系统中的数据占用太多空间,Netcap 将其所有数据压缩为gzip格式_._
- Netcap 可以使用转储工具查看可用的审计记录,net.dump然后将审计记录转换为支持的文件格式,例如 CSV 和 JSON。由格式错误的数据包导致的日志错误记录在该errors.log部分中。
特点:
- PCAP 和 PCAP-NG 支持
- 支持 USB 捕捉
- 允许实时捕捉
- CLI命令行界面
- 可以从分布式来源收集网络数据包
- 对取证数据分析非常有用
功能:
- net.capture(实时捕获审计记录或从转储文件中捕获)
- net.dump(转储各种格式的审计记录)
- net.label(用于从 netcap 数据创建带标签的 CSV 数据集的工具)
- net.collect(分布式收集的收集服务器)
- net.agent(分布式收集的传感器代理)
- net.proxy(用于从 Web 服务捕获流量的 http 反向代理)
- net.util(用于验证审计记录和转换时间戳的实用工具)
- net.export(prometheus 指标的导出器)
支持的平台
- Windows, Linux, OS X
Netcap的安装
使用Go Get
$ go get -u github.com/dreadl0ck/netcap/...
- 要安装命令行(使用 Development Build),请运行:
$ go build -o $(go env GOPATH)/bin/netcap -i github.com/dreadl0ck/netcap/cmd
- S使用brew安装
$ brew tap dreadl0ck/formulas
$ brew install netcap
- 安装Netcap后,执行如下命令检查所有单元是否正常运行:
$ go test -v -bench=. ./...
Netcap使用
/ |
_______ ______ _10 |_ _______ ______ ______
/ / \\ / / \\ / 01/ | / / | / / \\ / / \\
0010100 /|/011010 /|101010/ /0101010/ 001010 |/100110 |
01 | 00 |00 00 | 10 | __ 00 | / 10 |00 | 01 |
10 | 01 |01001010/ 00 |/ |01 \\_____ /0101000 |00 |__10/|
10 | 00 |00/ / | 10 00/ 00/ / |00 00 |00/ 00/
00/ 10/ 0101000/ 0010/ 0010010/ 0010100/ 1010100/
00 |
Network Protocol Analysis Framework 00 |
created by Philipp Mieden, 2018 00/
v5
+---------------+--------+
| Setting | Value |
+---------------+--------+
| Workers | 1000 |
| MemBuffer | true |
| Compression | true |
| PacketBuffer | 100 |
+---------------+--------+
spawned 1000 workers
initialized 29 layer encoders | buffer size: 4096
initialized 7 custom encoders | buffer size: 4096
running since 535785474s, captured 13000 packets…
- 要查看 Netcap 所支持的所有编码器,加上–encoders参数,根据你要执行的操作,你可以使用这些标志来排除-exclude或包含-include编码器 。
例子:
- 从网卡读取流量:
$ net.capture -iface eth0
- 使用 Ctrl-C (SIGINT) 停止捕获。
- PCAP 从和PCAP-NG转储文件中读取流量:
$ net.capture -r traffic.pcap
- 读取转储文件并打印stdout 为 csv格式
$ net.dump -r TCP.ncap.gz
- 将 CSV 输出保存到文件:
$ net.dump -r TCP.ncap.gz -select Timestamp,SrcPort,DstPort > tcp.csv
展示
- 还可以通过grafana实时展示网络数据