快过年了,首先祝福大家新年好,猪年吉祥,阖家团圆,万事如意!在吃喝玩乐睡之余是不是还觉得很闲?很闲?别慌,不怕的,正好可以利用这段时间学点技术提升自己,今天虫虫就给大家奉上新年技术第一波,tcpdump网络抓包。

基本使用

tcpdump是首屈一指的网络抓包分析工具,之前的文章中,虫虫曾经说过个例利用tcpudump抓包的教程,今天我们来系统的学习一下。

tcpdump底层基于libpcap,linux下有大量的网络工具都是基于这个包。tcpdump基本使用见上图。让我们从一个基本命令开始,

tcpdump -nnSX port 443

这样就可以抓取HTTPS(443端口)的流量:

命令选项:

-nn:不解析主机名或端口名称。

-S:获取整个数据包。

-X:获取十六进制输出。

可以使用-c 1获取单个数据包,或使用-c n获取n数字。

结果如下图,显示了一些HTTPS流量,在输出的右侧部分可以看到十六进制显示(乱码,因为是加密的)。

基础技能

通过上面,已经知道了通过tcpdump抓包了。我们接着学习实际中会用到实际例子,通过抓包排除故障,解释一些网络疑难杂症,甚至学习网络知识都是大有裨益的。

抓取特定网卡的流量

使用-i 指定网卡名,比如eth0。使用-i any可以获取所有网卡的流量。

tcpdump -i eth0

表达类型:host(主机),net(网络)和port(端口)。

网络方向:src(源地址)和dst(目的地址)。

协议:tcp,udp,icmp等等。

按IP查找流量

使用host的最常见查询之一,筛选来自 192.168.0.1的流量。

tcpdump host 192.168.0.1

按来源和/或目的地过滤

如果只想查看一个方向或另一个方向的流量,可以使用src和dst过滤。

tcpdump src 192.168.0.1

tcpdump dst 8.8.8.8

按网络查找数据包

要查找进出特定网络或子网的数据包,请使用net选项。

也可以将它与src和dst选项结合使用。

tcpdump net 192.168.0.0/24

获取十六进制输出的数据包内容

当你想要查看有问题的数据包的内容时,十六进制输出非常有用,如果我们需要对某些网络包做详细分析时候,最好用16进制输出所有内容。

tcpdump -c 1 -X icmp

显示与特定端口相关的流量

可以使用port选项后跟端口号查找特定的端口流量。

tcpdump端口3389

tcpdump src端口1025

显示一个协议的流量

如果正在寻找一种特定类型的流量,您也可以使用tcp,udp,icmp和许多其他流量。

tcpdump icmp

显示IP6流量

还可以使用协议选项查找所有IP6流量。

tcpdump ip6

使用端口范围查找流量

使用一系列端口范围来查找流量。

tcpdump portrange 8080-8090

根据数据包大小查找流量

如果需要查到特定大小的数据包,可以使用这些选项。还可以是用对比数学符号,比如大于,大于等于等。

tcpdump less 32

tcpdump greater 64

tcpdump <= 128

从文件读取或者将结果保存到文件

将数据包捕获保存到文件中以供将来分析通常很有用。这些文件称为PCAP(PEE-cap)文件,这是一种标准格式的文件,有大量的网络工具可以对他进行处理,比如网络分析器,入侵检测系统,wireshark等。等然其他tcpdump也是可以解析分析了。使用-w选项指定需要写入的文件名,比如:

tcpdump port 80 -w capture_file

使用-r开关读取已有的PCAP文件。注意,在读取文件时也可以使用tcpdump中的所有常规命。

tcpdump -r capture_file

进阶技能

上面一些实例中,我们介绍了一些基础的技能,用来熟悉基本用法。该部分我们进阶更复杂的用法。

更多的选项用法

-X:以十六进制和ASCII格式显示数据包的内容。

-XX:与-X相同,但也显示以太网头部包内容。

-D:显示可用网卡接口列表

-l:行可读输出(用于保存或发送到其他命令时查看)

-q:输出更简洁(更安静)。

-t:提供人性化的时间戳输出。

-tttt:提供最大化的人性化时间戳输出。

-i eth0:监听eth0接口。

-vv:详细输出(更多v提供更多输出)。

-c:只获取x个数据包然后停止。

-s:以字节为单位定义捕获的捕捉长度(大小)。使用-s0来获取所有内容。

-S:打印绝对序列号。

-e:获取以太网头部包内容。

-q:显示较少的协议信息。

-E:通过提供一个解密IPSEC流量

选项组合

除了基本选项外,tcpdump最大强大的功能是,它支持对各种选项进行组合,从而准确地匹配出我们真正需要的内容。tcpdump支持三种组合方法:

1. 逻辑与: and 、&&

2. 逻辑或: or 、||

3. 逻辑非:not 、!

原始输出视图

使用下面选项可以查看详细输出,不对主机名或端口号解析,使用绝对序列号,并显示人性化的时间戳。

