零基础学做网站的书烟台网站建设
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:28
当前位置: 首页 > news >正文
零基础学做网站的书,烟台网站建设-中国互联,优化网站做内链接,wordpress app封装文章目录 一、命令简介二、使用方法三、命令选项四、基本语法和使用方法1. 显示 ASCII 字符串2. 抓取特定协议的数据3. 抓取特定主机的数据4. 将抓取的数据写入文件5. 行缓冲模式 五、理解tcpdump的输出六、过滤表达式1. Host 过滤2. Network 过滤3. Proto 过滤4. Port 过滤5. … 文章目录 一、命令简介二、使用方法三、命令选项四、基本语法和使用方法1. 显示 ASCII 字符串2. 抓取特定协议的数据3. 抓取特定主机的数据4. 将抓取的数据写入文件5. 行缓冲模式 五、理解tcpdump的输出六、过滤表达式1. Host 过滤2. Network 过滤3. Proto 过滤4. Port 过滤5. 使用逻辑运算符 七、举例1. 原始数据输出2. 来自特定的IP,发往特定的端口3. 从某个网段来到某个网段去4. 到某个IP的非SSH流量5. 根据 TCP Flags 分离数据5. 发现 HTTP Get请求6. 抓取用户名和密码 一、命令简介 tcpdump是一个网络抓包工具它可以捕获和分析TCP/IP网络协议的数据包。它使用 libpcap 库来抓取网络数据包这个库在几乎在所有的 Linux/Unix 中都有。之所以叫做tcpdump是因为它最初是用于捕获和分析TCP协议的数据包。然而随着时间的推移它的功能扩展到了其他协议如UDP、ICMP等。尽管如此它的名称仍然保持为tcpdump。 它支持针对网络层、协议、主机、网络或端口的过滤并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 二、使用方法 tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ][ -c count ][ -C file_size ] [ -G rotate_seconds ] [ -F file ][ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ][ –number ] [ -Q in|out|inout ][ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ][ -W filecount ][ -E spiipaddr algo:secret,… ][ -y datalinktype ] [ -z postrotate-command ] [ -Z user ][ –time-stamp-precisiontstamp_precision ][ –immediate-mode ] [ –version ][ expression ]三、命令选项 -A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息)。在抓取包含网页数据的数据包时可方便查看数据。-c counttcpdump将在接受到count个数据包后退出。-C file-size (此选项用于配合-w file 选项使用)该选项使得tcpdump在把原始数据包直接保存到文件中之前检查此文件大小是否超过file-size。如果超过了将关闭此文件。另创一个文件继 续用于原始数据包的记录。新创建的文件名与-w选项指定的文件名一致但文件名后多了一个数字。该数字会从1开始随着新创建文件的增多而增加单位是M。-d 把编译过的数据包编码转换成可阅读的格式并倾倒到标准输出。-dd 把编译过的数据包编码转换成C语言的格式并倾倒到标准输出。-ddd 把编译过的数据包编码转换成十进制数字的格式并倾倒到标准输出。-D 打印系统中所有tcpdump可以在其上进行抓包的网络接口。每一个接口会打印出数字编号相应的接口名字以及可能的一个网络接口描述。其中网络接口名字和数字编号可以用于-i选项用来指定要抓包的网络接口。-e 每行的打印输出中将包括数据包的数据链路层头部信息。默认情况下 tcpdump不会显示数据链路层信息使用-e选项可以显示源和目的 MAC地址以及VLAN tag信息。-f 用数字显示网际网络地址。-F file使用file文件作为过滤条件表达式的输入此时命令行上的输入将被忽略。-i interface指定需要监听的网口。如果没有指定tcpdump会从系统接口列表中搜寻编号最小的网口(不包括loopback网口)。-l 对标准输出进行行缓冲(使标准输出设备遇到一个换行符就马上把这行的内容打印出来)。在需要同时观察抓包打印以及保存抓包记录的时候很有用。比如可通过以下命令组合来达到此目的tcpdump -l | tee dattcpdump -l dat tail -f dat-n 不把主机的网络地址转换成名字。-nn 不解析域名和端口。这样不仅方便查看IP和端口号而且在抓取大量数据时非常高效因为域名解析会降低抓取速度。-N 不打印出host的域名部分。比如如果设置了此选现tcpdump将会打印nic而不是nic.ddn.mil。-O 不启用进行包匹配时所用的优化代码。当怀疑某些bug是由优化代码引起的此选项将很有用。-p 不让网络界面进入混杂模式。但必须注意在特殊情况下此网络接口还是会以混杂模式来工作。-q 快速输出仅列出少数的传输协议信息。-r file从文件file中读取包数据。如果file字段为-符号则tcpdump会从标准输入中读取包数据。-s snaplen设置tcpdump的数据包抓取长度为snaplen。tcpdump默认只会截取前96字节的内容如果snaplen是0的话表示截取报文全部内容。-S 打印TCP数据包的顺序号时使用绝对的顺序号而不是相对的顺序号。相对顺序号可理解为相对第一个TCP包顺序号的差距。比如接受方收到第一个数据包的绝对顺序号为232323对于后来接收到的第2个第3个数据包tcpdump会打印其序列号为12分别表示与第一个数据包的差距为1和2。而如果此时-S选项被设置对于后来接收到的第2个第3个数据包会打印出其绝对顺序号232324232325)。-T type强制tcpdump按type指定的协议所描述的包结构来分析收到的数据包。目前已知的type可取的协议为aodv (Ad-hoc On-demand Distance Vector protocol, 按需距离向量路由协议在Ad hoc(点对点模式)网络中使用)cnfp (Cisco NetFlow protocol)rpc (Remote Procedure Call)rtp (Real-Time Applications protocol)rtcp (Real-Time Applications con-trol protocol)snmp (Simple Network Management Protocol)tftp (Trivial File Transfer Protocol, 碎文件协议)vat (Visual Audio Tool, 可用于在internet上进行电视电话会议的应用层协议)wb (distributed White Board, 可用于网络会议的应用层协议)-t 在每行输出中不打印时间戳。-tt 不对每行输出的时间进行格式处理(这种格式一眼可能看不出其含义如时间戳打印成1261798315)。-ttt tcpdump输出时每两行打印之间会延迟一个段时间(以毫秒为单位)。-tttt 在每行打印的时间戳之前添加日期的打印。-v 当分析和打印的时候产生详细的输出。比如包的生存时间标识总长度以及IP包的一些选项。这也会打开一些附加的包完整性检测比如对IP或ICMP包头部的校验和。-vv 产生比-v更详细的输出。比如NFS回应包中的附加域将会被打印SMB数据包也会被完全解码。-vvv 产生比-vv更详细的输出。比如telent时所使用的SBSE选项将会被打印如果telnet同时使用的是图形界面其相应的图形选项将会以16进制的方式打印出来。-w 把包数据直接写入文件而不进行分析和打印输出。这些包数据可在随后通过-r选项来重新读入并进行分析和打印。-x 将每个数据包的头部数据以及数据部分以16进制的形式打印出来。需要注意的是这个选项不会包括连接层的头部数据。 -xx tcpdump会打印每个包的头部数据同时会以16进制打印出每个包的数据。其中包括数据链路层的头部。-X 当分析和打印时tcpdump会打印每个包的头部数据同时会以16进制和ASCII码形式打印出每个包的数据(但不包括连接层的头部)。这对于分析一些新协议的数据包很方便。-XX 当分析和打印时tcpdump会打印每个包的头部数据同时会以16进制和ASCII码形式打印出每个包的数据其中包括数据链路层的头部。四、基本语法和使用方法
显示 ASCII 字符串 tcpdump -A -s0 port 222. 抓取特定协议的数据 后面可以跟上协议名称来过滤特定协议的流量以 UDP 为例可以加上参数 udp 或 protocol 17这两个命令意思相同。 tcpdump -i eth0 udp tcpdump -i eth0 proto 17同理tcp 与 protocol 6 意思相同。 3. 抓取特定主机的数据 使用过滤器 host 可以抓取特定目的地址和源IP地址的流量。也可以使用 src 或 dst 只抓取源或目的地。 tcpdump -i eth0 host 10.10.1.1 tcpdump -i eth0 dst 10.10.1.204. 将抓取的数据写入文件 使用 tcpdump 截取数据报文的时候默认会打印到屏幕的默认输出你会看到按照顺序和格式很多的数据一行行快速闪过根本来不及看清楚所有的内容。不过tcpdump 提供了把截取的数据保存到文件的功能以便后面使用其他图形工具比如 wiresharkSnort来分析。 -w 选项用来把数据报文输出到文件 tcpdump -i eth0 -s0 -w test.pcap5. 行缓冲模式 如果想实时将抓取到的数据通过管道传递给其他工具来处理需要使用 -l 选项来开启行缓冲模式或使用 -c 选项来开启数据包缓冲模式。使用 -l 选项可以将输出通过立即发送给其他命令其他命令会立即响应。 tcpdump -i eth0 -s0 -l port 80 | grep Server:五、理解tcpdump的输出 截取数据只是第一步第二步就是理解这些数据下面就解释一下 tcpdump 命令输出各部分的意义。 21:27:06.995846 IP (tos 0x0, ttl 64, id 45646, offset 0, flags [DF], proto TCP (6), length 64)192.168.1.106.56166 124.192.132.54.80: Flags [S], cksum 0xa730 (correct), seq 992042666, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 663433143 ecr 0,sackOK,eol], length 021:27:07.030487 IP (tos 0x0, ttl 51, id 0, offset 0, flags [DF], proto TCP (6), length 44)124.192.132.54.80 192.168.1.106.56166: Flags [S.], cksum 0xedc0 (correct), seq 2147006684, ack 992042667, win 14600, options [mss 1440], length 021:27:07.030527 IP (tos 0x0, ttl 64, id 59119, offset 0, flags [DF], proto TCP (6), length 40)192.168.1.106.56166 124.192.132.54.80: Flags [.], cksum 0x3e72 (correct), ack 2147006685, win 65535, length 0最基本也是最重要的信息就是数据报的源地址/端口和目的地址/端口上面的例子第一条数据报中源地址 ip 是 192.168.1.106源端口是 56166目的地址是 124.192.132.54目的端口是 80。 符号代表数据的方向。 此外上面的三条数据还是 tcp 协议的三次握手过程第一条就是 SYN 报文这个可以通过 Flags [S] 看出。下面是常见的 TCP 报文的 Flags: [S] : SYN开始连接[.] : 没有 Flag[P] : PSH推送数据[F] : FIN 结束连接[R] : RST重置连接 而第二条数据的 [S.] 表示 SYN-ACK就是 SYN 报文的应答报文。 六、过滤表达式 tcpdump的过滤表达式用于指定要捕获的数据包的条件。
Host 过滤 用来过滤某个主机的数据报文。例如 tcpdump host 1.2.3.4该命令会抓取所有发往主机 1.2.3.4 或者从主机 1.2.3.4 发出的流量。如果想只抓取从该主机发出的流量可以使用下面的命令 tcpdump src host 1.2.3.42. Network 过滤 用来过滤某个网段的数据使用的是 CIDR 模式。可以使用四元组x.x.x.x、三元组x.x.x、二元组x.x和一元组x。四元组就是指定某个主机三元组表示子网掩码为 255.255.255.0二元组表示子网掩码为 255.255.0.0一元组表示子网掩码为255.0.0.0。例如抓取所有发往网段 192.168.1.x 或从网段 192.168.1.x 发出的流量 tcpdump net 192.168.1抓取所有发往网段 10.x.x.x 或从网段 10.x.x.x 发出的流量 tcpdump net 10和 Host 过滤器一样这里也可以指定源和目的 tcpdump src net 10也可以使用CIDR 格式 tcpdump src net 172.16.0.0/123. Proto 过滤 用来过滤某个协议的数据关键字为 proto可省略。proto 后面可以跟上协议号或协议名称支持 icmp, igmp, igrp, pim, ah, esp, carp, vrrp, udp 和 tcp。因为通常的协议名称是保留字段所以在于 proto 指令一起使用时必须根据 shell 类型使用一个或两个反斜杠/来转义。Linux 中的 shell 需要使用两个反斜杠来转义MacOS 只需要一个。 例如抓取 icmp 协议的报文 tcpdump -n proto \icmp
或者
tcpdump -n icmp4. Port 过滤 用来过滤通过某个端口的数据报文关键字为 port。例如 tcpdump port 3895. 使用逻辑运算符
and、or、not
tcpdump src host 192.168.1.100 and dst port 80 tcpdump src host 192.168.1.100 and (dst port 80 or dst port 443) tcpdump not icmp# 注意当你构建复杂查询的时候你可能需要使用引号。单引号告诉tcpdump忽略特定的特殊字符如下面的例子中的括号。 tcpdump src 10.0.2.4 and (dst port 3389 or 22)七、举例 1. 原始数据输出 tcpdump -ttnnvvS2. 来自特定的IP,发往特定的端口 tcpdump -nnvvS src 10.5.2.3 and dst port 3389 tcpdump -nnvvS src 10.5.2.3 and dst port 33893. 从某个网段来到某个网段去 来自192.168.x.x子网发往10.x和172.16.x.x。显示十六进制无需翻译主机名一个v的详细信息。 tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/164. 到某个IP的非SSH流量 来自mars主机发往非SSH端口。 tcpdump -vv src mars and not dst port 225. 根据 TCP Flags 分离数据
使用TCP RST flag筛选
tcpdump tcp[13] 4!0 tcpdump tcp[tcpflags] tcp-rst# 根据 TCP SYN flag筛选 tcpdump tcp[13] 2!0 tcpdump tcp[tcpflags] tcp-syn# 根据 TCP SYN和ACK flag筛选 cpdump tcp[13]18# 根据 TCP URG flag筛选 tcpdump tcp[13] 32!0 tcpdump tcp[tcpflags] tcp-urg# 根据 TCP ACK flag筛选 tcpdump tcp[13] 16!0 tcpdump tcp[tcpflags] tcp-ack# 根据 TCP PSH flag筛选 tcpdump tcp[13] 8!0 tcpdump tcp[tcpflags] tcp-psh# 根据 TCP FIN flag筛选 tcpdump tcp[13] 1!0 tcpdump tcp[tcpflags] tcp-fin5. 发现 HTTP Get请求 tcpdump -vvAls0 | grep GET6. 抓取用户名和密码 tcpdump port http or port ftp or port smtp or port imap or port pop3 or port telnet -lA | egrep -i -B5 pass|pwd|log|login|user|username|pw|passw|passwd |password|pass:|user:|username:|password:|login:|pass |user
- 上一篇: 零基础建设网站视频教程济宁建设公司网站
- 下一篇: 零基础月做网站多久海口网微博
相关文章
-
零基础建设网站视频教程济宁建设公司网站
零基础建设网站视频教程济宁建设公司网站
- 技术栈
- 2026年03月21日
-
零遁nas做网站做网站前端用什么语言
零遁nas做网站做网站前端用什么语言
- 技术栈
- 2026年03月21日
-
陵水网站建设哪家专业网站购物商城功能模块图
陵水网站建设哪家专业网站购物商城功能模块图
- 技术栈
- 2026年03月21日
-
零基础月做网站多久海口网微博
零基础月做网站多久海口网微博
- 技术栈
- 2026年03月21日
-
零食店网站构建策划报告陕西省建设银行网站6
零食店网站构建策划报告陕西省建设银行网站6
- 技术栈
- 2026年03月21日
-
零食网站页面模板中山专业网站建设公司
零食网站页面模板中山专业网站建设公司
- 技术栈
- 2026年03月21日


