精华内容
下载资源
问答
  • Wireshark抓包实验

    万次阅读 多人点赞 2019-01-09 11:19:01
    Wireshark抓包实验 1.1 学习Wireshark工具的基本操作 学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置 Capture Filter;捕获后设置 Display Filter。 1.2 PING命令的网络包捕获分析 PING命令是基于ICMP...

    Wireshark抓包实验

    1.1 学习Wireshark工具的基本操作

    学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置 Capture Filter;捕获后设置 Display Filter。

    1.2 PING命令的网络包捕获分析

    PING命令是基于ICMP协议而工作的,发送4个包,正常返回四个包。以主机210.31.40.41为例,主要实验步骤为:

    (1)设置“捕获过滤”:在 Capture Filter 中填写 host 210.31.40.41;

    (2)开始抓包;

    (3)在 DOS 下执行 PING 命令;

    (4)停止抓包。

    (5)设置“显示过滤”: IP.Addr=210.31.40.41

    在这里插入图片描述

    (6)选择某数据包,重点分析其协议部分,特别是协议首部内容,点开所有带+号的内容。

    (7)针对重要内容截屏,并解析协议字段中的内容,一并写入 WORD 文档中。
    在这里插入图片描述

    ​ 通过简单的分析我们可以看到,Ping命令使用ICMP协议,每发送一个包到210.31.40.41后都会收到一个包,一共发送了四个包,收到四个包如所示。分析其中的一个包,可以看到其类型长度为8,数据长度为32byte,见图

    1.3 TRACERT 命令数据捕获

    观察路由跳步过程。分别自行选择校内外 2 个目标主机。比如,

    (1)校内:tracert 210.31.32.8

    首先,在执行tracert命令之前,先在Wireshark中过滤选择出210.31.32.8的相关请求。之后,win+r打开cmd界面执行tracert命令
    在这里插入图片描述

    ​ 截获到的数据如下图,
    在这里插入图片描述
    通过对该抓包结果的简单分析,可以看出,抓到的协议类型主要有两种即ICMP和DNS协议,选择不同类型的协议来查看其具体内容。

    DNS协议:
    在这里插入图片描述

    通过上图简单的分析查看可以得知,DNS协议从10.10.215.246到210.31.32.8,同时包含了UDP协议,源端口为61149,目标端口为53。DNS对域名210.31.40.41进行了84次标准查询,可以看到在DNS的事务ID为:0xc39f,在DNS服务器中的查询结果在第185行。

    ICMP协议:
    在这里插入图片描述

    ICMP的内容在之前已经分析过了,在这里不在赘述,从图中对比可以看到,data的数据长度变为了64bytes。

    (2)校外:tracert www.sogou.com
    在这里插入图片描述
    在这里插入图片描述

    ​ 通过简单的分析可以看出,在对搜狗进行抓包时出现了两种协议即ICMP和NBNS协议,其中NBNS协议是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名地址映射方法。
    在这里插入图片描述

    1.4 端口扫描数据捕获与分析

    (1)各组自行下载和安装某个端口扫描工具,比如 NMAP、SUPERSCAN、SCANPORT、

    SSPORT、TCPVIEW。

    (2)扫描对方的主机,获得开放的端口号。捕获其所有相关信息和协议内容。显示过滤举例:

    在这里,使用Zenmap对本机进行端口扫描,扫描结果如下图。
    在这里插入图片描述

    可以看到,本机开放了6个端口,不同端口提供不同的服务,可以看到其中的80端口为Http服务,说明在本机上部署了自己的网站,用80作为端口。

    查看Wireshark对该端口的抓包情况
    在这里插入图片描述

    从图中看到两种协议,TCP和HTTP,这也印证了我之前部署网站的说法。

    (3)关闭某一开放的端口,重新扫描,观察捕获效果。
    在这里插入图片描述

    ​ 关闭端口后进行扫描,可以看到被关闭的端口扫描不到了。

    1.5 FTP 协议包捕获与分析

    登录FTP 服务器:ftp.scene.org,重点捕获其 3 个关键过程:

    (1)FTP 服务器的登录

    捕获 USER 和 PWD 的内容,分析 FTP、TCP、IP 协议的首部信息。FTP 服务器的端口号为 21,用于控制连接。
    在这里插入图片描述

    在这里使用的是filezilla登陆的FTP服务器,通过对登陆过程的捕获可以看到,登陆的账号为anonymous,密码为anonymous@example.com(默认)。

    用Wireshark查看FTP、TCP、IP协议的首部信息,如下图。
    在这里插入图片描述

    (2)FTP 文件的下载过程

    要求分别下载三个大小不同的文件(小于 1MB、1MB—10MB、10MB 以上),观察 FTP、TCP 和 IP 协议中的数据分片过程。
    在这里插入图片描述

    从图5-3中可以简单看出,下载文件的请求命令为”RETA ”,文件字节大小也不一样。

    从发送时间也可以看出来一些差别。介于1MB—10MB的文件可能由于其格式或其他原因,没有正常显示出包的大小和传输时间。不过,通过对比不同的大小的文件,可以得出文件越大TCP切片长度越小,传输的字节越多,所用的传输时间越长。

    (3)FTP 服务的退出过程

    分析 FTP、TCP、IP 协议的不同内容。

    FTP的退出过程在Wireshark的抓包过程中没有捕获到。

    1.6 HTTP 协议包的捕获与分析

    登录到国内外的一些门户网站上,将主页浏览过程捕获下来,分析其 HTTP、TCP、UDP、

    IP 协议的内容。注意 TCP 协议中的端口号。

    补充一下HTTP的工作流程:

    (1) 客户端通过TCP三次握手与服务器建立连接。

    (2) TCP建立连接成功后,向服务器发送http请求

    (3) 服务器收到客户端的http请求后,将返回应答,并向客户端发送数据。

    (4) 客户端通过TCP四次握手,与服务器断开TCP连接。

    国内网站:

    国内这里以京东商城为列jd.com(111.13.28.118),捕获主页浏览过程,抓包结果如图。从图中可以看出,No分别为1950、1951、1958时进行了TCP三次握手,此时使用的是TCP协议的80端口。(说明:Wireshark抓包仅限于http,对于https其无法解密识别,国内大部分网站主页都是http,只有在登陆界面或者少数主页是https加密,不过为了掩盖性,大部分网站的头部都以https开头,尽管他们没有发挥任何作用。)
    在这里插入图片描述
    在这里插入图片描述

    从包的数据中可以分析得出(见图6-2),本机地址10.10.215.246,捕获端口为19651。目标地址为111.13.28.118,开放端口为80,TCP协议数据切片长度为382。在看看HTTP协议,其中http请求头为Mozilla/5.0(Windows NT 10.0;Win64; X64)…以及它的接受语言为中文等等,是正常访问url时向服务器发送的一些数据信息。

    1.7 EMAIL 协议包的捕获与分析

    登录到校内外的邮件系统,捕获自己的登录信息,重点分析其 SMTP、POP3 协议的内容。注意其端口号分别是 25 和 110。

    国内外大部分邮箱采用ssl加密,即https协议,其中http常用端口为80,https常用端口号为443。下面我使用的是foxmail客户端来进行EMAIL协议包的捕获,捕获内容如下图
    在这里插入图片描述

    在Protocol列中可以看到显示的协议有TCP和SMTP。由于SMTP是基于TCP协议的,所以在使用SMTP协议发送邮件之前,首先要通过TCP三次握手建立连接。从图中倒数第三个SMTP包的后面可以看到我发送邮件的邮箱账号。第75帧表示成功登陆邮箱,第78帧表示发送邮件的账户,本例中是yulezhang321@qq.com。第81帧表示接受邮件的账户,本例中是2592879772@qq.com。第83帧是客户端发送的内容,84帧使用接收了文本的内容。
    在这里插入图片描述

    该界面较为清晰的展示了邮件信息(右键一个SMTP包,选择follow->TCP Stream查看),红色部分为客户端发送的信息,蓝色部分是服务器相应信息。在该界面可以看到客户端的主机名、邮件账户、使用的邮件客户端、邮件内容类型和传输格式等等。也可以看见发送的信息内容,由于内容被转换为base64位格式的信息,进行了加密。

    四、 思考题

    (1)在 FTP 服务中,FTP 数据长度为什么是 1460 字节?

    最大传输单元是1460字节是TCP层的报文段(segment)的长度限制。

    (2)如何捕获 FTP 服务的结束数据包?

    在过滤器中输入ftp,会看到在Information信息列中出现Request:QUIT的内容,表示为ftp的结束包

    (3)在端口扫描中,对应的协议有 TCP 和 UDP。应该如何查找某端口对应的服务类型?

    在cmd命令行中使用netstat -a -n命令查看。

    (4)不指定 IP 地址时,为什么有的邻近主机捕获不到?

    每个信息包能够通过网络不同的路径发送,信息包能按照与它们发送时的不同顺序到达。网络协议(IP)仅仅是递送他们,TCP才是能够将它们按照正确顺序组合回原样。IP是一个无连接协议,这就意味着在通信的终点之间没有连续的线路连接。这就导致了会有一些主机捕获不到信息。

    (5)PING 命令操作时,为什么会捕获 ARP 协议的数据包?

    因为ARP协议是“Address Resolution Protocol” 的缩写。在局域网中,网络中实际传输的是帧,帧里面是有目标主机的MAC地址的。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址以保证通信的顺利进行。

    参考文章:

    如何关闭139端口及445端口等危险端口

    聊一聊HTTPS那些事

    TCP协议(1)–TCP首部

    wireshark过滤规则及使用方法

    wireshark抓包教程

    电子邮件抓包分析

    展开全文
  • 文章目录前言一、什么是SMTP协议和POP3协议二、具体步骤1.SMTP2.POP3总结 前言 其实这是这学期网络课设的一小部分实验报告,算的做的比较全面一点,干脆整理发出来。反正也没啥人看,就当记录了,不然万一报告文本...


    前言

    其实这是这学期网络课设的一小部分实验报告,算的做的比较全面一点,干脆整理发出来。反正也没啥人看,就当记录了,不然万一报告文本被我删了这也没地方找。


    一、什么是SMTP协议和POP3协议

    SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。 POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。 POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。

    注意,该图片中的收发均为一个地址,自己发自己。

    二、具体步骤

    1.SMTP

    SMTP服务器设置
    如图邮件服务1所示
    注意SSL必须关掉,否则抓不出数据
    邮件服务1
    发送邮件内容
    如图邮件服务2所示
    邮件服务2
    Wireshark抓取结果
    如图邮件服务3所示
    邮件服务3
    追踪TCP流
    看了一下发现SMTP接受密文,格式应该是目前非常简单的base64加密,所以尝试抓取内容后解密内容,如图邮件服务4:
    邮件服务4
    Base64解密
    将拿到的base64内容进行解密后使用GB2312编码方式进行解码即得到邮件具体内容,如图邮件服务5所示,邮件内容已经被还原出来了。
    邮件服务5

    2.POP3

    同样的做法,区别在这里额外放了一张图片。

    Wireshark 抓包
    Wireshark抓取结果
    如图邮件服务6所示,这里因为有张图片,明显可以看出传输了大量数据。
    邮件服务6
    追踪TCP流
    追踪pop的发送的报文内容,如图邮件服务7所示
    邮件服务7
    接下里就是老套路,Base64解密

    首先是邮件内容解密
    按之前的SMTP步骤进行分析和base64解码,即得到原内容,如图邮件服务8所示
    邮件服务8

    邮件附件图片解密
    SMTP的解密方式和pop3的图片解密方式一致,进行附件base64转码即可得到结果,如图邮件服务9,10,11所示:
    由于图片较大,转码base64内容极长,这里只截图了tcp流的部分,完整解密结果如图11.

    邮件服务9
    邮件服务10
    邮件服务11

    好了,一封邮件完整的内容到这里就被扒完了。

    总结

    没啥好总结的,其实网络实验挺好玩的。
    2021年1月25日20:42:13

    展开全文
  • wireshark抓包分析

    2020-10-11 22:00:38
    使用wireshark在计算机网卡上抓包,分析TCP建立连接的过程 三、实验操作方法和步骤 第一次握手: 端口号:56770 目的端口号:80 序列号:0收不长32bytes SYN1表示建立连接成功 第二次握手: 端口号:580 目的端口号...

    一、实验目的

    学习wireshark使用方法、分析TCP三次握手

    二、实验原理

    使用wireshark在计算机网卡上抓包,分析TCP建立连接的过程

    三、实验操作方法和步骤

    第一次握手:
    端口号:56770
    目的端口号:80
    序列号:0收不长32bytes
    SYN1表示建立连接成功
    在这里插入图片描述
    第二次握手:
    端口号:580
    目的端口号:56770
    序列号:0
    Ack:1
    在这里插入图片描述
    第二次握手:
    端口号:56770
    目的端口号:80
    序列号:1
    Ack:1
    在这里插入图片描述

    展开全文
  • 计算机网络实验(三)之Wireshark抓包分析-python实现http分析计算机网络试验三实验内容1.实验步骤1.1 基本HTTP GET/response交互1.2 HTTP条件Get/response交互1.3HTTP条件认证实验要求实验作答-代码实现分析版本一...

    计算机网络实验三

    实验内容

    1.实验步骤

    在之前的两次实验里,我们已经初步使用了Wireshark包嗅探器。在后续的一系列实验里,我们得训练、实践并掌握用Wireshark来查看网络协议的实践能力。在本次实验中,我们会探索HTTP协议的几个方面:基本的HTTP GET/response交互,HTTP消息格式,带条件判断的HTTP GET/response交互,基本的非常原始的HTTP认证。

    1.1 基本HTTP GET/response交互

    探索HTTP的第一个方法是下载一个非常简单的HTML文件,这个HTML文件非常短,并且不包含嵌入的对象。执行以下操作:

    1. 启动Firefox浏览器,并禁用其缓存
    2. 启动Wireshark数据包嗅探器,在过滤器栏输入**“http”**(只是字母,不含引号)并回车,这样就在稍后的分组列表窗口中只捕获HTTP消息。(我们只对HTTP协议感兴趣,不想看到其他的数据包)。
    3. 稍等一会儿,然后开始Wireshark数据包捕获。
    4. 在浏览器中输入以下内容 http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html 浏览器应显示非常简单的单行HTML文件。
    5. 停止Wireshark数据包捕获。

    通过查看HTTP GET和响应消息中的信息,回答以下实验要求的1-8题。 在回答这部分问题时,为每个题目使用一个单独的Jupyter Notebook单元格(下同)输出要求的信息。

    1.2 HTTP条件Get/response交互

    大多数Web浏览器会使用对象(资源)缓存,从而在检索HTTP对象时执行条件GET。执行以下步骤之前,请确保浏览器的缓存为空(Firefox里按下F12然后在开发者工具窗口里禁用缓存)。
    现在按下列步骤操作:
    • 启动浏览器,禁用缓存。
    • 启动Wireshark数据包嗅探器。
    • 在浏览器中输入以下URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html浏览器显示一个非常简单的五行HTML文件。
    • 取消禁用缓存。
    • 快速地将相同的URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html 输入到浏览器地址栏中并回车(或者只需在浏览器中点击刷新按钮)。
    • 停止Wireshark数据包捕获,并在过滤器栏中输入“http”,以便只捕获HTTP消息,并在数据包列表窗口中显示。
    回答实验要求的9-12题。

    1.3HTTP条件认证

    最后,我们尝试访问受密码保护的网站,并检查网站的HTTP消息交换的序列。URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html 是受密码保护的。用户名是“wireshark-students”(不包含引号),密码是“network”(不包含引号)。所以让我们访问这个“安全的”受密码保护的网站。执行以下操作:
    • 请确保浏览器的缓存被禁用,然后关闭你的浏览器,再然后启动浏览器,再次确认浏览器的缓存被禁用。
    • 启动Wireshark数据包嗅探器。
    • 在浏览器中输入以下URLhttp://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html 在弹出框中键入上述的用户名和密码。成功看到如下文字:
    This page is password protected! If you’re seeing this, you’ve downloaded the page correctly
    Congratulations!
    • 停止Wireshark数据包捕获,并在过滤器栏中输入“http”,以便只显示捕获的HTTP消息。
    现在来分析Wireshark输出。
    回答实验要求的13-14题。

    实验要求

    1. 以“HTTP/X.Y”的形式输出你的浏览器运行的HTTP版本。
    2. 以“HTTP/X.Y”的形式输出服务器运行什么版本的HTTP。
    3. 如果有的话,输出你的浏览器能接服务器接受哪种/些语言。
    4. 输出你的计算机的IP地址。
    5. 输出gaia.cs.umass.edu服务器的域名。
    6. 输出服务器返回到浏览器的状态代码。
    7. 输出服务器上HTML文件的最近一次修改时间。
    8. 输出服务器返回到你的浏览器的内容的字节数。
    9. 分析第一个从你浏览器到服务器的HTTP GET请求的内容。请输出True/False以表示在HTTP GET中是否有包含“IF-MODIFIED-SINCE”首部。
    10. 分析服务器响应的内容。如果返回状态码为200,则有很大概率是返回了完整的内容。请输出服务器返回的响应的状态码和短语。
    11. 分析第二个HTTP GET请求的内容。 请输出True/False以表示在HTTP GET中是否包含“IF-MODIFIED-SINCE:”首部。如果是,请换行输出“IF-MODIFIED-SINCE:”首部后面包含的信息。
    12. 针对第二个HTTP GET,输出服务器返回的响应的HTTP状态码和短语。
    13. 输出服务器对你的浏览器的初始HTTP GET请求的响应的状态码和短语。
    14. 输出当你的浏览器第二次发送HTTP GET消息时HTTP GET请求中包含的新首部及其内容(与13题对比)

    实验作答-代码实现

    以下解答通过故事剧情来描述

    小吴的公司经常加班,偶尔回家。有一天公司项目经理要求小吴用Python分析http,给他出了14个题目,第二天给出分析结果。下班后,小吴急匆匆的回到家,啥都没管就打开电脑按照经理的要求一个劲的用wireshark抓着包。抓完包之后,小吴傻呆呆的看着自己抓的包,翻看着报文中的属性,敲着代码,看了半天也没有写出代码来,心中不禁有点发凉,这可咋整啊!这时,他隐隐约约听见从隔壁老王家传来媳妇的叫声。小吴这才发现媳妇和儿子不在家,想着代码没敲出来,也就没在意。过了一会儿,媳妇衣衫褴褛,回到了家。媳妇对小吴说给他做饭去。没过多久隔壁老王领着儿子回来了。小吴想老王说了公司经理交给他的任务,老王看着埋头苦干的一句Python代码也没写出来,老王说:“我给你点提示,你按着下面的步骤做”

    分析

    首先我们先对题目进行分析,在题目中出现最多的词语就是游览器、服务器、请求和响应,在实验一中我们就探讨了访问某个网站所经历的过程,其中就有提到游览器和服务器的关系,如下图所示。从图中我们可以看出游览器向服务器发送请求,服务器然后对游览器做出回应。因此解答本实验问题的关键之一就是游览器对应请求,服务器对应响应。

    解题关键二:通过pyshark.FileCapture方法获取数据包对象cap,cap[0],cap[1]……顺序对应的就是wireshark中的一行。我们可以通过点击某一项查看来查看数据包中的内容,方便查找题目所需的属性,再通过Python代码进行输出。

    版本一—牛刀小试

    小吴顺着老王的思路看了看,想了想,还真是哎!于是欣喜而疯狂的敲着代码,一口气全做完了。(老王和儿子在一旁玩的不亦乐乎。)
    小吴是这么做的

    小吴看着自己写的代码,看着没啥bug,暗自窃喜,非常感谢老王的指点。老王看了小吴的代码摇了摇头,说“你这样搞,明天经理会把你开除的”。小吴一脸懵逼的看着老王。老王又接着说:“你把那些cap[0],cap[1],…写死了,经理拿去测试,换个包,代码就全废了,你可以试着把请求和响应分离开”。小吴想了想,妈耶!还真是哎!心想老王真牛逼啊!改天一定要请他吃饭。于是准备开始写第二个版本。这时媳妇端了一碗热乎乎的热汤面走了过来,把面放在了桌上,和老王嘀咕了几句,然后带着儿子跟随老王出去了。小吴吃着媳妇做的热汤面,吃完就一个劲的敲着代码,完全没察觉媳妇已经不在了,以为媳妇回房间睡觉了。搞到快凌晨的时候,第二个版本出来了,怕影响媳妇睡觉就早早的上班去了。回到了公司,小吴受到了经理的嘉奖,经理还给他发了奖金。想着,这都多亏了老王啊!于是下班后拿着钱请老王吃火锅去了……………

    版本二—代码优化

    小吴的第二个版本是这样的

    1. 获取数据包对象:getCapObj
    2. 获取所有请求和响应:getReqAndResp和getAll
    3. 根据索引获取单个请求和响应getSingleRequest和getSingleResponses

    函数封装

    import pyshark
    REQUEST=0
    RESPONSE=1
    diyFilter="http"
    tsharkPath="D:/Program Files/Wireshark/tshark.exe"
    def getCapObj(filePath,diyFilter,tsharkPath):
        """
        #获取数据包对象
        :filePath 文件路径
        :diyFilter 过滤条件
        :tsharkPath tshark路径
        :return 返回数据包对象
        """
        return pyshark.FileCapture(filePath,display_filter=diyFilter,tshark_path=tsharkPath)
    def getReqAndResp(cap):
        """
        #获取、分离请求和响应
        :return 返回请求和响应元组
        """
        requestsDict={}
        responsesDict={}
        for pkt in cap:
            try:
                responsesDict[pkt.http.request_in]=pkt
            except:
                requestsDict[pkt.frame_info.number]=pkt
        return requestsDict,responsesDict
    def getAll(filePath,diyFilter,tsharkPath,arg):
        """
        :filePath 文件路径
        :diyFilter 过滤条件
        :tsharkPath tshark路径
        :arg 标识请求和响应的参数,参数值为常量REQUEST或者RESPONSE
        :return 当arg为REQUEST时返回所有请求包,为RESPONSE时返回所有响应包
        """
        return getReqAndResp(getCapObj(filePath,diyFilter,tsharkPath))[arg]
    def getSingleRequest(requests,index):
        """
        #查找所有请求中索引为index的单个请求
        :requests 所有请求
        :index 索引,对应所有请求中某个请求的位置
        :return 返回索引为index的单个请求
        """
        return  requests[list(requests.keys())[index]]
    def getSingleResponses(responses,index):
        """
        #查找所有响应中索引为index的单个请求
        :responses 所有响应
        :index 索引,对应所有响应中某个响应的位置
        :return 返回索引为index的单个响应
        """
        return  responses[list(responses.keys())[index]]
       
    

    1-8题作答

    "==================1-8题公用(全局)变量===================="
    cap_file_path="./lab3_1.pcapng"
    cap1_requests=getAll(cap_file_path,diyFilter,tsharkPath,REQUEST)
    cap1_responses=getAll(cap_file_path,diyFilter,tsharkPath,RESPONSE)
    client=cap1_requests[list(cap1_requests.keys())[0]]#在这里将游览器、本机等统一定义为客户端
    server=cap1_responses[list(cap1_requests.keys())[0]]
    
    print("1、浏览器运行的HTTP版本为:",client.http.request_version)
    print("2、服务器运行的HTTP版本为:",server.http.response_version)
    print("3、浏览器能接服务器接受的语言为:",client.http.accept_language)
    print("4、我的计算机的IP地址为:",client.ip.src)
    print("5、gaia.cs.umass.edu服务器的域名为:",client.http.host)
    print("6、服务器返回到浏览器的状态代码为:")
    i=0
    for key in list(cap1_responses.keys()):
        i=i+1
        print("请求",i,"-->状态码",cap1_responses[key].http.response_code)
    print("7、服务器上HTML文件的最近一次修改时间为:")
    i=0
    for key in list(cap1_responses.keys()):
        try:
            i=i+1
            print("响应",i,"-->",cap1_responses[key].http.last_modified)
        except:
            pass
    print("8、服务器返回到浏览器的内容的字节数为:")
    i=0
    for key in list(cap1_responses.keys()):
        try:
            i=i+1
            print("响应",i,"-->",cap1_responses[key].http.content_length)
        except:
            pass
    

    9-12题作答

    "==================9-12题公用(全局)变量===================="
    cap_file_path="./lab3_2.pcapng"
    cap2_requests=getAll(cap_file_path,diyFilter,tsharkPath,REQUEST)
    cap2_responses=getAll(cap_file_path,diyFilter,tsharkPath,RESPONSE)
    print("9、分析第一个从你浏览器到服务器的HTTP GET请求的内容。请输出True/False以表示在HTTP GET中是否有包含“IF-MODIFIED-SINCE”首部。")
    if getSingleRequest(cap2_requests,0).http.get_field_by_showname("If-Modified-Since") is not None:
        print("True")
    else:
        print("False")
    print("10、分析服务器响应的内容。如果返回状态码为200,则有很大概率是返回了完整的内容。请输出服务器返回的响应的状态码和短语。")
    i=0
    for key in list(cap2_responses.keys()):
        try:
            i=i+1
            print("响应",i,"-->",cap2_responses[key].http.response_code,cap2_responses[key].http.response_code_desc)
        except:
            pass
    print("11、分析第二个HTTP GET请求的内容。 请输出True/False以表示在HTTP GET中是否包含“IF-MODIFIED-SINCE:”首部。如果是,请换行输出“IF-MODIFIED-SINCE:”首部后面包含的信息。")
    if getSingleRequest(cap2_requests,2).http.get_field_by_showname("If-Modified-Since") is not None:
        print(getSingleRequest(cap2_requests,2).http.get_field_by_showname("If-Modified-Since").showname_value)
    else:
        print("False")
    print("12、针对第二个HTTP GET,输出服务器返回的响应的HTTP状态码和短语。")
    print("状态码:",getSingleResponses(cap2_responses,2).http.response_code)
    print("短语:",getSingleResponses(cap2_responses,2).http.response_code_desc)
    
    

    13-14题作答

    "==================13-14题公用(全局)变量===================="
    cap_file_path="./lab3_3.pcapng"
    cap3_requests=getAll(cap_file_path,diyFilter,tsharkPath,REQUEST)
    cap3_responses=getAll(cap_file_path,diyFilter,tsharkPath,RESPONSE)
    print("13、输出服务器对你的浏览器的初始HTTP GET请求的响应的状态码和短语。")
    print("状态码:",getSingleResponses(cap3_responses,0).http.response_code)
    print("短语:",getSingleResponses(cap3_responses,0).http.response_code_desc)
    print("14、输出当你的浏览器第二次发送HTTP GET消息时HTTP GET请求中包含的新首部及其内容(与13题对比)。")
    print("第一次次发送HTTP GET消息时HTTP GET请求中包含的首部及其内容\n",getSingleRequest(cap3_requests,0).http)
    print("第二次发送HTTP GET消息时HTTP GET请求中包含的新首部及其内容\n",getSingleRequest(cap3_requests,2).http)
    print("服务器对浏览器第二次发送HTTP GET消息响应的状态码为:",getSingleResponses(cap3_responses,2).http.response_code)
    print("服务器对浏览器第二次发送HTTP GET消息响应的短语为:",getSingleResponses(cap3_responses,2).http.response_code_desc)
    

    运行结果

    13-14结果对比

    13题中服务器返回的状态码为401,短语为Unauthorized,表示未授权,是服务器对浏览器的初始HTTP GET未输入账号密码时请求的响应,14题中服务器返回的状态码为200,短语为OK,表示成功,是服务器对浏览器的第二次HTTP GET输入账号密码授权登录后请求的响应。
    从上图可以看出,HTTP GET请求中包含的首部及其内容,授权登录后较登陆前多了一个Authorization,他的作用是客户端发送http请求服务器发现配置了http auth,会检查request里面有没有"Authorization"的http header,如果有,则判断Authorization里面的内容是否在用户列表里面,Authorization header的典型数据为"Authorization: Basic jdhaHY0=",其中Basic表示基础认证, jdhaHY0=是base64编码的"user:passwd"字符串。如果没有,或者用户密码不对,则返回http code 401页面给客户端。标准的http浏览器在收到401页面之后,应该弹出一个对话框让用户输入帐号密码;并在用户点确认的时候再次发出请求,这次请求里面将带上Authorization header。

    总结

    本实验通过简单的Python代码来获取http请求报文和响应报文中的属性值,主要掌握的有常见的服务器响应状态码和短语代表的意义,禁用缓存和不禁用缓存的区别。特别需要的是我们在编写程序的时候应考虑代码的通用性和健壮性,不写重复代码、保证效率是对一个程序员的基本要求。

    寄语

    我还是个未入门的菜鸟,如果有错误的地方,欢迎指正。如果你有任何不解的地方或者有更好的实现,欢迎在下方留言评论哦。如果你觉得本篇文章对你有帮助,欢迎关注!!!

    展开全文
  • 使用wireshark抓包软件分析微信协议--zucc

    万次阅读 多人点赞 2019-06-07 21:11:56
    因为csdn自动压缩了上传的图片,导致看到的图片不太精确,稍后将发布可以下载的文档说明 下载地址,可以看到超清的图片,请自行下载 ...使用mac进行wireshark抓包,并选择使用客户端微信,同时...
  • 一、实验目的通过wireshark抓包工具,抓取客户机访问FTP服务器的连接过程进一步理解TCP的三次握手二、实验拓扑三、实验步骤1、根据拓扑图搭建实验环境。2、在客户机上安装安装Wireshark协议分析工具,并启动。注意将...
  • wireshark抓包分析TCP的三次握手与四次挥手 实验目的:理解TCP协议的三次握手与四次挥手原理 实验环境: 一台物理机(win10系统)与一台虚拟机(CentOS7系统) Wireshark抓包软件 SecureCRT 实验场景: 物理机...
  • Wireshark抓包系列教程之二:HTTP协议分析

    万次阅读 多人点赞 2017-05-06 19:08:30
    本教程参考: A Top-Down Approach, 6th ed 一书中 Wireshark_HTTP_v6.1 ...(1)实验步骤: ①打开浏览器; ②开启 Wireshark,但不开始数据包捕获。在 Wireshark 主窗口顶部的 Filter中输入“ http”,因
  • 在这一部分,我们通过与远程服务器之间发送 150KB 的文件来...具体步骤为: 抓取传输到远程服务器的 TCP 数据包 a) 打开 web 浏览器,进入: http://gaia.cs.umass.edu/wireshark-labs/alice.txt 复制这篇文章 Alice
  • 一、实验环境 服务器:windows server 2008 ...二、实验步骤 1、设置IP地址 服务器:windows server 2008 IP 地 址:192.168.10.1 子网掩码:255.255.255.0 网 关:无 首选DNS :192.168.10.1 客户机:win...
  • 实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)实验步骤:协议分析:实验二 网络层协议分析-IP协议、ICMP报文控制协议分析一.实验目的及要求二.实验内容实验步骤:协议分析:实验三 ...
  • wireshark抓包软件进行抓包并查看主机与虚拟机TCP的三次握手和四次挥手 需求描述 将上述过程通过实验再现出来。 查看数据包的三次握手和四次挥手 推荐步骤 1、VM15.5在虚拟机下安装一台centos7.6系统,...
  • Wireshark数据抓包分析之FTP协议

    万次阅读 多人点赞 2018-04-17 20:09:58
    实验步骤一 配置FTP服务器,并在测试者机器上登录FTP服务器在局域网环境中,我们使用一个小工具来(Quick Easy FTP Server)实现FTP服务器。配置Quick Easy FTP Server 软件双击桌面的Quick Easy FTP Server,如下...
  • TCP协议三次握手和四次挥手抓包实验实验步骤: 1.打开Wireshark抓包软件,点击interface List。 2.选择与SecureCRT相连的虚拟机网卡VMnet1。 3.在Centos系统终端里输入#ip addr#的命令,找到其IP地址。 4.按如...
  • 实验步骤 1、打开虚拟机Centos 7.6,并连接CRT。打开Wireshark软件进行抓包 CRT连接虚拟机 2、打开打开Wireshark软件进行抓包 3、查看断开连接时四次挥手数据 打开CRT输入init 0 断开,从虚拟机发出断开信息...
  • IP和TCP抓包分析实验

    2020-07-12 16:36:18
    实验步骤 1.修改设备名称 2.配置IP地址 3.开启抓包 4.在R1上pingR2 5.开启Wireshark,查看抓取的Ping包内容 步骤1:点开HCL右侧边栏,快捷点击界面GE0/0,并点击启动Wireshar 步骤2:在Wir
  • IP抓包分析实验

    2019-12-31 12:14:47
    在改链路上开启抓包 在R1pingR2 开启wireshark, 查看抓取的ping包的内容 实验解析 修改设备名称 步骤1:在R1上进入系统视图,修改设备名称为R1 步骤2:在R2上进入系统视图,修改设备名称为R2 配置IP地址 ...
  • 实验步骤: 1.启动主机上的web浏览器。 2.启动Wireshark。只是窗口中没有任何分组列表。 3.开始分组俘获:选择“Capture”下拉菜单中的“Interface”命令,其中显示计算机所具有的网络接口(即网卡)。当计算机具有...
  • 三、实验步骤 1、安装Wireshark 2、启动 3、在菜单栏“抓包”(Capture)选项中选择“抓包参数选择”(Options),设置抓包选项。注意接口的选择,如果电脑上安装了eNSP,那么默认的IP为192.16...
  • IP与FTP抓包分析实验

    2021-05-14 09:43:04
    在该链路上开启抓包 在R1上ping R2 开启wireshark,查看抓取的ping包的内容 在R2上开启FTP服务 在R1上访问R2的FTP 刷新wireshark,查看抓取的FTP的登录名和密码 实验步骤 修改设备名称步骤1:在R1上进入...
  • 服务器安装Wireshark抓包软件 实验步骤 启动并设置抓包软件Wireshark 进入DOS窗口,ping服务器 停止并显示 在出现的窗口中选择主机和服务器间通信记录,可以看到数据包在两台电脑间传递的过程,如下图所...
  • TCP和HTTPS抓包分析

    2020-12-08 20:28:01
    实验目的:用wireshark抓包分析TCP协议的三次握手连接、四次握手断开;用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程。 实验环境:Windows10,wireshark,Fiddler 前置学习:wireshark抓包新手使用教程 ...
  • 实验步骤 1、下载安装Wireshark; 2、在cmd中输入命令“ipconfig”,得到本机IPv4 地址; 3、开启抓包,访问 www.china.com,页面加载完毕之后停止抓包抓包结果如下: 4、利用显示过滤器进行筛选,选择有用信息...
  • 抓包软件Wireshark 实验步骤 (一)首先在服务器上搭建FTP服务 1、控制面板->系统安全->管理工具,发现里面没有Internet服务管理器,说明该功能没有开启,如下图所示, 2、这...
  • 三次握手实验步骤

    2019-06-15 20:03:00
    1.开始→运行→CMD,在弹出的命令行窗口中输入...2.打开软件Wireshark,点击“Capture”→“Start”,开始抓包。 3.打开浏览器,输入刚才ping的那个网址,即要抓包的网址,如www.baidu.com,等一段时间,待数据...
  • 浅析手机抓包方法实践

    千次阅读 2016-01-30 01:30:18
    0x00 摘要在移动逆向分析以及 App 开发的时候,总会需要对其网络行为进行...tshark 更牛逼)本文总结记录了 5 种抓包方式,掌握其一即可进行实践,欢迎大家一起交流分享0x01 基于 Wireshark实验步骤:1.1 在电脑主机上
  • Window的网卡大多数情况下默认会剥离802.1q tag,所以在利用wireshark抓包工具抓包时,都看不到tag字段,有时候这给实验带来很多不便。 因为VLAN是软件级别的功能,理论上只要驱动支持,任何网卡都可以支持VLAN。...
  • Wireshark嗅探和协议分析 实验环境 1、系统环境:Windows7/8/10操作系统、Centos6.8 2、浏览器:IE10/11 ...DHCP协议抓包实验 以Win10操作系统为例,鼠标左键单击左下角的开始菜单,选择“设置”选项,...
  • WireShark实战笔记之TCP三次握手

    千次阅读 2021-04-04 12:30:06
    httpswireshark分析tcp的三次握手实验环境:抓包分析实验步骤相对序列号参考资料: 实验环境: windows10 wiresahrk 抓包分析 实验步骤 1.打开wireshark,开始过滤;浏览器中访问www.baidu.com。 2.过滤出http 3....
  • Wireshark抓取数据包

    千次阅读 2018-07-30 09:07:52
    分析ICMP协议数据包 实验原理 ...实验步骤 在过滤条件中分别输入“icmp” 点击开始抓包,为了抓取使用ICMP的包,我们要设置过滤条件,点击“选项”。 这是可以看到抓包过滤按钮后面...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

wireshark抓包实验步骤