tcpdump -ttnnvvS

下面是选择组合的一些实例。

从特定IP到目的地的特定端口

让我们找到从192.168.0.3的3389端口发出的所有流量。

tcpdump -nnvvS src 192.168.0.3 and dst port 3389

从一个网络到另一个网络的流量

查看来自192.168.x.x,目的地为10.x或172.16.x.x网络的所有流量,显示为十六进制输出,不对主机名解析,一般程度详细的内容。

tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16

排除ICMP的到特定IP的流量

下面的命令显示所有访问192.168.0.2的非ICMP的流量。

tcpdump dst 192.168.0.2 and src net and not icmp

排除特定端口上的主机的流量

下面命令显示所有非SSH得流量(假设ssh使用默认端口22)。

tcpdump -vv and not dst port 22

如上所示,我们可以利用基本选项和组合选项随心所欲构建我们真正需要网络包的查询。需要注意的是在构建复杂查询时,为了便于理解,需要使用括号()来对选项进行分组;使用单引号"'"用于来忽略(转义)某些特殊字符。我们可以重复使用相同的选项利用表达式进行分组,例如主机,端口,网络等。

tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

隔离TCP标志

我们还可以使用过滤器隔离设置对特定TCP标记的数据包过滤。

隔离TCP RST标志。

下面语句过滤器,筛选这些不同的数据包。

tcpdump 'tcp[13] & 4!=0'

tcpdump 'tcp[tcpflags] == tcp-rst'

tcp[13]查看TCP标头中的偏移量13,数字表示字节内的位置,而!= 0表示有问题的标志设置为1,即它打开。

隔离TCP SYN标志。

tcpdump 'tcp[13] & 2!=0'

tcpdump 'tcp[tcpflags] == tcp-syn'

同时隔离SYN和ACK标志的数据包。

tcpdump 'tcp[13]=18'

隔离TCP URG标志。

tcpdump 'tcp[13] & 32!=0'

tcpdump 'tcp[tcpflags] == tcp-urg'

在tcpdump的标志字段输出中仅显示PSH,RST,SYN和FIN标志。显示URG和ACK,但它们显示在输出的其他位置而不是标志字段中。

隔离TCP ACK标志。

tcpdump 'tcp[13] & 16!=0'

tcpdump 'tcp[tcpflags] == tcp-ack'

隔离TCP PSH标志。

tcpdump 'tcp[13] & 8!=0'

tcpdump 'tcp[tcpflags] == tcp-psh'

隔离TCP FIN标志。

tcpdump 'tcp[13] & 1!=0'

tcpdump 'tcp[tcpflags] == tcp-fin'

常用单行命令备用(onelines)

tcpdump输出是ASCII格式的内容,所以可以使用它来结合其他命令行工具(如grep)搜索明文内容。虽然根据上面说的,我们可以组合自己的查询,但是你可能怕消耗脑细胞,只想能动手复制粘贴伸手拿来就用。那下面这些常用单行命令就是给你准备的。

SYN和RST 集

tcpdump 'tcp[13] = 6'

查找HTTP User-Agent

-l开关,可以在捕获流量时查看流量,并通过管道二次搜索:

tcpdump -vvAls0 | grep 'User-Agent:'

查找 GET请求内容

tcpdump -vvAls0 | grep 'GET'

查找HTTP主机头

tcpdump -vvAls0 | grep 'Host:'

查找HTTP Cookie

tcpdump -vvAls0 | grep 'Set-Cookie|Host:|Cookie:'

查找SSH连接

适用于任何特定的ssh端口,他查询的ssh的banner指纹。

tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D'

查找DNS流量

tcpdump -vvAs0 port 53

查找FTP流量

tcpdump -vvAs0 port ftp or ftp-data

查找NTP流量

tcpdump -vvAs0 port 123

查找明文密码

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 '

查找带有恶意攻击的流量

如果IP头中有一些一点从来不会被合法应用程序包设置,我们称之为"邪恶位"。下面这个过滤器,就是利用这个特性,用于查找已经被篡改的数据包。

tcpdump 'ip[6] & 128 != 0'

总结

tcpdump对于每一个想要从事网络有关的人来说是个潘多拉盒子宝盒,让你理解网络,学习TCP/IP的工作原理,让运维排除由于网络导致的顽疾问题,当你尝试遍所有方法而不见其解的时候,就应该想到两个工具:网络相关找tcpdump抓包,内核性能相关就打印火焰图。

