目录

  • 下载安装:
  • 实验步骤
  • 0x01 抓取登陆的用户名和口令
  • 0x02 TCP握手包与挥手包
  • 三次握手包
  • 四次挥手包
  • 0x03 ICMP协议


下载安装:

Wireshark官网下载

实验步骤

0x01 抓取登陆的用户名和口令

登陆教务系统,抓取登陆的用户名和口令,并进行分析。

  1. 通过ping确认出真实ip(这里ip为222.24.62.124)
  2. 启动Wireshark软件,登录抓包

可以先将用户名和密码输入后,再开启wireshark,然后再登录,这样可以抓尽可能少的数据包,以便于进行筛选

wireshark mysql抓取密码 wireshark抓取用户名和密码_网络协议

wireshark mysql抓取密码 wireshark抓取用户名和密码_客户端_02


登录后,点击红色按钮停止抓包

wireshark mysql抓取密码 wireshark抓取用户名和密码_http_03

  1. 对抓到的数据包进行筛选
    进行筛选数据包,这里注意ip地址是通过前面ping确认的
#通过http协议与ip筛选数据包
http and ip.addr==222.24.62.124

找这种以POST传参的数据包,打开就可以查看用户名及密码

"yhm"就是 “用户名” , "mm"就是 “密码” (经过加密后的密文)

wireshark mysql抓取密码 wireshark抓取用户名和密码_wireshark mysql抓取密码_04


4. 分析数据包

wireshark mysql抓取密码 wireshark抓取用户名和密码_网络协议_05

#HTTP数据包分析
1.请求行:请求类型/请求资源路径、协议的版本和类型
请求类型: POST
请求资源路径: /jwglxt/xtgl/login_slogin.html?time=1632389174002 
协议的版本和类型: HTTP/1.1

2.请求头:
Host(请求服务器的域名及端口): www.zfjw.xupt.edu.cn
User-Agent(客户端用户信息): Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0
Accept: (客户端能够接受的内容类型)text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language(浏览器可接受的语言): zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding(浏览器可支持web服务器返回的压缩编码类型): gzip, deflate
Content-Type(返回的内容的内容类型): application/x-www-form-urlencoded
Content-Length(请求的内容长度): 481
Origin(用来说明请求从哪里发起的): http://www.zfjw.xupt.edu.cn
Connection(表示是否需要持久连接): close
Referer(先前的网页地址,表示来源路径): http://www.zfjw.xupt.edu.cn/jwglxt/xtgl/login_slogin.html
Cookie(将保存在该域名下的cookie值发送给服务器): *********************************
Upgrade-Insecure-Requests(向服务器发信号,表示客户端对加密和认证响应的偏好): 1

3.请求体:要发送的数据(一般POST传参会使用)
"csrftoken"(token值,防范csrf攻击) = "**********************"
"language"(语言) = "zh_CN"
"yhm"(用户名) = "*******"
"mm"(密码) = "******"

补充:

  1. Frame: 物理层的数据帧概况
  2. Ethernet II:数据链路层以太网帧头部信息
  3. Internet Protocol Version 4:互联网层IP包头部信息
  4. Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议
  5. Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议

wireshark mysql抓取密码 wireshark抓取用户名和密码_http_06

0x02 TCP握手包与挥手包

抓取数据包,寻找并分析三次握手和TCP的四次挥手。

三次握手包
  1. 抓包步骤和上面的类似,抓完包后筛选出三次握手包
  2. 第一次握手包:
    客户端向服务器发送连接请求包,标志位为SYN,序号为Seq=0
#tcp数据包分析
Source Port(源端口): 1432
Destination Port(目的端口): 80
Sequence Number(发送序列号): 0 
Acknowledgment Number(应答序列号): 0
1000 .... = Header Length(头部长度): 32 字节
.... ..0. .... = Urgent(紧急指针): Not set
.... ...0 .... = Acknowledgment(应答确认指针): Not set
.... .... ..1. = Syn(头部请求通信标志位): Set
Calculated window size(滑动窗口): 64240
Checksum(校验和): 0xdf3f 
Urgent Pointer(紧急指针数据): 0
Options(选项):
  1. 第二次握手包
    服务器收到客户端发过来报文,由标志位SYN知道客户端要求建立联机,向客户端发送一个标志位为SYN和ACK的数据包,序号Seq=0,确认号Ack=1(确认号=第一次握手包中的序号+1)
  2. wireshark mysql抓取密码 wireshark抓取用户名和密码_网络协议_07

  3. 第三次握手包
    客户端收到服务器发来的包后检查确认序号是否正确,即第一次握手包发送的序号加1(Seq+1=1),以及标志位ACK是否为1。若正确,客户端再次向服务器发送标志位为ACK的数据包,其中序号Seq=1,确认号Ack=1(确认号=第二次握手包中的序号+1)
  4. wireshark mysql抓取密码 wireshark抓取用户名和密码_wireshark mysql抓取密码_08

四次挥手包
  1. 筛选四次挥手包(一般情况都是客户端发起挥手包,我这里是服务器先发起挥手包)
  2. wireshark mysql抓取密码 wireshark抓取用户名和密码_网络协议_09

  3. 服务器给客户端发送TCP包,用来关闭服务器到客户端的数据传送。将标志位FIN和ACK置为1,序号为Seq=297,确认序号为Ack=503。

wireshark mysql抓取密码 wireshark抓取用户名和密码_客户端_10

  1. 客户端收到FIN后,发回一个ACK(标志位ACK=1),确认序号为收到的序号加1,即Ack=Seq+1=298。序号为收到的确认序号Seq=503
  2. wireshark mysql抓取密码 wireshark抓取用户名和密码_客户端_11

  3. 客户端关闭与服务器的连接,发送一个FIN。标志位FIN和ACK置为1,序号为Seq=503,确认序号为Ack=298。

wireshark mysql抓取密码 wireshark抓取用户名和密码_restful_12

  1. 服务器收到客户端发送的FIN之后,发回ACK确认(标志位ACK=1),确认序号为收到的序号加1,即Ack=Seq+1=504。序号为收到的确认序号X=298。

0x03 ICMP协议

  1. 通过ping确认出真实ip(我这里ip为118.212.233.216)
  2. wireshark mysql抓取密码 wireshark抓取用户名和密码_网络协议_13

  3. 启动wireshark,终端ping网址,完成抓包(与前面抓包步骤相同)
  4. 筛选数据包
    icmp应答包:
  5. wireshark mysql抓取密码 wireshark抓取用户名和密码_restful_14

#对icmp数据包分析
类型:0 (响应应答)   代码/编码:0
校验和:0x49ac(正确的校验和)
标示符(大端顺序):1(0x0001);
标示符(小端顺序):256(0x0100);
序列号(大端顺序):2991(0x0baf)
序列号(小端顺序):44811(0xaf0b)

类型代码补充:

类型代码

类型描述

0

响应应答(ECHO-REPLY)

3

不可到达

4

源抑制

5

重定向

8

响应请求(ECHO-REQUEST)

11

超时

12

参数失灵

13

时间戳请求

14

时间戳应答

17

地址掩码请求

18

地址掩码应答

30

路由跟踪