centos 抓包,centos编写shell脚本

玩转tcpdump解决Centos7环境抓包难题

网络数据采集分析工具 Tcpdump

借助 host参数筛选特定主机

1. Tcpdump选项详解

基于IP地址过滤:通过 host参数指定特定IP进行筛选

-根据源IP筛选

-根据目标IP筛选

基于网段过滤:net参数用于指定特定网段

对于同一网段,可细分为源网段和目标网段

基于端口过滤:port参数用于指定特定端口筛选

端口可再细分为源端口与目标端口

同时指定多个端口或端口段简化筛选

使用协议名代替端口号筛选特定协议

如 http对应 80,https对应 443

基于协议过滤:proto参数用于筛选常见协议,如 tcp、udp、icmp等

查看 ICMP包时,直接使用 icmp

protocol参数值包括:ip、ip6、arp、rarp等

输出抓取数据至文件:使用-w参数生成 pcap文件

结合 wireshark分析数据

读取 pcap文件使用-r参数

过滤与分析结合使用

提取 HTTP用户代理:从请求头筛选

提取用户代理与主机名:使用 egrep同时筛选

找出发包最多的IP:统计分析筛选

抓取 DNS请求与响应:通过端口筛选

切割 pcap文件:自动管理大文件

按小时创建新文件:避免数据过大覆盖旧文件

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一致。

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进行图形查看更好理解。

阅读剩余
THE END