20199121《网络攻防实践》第五周作业

前言

问题 回答
这个作业属于那个课程 网络攻防实践
这个作业的要求在哪里 《网络攻防实践》第五周作业
学习内容 第五章 TCP/IP网络协议攻击

1.知识点梳理

1.1 概念介绍

  • 网络安全属性:机密性、完整性、真实性、可用性、不可抵赖性。

  • 网络攻击基本模式:被动威胁——截获(机密性),主动威胁——篡改(完整性)、中断(可用性)、伪造(真实性)。
    截获:以嗅探与监听技术为基础的被动攻击模式,获取网络通信双方的通信信息内容。
    中断:以拒绝服务技术为基础的主动攻击模式,使网络通信和会话无法进行。
    伪造:以欺骗为基础的主动攻击模式,假冒网络通信方的身份,欺骗通信对方达到恶意目的。
    篡改:包括数据包篡改,中间人攻等技术的击主动攻击模式,网络通信工程的信息内容进行篡改,使得通信一方或双方接收到虚假消息。

  • TCP/IP协议栈各层及其面临的安全威胁如下表

  • 针对TCP/IP网络协议栈的攻击技术,除了网络嗅探与协议分析技术之外,最重要的是欺骗技术。即攻击者伪造出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。

1.2 网络层协议攻击

IP源地址欺骗

  • 原理:IP协议只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性验证。

  • 攻击步骤

    • 对受信任主机进行拒绝服务攻击,使其丧失工作能力。
    • 对目标主机的TCP初始序列号ISN进行取样猜测,ISN有规律,比如按时间递增。
    • 伪造受信任主机的数据包发送给目标主机(SYN)。
    • 目标主机返回SYN/ACK数据包。
    • 伪造受信任主机再返回ACK包,建立连接。
  • 防范措施

    • 使用随机化的初始序列号
    • 使用安全传输协议IPsec
    • 基于加密算法的用户身份认证机制
  • 应用场景:拒绝服务攻击、网络扫描

  • 攻击过程示意图如下:

ARP欺骗

  • 原理:ARP协议在进行IP地址到MAC地址映射时存在安全缺陷。1)广播请求时,没有对响应结果进行真实性验证2)ARP缓存容易被注入伪造的IP地址到MAC地址映射

  • 攻击步骤

    • 源节点A通过ARP协议在局域网段广播ARP请求包,询问节点B的MAC地址。
    • 攻击节点C不断向源节点发送ARP响应包,告诉源节点B的IP地址对应自己的MAC地址。
    • 由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存。
    • A要再次发送数据包到B时,数据包将发送到C对应的MAC地址,这样C就通过欺骗假冒了目的节点B。
  • 防范措施

    • 静态绑定关键主机的IP地址与MAC地址的映射
    • 使用防范工具:360 ARP防火墙等
    • 使用VLAN虚拟子网细分网络拓扑
  • 应用场景:利用ARP欺骗进行局域网中的嗅探;中间人攻击;恶意代码。

  • 攻击过程示意图如下:

ICMP路由重定向攻击

  • 原理:利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己则可以伪装成路由器,使目标机器的数据报发送至攻击机从而加强监听。

  • 攻击步骤

    • 攻击冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。
    • 被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其网关。
    • 攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。
    • 在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。
  • 防范措施:设置防火墙过滤ICMP数据包

  • 攻击过程示意图如下:

1.3 传输层协议攻击

TCP RST攻击

  • 原理:TCP协议头的标志位有一个reset比特位,当它置为1时,接收该数据包的主机将立即断开TCP会话连接。故攻击者可以滥用此类型重置报文,对正常网络通信造成威胁。

  • 攻击步骤

    • 攻击主机通过嗅探监视通信双方A、B之间的TCP连接。
    • 在获得源、目标IP地址及端口、序列号之后,结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方。
    • 在确保端口号一致及序列号落入TCP窗口内,直接关闭连接,造成通信双方正常网络通信的中断,达到拒绝服务的效果。
  • 攻击过程示意图如下:

TCP会话劫持攻击

  • 原理:一些网络服务在建立TCP会话之后进行应用层身份认证,之后客户端对服务端的控制及资源获取则不再进行身份验证。

  • 攻击步骤

    • A向B发起Telnet连接请求,并通过认证建立会话。
    • B向A发送响应包,包括当前序号、希望收到的下一个序号。
    • 攻击者进行ARP欺骗,假冒A的身份向B发送数据包(序列号有要求),并以A已经认证的身份执行任意命令。
    • 此时A与B的会话仍保持,但与B的ACK值不再互相匹配而产生“ACK风暴”。直至其中一个ACK由于拥塞或其他原因而丢失。
  • 防范措施

    • 禁用主机上的源路由
    • 采用静态绑定避免ARP欺骗
    • 引用和过滤ICMP重定向报文
  • 攻击过程示意图如下:

TCP SYN Flood拒绝服务攻击

  • 原理:基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
  • 防范措施:SYN-cookie技术(在连接信息未完全到达前不进行资源的分配)、防火墙地址状态监控技术(将到目标服务器的TCP连接状态分为NEW、GOOD、BAD)

UDP Flood拒绝服务攻击

  • 原理:与TCP拒绝服务攻击类似,向目标主机发送大量UDP数据包,使其不可用。
  • 防范措施:禁用或过滤监控及响应服务;禁用或过滤其他UDP服务。

1.4协议栈攻击防范措施

  • 监测、预防与安全加固
  • 网络安全协议:网络接口层(统一认证协议802.1x、WEP/WPA),网络互联层(IPsec),传输层(SSl、TLS),应用层(PKI、SSH)
  • 下一代互联网协议IPv6

2.实践

  • 题目:在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
    IP/MAC地址说明:
    A:攻击机Ubuntu【IP地址:192.168.0.11 MAC地址:00:0c:29:25:94:af】
    B:靶机Linux Metasploitable【IP地址:192.168.0.14 MAC地址:00:0c:29:04🆎b9】
    C:靶机winXP【IP地址:192.168.0.13 MAC地址:00:0c:29:df:88:53】

2.1 ARP缓存欺骗攻击

  • 工具:Netwox80号工具周期性的发送ARP应答包
  • 命令:arp -a 显示arp高速缓存列表
  • 步骤:A用工具Netwox对C进行ARP欺骗 —— C的ARP缓存中B的IP地址对应着A的MAC地址 —— C向B请求ftp服务 —— A用wireshark查看通信详情

A:攻击机Ubuntu【IP地址:192.168.0.11 MAC地址:00:0c:29:25:94:af】
B:靶机Linux Metasploitable【IP地址:192.168.0.14 MAC地址:00:0c:29:04🆎b9】
C:靶机winXP【IP地址:192.168.0.13 MAC地址:00:0c:29:df:88:53】

A用工具Netwox对C进行ARP欺骗netwox 80 -e 00:0c:29:25:94:af -i 192.168.0.14即周期性的发送ARP应答包告诉ARP请求方(C)192.168.0.14(B)的MAC地址为00:0c:29:25:94:af(攻击机A)

在C中用命令arp -a查看是否欺骗成功

B、C之间进行通信,在这里选择ftp服务,在C中输入命令ftp 192.168.0.14,在攻击机A中用wireshark查看通信的数据包,攻击成功

2.2 ICMP重定向攻击

  • 工具:Netwox86号工具发送ICMP重定向报文。
  • 步骤:攻击机A使用netwox工具以默认网关的名义给C发送IMCP重定位信息——C的默认路由地址变为A——攻击机A用wireshark监听C的通信

A:攻击机Ubuntu【IP地址:192.168.0.11 MAC地址:00:0c:29:25:94:af】
B:靶机Linux Metasploitable【IP地址:192.168.0.14 MAC地址:00:0c:29:04🆎b9】
C:靶机winXP【IP地址:192.168.0.13 MAC地址:00:0c:29:df:88:53】

首先来看看C的初始路由表

在攻击机A中用wireshark监听C的通信数据包,过滤规则(tcp or arp or icmp) and host 192.168.0.13

攻击机A使用netwox工具向C发送ICMP重定向报文,命令netwox 86 -f "host 192.168.0.13" -g 192.168.0.11 -i 192.168.0.1 即嗅探到192.168.0.13(C)的数据包时,以192.168.0.1的名义发送ICMP重定向报文,使192.168.0.11(攻击机A)成为其默认路由

C打开某网页,A用wireshark监听到的数据包

查看C被攻击后的路由表

2.3 SYN Flood攻击

  • 工具:Netwox76号工具进行SYN Flood攻击。
  • 步骤:攻击之前C向B发起ftp连接,成功——A用netwox工具对B的21号端口(提供ftp服务的端口)发起攻击——C再向B发起ftp连接,无法提供服务

A:攻击机Ubuntu【IP地址:192.168.0.11 MAC地址:00:0c:29:25:94:af】
B:靶机Linux Metasploitable【IP地址:192.168.0.14 MAC地址:00:0c:29:04🆎b9】
C:靶机winXP【IP地址:192.168.0.13 MAC地址:00:0c:29:df:88:53】

攻击前C向B发起ftp连接,成功

A用netwox76号工具对B进行攻击,命令`netwox 76 -i 192.168.0.14 -p 21`
攻击后再发起ftp连接,无法正常访问

2.4 TCP RST攻击

  • 工具:Netwox78号工具进行TCP RST攻击。
  • 步骤:攻击之前C向B发起telnet连接,成功访问——A用netwox工具对B与C建立的TCP连接进行RST攻击——B与C的连接被中断

A:攻击机Ubuntu【IP地址:192.168.0.11 MAC地址:00:0c:29:25:94:af】
B:靶机Linux Metasploitable【IP地址:192.168.0.14 MAC地址:00:0c:29:04🆎b9】
C:靶机winXP【IP地址:192.168.0.13 MAC地址:00:0c:29:df:88:53】

