导航:首页 > 程序命令 > 抓包命令tcpdump

抓包命令tcpdump

发布时间:2023-08-28 19:12:23

❶ tcpmp抓包命令

1、tcpmp:默认启动。普通情况下,直接启动tcpmp将监视第一个网络接口上所有流过的数据包。

2、tcpmp -i eth1:监视指定网络接口的数据包,如果不指定网卡,默认tcpmp只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。

3、tcpmp host sundown:监视指定主机的数据包。打印所有进入或离开sundown的数据包。

4、tcpmp -i eth0 src host hostname:截获主机hostname发送的所有数据。

5、tcpmp -i eth0 dst host hostname:监视所有送到主机hostname的数据包。

6、tcpmp tcp port 23 and host 210.27.48.1:如果想要获取主机210.27.48.1接收或发出的telnet包。

7、tcpmp udp port 123:对本机的udp 123端口进行监视123为ntp的服务端口。

❷ TCPDUMP 抓包 怎么查看 抓的包的内容

1、tcpmp检测登录linux系统输入tcpmp,如果找不到表示没有安装。也可以用rpm查询。

❸ wireshark抓包命令总结

参考的循环抓包命令,其中的过滤条件需要根据实际情况修改(该命令最多占用4G的存储空间,且会在后台持续运行):sudo nohup tcpmp -i [network_interface] port 80 -s 80 -C 80 -W 100 -w /tmp/waf.pcap &

-W filecount .  -C file_size . -s 80  snaplen 截取特定的长度

常用排错过滤条件:

对于排查网络延时/应用问题有一些过滤条件是非常有用的:

tcp.analysis.lost_segment:表明已经在抓包中看到不连续的序列号。报文丢失会造成重复的ACK,这会导致重传。

tcp.analysis.plicate_ack:显示被确认过不止一次的报文。大凉的重复ACK是TCP端点之间高延时的迹象。

tcp.analysis.retransmission:显示抓包中的所有重传。如果重传次数不多的话还是正常的,过多重传可能有问题。这通常意味着应用性能缓慢和/或用户报文丢失。

tcp.analysis.window_update:将传输过程中的TCP window大小图形化。如果看到窗口大小下降为零,这意味着发送方已经退出了,并等待接收方确认所有已传送数据。这可能表明接收端已经不堪重负了。

tcp.analysis.bytes_in_flight:某一时间点网络上未确认字节数。未确认字节数不能超过你的TCP窗口大小(定义于最初3此TCP握手),为了最大化吞吐量你想要获得尽可能接近TCP窗口大小。如果看到连续低于TCP窗口大小,可能意味着报文丢失或路径上其他影响吞吐量的问题。

tcp.analysis.ack_rtt:衡量抓取的TCP报文与相应的ACK。如果这一时间间隔比较长那可能表示某种类型的网络延时(报文丢失,拥塞,等等)。

❹ 应用抓包之tcpmp命令抓包

原料
1.预抓包的App一个(我们以app抓包为例)
2.已配置android sdk
3.分析软件Wireshark(Windows版)
4.抓包命令:tcpmp
5.模拟器或真机(以模拟器为例,真机需root)

首先我们先配置下环境变量
1.先来个ANDROID_HOME:SDK的路径,类似于JAVA_HOME。(一劳永逸,以后安装到别的路径,改变一下HOME路径就行)

2.把sdk路径下的platfrom-tools和tools添加到环境变量

配置好就可以用adb命令了

1.执行tcpmp命令
tcpmp可以将网络中传送的数据包完全截获下来提供分析。

以上命令将截获的数据包保存到sdcard,capture.pcap抓取是数据包,pcap为Wireshark分析文件的后缀。

这时抓包就开始了,在手机上刷新几下要抓取数据的app。
抓完之后按ctrl+c停止抓包

2.将抓取的数据导出到电脑上(从sdcard导出到电脑上分析)
退出android shell环境(命令行输入两次exit),回到Windows环境。

接着执行

导出刚才抓到的文件到电脑d盘。(如果导出失败,自己手动把抓包数据复制到电脑上)

或者通过DDMS导出到电脑

