20199116 2019-2020-2 《网络攻防实践》第五周作业
20199116 2019-2020-2 《网络攻防实践》第五周作业
前言
问题 | 解答 |
---|---|
这个作业属于哪个课程 | 《网络攻防实践》 |
这个作业的要求在哪里 | <作业要求> |
我在这个课程的目标是 | 熟练掌握网络攻防知识,学习第五章TCP/IP网络协议攻击 |
这个作业在哪个具体方面帮助我实现目标 | 学习Linux操作命令以及虚拟机的应用;学习网络攻防知识,为以后研究打下基础 |
作业正文 | 如下 |
其他参考文献 | 见正文最后 |
1. 实践内容
1.1 网络协议栈攻击概述
1.1.1 网络安全属性与攻击模式
- 网络安全
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶 意的原因而遭到破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。 - 网络安全属性:机密性、完整性和可用性构成了网络安全的三个基本属性(也被称为安全金三角模型CIA),以及真实性和不时抵赖性两个其他属性。
- 网络攻击基本模式:截获、中断、篡改、伪造,篡改一般结合身份欺骗进行中间人攻击。
1.1.2 TCP/IP网络协议栈安全缺陷与攻击技术
TCP/IP网络协议栈在设计时采用了分层模型,分为:网络接口层、互联网层、传输层与应用层
网络接口层:最常用的是以太网协议。检测数据帧时,当检测到的数据帧目标MAC地址不属于自己时,就直接把它忽略,不发往上层协议,但当网络接口处于混杂模式下时,则可以直接嗅探并截获数据包。常用的网络接口层协议还有PPP协议。
互联层:基础协议是互联网协议IPv4,其他还包括ICMP、ARP 、BGP 等动态路由协议。IP协议的首要安全问题是缺乏IP地址的身份认证机制,很容易遭到IP地址欺骗攻击。ARP协议采用广播问询来确认目标mac地址,但无验证机制。ICMP与BGP缺陷见上图。
传输层:协议主要包括TCP和UDP。TCP建立会话之后的连接过程中,仅仅依靠IP地址、端口和SEQ/ACK号对通信对方进行验证,非常容易遭受伪造和欺骗攻击。
应用层:目前一些流行应用的应用层协议如HTTP、FTP、POP3/SMTP、DNS、SMB等均缺乏安全考虑,并大多采用明文传输,存在被嗅探监听、欺骗与中间人攻击的风险。
1.2 网络层协议攻击
1.2.1 IP源地址欺骗(IPSpoofing)
指攻击者伪造具有虚假地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。
- IP源地址欺骗原理
IP源地址欺骗可实现的根本原因在于:IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。就像邮局只看收信人地址,而验证寄信人地址的真实性。路由器在转发IP数据包时也一样不对源地址进行验证。
用IP源地址欺骗示意图如下:
用IP源地址欺骗进行IP假冒的攻击过程如下:
TCP初始序列号(ISN):是指给目标主机在接受SYN包报文后返回SYN/ACK报文中的SEQ值,
攻击主机在随后伪造ACK报文中,将ACK值正确的设置为目标主机的ISN+1,才能通过目标主机的验证,建立起连接,达到欺骗效果。
1.2.2 ARP欺骗
ARP欺骗是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
- ARP协议工作原理
ARP协议用于将网絡主机的IP地址解析成其MAC地址,然后在局域网内通过MAC地址进行通信。
ARP请求与应答:
IP局域网络中的ARP欺骗过程如下:
arp -s IP地址 MAC地址
,可进行IP地址与MAC地址的静态绑定。
arp -a
查看ARP缓存,即可见网关IP地址所对应的MAC地址。
1.2.3 ICMP路由重定向攻击
ICMP路由重定向攻击(ICMP Redirect Attack)是指攻击者伪装成路由器发送虚假的 ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假 冒攻击的一种技术。
1.3 传输层协议攻击
1.3.1 TCP RST攻击
TCP重置报文就是将直接关闭掉一个TCP会话连接,其设计是为了避免在发生一些特殊情况时,TCP仍然继续传输无效的数据。(reset即RST,绝大部分RST=0;若RST=1,则中断TCP会话)
1.3.2 TCP会话劫持攻击
- TCP会话劫持攻击原理
TCP会话劫持(TCP Session Hijacking)则是一项更为复杂的TCP协议攻击技术方法, 目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份, 与另-方进行进一步通信。
(看见图中的RST,故自己查了查RST攻击)
- RST攻击
若A和服务器B之间建立了TCP连接,此时C(攻击者)伪造了一个TCP包发给B,使B异常的断开了与A之间的TCP连接,就是RST攻击
那么伪造什么样的TCP包可以达成目的呢?我们至顶向下的看。
1)假定C伪装成A发过去的包如果是RST包的话,毫无疑问,B将会丢弃与A的缓冲区上所有数据,强制关掉连接。
2)如果发过去的包是SYN包,那么,B会表示A已经发疯了(与OS的实现有关),正常连接时又来建新连接,B主动向A发个RST包,并在自己这端强制关掉连接。 - TCP会话劫持攻击防范措施
- 这三种措施:禁用主机上的源路由,采用静态绑定IP-MAC映射表以避免ARP欺骗,引用和过滤ICMP重定向报文,可防止攻击者成为通信双方的中间人,从而轻易进行汇报劫持。
- 采用网络层加密机制,即IPsec协议
1.3.3 TCP SYN Flood拒绝服务攻击
拒绝服务攻击(Denial of Service, DoS)是目前比较有效而又非常难防御的一种网络攻击方式,它的目的就是使服务器不能够为正常访问的用户提供服务。所以,DoS对一些紧密依靠互联网开展业务的企业和组织带来了致命的威胁。
正常情况下,客户端与服务器建立TCP连接时,需要进行TCP三次握手过程:
1)客户端通过发送SYN同步信息到服务器,要求建立联系。
2)服务器响应客户端SYN-ACK,以响应请求。
3)客户端应答ACK,TCP会话连接随之建立。
- SYN Flood攻击防范措施
- SYN-Cookies技术
- 防火墙地址状态监控技术
1.3.4 UDP Flood拒绝服务攻击
通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
1.4 TCP/IP M络协议栈攻击防范措施
- 监测、预防与安全加固
- 网络安全协议
- 下一代互联网协议
2.实践
- 题目:在网络攻防实验环境(以SEED_VM作为攻击机,Linux Metaspioitable/Windows Metasploitable作为靶机)中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击及TCP会话劫持攻击(bonus)。
主机/攻击机 | IP地址 | Mac地址 |
---|---|---|
攻击机C | 192.168.200.4 | 00:0c:29:63:1f:68 |
主机A | 192.168.200.125 | 00:0c:29:1d:97:cd |
主机B | 192.168.200.3 | 00:0c:29:4E:15:FF |
注:winxp中,需要执行iconfig /all
才可得到Mac地址。
2.1 ARP缓存欺骗攻击
- 工具:Netwox80号工具,可周期性地发送ARP应答包
- 命令:
arp -a
显示arp高速缓存列表
攻击机C用工具Netwox对B进行ARP欺骗
netwox 80 -e Mac(c) -i IP(A)
netwox 80 -e 00:0c:29:63:1f:68 -i 192.168.200.125
,即周期性地发送ARP应答包告诉ARP请求方B,主机A的MAC地址为00:0c:29:63:1f:68(实际是攻击机A的Mac地址)
在主机B中执行arp -a
查看欺骗成功,因为如图可以看到,IP(A)对应着Mac(攻击机C)。
同样,wireshark抓包也可查看欺骗成功了。
2.2 ICMP重定向攻击
- 工具:Netwox86号工具发送ICMP重定向报文。
首先查看主机B的初始路由表,route print
得到路由地址为:192.168.200.1
攻击机向B发送ICMP重定向报文
netwox 86 -f "host IP(B)" -g IP(C) -i IP(路由)
接着再次查看主机B的路由表,不知道为啥路由地址没发生变化。
后来就换了kali,先在kali上安装了netwwox,apt-get install netwox
kali的IP地址如下:
在kali执行如下命令
后来主机B的路由表进行更新了,攻击成功
kali自带的wireshark,抓包数据如下:
2.3 SYN Flood攻击
- 工具:Netwox76号工具进行SYN Flood攻击。
攻击前,主机B向主机A发送ftp连接,成功
ftp IP(A)
,IP(A):192.168.200.125
攻击机C,攻击主机A的ftp(21号)端口,使其关闭
执行netwox 76 -i IP(A) -21
接着,发现主机B失去了主机A的ftp连接,攻击成功。
2.4 TCP RST攻击
- 工具:Netwox 78号工具进行TCP RST攻击
攻击前,主机B向主机A发送telnet连接,主机B执telnet IP(A)
,访问成功
攻击机C用netwox 78号工具对B与A建立的TCP连接进行RST攻击
执行netwox 78 -i IP(A)
即当主机B再向主机A发送信息时,攻击机C会假冒主机A的名义向主机B发送带有RST标志的分组,从而断开连接。
再去B中看其与A的连接,已断开
攻击成功
2.5 TCP会话劫持攻击
A为kali,B为seed攻击机,C为Linux Metaspioitable靶机
安装hunt,sudo apt-get install hunt
主机Btelnet到主机C上,telnet ip(C)
kali进行hunt攻击
接着输入l,连接失败
实在是百度不到解决办法,故换个方法
在kali中打开节点的IP转发功能:
sudo su
cat /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
kali中,执行命令ettercap -G
打开Ettercap工具,选择“eth0”作为嗅探监听接口
点击右上角的“√”,再点击左上角第三个图标,进入···Host List···
点击左上角第二个按钮,Scan for hosts
扫描局域网内攻击目标
分别添加windowsXP的IP(192.168.200.3)和Metasploitable的IP地址(192.168.200.125)为target1和target2
选择菜单右上角第一个图标MITM menu中的 ARP poisoning 进行ARP欺骗
并选择Sniff remote connections
分别在两靶机中执行arp -a
查看MAC地址缓存,发现ARP欺骗攻击已经成功。
回到kali的Ettercap,选择菜单右上角第三个图标Ettercap Menu菜单栏上选择【View】-【Connections】
在WinXP上执行telnet 192.168.200.125
回到kali可以看到Ettercap已经截获了telnet登录的两个主机的信息(因为telnet登录失败了一次,所以又重新登录了)
双击第二个的会话连接,可进一步显示截获的数据,截获到账号密码
查看kali中wireshark的抓包,发现了很多Tcp Dup ACK XXX#X和Tcp Retransmission,劫持成功!其中TCP Dup ACK XXX#X是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失,TCP Retransmission是超时引发的数据重传。也就是书上说的ACK风暴。
3.学习中遇到的问题及解决
- 问题1:实践3中我用攻击机C攻击了主机A,但没有成功。
- 问题1的解决:把它们设置到同一个网段。
- 问题2:kali安装hunt、netwox时,连不上网,安装失败。
- 问题2的解决:把网络配置换成了桥接模式,安装成功了
- 问题3:icmp路由重定向攻击,主机B的路由表一直都不更新
- 问题3的解决,把攻击机由seedubuntu换成kali,攻击后,在主机B(winxp)进入了浏览器随意网页,然后更新成功了!
4.实践总结
- 本章学习看了很久的理论知
- 需要多多实践
- 还需努力学习