前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Tcpflow

作者头像
用户5760343
发布2022-05-14 14:51:15
8220
发布2022-05-14 14:51:15
举报
文章被收录于专栏:sktjsktj

TCPflow是一款功能强大的、基于命令行的免费开源工具,用于在Unix之类的系统(如Linux)上分析网络流量。它可捕获通过TCP连接接收或传输的数据,并存储在文件中供以后分析,采用的格式便于协议分析和调试。

它实际上是类似tcpdump的工具,因为它处理来自网络或存储文件的数据包。它同样支持tcpdump支持的功能强大的过滤表达式。唯一的区别是,tcpflow让所有TCP数据包井然有序,并在单独的文件(每路方向的数据流有一个文件)中组装每路数据流,供以后分析。

功能特性包括一个高级插件系统,用于解压缩压缩的HTTP连接、撤消MIME编码或调用后期处理的第三方程序等等。

TCPflow有许多使用场景,包括了解网络数据包流量,还支持执行网络取证分析和泄露HTTP会话的内容。

如何在Linux系统中安装TCPflow?

TCPflow可以在主流GNU/Linux发行版的官方代码仓库中找到,可以使用软件包管理器安装它,如下所示。

$ sudo tcpflow tcpflow: listening on enp0s3 默认情况下,TCPflow将所有捕获的数据存储在表单中有名称的文件中(如果你使用某些选项,比如timestamp,这可能不一样)。

sourceip.sourceport-destip.destport 192.168.043.031.52920-216.058.210.034.00443 现在不妨列出目录,看看TCP流量是否已捕获在任何文件中。

$ ls -1 total 20 -rw-r--r--. 1 root root 808 Sep 19 12:49 192.168.043.031.52920-216.058.210.034.00443 -rw-r--r--. 1 root root 59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920 如上所述,每路TCP流量存储在各自的文件中。从上面输出可以看出,有三个记录文件(transcript file),这表明TCPflow呈两个截然不同的方向,源IP在第一个文件中,目的地IP在第二个文件中,反之亦然。

第一个文件192.168.043.031.52920-216.058.210.034.00443含有从主机192.168.043.031(TCPflow运行所在的localhost,通过端口52920)传输到主机216.058.210.034(远程主机,通过端口443)的数据。

而第二个文件216.058.210.034.00443-192.168.043.031.52920含有从主机216.058.210.034(远程主机,通过端口443)传输到主机192.168.043.031(TCPflow运行所在的localhost,通过端口52920)的数据。

还生成了一个XML报告,含有关于该程序的信息,比如它是如何编译的、它在哪台计算机上运行以及每条TCP连接的记录。

你可能注意到了,TCPflow默认情况下将记录文件存储在当前目录下。-o选项可帮助你指定将写入文件的输出目录。

想有效地进行测试,打开第二个端口,运行ping,或浏览互联网。你应该能够看到ping细节或浏览细节已被TCPflow捕获。

$ sudo tcpflow -c 可以捕获某个端口上的所有流量,比如端口80(HTTP)。以HTTP流量为例,你可以看到HTTP Headers以及随后的内容都在stdout上;如果去除-c参数选项符,它们都在一个文件中。

$ sudo tcpflow port 80 想捕获来自某个网络接口的数据包,使用-i标志来指定接口名称。

$ sudo tcpflow -i eth0 port 80 还可以指定目标主机(接受的值是IP地址、主机名或域名),如下所示:

$ sudo tcpflow -c host 192.68.43.1 OR

$ sudo tcpflow -c host www.google.com 你可以使用-a标志,启用使用所有浏览器的所有处理,这相当于-e all参数选项符。

$ sudo tcpflow -a OR

$ sudo tcpflow -e all 还可以激活特定的扫描器;可用的扫描器包括md5、http、netviz、tcpdemux和wifiviz(运行tcpflow –H,即可查看关于每个扫描器的详细信息)。

$ sudo tcpflow -e http OR

$ sudo tcpflow -e md5 OR

$ sudo tcpflow -e netviz OR

$ sudo tcpflow -e tcpdemux OR

$ sudo tcpflow -e wifiviz 下面这个例子显示了如何启用除tcpdemux之外的所有扫描器。

$ sudo tcpflow -a -x tcpdemux TCPflow通常在捕获数据包之前试图让网络接口处于混杂模式。可以使用-p标志来阻止这种模式,如下所示:

$ sudo tcpflow -p -i eth0 想读取来自tcpdump pcap文件的数据包,使用-r标志。

$ sudo tcpflow -f file.pcap 可以使用-v或-d 10选项启用详细模式。

$ sudo tcpflow -v OR

$ sudo tcpflow -d 10 重要提醒:TCPflow的一个局限性是,目前它不了解IP片段,因而可能无法正确捕获作为TCP连接的一部分而传输的含有IP片段的数据。

想了解更多信息和用法选项,请参阅TCPflow参考手册页。

$ man tcpflow TCPflow Github代码仓库:https://github.com/simsong/tcpflow

就是这样!TCPflow是一款功能强大的TCP流量记录器,适用于了解网络数据包流量、执行网络取证分析等等。试用一下,欢迎交流心得。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档