3.Wireshark打开刚才获取到的.pcap文件
过滤出http

点击某一个抓到的http包,可以查看它的详细信息(自己判断一下可能是哪个域名)

我们可以看到是get请求

复制出来去请求一下(右键->复制->值)

去浏览器中请求

再结合app,看看是哪个界面的内容
4.新建个文本文件,保存抓到的借口。例如:

看看请求出来ip地址,顺着ip找出所有的api借口

54开头的就是我要抓的app。

❺ 在linux命令行环境下如何抓取网络数据包

  众所周知,在Windows下开发运行环境下,在调试网络环境时,可以可以很方便的借助wireshark等软件进行抓包分析;并且在linux或者Ubuntu等桌面版里也可以进行安装抓包工具进行抓包分析,但总有一些情况,无法直接运用工具(比如一些没有界面的linux环境系统中),则此时我们就需要使用到最简单的tcpmp命令进行网络抓包。

  一般的,linux下抓包时,抓取特定的网络数据包到当前文件夹下的文件中,再把文件拷贝出来利用Windows下的wireshark软件进行分析。

tcpmp命令详解:(简单举例)

  1、抓取到的文件为filename.cap,然后将此文件拷贝到Windows下,使用wireshar打开后,即可对此文件进行分析。
  2、eth0 是主机的网络适配器名称,具体的参数值可以在linux命令行窗口中通过 ifconfig 指令查询。

❻ 应用抓包之Fiddler抓包

tcpmp抓包: 应用抓包之tcpmp命令抓包

1.抓包工具Fiddler(Windows版)
2.真机一个
3.预抓包的App一个(我们以app抓包为例)

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最侍模常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

1.打开Fiddler

2.设置端口(Tools->Fiddler Options)使用默认就行
使用1024之后的,0-1023周知端口,一般都是系统和一些与设置的端口,端口1024到49151为注册端口,分配给用户进程或应用程序

既然是代理,客户端的所有请求都要先经过Fiddler

3.让手机和PC处于同一网络下(连同一WiFi或同一网段即可)
查看PC的IP地址

4.到开手机WiFi设置

进入WiFi详细信息(不同手机选项可能不同)

手动设置代理(用的手机在高级设置里)

主机名就是PC的IP
端口就是在Fiddler设置的端口

5.刷新一下app要抓数据的页面
不小心抓了个用WebView的app,尴尬两秒钟

发现这个app会获取手机归属地,位置信息等

成功抓到数据

浏览器请求一下

6.新建个文本文件,保存抓到的接口。例如:

7.一个个界面去抓,分析老饥缓出接口
抓完记得把手动设肢旦置代理关了,不然有可能上网很慢。

❼ Tcpmp 看这一篇就够了

tcpmp 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有。熟悉 tcpmp 的使用能够帮助你分析调试网络数据,本文将通过一个个具体的示例来介绍它在不同场景下的使用方法。不管你是系统管理员,程序员,云原生工程师还是 yaml 工程师,掌握 tcpmp 的使用都能让你如虎添翼,升职加薪。

tcpmp 的常用参数如下:

额外再介绍几个常用参数:

-A 表示使用 ASCII 字符串打印报文的全部数据,这样可以使读取更加简单,方便使用 grep 等工具解析输出内容。 -X 表示同时使用十六进制和 ASCII 字符串打印报文的全部数据。这两个参数不能一起使用。例如:

后面可以跟上协议名称来过滤特定协议的流量,以 UDP 为例,可以加上参数 udp 或 protocol 17 ,这两个命令意思相同。

同理, tcp 与 protocol 6 意思相同。

使用过滤器 host 可以抓取特定目的地和源 IP 地址的流量。

也可以使用 src 或 dst 只抓取源或目的地:

使用 tcpmp 截取数据报文的时候,默认会打印到屏幕的默认输出,你会看到按照顺序和格式,很多的数据一行行快速闪过,根本来不及看清楚所有的内容。不过,tcpmp 提供了把截取的数据保存到文件的功能,以便后面使用其他图形工具(比如 wireshark,Snort)来分析。
-w 选项用来把数据报文输出到文件:

