基于netwox/netwag 工具的网络协议攻防实验

实验目的:

理解基于网络协议的攻击原理, 掌握一些基于网络协议攻击的方法, 掌握 netwox/netwag 的使用方法。 实验环境: netwox/netwag 工具, wireshark 工具, Telnet 服务器, Telnet 客户端

实验准备:

1. 安装 netwox/netwag 工具:先安装 ActiveTcl,再解压安装

2. 安装配置 Telnet 服务器, Telnet 客户端

实验内容:

  1.  使用 netwox/netwag 工具伪造 TCP 包并进行抓包分析

2. 使用 netwox/netwag 工具对 Telnet 服务器进行 SYN flood 攻击,并进行抓包分析

3. 使用 netwox/netwag 工具对 Telnet 服务器进行 TCP RST 攻击,并进行抓包分析。

实验步骤记录:

实验准备:安装 Activetcl 和Netwox/Netwag工具

实验正式进行:

  1. 使用 netwox/netwag 工具的方法38伪造 TCP 包并进行抓包分析

2.使用 netwox/netwag 工具对 Telnet 服务器进行 SYN flood 攻击,并进行抓包分析

(1)在本地机器上配置激活 Telnet 服务器与 Telnet 客户端,以自己的学号创建新的用户;

1.1) 打开 Telnet 功能:控制面板-程序-程序和功能-打开或关闭 Windows 功能,勾选 Telnet 服务器, Telnet 客户端。

1.2)启动本地 Telnet 服务器,搜索-服务,点击服务,选择 Telnet,更改启动类型为 手动

1.3)增加 Win7 用户1515300024并将其加入 到Telnet 群组

1.4)手动启动 Telnet 服务器:net start Telnet

(2)启动本地 Wireshark;

(3)在第二台机器上登录有自己学号帐户的 Telnet 服务器,截屏及捕获登录踪迹;

从客户端命令行上输入 telnet IP 地址,之后输入帐号/口令字,登入 Telnet 服务器。同时在客户端开启Wireshark抓包工具,抓取客户端 192.168.1.130 登录到Telnet 服务器192.168.1.131 的数据包

下图为客户端登陆并执行一次dir命令的截图:

下图为客户端Wireshark抓取的Telnet流量包截图截图:

使用Wireshark的流追踪功能还原出本次明文传输的Telnet通信过程,可以看出这些信息和客户端上的过程基本一致

(4)退出登录,从第三台机器上利用 netwox/netwag 工具对Telnet服务器进行 SYN flood 攻击。捕获 DDOS 攻击踪迹。尝试再次登录 Telnet 服务器,解释现象。

 构造SYN flood攻击包如下:

启动攻击:

抓取的DDOS 攻击踪迹如下,可以发现这些攻击包高度相似,目的地址都是Telnet服务器的IP:192.168.1.131,类型都是SYN请求包,但是源地址没有任何规律

此时在第二台机器上再次连接Telnet服务器,会出现以下无法连接的情况,因为在服务器的 23 端口积累了大量的SYN请求包需要服务器来处理,服务器向SYN包的源地址发送SYN/ACK 包并等待源地址的ACK包回复,但是由于源地址是伪造的,无法回复 ACK 包,服务器因此陷入等待状态,从而导致无法接收正常主机发起的 TCP 连接,造成拒绝服务现象。

3.使用 netwox/netwag 工具对 Telnet 服务器进行 TCP RST 攻击,并进行抓包分析。

(1) 以你的学号创建一个 Telnet 账户,以这个账户为基础进行后继的实验。

 这一步只需使用之前配置好的账户即可

(2) 验证 TCP RESET 理论上的可行性

A 先在二主机之间建立一个 TCP 连接,通过抓包程序获得当前二主机的 ip 地址,端口号,序列号。 B 通过获得的信息伪造 TCP RESET 报文并发送。

C 观察原有 TCP 连接是否断开。

建立TCP 连接:Telnet 192.168.1.131

抓包获得当前二主机的 ip 地址,端口号,序列号如下:

源ip地址: 192.168.1.137, 目的ip地址: 192.168.1.131

源端口: 1056,  目的端口: 23,

序列号(Seq): 563773297, 确认号(Ack): 2245100282

伪造的数据包发送完成后,Telnet客户端立即断开了连接,同时wireshark上也抓到了对应的伪造的RST数据包,结果截图如下:

 

实验至此可以证明 TCP RESET 是可行的

(3) 验证窗口对 TCP RESET 攻击的影响

A 先在二主机之间建立一个 TCP 连接,通过抓包程序获得当前二主机的 ip 地址,端口号,序列号,另外就是记录下窗口的大小。

B 通过获得的信息伪造 TCP RESET,填写伪造的序列号时,使伪造序号大于准确的序列号但是与准确序列号的差小于窗口大小,发送 TCP RESET 报文。

C 观察原有 TCP 连接是否断开。 改动伪造的序列号,使其刚与准确的序列号之差刚好为窗口大小,重复以上实验。

3.1)伪造序号大于准确的序列号但是与准确序列号的差小于窗口大小

建立TCP 连接:Telnet 192.168.1.131

构造欺骗客户端的RST包:

抓取客户端发往服务器的TCP包获得当前二主机的 ip 地址,端口号,序列号,窗口大小如下:

源ip地址: 192.168.1.137, 目的ip地址: 192.168.1.131

源端口: 1146,  目的端口: 23,

序列号(Seq): 2649478470, 确认号(Ack): 3142715117,窗口的大小(win):62847

伪造欺骗客户端的TCP RESET 报文并发送:

使用确认号(Ack): 3142715117+10=3142715127作为伪造数据包的序列号(Seq),构造如下RST数据包:

连接没有断开,而且可以看到,在RST包发出去以后,客户端立刻发了一个重传包给服务器,该重传包的数据和105号包是一致的,现在客户端仍然可以正常发送数据.

实验没有达到预期效果顺利断开,接着我尝试减少确认号(Ack)增加的值,结果发现+10,+5,+2,+1都不能断开连接,由此推测这样简单地构造RST包是不可行的,或许需要辅以其他手段。

3.2)改动伪造的序列号,使其刚与准确的序列号之差刚好为窗口大小

RST包发送后,客户端重传958号数据包,连接没有断开

结果和3.1一样,无法中断telnet连接。

 

posted @ 2019-03-13 18:59  chuanzi  阅读(6958)  评论(0编辑  收藏  举报