20199314 2019-2020-2 《网络攻防实践》第5周作业
20199314 2019-2020-2 《网络攻防实践》第5周作业
问题 | 解答 |
---|---|
这个作业属于哪个课程 | 《网络攻防实践》(https://edu.cnblogs.com/campus/besti/19attackdefense) |
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 |
作业正文 | 如下 |
TCP/IP网络协议攻击
1. 网络安全属性与攻击模式
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶 意的原因而遭到破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。
网络安全属性
-
机密性
是指网络中的信息不被非授权实体获取和使用,通常基于加密算法进行保障。 -
完整性
是指信息未经授权不能进行改变的特性,即信息在存储和传输过程中保持不被修改、不被破坏和丢失的特性。 -
可用性
是指被授权实体访问并按需求使用的特性,即当需要时能够正常地存取和访
问所需的信息与服务。| -
真实性
是指确保通信对方是它所声称的真实实体,而非假冒实体。 -
不可抵赖性
是指在通信中确保任何一方无法抵赖自己曾经做过的操作的安全特性,包括对自己行为的不可抵赖及对行为发生时间的不可抵赖,有时也被称为不可否认性和可审查性(Accountability)。
网络攻击基本模式
-
被动攻击--截获
截获是一种被动攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反,具体攻击技术为嗅探(Sniffing)与监听(Eavesdropping)。 -
主动攻击--中断、篡改与伪造。
中断攻击的目标是致使正常的网络通信和会话无法继续,是对可用性的破坏,具体攻击技术为拒绝服务(DenialofService,DoS)。
伪造则是假冒网络通信方的身份,欺骗通信对方达到恶意目的,是对真实性属性的背离,具体攻击技术为欺骗(Spoofing)。
篡改则是对网络通信过程的信息内容进行修改,使得通信一方或双方接收到篡改后的虚假信息,是对完整性的违背,具体技术为数据包篡改。
2. TCP/IP网络协议栈
TCP/IP网络协议栈在设计时采用了分层模型,分为了网络接口层、互联层、传输层与应用层,每一层负责不同的功能,各自具有相应的网络协议。如下图所示:
- 网络接口层
网络接口层协议最常用的是以太网协议。当网络接口处于混杂模式下时,则可以直接嗅探并截获数据包。
PPP(PointtoPointProtocol)协议,PPP协议为在点对点连接上传输多协议数据包提供了一个标准方法。在以太网上运行PPP来进行用户认证接入的方式称为PPPoE,PPP协议在安全性方面也不提供对其所封装数据完整性和机密性的保障,也存在被喻探与监听的安全隐患。
-
互联层
基础协议是互联网协议IPv4,其他还包括ICMP、ARP、BGP等动态路由协议。
IP协议的首要安全问题在进行分组交换时只根据目的地址进行转发,而不检查源IP地址是否真实有效,即缺乏IP地址的身份认证机制,很容易遭到IP地址欺骗攻击。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证网络通信的顺利进行。但是没有对映射关系的真实性进行任何验证,因此很容易会被欺骗
ICMP协议存在的主要安全缺陷在于攻击者可以利用ICMP重定向报文控制数据包路由路径,从而实施ICMP路由重定向攻击。此外也可能被滥用造成拒绝服务攻击。
动态路由协议,如广泛使用的RIP、OSRF和BGP等,缺乏强有力的身份认证机制,以验证路由更新信息是否来自真正合法的路由器节点。 -
传输层
-
传输层协议主要包括TCP和UDP。TCP协议的三次握手过程存在设计缺陷,攻击者可以进行SYN洪泛攻击,利用少量资源就可以占用服务器端的大量资源。UDP洪泛攻击,通过滥用UDP协议耗尽目标网络带宽,造成拒绝服务。
-
应用层
应用层协议如HTTP、FTP、POP3/SMTP、DNS、SMB等均缺乏安全考虑,并大多采用明文传输,存在被探嗅监听、欺骗与中间人攻击的风险。
3. 网络层协议攻击
3.1 ip源地址欺骗
IP源地址欺骗(IPSpoofing)是指攻击者伪造具有虚假源地址的IP数据包进行发送,
以达到隐藏发送者身份、假冒其他计算机等目的。因为IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。
IP欺骗技术原理
利用IP源地址欺骗可以进行IP假冒攻击。常应用于拒绝服务攻击,隐藏扫描源。
IP欺骗攻击过程如下图:
IP欺骗常用工具:Netwox、wireshark、nmap。
nmap可以使用nmap -sS -p 8080 172.31.4.200 -D172.31.4.180将前者ip伪装后者ip地址。
防范措施
-
使用随机化的初试序列号
-
使用网络层安全传输协议如IPsec
-
避免采用基于IP地址的信任策略
-
在路由器和网关上实施包过滤
3.2 ARP欺骗
ARP欺骗是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
ARP协议的基本功能就是对目标IP地址查询它的MAC地址,以便把数据包发送到目标主机。
ARP请求与应答过程如图:
ARP欺骗攻击技术原理
ARP欺骗攻击的根源在于ARP协议在设计时认为局域网内部的所有用户部是可信的,
是遵循协议设计规范的。
ARP欺骗攻击过程如下图:
ARP欺骗应用场景
-
无线局域网嗅探
-
构造中间人攻击
-
ARP病毒
ARP欺骗工具有DSniff中的Arpspoof、arpison、Ettercap、Netwox工具集等。
ARP欺骗防范措施
- 静态绑定关键主机的IP地址和MAC地址映射关系
- 使用相应的ARP防范工具
- 使用VLAN虚拟子网细分网络拓扑
- 加密传输数据
3.3 ICMP路由重定向攻击
ICMP路由重定向攻击(ICMP Redirect Attack)是指攻击者伪装成路由器发送虚假的 ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假 冒攻击的一种技术。
ICMP报文类型
ICMP报文类型分为两类,差错报告类和控制类。差错报告报文分为3类:目的站不可达、数据报超时、数据报参数错误。控制类报文分为两类:请求/应答类和通知类。
ICMP路由重定向攻击技术步骤如下:
ICMP路由重定向工具:Netwox。
重定向防范措施:
-
根据类型过滤一些ICMP数据包
-
设置防火墙过滤
-
对ICMP重定向报文判断是不是来自本地路由器
4. 传输层协议攻击
4.1 TCP RST 攻击
TCPRST攻击也被称为伪造TCP重置报文攻击(spoofedTCPresetpacket),是指一种
假冒干扰TCP通信连接的技术方法。
4.2 TCP会话劫持攻击
TCP会话劫持(TCPSessionHijacking)则是一项更为复杂的TCP协议攻击技术方法,
其目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,
与另一方进行进一步通信。
TCP会话劫持过程,步骤如下:
TCP会话劫持防范措施
-
禁用主机上的源路由
-
采用静态绑定IP-MAC映射表以及避免ARP欺骗
-引用和过滤ICMP重定向报文
4.3 TCP SYN Flood拒绝服务攻击
拒绝服务攻击(Denial of Service, DoS)是目前比较有效而又非常难防御的一种网络攻击方式,它的目的就是使服务器不能够为正常访问的用户提供服务。
SYN Flood 拒绝服务攻击步骤:
SYN Flood攻击原理
TCP三次握手过程
- 客户端通过传送SYN同步(synchronize)信息到服务器,要求建立连接;
- 服务器响应客户端SYN-ACK,以响应(acknowledge)请求:
- 客户端应答ACK,TCP会话连接随之建立。
在SYNFlood攻击中,不断地向受害主机发送大量的TCPSYN报文,半开连接队列就会很快填满,服务器也就拒绝新的连接,导致该端日无法响应其他机器进行的正常连接请求,最终使受害主机被拒绝服务。
SYN Flood攻击防范措施
-
SYN-Cookie技术
-
防火墙地址状态监控技术
4.4 UDP Flood拒绝服务攻击
由于UDP协议的无状态不可靠的天然特性,UDPFlood拒绝服务攻击的原理非常简单,
即通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
4.5 网络安全协议
5. 实践过程
任务要求: 在网络攻防实验环境(以SEED_VM作为攻击机,Linux Metaspioitable/Windows Metasploitable作为靶机)中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击及TCP会话劫持攻击(bonus)。
实验配置:
攻击机:SEED_VM (IP地址192.168.200.7和MAC地址00:0C:29:4E:90:8C,如图先相互ping一下再执行arp -a 显示本机有过通信的计算机地址)
靶机1:metasploitable-linux (IP地址192.168.200.125和MAC地址00:0C:29:54:43:16,如图)
靶机2:win2k((IP地址192.168.200.124和MAC地址00:0C:29:5C:E8:05,如图))
5.1 ARP欺骗
在攻击机SEED_VM当中执行以下命令sudo netwox 33 -b (靶机1的mac地址) -g (靶机2的ip地址) -h(靶机1的mac地址) -i(靶机1的ip地址),来欺骗靶机1也就是linux,将win2k对应的mac地址改变成SEED VM的mac地址。
sudo netwox 33 -b 00:0C:29:54:43:16 -g 192.168.200.124 -h 00:0C:29:54:43:16 -i 192.168.200.125。
可以看到靶机2的mac地址已经替换成攻击机的地址。
5.2 ICMP重定向攻击
- 首先安装traceroute:sudo apt-get install traceroute
- 在kali使用命令sudo traceroute baidu.com,路由追踪连接百度的中间路由路情况,并打开Wireshark监视网络。
3.默认网关为00:50:56:ec:be:b2
4.apt-get install netwox
netwox 86 -f "host 192.168.200.7" -g 192.168.200.3 -i 192.168.200.1
即嗅探到192.168.200.7(SEED VM)的数据包时,以192.168.200.1的名义发送ICMP重定向报文,使192.168.200.3(Kali)成为其默认路由,然后观察Wireshark数据包的情况。
5.3 SYN Flood攻击
-
用SEED VM向靶机1:metasploitable-linux 发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。
-
步骤1:使用SEEDVM向:metasploitable-linux发起登陆telnet 192.168.200.125,输入用户名密码均为msfadmin。
-
步骤2:在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i 192.168.200.125 -p 23(需要等待一段时间,才能引发拒绝服务),常常会引起虚拟机卡机。
5.4 TCP RST攻击
-
步骤如TCP Flood攻击类似,在kali中输入netwox 78 -i 192.168.200.125,(这次换成78号工具)
, -
继续在SEED VM中telnet登陆192.168.200.125 发现总是拒绝服务。
-
kali虚拟机停止运行终端,可以发现SEED VM又可以远程telnet登陆192.168.200.125。
5.5 TCP会话劫持攻击
方法一:(未成功) 需要结合ARP欺骗攻击进行TCP会话监控。
先监视会话,然后劫持会话。使用软件为hunt。
-
在kali上安装hunt工具 sudo apt-get install hunt
-
windows2k攻击机要开启telnet服务。
-
从SEED登陆到win2k,(账号Administrator,密码mima1234) telnet 192.168.200.4
- hunt具有简单,易用的界面。
以下是各个选项的含义:
l/w/r) list/watch/reset connections
//l(字母l)为查看当前网络上的会话;w为监视当前网络上的某个会话;r为重置当前网络上的某个会话。
a) arp/simple hijack (avoids ack storm if arp used)
//中间人攻击(会话劫持),Hunt先进行ARP欺骗,然后进行会话劫持。使用此方法可以避免出现ACK风暴。
s) simple hijack
//简单的会话劫持,也就是注射式攻击。会出现ACK风暴。
d) daemons rst/arp/sniff/mac
//该选项共实现四个功能,分别为:终止会话,自动发送带RST标志位的TCP包;ARP欺骗后进行数据包转发;不用说了,嗅探功能;在当前网络上收集MAC地址。
方法二(成功): 在kali中打开节点的IP转发功能(kali利用ARP欺骗进行中间人攻击)
kali中打开ettercap -G
“Hosts”菜单中选择“Scan for hosts”扫描局域网内攻击目标,并随后在菜单“Hosts list”中,选择SEED VM 192.168.200.7和WinXPAttacker 192.168.200.4分别为target1和target2
选择菜单“MITM”中的“ARP poisoning”进行ARP欺骗,并选择Sniff remote connections
在SEED VM中执行arp –a命令显示MAC地址缓存,将发现ARP欺骗攻击已成功,其输入如下:
SEED VM 节点telnet到WinXPattack节点telnet 192.168.200.4
在Kali节点上,此时Ettercap(View-Connections)中显示了Ettercap已经获取了telnet的登陆的两个主机的信息(连winxpattack的账户密码都截取了)
还可以注入数据和中断连接的功能
6. 学习中遇到的问题及解决
问题1:telnet登录,winxpattack登陆不上SEED VM。
问题1解决方法: 用SEED VM登陆winxpattack反而可以。
问题2:hunt工具始终无法检测到telnet连接。
问题2解决办法:选用其他工具ettercap进行中间人会话劫持。
7. 实践总结
本章的内容相对比较多,实践起来也不是那么轻松,但是还是得努力去做。大半夜还在弄虚拟机,不过也有收获。