如果想实时将抓取到的数据通过管道传递给其他工具来处理,需要使用 -l 选项来开启行缓冲模式(或使用 -c 选项来开启数据包缓冲模式)。使用 -l 选项可以将输出通过立即发送给其他命令,其他命令会立即响应。

过滤的真正强大之处在于你可以随意组合它们,而连接它们的逻辑就是常用的 与/AND/&& 、 或/OR/|| 和 非/not/!。

关于 tcpmp 的过滤器,这里有必要单独介绍一下。
机器上的网络报文数量异常的多,很多时候我们只关系和具体问题有关的数据报(比如访问某个网站的数据,或者 icmp 超时的报文等等),而这些数据只占到很小的一部分。把所有的数据截取下来,从里面找到想要的信息无疑是一件很费时费力的工作。而 tcpmp 提供了灵活的语法可以精确地截取关心的数据报,简化分析的工作量。这些选择数据包的语句就是过滤器(filter)!

Host 过滤器用来过滤某个主机的数据报文。例如:

该命令会抓取所有发往主机 1.2.3.4 或者从主机 1.2.3.4 发出的流量。如果想只抓取从该主机发出的流量,可以使用下面的命令:

Network 过滤器用来过滤某个网段的数据,使用的是 CIDR[2] 模式。可以使用四元组(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 发出的流量:

抓取所有发往网段 10.x.x.x 或从网段 10.x.x.x 发出的流量:

和 Host 过滤器一样,这里也可以指定源和目的:

也可以使用 CIDR 格式:

Proto 过滤器用来过滤某个协议的数据,关键字为 proto,可省略。proto 后面可以跟上协议号或协议名称,支持 icmp, igmp, igrp, pim, ah, esp, carp, vrrp, udp和 tcp。因为通常的协议名称是保留字段,所以在与 proto 指令一起使用时,必须根据 shell 类型使用一个或两个反斜杠(/)来转义。Linux 中的 shell 需要使用两个反斜杠来转义,MacOS 只需要一个。
例如,抓取 icmp 协议的报文:

Port 过滤器用来过滤通过某个端口的数据报文,关键字为 port。例如:

截取数据只是第一步,第二步就是理解这些数据,下面就解释一下 tcpmp 命令输出各部分的意义。

最基本也是最重要的信息就是数据报的源地址/端口和目的地址/端口,上面的例子第一条数据报中,源地址 ip 是 192.168.1.106,源端口是 56166,目的地址是 124.192.132.54,目的端口是 80。> 符号代表数据的方向。
此外,上面的三条数据还是 tcp 协议的三次握手过程,第一条就是 SYN 报文,这个可以通过 Flags [S] 看出。下面是常见的 TCP 报文的 Flags:

下面给出一些具体的例子,每个例子都可以使用多种方法来获得相同的输出,你使用的方法取决于所需的输出和网络上的流量。我们在排障时,通常只想获取自己想要的内容,可以通过过滤器和 ASCII 输出并结合管道与 grep、cut、awk 等工具来实现此目的。
例如,在抓取 HTTP 请求和响应数据包时,可以通过删除标志 SYN/ACK/FIN 来过滤噪声,但还有更简单的方法,那就是通过管道传递给 grep。在达到目的的同时,我们要选择最简单最高效的方法。下面来看例子。

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

通过 egrep 可以同时提取用户代理和主机名(或其他头文件):

抓取 HTTP GET 流量:

也可以抓取 HTTP POST 请求流量:

注意:该方法不能保证抓取到 HTTP POST 有效数据流量,因为一个 POST 请求会被分割为多个 TCP 数据包。
上述两个表达式中的十六进制将会与 GET 和 POST 请求的 ASCII 字符串匹配。例如,tcp[((tcp[12:1] & 0xf0) >> 2):4] 首先会确定我们感兴趣的字节的位置[3](在 TCP header 之后),然后选择我们希望匹配的 4 个字节。

提取 HTTP 请求的主机名和路径:

从 HTTP POST 请求中提取密码和主机名:

提取 Set-Cookie(服务端的 Cookie)和 Cookie(客户端的 Cookie):

查看网络上的所有 ICMP 数据包:

通过排除 echo 和 reply 类型的数据包使抓取到的数据包不包括标准的 ping 包:

可以提取电子邮件的正文和其他数据。例如,只提取电子邮件的收件人:

抓取 NTP 服务的查询和响应

通过 SNMP 服务,渗透测试人员可以获取大量的设备和系统信息。在这些信息中,系统信息最为关键,如操作系统版本、内核版本等。使用 SNMP 协议快速扫描程序 onesixtyone,可以看到目标系统的信息:

当抓取大量数据并写入文件时,可以自动切割为多个大小相同的文件。例如,下面的命令表示每 3600 秒创建一个新文件 capture-(hour).pcap,每个文件大小不超过 200*1000000 字节:

这些文件的命名为 capture-{1-24}.pcap,24 小时之后,之前的文件就会被覆盖。

可以通过过滤器 ip6 来抓取 IPv6 流量,同时可以指定协议如 TCP:

从之前保存的文件中读取 IPv6 UDP 数据报文:

在下面的例子中,你会发现抓取到的报文的源和目的一直不变,且带有标志位 [S] 和 [R],它们与一系列看似随机的目标端口进行匹配。当发送 SYN 之后,如果目标主机的端口没有打开,就会返回一个 RESET。这是 Nmap 等端口扫描工具的标准做法。

本例中 Nmap NSE 测试脚本 http-enum.nse 用来检测 HTTP 服务的合法 URL。
在执行脚本测试的主机上:

在目标主机上:

向 Google 公共 DNS 发起的出站 DNS 请求和 A 记录响应可以通过 tcpmp 抓取到:

抓取 80 端口的 HTTP 有效数据包,排除 TCP 连接建立过程的数据包(SYN / FIN / ACK):

通常 Wireshark(或 tshark)比 tcpmp 更容易分析应用层协议。一般的做法是在远程服务器上先使用 tcpmp 抓取数据并写入文件,然后再将文件拷贝到本地工作站上用 Wireshark 分析。
还有一种更高效的方法,可以通过 ssh 连接将抓取到的数据实时发送给 Wireshark 进行分析。以 MacOS 系统为例,可以通过 brew cask install wireshark 来安装,然后通过下面的命令来分析:

例如,如果想分析 DNS 协议,可以使用下面的命令:

抓取到的数据:

找出一段时间内发包最多的 IP,或者从一堆报文中找出发包最多的 IP,可以使用下面的命令:

cut -f 1,2,3,4 -d '.' : 以 . 为分隔符,打印出每行的前四列。即 IP 地址。
sort | uniq -c : 排序并计数
sort -nr : 按照数值大小逆向排序

本例将重点放在标准纯文本协议上,过滤出于用户名和密码相关的报文:

最后一个例子,抓取 DHCP 服务的请求和响应报文,67 为 DHCP 端口,68 为客户机端口。

本文主要介绍了 tcpmp 的基本语法和使用方法,并通过一些示例来展示它强大的过滤功能。将 tcpmp 与 wireshark 进行组合可以发挥更强大的功效,本文也展示了如何优雅顺滑地结合 tcpmp 和 wireshark。如果你想了解更多的细节,可以查看 tcpmp 的 man 手册。

阅读全文

与抓包命令tcpdump相关的资料

热点内容
获取当前时间javadate 浏览:71
带密码的wifi如何加密 浏览:233
服务器怎么变成阵列 浏览:714
web前端黑客技术pdf 浏览:69
育儿百科全书pdf 浏览:598
任务栏启动命令 浏览:912
编译优化等级区别 浏览:755
unix网关命令 浏览:875
想自己做网站要学编程吗 浏览:597
租个服务器开个私服需要什么 浏览:272
图片换成pdf格式 浏览:663
javamidi编程 浏览:833
android60demo 浏览:69
头条算法怎么复习 浏览:514
灯光控制通道可以编程设置吗 浏览:783
webpack命令行 浏览:807
卸载云服务器操作系统 浏览:31
java文件移动文件夹 浏览:451
针织公斤足称算法 浏览:460
电脑下载的图片从文件夹重新编组 浏览:646