关于fi dd ler 手机抓包 网卡地址地址_大年别闲着,跟我来学tcpdump抓包相关推荐

  1. 关于fi dd ler 手机抓包 网卡地址地址_一篇不错的网络数据抓包

    一,网络抓包 Android 手机抓包  adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap adb pull /sdcard/capture. ...

  2. 关于fi dd ler 手机抓包 网卡地址地址_利用无线路由器如何抓取手机网络数据包【详细介绍】...

    当用户运用手机访问网络时,手机在不断接受与发送数据包,而这些数据包中包含了大量的用户信息,包括各种账号信息.聊天信息.发送接收文件.邮件.浏览的网页等.虽然很多信息是加密传输的,但还是会有大量信息是明 ...

  3. 关于fi dd ler 手机抓包 网卡地址地址_实测对比Wireshark利用nRF52832抓包和Packet Sniffer抓包体验...

    在蓝牙的开发过程中,使用抓包器对蓝牙模块收发数据进行抓包BLE分析,无疑会极大地提高我们的研发开发效率,同时能帮我们快速地定位问题.对于初学者或者开发者来说,BLE抓包分析能让我们更快地理解蓝牙的工作 ...

  4. 关于fi dd ler 手机抓包 网卡地址地址_超详细的网络抓包神器 tcpdump 使用指南

    tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有.熟悉 tcpdump 的使用能够帮助你分析调试网络数据,本文将 ...

  5. 关于fi dd ler 手机抓包 网卡地址地址_面试官:你给我讲讲抓包神器tcpdump的原理...

    点击上方蓝色字关注我们~ 面试官 你说你会网络编程?你说你熟悉网络知识,那你使用过tcpdump吗?能给我讲下tcpdump是什么,或者你有用过tcpdump解决过实际问题吗? 如果你学过网络,甚至搞 ...

  6. 关于fi dd ler 手机抓包 网卡地址地址_小黑客必备手机开发工具!

    hello,你们的魔鬼小Kevin又来了. 一个可爱帅气机智的不正经号主准时准点出现在每个你期待的夜晚! 开发助手APP是一款工具类小程序,开发助手app能够用来快速调试应用以及查看手机软硬件相关信息 ...

  7. 关于fi dd ler 手机抓包 网卡地址地址_linux 抓包工具tcpdump和tshark

    yum -y install tcpdump 有时候我们发现网卡流量很高,可能超出你们平时的预期,比如说我们就买了10m宽带,平时的话就跑个5M 6M,今天实际上跑满了 很明显有波动,这个时候你肯定想 ...

  8. 关于fi dd ler 手机抓包 网卡地址地址_抓包神器:tcpdump!我还真没用过

    点击上方蓝色字关注我们~ 面试官 你说你会网络编程?你说你熟悉网络知识,那你使用过tcpdump吗?能给我讲下tcpdump是什么,或者你有用过tcpdump解决过实际问题吗? 如果你学过网络,甚至搞 ...

  9. 关于fi dd ler 手机抓包 网卡地址地址_实测对比Wireshark利用nRF52832抓包和Packet Sniffer抓包使用体验...

    在蓝牙的开发过程中,使用抓包器对蓝牙模块收发数据进行抓包BLE分析,无疑会极大地提高我们的研发开发效率,同时能帮我们快速地定位问题.对于初学者或者开发者来说,BLE抓包分析能让我们更快地理解蓝牙的工作 ...

最新文章

  1. uboot linux内核传递参数,Uboot与Linux之间的参数传递详解
  2. 一家专业做SEO的公司介绍给大家|利槿网络
  3. JQuery UI之Autocomplete(3)属性与事件
  4. 2008铁路旅客列车时刻表_天津到新沂汽车卧铺大巴车长途汽车发车时刻表
  5. Tachyon更名为 Alluxio,并发布1.0版本
  6. xpath中两个冒号_爬虫学习(5)—XPath
  7. jquery、javascript实现(get、post两种方式)跨域解决方法
  8. 前端接收pdf文件_原生ajax请求获取pdf文件流本地下载(支持谷歌IE)
  9. Go基础编程:运算符
  10. DataSet用法操作xml
  11. 最适合Java程序员的Java学习全套资料分享
  12. 计算机学科全国211大学排名,49所985、211重点大学排名第一的专业!
  13. 完美解决网页无法上传大文件方法
  14. 5G学习:5G基础概念
  15. mysql怎么删除重复数据并且保留其中一条
  16. USB Mass Storage Class
  17. 少年不知愁滋味,爱上“红楼”-序
  18. 成都计算机编程学费,成都高朋大道附近人工智能编程学习学费收费标准情况
  19. Python网络爬虫requests、bs4爬取空姐图片,福利哦
  20. 计算机网络原理实验运城学院,运城学院力学精品课程--实验教学

热门文章

  1. Git/GitHub (一):初识/及简单的实现本地与github的关联操作
  2. 如何在word中插入代码块
  3. 听说·你在两个世界徘徊|黑客六道
  4. alias命令的使用
  5. 2019北航培训个人项目
  6. 海岛奇兵服务器维修,海岛奇兵更新进不去?不要怕登录异常解决办法有3招
  7. Windows中Java服务怎么打开防火墙
  8. Android-闹钟(单次闹钟and周期性闹钟)
  9. JavaScript——猜数字游戏,产生随机数的函数
  10. php阅读心得,关于阅读技术文档的一点心得