fiddler4

首先,网络抓取包

安卓手机抓包

ADB shell tcpdump-p-vv-s 0-w/SD card/capture . pcap

adb pull /sdcard/capture.pcap

计算机模式:方法1

1.手机必须ROOT,然后连接到电脑,确保已经安装了驱动程序。

2.下载tcpdump

(tcpdump:http://www . strazzere . com/Android/tcpdump)

3.然后将tcpdump复制到手机/data/local/

-A .直接复制到手机里然后修改tcpdump的读写权限。

-B .使用adb命令直接复制到计算机中。

-b.1 adb设备获取手机ID。

-B.2 ADBROT(如果出现提示,ADBD不能在生产版本中以Root身份运行)会引发权限。

解决方案:

-b.2.1使用超级用户声明权利。

-b.2.2如果超级用户无法成功认领权限,则说明手机原ROM包被锁定,必须手动将ROOT复制到手机中。

-b . 3 ADB push[tcpdump在计算机中的位置][在手机/数据/本地/目录中](例如ADB pushc:/tcpdump/数据/本地/tcpdump)

-b.4亚行外壳进入电话目录。

-B.5苏力量提升成功的标志是#-b . 6 chmod 777/data/local/tcpdump。修改tcpdump权限。

开始拿包

修改tcpdump权限,全选

打开电脑的DOS窗口。

-亚行壳牌

-苏

-[tcpdump路径]-p-vv-s 0-w[输出位置](例如./data/local/tcpdump-p-vv-s0-w/SD card/capture . pcap)

5.成功后就可以开始操作手机里你想抢的游戏或者软件了。

6.抢到包后按ctrl+c停止。

7.将手机中的包文件发送到电脑中查看。

-adb pull[数据包在移动电话中的位置][要存储在计算机上的位置](eg.adbpull/sdcard/capture.pcap c:/ok . pcap)

8.然后使用WIRESHARK开始分析包文件。

方法2

1.下载无ROOT的Fiddler,然后把手机连到电脑上。

(Fiddler:http://www . telerik . com/docs/default-source/Fiddler/Fiddler 4 setup . exe?sfvrsn=2(净值。框架4))

2.打开Fiddler进行配置。

-工具选项卡-& gt;Fiddler选项

-在HTTPS选项卡中,选择& # 34;解密https流量& # 34;还有& # 34;忽略服务器证书错误& # 34;(允许Fidder拦截HTTPS数据包)-在连接选项卡中,选择& # 34;允许远程计算机连接& # 34;(允许计算机接收截获的数据包)

3.配置完成后点击OK,重启Fiddler。

4.确认电脑的IP地址可以在DOS下或者网络连接中用IPCONFIG查看(比如我的是192.168.1.4)。

5.手机打开WIFI连接列表时,长按已连接WIFI弹窗选项选择& # 34;修改网络& # 34;

6.选择显示高级选项,然后按“代理设置”选择手动。

7."代理服务器主机名& # 34;记下计算机的IP地址(如192.168.1.4)。默认情况下,端口是8888。设置完成后,保存。

8.打开手机里的浏览器,输入192.168.1.4:8888。如果访问成功,您将看到& # 34;提琴手回声服务& # 34;

9.然后会看到FiddlerRoot证书(就是这个证书)点击下载到SDCARD根目录。

10.然后,在手机的设置中-& gt;安全性中有一个证书安装点。如果您尚未设置密码,系统会提示您首先设置密码。如果您设置了密码,则必须输入密码。

要输入的代码

11.设置密码后,就可以开始安装了。安装成功后,您可以收到HTTPS包。如果不安装证书,只能手动获取HTTP包。

12.现在你可以开始运行你想抢包的游戏或者软件了。提琴手会拦截它。

手机模式:

1.要从谷歌商店下载Shark和Shark Reader手机,您必须是ROOT用户。

(鲨鱼根:https://play . Google . com/store/apps/details?id=lv.n3o.shark)

(鲨鱼读者:https://play . Google . com/store/apps/details?id=lv.n3o.sharkreader)

2.安装完成后,打开运行软件获取ROOT权限。

3.点击开始开始抢包。

4.抢到包后,点击& # 34;打开捕获文件& # 34;您可以查看它

使用tcpdump,包括http数据包捕获。

简介

用简单的话定义tcpdump,就是把流量转储到一个网络上,一个根据用户的定义在网络上拦截数据包的包分析工具。Tcpdump可以完全截取网络中传输的数据包的“报头”进行分析。它支持网络层、协议、主机、网络或端口。

筛选,并提供and、or、not等逻辑语句,帮助你剔除无用信息。

实用命令实例tcpdump TCP-IETH 0-T-S 0和端口8080-W./bb.cap,然后下载到windows。wireshak可以打开。【我自己测试的,OK】正常情况下,直接启动tcpdump会监控第一个网络接口上所有流动的数据包。

监控指定网络接口上的数据包。

tcpdump -i eth1

如果没有指定网卡,默认的tcpdump只会监控第一个网络接口,一般是eth0。以下示例均未指定网络接口。

监控指定主机的数据包

打印日落时进出的所有包裹。

tcpdump主机日落

你也可以指定一个ip,比如拦截所有210.27.48.1主机收发的所有数据包,tcpdump主机210.27.48.1。

打印helios和hot或ace之间通信的数据包。

tcpdump主机helios和hotoracehotorace

拦截主机210.27.48.1与主机210.27.48.2或210.27.48.3、tcpdump主机210.27.48.1和\\(210.27.48.2或210.27.48.3 \\)之间的通信。

打印ace和任何其他主机之间通信的IP数据包,但不包括使用helios的数据包。

tcpdump ip主机ace而不是helios

如果要获取主机210.27.48.1与除主机210.27.48.2之外的所有主机通信的ip数据包,请使用命令:

tcpdump ip主机210.27.48.1和!210.27.48.2

拦截主机主机名发送的所有数据。

tcpdump -i eth0 src主机主机名

监控发送到主机主机名的所有数据包。

tcpdump -i eth0 dst主机主机名

监控指定主机和端口的数据包。

如果您想让主机210.27.48.1接收或发送telnet数据包,请使用以下命令。

tcpdump tcp端口23主机210.27.48.1

监控本机的udp 123端口,123是ntp的服务端口。

tcpdump udp端口123

监控指定网络上的数据包。

打印所有通信包(nt: ucb-ether,可以理解为& # 39;伯克利网络& # 39;此表的网络地址

表达式的原意可以表达为:打印所有网络地址为ucb-ether的数据包)tcpdump net ucb-ether。

打印通过网关snup的所有ftp数据包(注意,表达式用单引号括起来,这样可以防止shell误解括号)

tcpdump & # 39网关snup和(端口ftp或FTP-data)& # 39;打印源地址或目的地址是本地主机的所有IP数据包。

(如果本地网络通过网关连接到另一个网络,则另一个网络不能算作本地网络。(nt:这句话比较曲折,需要补充)。实际使用局域网的时候,真的应该把局域网的名字换掉。)

tcpdump ip和not net localnet

监控指定协议的数据包。

打印TCP会话中的起始和结束数据包,数据包的来源或目的地不是本地网络上的主机。(nt: localnet,实际使用中应该真的更换局域网的名称))tcpdump & # 39tcp[tcpflags] & (tcp-syn|tcp-fin)!= 0,而不是src和dst net localnet & # 39打印源或目的端口为80,网络层协议为IPv4并包含数据的所有数据包,而不是仅SYN、FIN和ACK。(可以练习ipv6版本的表达)tcpdump & # 39tcp端口80和((IP[2:2]-((IP[0]& 0xf)& lt;& lt2))-((TCP[12]& 0xf 0)& gt;& gt2)) != 0)'(nt:可以理解为ip[2:2]代表整个ip包的长度,(IP[0]& 0xf);& gt4)& lt;& lt2,即((TCP[12]& 0xf 0)>;& gt2).((IP[2:2]-((IP[0]& 0xf)& lt;& lt2))-((TCP[12]& 0xf 0)& gt;& gt2)) != 0表示:整个ip包的长度减去ip头的长度,再减去tcp头的长度不为0,表示ip包中确实有数据。对于ipv6版本,只需考虑& # 39;在ipv6报头中。有效载荷长度& # 39;还有& # 39;tcp报头的长度& # 39;和表情& # 39;IP[]& # 39;需要改成& # 39;ip6[]& # 39;。)

打印长度超过576字节且网关地址为snup的IP数据包。

tcpdump & # 39网关snup和IP[2:2]& gt;576'

打印所有IP层广播或多播数据包,但不打印物理以太网层广播或多播数据报。

tcpdump & # 39ether[0] & 1 = 0且IP[16]& gt;= 224'

打印除& # 39;回应请求& # 39;或者& # 39;回音回复& # 39;类型以外的Internet控制消息协议(例如,当需要打印由非ping程序生成的所有数据包时,可以使用ICMP这一表述。

(nt:& # 39;echo reuqest & # 39还有& # 39;回音回复& # 39;这两种类型的互联网控制消息协议通常由ping程序生成)。

tcpdump & # 39icmp[icmptype]!= icmp-echo和icmp[icmptype]!= icmp-回声回复& # 39;Tcpdump和wireshark

Wireshark(以前叫ethereal)是一个非常简单易用的Windows下的包抓取工具。但是在Linux下很难找到一个好用的图形化抓包工具。

还好有Tcpdump。我们可以使用tcpdump和Wireshark的完美结合:在Linux中抓取包,然后在Windows中分析包。

tcpdump tcp -i eth1 -t -s 0 -c 100和dst端口!22和src net 192 . 168 . 1 . 0/24-w ./target . cap

(1) tcp: IP icmp、ARP、rarp、tcp、udp、icmp等选项要放在第一个参数的位置,过滤数据报的类型。

(2)-i eth1:仅捕获通过接口eth1的数据包。

(3)-t:不显示时间戳。

(4)-s 0:抓取数据包时默认抓取长度为68字节。加上-S 0后,就可以抓到完整的包了。

(5)-c 100:仅捕获100个数据包。

(6)dst端口!22:不要抓取目的端口为22的数据包。

(7)src net 192.168.1.0/24:数据包的源网络地址是192.168.1.0/24。

(8)-w ./target.cap:保存为cap文件,方便用ethereal(即wireshark)分析。

使用tcpdump抓取HTTP数据包

tcpdump-XvvennSs 0-I eth 0 TCP[20:2]= 0x 4745或tcp[20:2]=0x4854

0x4745是& # 34;获取& # 34;前两个字母& # 34;葛& # 34;,0x4854是& # 34;HTTP & # 34前两个字母& # 34;HT & # 34。

Tcpdump并没有完全解码截获的数据,数据包中的大部分内容都是直接以十六进制的形式打印出来的。显然,这不利于网络故障的分析。通常的解决方法是使用带-w参数的tcpdump截取数据并保存在文件中,然后使用其他程序(如Wireshark)进行解码分析。当然,还应该定义过滤规则,以防止捕获的数据包填满整个硬盘。

输出信息含义

首先,我们来关注一下。基本上tcpdump的总输出格式是:系统时间源主机。端口>;目标主机。端口数据包参数

tcpdump的输出格式与协议有关。下面简要介绍最常用的格式和相关示例。

链路层报头

对于FDDI网络,& # 39;-e & # 39;让tcpdump打印出& # 39;框架控制& # 39;域、源地址和目的地址以及数据包的长度。(帧控制域控制数据包中其他域的分辨率。)一般的数据包(比如那些IP数据报)都是用& # 39;异步& # 39;(异步标志)分组,并且具有值0到7的优先级;

比如& # 39;异步4 & # 39;这意味着此数据包是异步的,优先级为4。一般来说,这些包会包含一个LLC包(逻辑链路控制包);此时,如果该数据包不是ISO数据报或所谓的SNAP数据包,则打印其LLC报头(nt:应指该数据包中包含的LLC数据包的报头)。

对于令牌环网(Token Ring Network),& # 39;-e & # 39;让tcpdump打印出& # 39;框架控制& # 39;还有& # 39;访问控制& # 39;域、源地址和目的地址,以及数据包的长度。与FDDI网络类似,这种数据包通常包含LLC数据包。不管有没有& # 39;-e & # 39;选项。对于& # 39;源路由& # 39;Type包(nt:源地址被追踪,具体含义未知,需要补充的包)总是打印其源路由信息。

对于802.11网络(WLAN),& # 39;-e & # 39;让tcpdump打印出& # 39;帧控制域、报头中包含的所有地址以及数据包的长度。与FDDI网络类似,这种数据包通常包含LLC数据包。(注:以下描述假设你熟悉SLIP压缩算法(nt:SLIP是串行线互联网协议。),相关线索可以在RFC-1144中找到。)

对于SLIP网络(nt:SLIP links,可以理解为网络,即通过串行线建立的连接,简单的连接也可以看作是网络),& # 39;方向指示器& # 39;('方向指示器& # 39;)("我& # 34;说成了,& # 34;O & # 34将打印类型和压缩信息。将首先打印包装类型。

类型有ip,utcp,ctcp(nt:未知,需要补充)。对于ip包,不会打印连接信息(nt:SLip connection,ip包的连接信息可能是无用的或未定义的。

再次确认)。对于TCP数据包,连接标识符直接打印在类型表示之后。如果这个包被压缩,它的编码头将被打印出来。

此时,对于特殊压缩包,将显示如下:

*S+n或*SA+n,其中n代表增加或减少的包数(序列号或(序列号和响应号))(nt | rt:S,SA别扭,需要重新翻译)。

对于非特殊压缩包,0或以上& # 39;改变& # 39;将被打印。'改变& # 39;打印时的格式如下:& # 39;Logo & # 39+/-/=n包数据的长度,压缩的报头长度。

其中& # 39;Logo & # 39您可以采用以下值:

u(紧急指针),W(缓冲窗口),A(响应),S(序列号),I(包ID),增量表达式& # 39;= n & # 39它意味着被赋予一个新的值,+/-意味着增加或减少。

例如,下面显示了输出的压缩TCP包的打印,它暗示了一个连接标识符;响应号增加6,序号增加49,包ID号增加6;包数据长度为3字节(octect ),压缩报头为6字节。(nt:所以这应该不是特殊压缩包)。

ARP/RARP数据包

tcpdump到Arp/rarp包的输出信息将包括请求类型和对应于请求的参数。显示格式简洁明了。以下是& # 39;从主机rtsg到主机csam。rlogin & # 39

(远程登录)过程开始时的示例数据包:

arp谁让csam告诉rtsg

arp回复csam是-在CSAM

第一行表示rtsg发送了一个arp包(nt:发送到全网段,arp包)来询问csam的以太网地址。

Csam(nt: Csam,如下图所示)用自己的以太网地址进行响应(在这个例子中,以太网地址用大写名称标识,而互联网地址(即ip地址)则全部用小写名称标识)。

如果使用tcpdump -n,您可以清楚地看到以太网和ip地址,而不是名称标识:

谁让128.3.254.6告诉128.3.254.68的

arp回复128.3.254.6是-在02:07:01:00:01:c4

如果我们使用tcpdump -e,我们可以清楚地看到第一个数据包是全网广播,而第二个数据包是点对点的:

RTSG广播0806 64: arp谁有csam告诉rtsg

csam RTSG 0806 64: arp回复CSAM在CSAM

第一个报文显示arp报文的源以太网地址为RTSG,目的地址为全以太网段,类型字段的值为十六进制的0806(代表ETHER_ARP(nt:arp报文类型标识)),报文总长度为64字节。

TCP数据包(注意:假设您熟悉RFC-793中描述的TCP。如果不熟悉,下面的描述和tcpdump程序可能对你帮助不大。(nt:警告可以忽略,继续看就好,不熟悉的地方可以回头看看。) 。

通常,tcpdump以下列格式显示tcp数据包:

src & gtdst:标志数据-序列号确认窗口紧急选项

Src和dst是源和目的IP地址以及相应的端口。标志由s (syn)、f (fin)、p (push、r (rst)、w (ECNcwt (nt | rep:未知,需要补充))或E(ECN-Echo(nt | rep:未知,需要补充))组成。。'表示没有标志标识。数据段序列号(Data-seqno)描述了这个包中的数据对应的序列号空之间的一个位置(nt:整个数据是分段的,每个段都有一个序列号,所有的序列号构成一个序列号空)(参考下面的例子)。Ack描述了相同的连接,与。本地终端应该接收的(另一方应该发送的)下一个数据片段的序列号。Window是本端可用的数据接收缓冲区的大小(即对方发送数据时需要按照这个大小组织数据)。

Urg(紧急)表示数据包中有紧急数据。options描述了tcp的一些选项,这些选项都用尖括号表示(例如

始终显示Src、dst和标志。其他字段的显示取决于tcp协议报头中的信息。

这是从trsg到csam的rlogin应用程序登录的初始阶段。

rtsg.1023 & gtcsam . log in:S 768512:768512(0)win 4096 & lt;mss 1024 & gt

csam.login & gtrtsg . 1023:S 947648:947648(0)ack 768513 win 4096 & lt;mss 1024 & gtrtsg.1023 & gtcsam.login:。ack 1 win 4096

rtsg.1023 & gtcsam.login: P 1:2(1) ack 1 win 4096

csam.login & gtrtsg.1023:。ack 2 win 4096

rtsg.1023 & gtcsam . log in:P 2:21(19)ack 1 win 4096

csam.login & gtrtsg.1023: P 1:2(1) ack 21 win 4077

csam.login & gtrtsg . 1023:p2:3(1)ack 21 win 4077 urg 1

csam.login & gtrtsg . 1023:P 3:4(1)ack 21 win 4077 urg 1

第一行表示已经有一个包从rtsg主机的tcp端口1023发送到csam主机的tcp端口log in(nt:UDP端口和tcp端口分别在两个空之间,虽然取值范围一致)。s表示SYN标志已置位。数据包的序列号是768512,它不包含数据。(格式为:&#39。first:last(nbytes)& # 39;,其含义是& # 39;这个包中数据的序号从第一个开始,一直到最后一个的结尾,不包括最后一个,总共包含nbytes的用户数据& # 39;。)没有捎带响应(nt:第二行是有捎带响应的数据包),可用的接受窗口大小为4096字节,请求端(rtsg)可接受的最大数据段大小为1024字节(nt:此信息发送给响应端csam,作为双方进一步协商的请求)。Csam用基本相同的SYN数据包回复rtsg,其中捎带ack & # 39(nt: ack应答,rtsg的SYN包)。rtsg还回复了一个针对csam SYN数据包的ACK数据包作为回复。'。'该数据包中未设置任何标志。由于此响应数据包不包含数据,因此数据包中没有数据段序列号。提醒!这个ACK包的序列号只是一个小整数。1.有以下解释:对于tcp连接上的一个会话,tcpdump只打印会话两端初始包的序列号,然后对应的包只打印与初始包序列号的差异。也就是说,初始序列号之后的序列号可以被视为当前会话。

传输的数据片段在整个要传输的数据中& # 39;相对字节& # 39;Position (nt:双方的第一个位置是1,即& # 39;相对字节& # 39;的起始数)。'-S & # 39;该功能将被覆盖,以便打印数据包的原始序列号。

第六行的意思是:rtsg向csam发送了19个字节的数据(字节数为2到20,传输方向为rtsg到csam)。在分组中设置推送标志。第七行,csam大呼收到rtsg发来的21字节以下。但不包括编号为21的字节。这些字节存储在csam套接字的接收缓冲区中。相应地,csam的接收缓冲区窗口的大小将减少19个字节(nt:从第5行和第7行的win属性值的变化可以看出)。csam还在第7行向rtsg发送了一个字节。在第8行和第9行,csam继续向rtsg发送两个只包含一个字节的数据包,这个数据包被标记为PUSH。

如果捕获的tcp数据包(这里是nt: snapshot)太小,tcpdump无法完整地获取其报头数据,那么tcpdump将尝试解析不完整的报头,并将剩余的未解析部分显示为& # 39;[| TCP]& # 39;。如果头包含错误的属性信息(例如,它的长度属性实际上比头的实际长度长或短),tcpdump将显示& # 39;[错误选项]& # 39;如果头的长度告诉我们某些选项(nt | rt:从下面来看,指的是tcp包头中ip包的某些选项,然后折返)会在这个包中。

而真正的IP(数据包长度不足以容纳这些选项,tcpdump会显示& # 39;[错误的hdr长度]& # 39;抓取带有特殊标志(如SYN-ACK标志,URG-ACK标志等)的TCP包。).

在TCP的报头中,有8位用作控制位区域,它们的值是:

CWR | ECE | URG | ACK | PSH | RST | SYN | FIN(NT | RT:从表达式可以推断:这8位是由OR组合而成的,可以转回)现在假设我们要监控一个TCP连接建立的全过程中产生的数据包,可以回忆如下:TCP使用3次握手协议建立新的连接;对应于该三次握手连接序列并带有相应TCP控制标志的数据包如下:

1)连接发起者(nt:Caller)发送一个SYN标记的数据包。

2)接收方(nt:Recipient)用标记有SYN和ACK的数据包进行响应。

3)发起方收到接收方的响应后,发送带有ACK标志的数据包进行响应。

0 15 31

|源端口|目的端口|

|序列号|

|确认号|

| HL | rsvd |C|E|U|A|P|R|S|F|窗口大小|

| TCP校验和|紧急指针|

TCP报头通常占用20个字节,没有选项数据(nt | rt:options被理解为选项数据,需要转换回来)。第一行包含从0到3的字节,第二行包含从4到7的字节。

如果数字从0开始,则TCP控制标志位于13个字节中(nt:第四行的左半部分)。

0 7| 15| 23| 31

– | – | – | –

| HL | rsvd |C|E|U|A|P|R|S|F|窗口大小|

– | – | – | –

| |第13个八位字节| | |

让我们仔细看看第13个字节:

| |

| – |

|C|E|U|A|P|R|S|F|

| – |

|7 5 3 0|

这里是我们感兴趣的控制标志位。从右到左,这些位从0到7编号,因此PSH位在第3位,而URG位在第5位.

提醒我们自己,我们只想得到包含SYN标志的数据包。让我们看看,如果在数据包的报头中设置了SYN位,第13个字节会发生什么情况:

|C|E|U|A|P|R|S|F|

| – |

|0 0 0 0 0 0 1 0|

| – |

|7 6 5 4 3 2 1 0|

在控制部分的数据中,只设置了1(位数1。

假设编号为13的字节为8位无符号字符类型,按照网络字节号(nt:对于一个字节,网络字节顺序等同于主机字节顺序)及其二进制值排序。

如下所示:

00000010

它的十进制值是:

0 * 2 7+0 * 2 6+0 * 2 5+0 * 2 4+0 * 2 3+0 * 2 2+1 * 2 1+0 * 2 0 = 2(nt:1 * 2 6表示1乘以2的6次方,可能更可取。

明确一点,就是移动索引7 6…原始表达式中的0转换为以下表达式)

已经接近目标了,因为我们已经知道,如果设置了包头中的SYN,那么包头中第13个字节的值就是2(nt:根据网络顺序,也就是大头模式,最重要的字节在前面(前面,也就是这个字节的实际内存地址比较小,最重要的字节指的是数学表示中位数的高位,比如356中的3)。表达式是tcpdump能理解的关系是

tcp[13] 2

所以我们可以把这个关系作为tcpdump的过滤条件,目标是监控只包含SYN标志的数据包:

tcpdump -i xl0 tcp[13] 2 (nt: xl0指的是网络接口,比如eth0)的表达方式是& # 34;假设TCP包的第13个字节的值为2 & # 34;这也是我们想要的结果。

现在,假设我们需要获取一个带有SYN标志的数据包,并忽略它是否包含其他标志。(nt:只要它有SYN,我们就要)。让我们来看看当一个数据包包含

SYN-ACK数据包(NT:SYN和ACK标志),它们到达时发生了什么:

|C|E|U|A|P|R|S|F|

| – |

|0 0 0 1 0 0 1 0|

| – |

|7 6 5 4 3 2 1 0|

字节13的位1和位4被置位,它们的二进制值为:

00010010

转换成十进制是:

0 * 2 7+0 * 2 6+0 * 2 5+1 * 2 4+0 * 2 3+0 * 2+1 * 2 1+0 * 2 = 18(nt:1 * 2 6表示1乘以2的6次方,可能更清楚。TCP[13]18 & # 39;作为tcpdump的过滤表达式,因为这样会导致只有带SYN-ACK标志的包被选中,其他的会被丢弃。

提醒自己我们的目标是:只要设置了包的SYN标志,就忽略其他标志。

为了实现我们的目标,我们需要将字节13的二进制值与另一个数(nt:逻辑与)进行AND运算,以获得SYN位的值。目标是:只要设置了SYN,我们就和字节13的SYN值进行比较(nt: 00000010)。

00010010 SYN-ACK 00000010

以及00000010(我们要SYN)和00000010(我们要SYN)

– –

= 00000010 = 00000010

我们可以发现,无论数据包的ACK或其他标志位是否置位,上面的AND运算都会给我们相同的值,其十进制表达式为2(二进制表达式为00000010)。

因此,我们知道,对于带有SYN标志的数据包,以下表达式的结果始终为真:

((八位字节13的值)和(2)) (2) (NT:八位字节13的值,即字节13的值)受到启发,于是我们得到了tcpdump-I xl0 & # 39;TCP[13]& 2 2 & # 39;注意单引号或者反斜线(nt:这里用的是单引号)不能省略,这样可以防止shell解释或者替换&。

UDP数据包

UDP数据包的显示格式可以通过rwho的具体应用产生的数据包来说明:

锕系元素. & gtBroadcast.who: udp 84表示锕系元素主机上的端口who向广播主机上的端口世卫组织发送了一个udp数据包(nt:锕系元素和Broadcast是指互联网地址)。该数据包携带84字节的用户数据。

一些UDP服务可以从数据包的源端口或目的端口识别,也可以从显示的高层协议信息识别。例如,域名服务请求(在RFC-1034/1035中)和对NFS的Sun RPC调用(对NFS服务器(nt: Sun RPC)的远程调用在RFC-1050中有描述)。UDP名称。

(注:以下描述假设你有域服务协议(nt:RFC-103中描述的)的描述,否则你会发现以下描述是天书(nt:希腊文天书,别理它吓你,继续看就行))

名称服务请求具有以下格式:

src & gtdst: id op?标志qtype qclass名称(len)

(nt:从下面来看,格式应该是src > dst: id op flags qtype qclass?姓名(len))

例如,有一个实际显示:

h2opolo.1538 & gthelios.domain: 3+ A?ucbvax.berkeley.edu。(37)

主机h2opolo向运行在helios上的名称服务器查询ucbvax.berkeley.edu的地址记录(nt: qtype等于A)。这个查询本身的id号是& # 39;3'。symbol & # 39+'这意味着设置了递归查询标志(nt: dns服务器可以向上级dns服务器查询服务器不包含的地址记录)。最终通过IP包发送的查询请求数据长37字节,不包括UDP和IP协议的头数据。因为这个查询操作是默认值(NT | RT:正常人的理解),所以省略op字段。

如果op字段没有省略,它将显示在& # 39;3'还有& # 39;+'介于。同样,qclass也是默认值C_IN,所以不显示。如果它没有被忽略,它将显示在& # 39;一& # 39;后来。

异常检查将在方括号中显示附加字段:如果查询包含响应(nt:对另一个先前请求的响应)并且该响应包含权威的或附加的记录段,

Ancount、nscout、arcount(nt:具体字段含义需要补充)会显示为& # 39;[na]& # 39;, '[nn]& # 39;, '[nau]& # 39;,其中n表示适当的计数。如果数据包中的后续响应位(如AA位、RA位、rcode位)或字节2或3中的任何一个& # 39;必须是0 & # 39;被设置(nt:设置为1),& # 39;[B2 & 3]= x & # 39;将被显示,其中x代表与运算后的头字节2和字节3的值。

UDP名称服务回复

对于名称服务回复的数据包,Tcpdump将具有以下显示格式。

src & gtdst: id op rcode标志a/n/au类型类数据(len)

例如,具体显示如下:

helios.domain & gt128.32.137.3(273)

helios.domain & gtH2O polo . 1537:2 NXDomain * 0/1/0(97)

第一行表示helios用三个响应记录(NT | RT: Answer Records)和三个名称服务器记录响应了h2opolo发送的3号查询。

和七个附加记录。第一个应答记录(NT:三个应答记录中的第一个)是类型A(nt:代表地址),它的数据是互联网地址128.32.137.3。

该响应UDP包包含273字节的数据(不包括UPD和IP的报头数据)。op字段和rcode字段被忽略(nt: op的实际值为Query,rcode,即响应码的实际值为NoError)。同样被忽略的还有class字段(nt | rt:它的值是C_IN,也是A类记录的默认值)。第二行表示赫利俄斯响应了h2opolo发送的2号查询请求。在响应中,rcode代码是NXDomain(nt:表示不存在的域),没有记录被回答。但是包含了名称服务器记录,却不包含权威服务器记录(nt | ck:从上面来看,这里的权威记录是对应的additionalrecords)。'*'表示设置了授权服务器应答标志(nt:所以附加记录意味着授权记录)。

因为没有答案记录,所以忽略类型、类和数据字段。

标志字段中可能有其他字符,如& # 39;-'(nt:表示可以递归查询,即不设置RA标志),& # 39;|'(nt:表示截断的消息,即设置了TC标志)。如果响应(nt | ct:可以理解为包含名称服务响应的UDP包,tcpdump知道如何解析其数据)。

'问题& # 39;段落中的条目都没有(nt:每个条目的意思需要补充),& # 39;[NQ]& # 39;将被打印。

需要注意的是,名称服务器的请求和响应数据比较大,68字节的默认捕获长度(nt: snaplen,可以理解为tcpdump的一个设置选项)可能不足以捕获数据包的全部内容。如果确实需要仔细检查名称服务器的负载,可以通过tcpdump的-s选项扩展snaplen值。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论