攻击之前C向B发起telnet连接,成功访问

A用netwox工具对B与C建立的TCP连接进行RST攻击,命令`netwox 78 -i 192.168.0.14`即当192.168.0.13(C)再向192.168.0.14(B)发送信息时,攻击机A会假冒B的名义向C发送带有RST标志的分组,从而断开连接
再去C中看其与B的连接,已断开

2.5 DNS劫持攻击

在查阅会话劫持攻击时了解到DNS劫持攻击,感觉很有意思,就尝试了一番。以供参考。

  • 原理:冒充域名服务器,把查询的IP地址设为攻击者的IP地址,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页。DNS劫持其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗。
  • 工具:Ettercap
  • 说明:【攻击机IP:192.168.0.15】 【靶机IP:192.168.0.11】

1)准备工作,在攻击机安装ettercap、apache2
安装ettercap命令为

apt-cache search ettercap
apt-get install -y ettercap-graphical

启动web服务的命令为

/etc/init.d/apache2 start  //启动Apache服务
/etc/init.d/apache2 status  //查看Apache服务状态

2)在攻击机web服务器的根目录下,修改index.php文件(即劫持后假冒服务器向靶机展现的网页)

3)在终端打开Ettercap的DNS文件/etc/ettercap/etter.dns,在其中添加欺骗的A记录和PDR记录

vim /etc/ettercap/etter.dns  //修改etter.dns配置文件

4)在终端输入ettercap -G,进入ettercap的图形化界面
5)【选择网卡】进行网络主机扫描:点击Sniff --> Unified sniffing --> 选择网卡接口ens33

6)【扫描主机】查看扫描到的主机情况:点击Hosts --> Scan for hosts --> Hosts list 选择网关添加到Target1,选择目标IP添加到Target2

7)点击Mitm ---> ARP posioning(ARP定位)---> 勾选Sniff remote connections.(嗅探远程连接)
点击Plugins --> Manage the plugins --> 双击dns spoof
点击Start ---> Start sniffing,开始进行ARP欺骗和DNS劫持

攻击机完成所有工作!此时作为一个毫不知情的靶机,若无其事的访问某域名(前面我们设置的时www.*.com,即长这样的都可以

劫持成功!

2.6 TCP会话劫持攻击

  • 工具:Ettercap,关于工具的安装请参考上一小节DNS劫持部分,在此不赘述。
  • 说明:更换攻击机kali,因为我的Ubuntu没有eth0接口。更换靶机SEED Ubuntu,目的是数据包可视化,实在是懒得给metasploitable搞界面啦!

A:攻击机kali【IP地址:192.168.0.16 MAC地址:00:0c:29:e0:b2:e2】
B:靶机SEED Ubuntu【IP地址:192.168.0.18 MAC地址:00:0c:29:52:93:d4】
C:靶机winXP【IP地址:192.168.0.13 MAC地址:00:0c:29:df:88:53】

1)首先按照上一小节步骤(除了配置部分,仅指软件使用),一直进行到添加主机到target1,target2,然后选择Mitm ---> ARP posioning(ARP定位)---> 勾选Sniff remote connections.(嗅探远程连接)

2)上述过程主要进行的是ARP欺骗,此时在B、C中分别查看缓存列表,对应的MAC地址已经变成攻击机A的地址

3)C向B发起telnet连接,在攻击机A中的工具ettercap可以监听到通信

4)攻击机A使用工具ettercap进行劫持

5)在telnet通信一方B中用wireshark捕获数据包,发现了很多的TCP Retransmission,也就是超时引起的数据重传,即ACK风暴。
图中箭头所指TCP Dup ACK 66#1表示是哪个序号的报文丢失,是第几次丢失。

劫持成功!

3.学习中遇到的问题及解决

  • 问题:进行ARP欺骗时,攻击后没多会儿再用arp -a查看缓存时,又是正确的MAC地址了。

  • 解决:刚开始用的是33号工具,由于发生了上述问题,即ARP表会定时更新。故后来改为80号工具,即不断发送ARP应答包。

  • 问题:进行会话劫持时使用hunt工具完全监听不到连接。

  • 解决:一通搜索之后发现了比netwox还好用的ettercap,于是使用ettercap完成了DNS劫持和TCP会话劫持。虽说不能做一个工具党,但在工具的使用过程中同时对原理也有了更深的理解,not bad。

4.学习感想和体会

  • 学着学着突然很感慨,人们说万事开头难,人们也说行百里者半九十,其实不管走到哪个阶段,都不会太容易吧。
  • 本次实践主要是对攻击原理的理解以及工具的使用,使用工具时要对其命令的参数非常熟悉,也对原理的理解有更深的帮助。
  • 学习攻防方面的知识时,看着人类不断发明不断探索,又不断打破规则重新定义,一山更比一山高的感觉真的奇妙。

参考资料

posted @ 2020-03-28 20:38  poziiey  阅读(505)  评论(0编辑  收藏  举报