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.实践总结

  • 本章学习看了很久的理论知
  • 需要多多实践
  • 还需努力学习

参考文献

posted on 2020-03-31 16:17  20199116xjq  阅读(413)  评论(0编辑  收藏  举报