linux下抓包,httpcanary抓包
大家好,如果您还对linux下抓包不太了解,没有关系,今天就由本站为大家分享linux下抓包的知识,包括httpcanary抓包的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
linux抓包命令tcpdump
tcpdump是一个功能强大的命令行数据包分析器,它通过监听服务器的网卡获取数据包,可用于分析所有网络访问的数据。此工具还具有过滤功能,可以获取特定网络、端口或协议的数据包。
程序员在日常问题排查中,常利用过滤功能获取特定端口的数据包,以分析服务器是否收到请求,请求数据是否完整。
tcpdump命令的参数丰富,本文仅介绍常用参数:
参数-c count表示指定数量的数据包,达到count后结束命令;若不使用此参数,程序将持续抓取数据包,直到手动停止。
参数-C file_size在抓取数据包保存到文件时,通过此命令设定文件大小。文件达到指定大小后,将创建以原文件名加序号的新文件,例如 dump.txt, dump.txt1。单位为字节(b)。
参数-D列出服务器的所有网卡,tcpdump默认监听编号最小的网卡(一般为eth0)。在执行抓包时,可通过参数-i interface指定监听的网卡,any表示监听所有网卡。
参数-n输出结果时,不将IP转换为主机名(默认显示主机名)。
参数-q快速输出,仅显示简要的数据包信息。
参数-r file从文件读取数据包,不再从网络获取数据包。
参数-t不输出时间戳。
参数-w file将抓取的数据包保存到指定文件,与参数-r结合使用时,从文件中读取数据包。
参数-W filecount指定文件数量,文件滚动到指定数量后,从第一个文件开始覆盖。
除了上述参数,还存在用于条件过滤的关键字,如:
参数-host过滤主机,例如 tcpdump host 192.168.1.110只抓取经过此IP的数据包。
参数-src用于过滤请求来源方,如 tcpdump src host 192.168.1.110只抓取从此IP过来的数据包。
参数-dst用于过滤请求接收方,例如 tcpdump dst host 192.168.1.110只抓取发送到此IP的数据包。
参数-port过滤端口,如 tcpdump port 8080只抓取经过8080端口的数据包。
参数-net过滤网络,如 tcpdump net 192.168只抓取经过此网段的数据包。
逻辑操作符如-and、not、or用于条件组合,例如 tcpdump net 192.168 and port 8080抓取特定网络和端口的数据包。
数据包分析结果如下:
时间戳:时:分:秒.微秒
IP协议名称
请求发送方IP和端口>请求接收方IP和端口。端口可能显示为协议名,如HTTP、SSH、MySQL等。
Flags [R]
标识和状态,可选状态包括 [S.] [.] [P.] [F.][R]
seq、ack、fin
表示TCP协议的握手和挥手过程。seq表示请求序列号,ack是回答序列号,fin表示完成。序列号显示为相对值,使用参数-S可显示绝对值。
win
当前窗口大小
length
报文体长度,此长度可用于简单分析是否正确接收请求。
利用以上信息可进行基本分析,通过参数-w将数据包写入文件,文件中包含更详细信息,借助分析工具如Wireshark进行进一步分析。
常用命令示例:
抓取8080端口的数据包
抓取从192.168.1.110发送到192.168.1.111的数据包
抓取192.168网段除了192.168.1.110的请求数据包
抓取8080端口的数据包并写入dump.log文件
注意事项:
1.运行tcpdump需要管理员权限,可通过sudo命令或使用root用户。
2.通过length字段只能进行简单判断,欲进行详细分析,需借助数据包分析工具,如Wireshark。
Linux的命令行下抓包工具tcpdump的使用图文介绍
我们使用Linux服务器,有些时候需要抓取其中的数据包进行分析攻击的类型以及特征,这样就可以根据特征在防火墙上面进行拦截防护了,在Linux的命令行里边我们需要借助tcpdump软件进行抓包,下面小编与大家分享一下tcpdump的使用,希望对大家有所帮助,谢谢。
工具/原料
Centos 6.5服务器
电脑一台
方法/步骤
1、默认系统里边没有安装有tcpdump的,无法直接使用
2、这里我们可以使用yum来直接安装它
yum install-y tcpdump
3、如果忘记了这个软件的用法,我们可以使用 tcpdump--help来查看一下使用方法
4、一般我们的服务器里边只有一个网卡,使用tcpdump可以直接抓取数据包,但是这样查看太麻烦了,所以都会添加参数来进行获取的。
例如我截取本机(192.168.31.147)和主机114.114.114.114之间的数据
tcpdump-n-i eth0 host 192.168.31.147 and 114.114.114.114
5、还有截取全部进入服务器的数据可以使用以下的格式
tcpdump-n-i eth0 dst 192.168.31.147
或者服务器有多个IP可以使用参数
tcpdump-n-i eth0 dst 192.168.31.147 or 192.168.31.157
6、我们抓取全部进入服务器的TCP数据包使用以下的格式,大家可以参考下
tcpdump-n-i eth0 dst 192.168.31.147 or 192.168.31.157 and tcp
从本机出去的数据包
tcpdump-n-i eth0 src 192.168.31.147 or 192.168.31.157
tcpdump-n-i eth0 src 192.168.31.147 or 192.168.31.157 and port! 22 and tcp
或者可以条件可以是or和 and配合使用即可筛选出更好的结果。
注意事项
使用还是比较简单的,可以考虑把数据包保存再拷出来,然后用wireshark进行图形查看更好理解。
Linux下Wireshark的网络抓包使用方法
Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。
与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。
Wireshark的优势:
-安装方便。
-简单易用的界面。
-提供丰富的功能。
Wireshark的原名是Ethereal,新名字是2006年起用的。当时Ethereal的主要开发者决定离开他原来供职的公司,并继续开发这个软件。但由于Ethereal这个名称的使用权已经被原来那个公司注册,Wireshark这个新名字也就应运而生了。
Wireshark目前世界上最受欢迎的协议分析软件,利用它可将捕获到的各种各样协议的网络二进制数据流翻译为人们容易读懂和理解的文字和图表等形式,极大地方便了对网络活动的监测分析和教学实验。它有十分丰富和强大的统计分析功能,可在Windows,Linux和UNIX等系统上运行。此软件于1998年由美国Gerald Combs首创研发,原名Ethereal,至今世界各国已有100多位网络专家和软件人员正在共同参与此软件的升级完善和维护。它的名称于2006年5月由原Ethereal改为Wireshark。至今它的更新升级速度大约每2~3个月推出一个新的版本,2007年9月时的版本号为0.99.6。但是升级后软件的主要功能和使用方法保持不变。它是一个开源代码的免费软件,任何人都可自由下载,也可参与共同开发。
Wireshark网络协议分析软件可以十分方便直观地应用于计算机网络原理和网络安全的教学实验,网络的日常安全监测,网络性能参数测试,网络恶意代码的捕获分析,网络用户的行为监测,黑客活动的追踪等。因此它在世界范围的网络管理专家,信息安全专家,软件和硬件开发人员中,以及美国的一些知名大学的网络原理和信息安全技术的教学、科研和实验工作中得到广泛的应用。
在安装新旧版本软件包和使用中,Ethereal与Wireshark的一些细微区别如下:
(1)Ethereal软件安装包中包含的网络数据采集软件是winpcap 3.0的版本,保存捕获数据时只能用英文的文件名,文件名默认后缀为.cap
(2)Wireshark软件安装包中,目前包含的网络数据采集软件是winpcap 4.0版本,保存捕获数据时可以用中文的文件名,文件名默认后缀为.pcap。另外,Wireshark可以翻译解释更多的网络通信协议数据,对网络数据流具有更好的统计分析功能,在网络安全教学和日常网络监管工作中使用更方便,而基本使用方法仍然与Ethereal相同。
winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。
在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析。
最近才发现,原来wireshark也提供有Linux命令行工具-tshark。tshark不仅有抓包的功能,还带了解析各种协议的能力。下面我们以两个实例来介绍tshark工具。
1、安装方法
CentOS:
复制代码代码如下:yum install-y wireshark
Ubuntu:
复制代码代码如下:apt-get install-y tshark
2、实时打印当前http请求的url(包括域名)
复制代码代码如下:
tshark-s 512-i eth0-n-f'tcp dst port 80'-R'http.host and http.request.uri'-T fields-e http.host-e http.request.uri-l| tr-d'\t'
下面介绍参数含义:
-s 512:只抓取前512个字节数据
-i eth0:捕获eth0网卡
-n:禁止网络对象名称解析
-f‘tcp dst port 80′:只捕捉协议为tcp,目的端口为80的数据包
-R‘http.host and http.request.uri’:过滤出http.host和http.request.uri
-T fields-e http.host-e http.request.uri:打印http.host和http.request.uri
-l:输出到标准输出
3、实时打印当前mysql查询语句
复制代码代码如下:
tshark-s 512-i eth0-n-f'tcp dst port 3306'-R'mysql.query'-T fields-e mysql.query
下面介绍参数含义:
-s 512:只抓取前512个字节数据
-i eth0:捕获eth0网卡
-n:禁止网络对象名称解析
-f‘tcp dst port 3306′:只捕捉协议为tcp,目的端口为3306的数据包
-R‘mysql.query’:过滤出mysql.query
-T fields-e mysql.query:打印mysql查询语句
tshark使用-f来指定捕捉包过滤规则,规则与tcpdump一样,可以通过命令man pcap-filter来查得。
tshark使用-R来过滤已捕捉到的包,与界面版wireshark的左上角Filter一致。