作业说明
这个作业属于哪个课程 :课程链接
这个作业的要求在哪里 :作业要求链接
我在这个课程的目标是 :学习网络攻防相关技术并进行实践
这个作业在哪个具体方面帮助我实现目标:学习TCP/IP网络协议攻击
作业正文
1.实践内容+知识点总结
TCP/IP网络协议栈攻击概述
- 网络安全属性:机密性、完整性、可用性、真实性、不可抵赖性。
- 网络攻击基本模式:截获、中断、篡改、伪造。
- 截获:被动攻击模式,目的是获取通信双方的通信信息内容,是对机密性的违反。具体攻击技术有:嗅探、监听;
- 中断:主动攻击模式,目标是致使正常的网络通信和会话无法继续,是对可用性的破坏。具体攻击技术:拒绝服务;
- 篡改:主动攻击模式,对网络通信过程的信息内容进行修改,通信一方或双方接受到篡改后的虚假消息,对完整性的违背。具体技术:数据包篡改;
- 伪造:主动攻击模式,假冒网络通信方的身份,欺骗通信对方达到恶意目的,是对真实性属性的背离。具体攻击技术是:欺骗。
- 中间人攻击:巧妙的高级攻击方式。
- 网络协议栈的安全缺陷和攻击技术
- 欺骗技术:需要攻击者伪装出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。
- 原始套接字:绕过TCP/IP协议栈的报文封装处理和验证,构造出任意的数据报文。需要特权用户权限。
网络层协议攻击
-
IP源地址欺骗
- 定义:指攻击者伪造具有虚假源地址的IP数据包进行发送,达到隐藏发哦碾骨者身份、假冒其他计算机等目的。
- 原理:IP协议在设计的时候只使用数据包的目的地址进行路由转发,而不对源地址进行真实性的验证。
- 主要应用于攻击者不需要响应包或者存在某种技术可以猜测响应包的场景中,如拒绝服务攻击等。
- 工具:Nextwox中的41号工具是构造ICMP的数据包
netwox 41 -j 128 -k 1 -l 伪造的IP地址 -m 目标IP地址 -o 8
-
ARP欺骗
- 定义:只攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
- 原理:局域网的网络流通是根据MAC地址进行传输。ARP协议在进行IP地址到MAC地址映射查询的时候存在安全缺陷,ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。
- 应用:在交换式网络中可以利用ARP欺骗技术进行局域网中的嗅探,进一步的协议分析窃取敏感信息;可构造中间人攻击,从而实施TCP会话劫持的攻击方法;目前也被恶意代码所普遍使用,被称为ARP病毒。
- 工具:Nextwox中的33号工具可以构造任意的以太网ARP数据报,80号工具可以周期性地发送ARP应答报。
-
ICMP路由重定向攻击
- 定义:指攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。一般会和IP源地址欺骗技术结合实施。
- 原理:利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向信息,自己伪装成路由器,使目标机器的数据报发送至攻击机从而加强监听。
传输层协议攻击
-
TCP RST 攻击
- 定义:又称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。
- 原理:TCP重置报文会直接关闭一个TCP会话连接,恶意攻击者滥用TCP重置报文,对正常的网络通信造成严重的威胁。
- 应用:除了在恶意攻击中使用外,有些网络入侵检测和防御系统也使用了该项技术手段来阻断攻击连接。
-
TCP 会话劫持攻击
- 定义:劫持通信双方已经建立的TCP会话连接,假冒其中一方(通常是客户端)的身份与另一方进行进一步通信。
- 原理:一些网络服务在建立TCP会话之后进行应用层的身份认证,客户端在通过身份验证之后就可以通过TCP会话连接对服务端进行控制或获取资源,期间不需要再次进行身份验证。这为攻击者提供了一种绕过应用层身份认证的技术途径。
- 应用:目前比较普遍的是结合ARP欺骗来进行TCP会话劫持
-
TCP SYN Flood 拒绝服务攻击
- 定义:是目前比较有效而又非常难防御的一种网络攻击方式,目的是使服务器不能够为正常访问的用户提供服务。
- 原理:利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
-
UDP Flood 拒绝服务攻击
- 原理:通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算机负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
TCP/IP网络协议栈攻击防范措施
- 监测、预防与安全加固;
- 网络安全协议;
- 下一代互联网协议。
2.实践过程
题目
在网络攻防实验环境(以 SEED_VM 作为攻击机,Linux Metasploitable/Windows Metasploitable 作为靶机)中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击以及TCP会话劫持攻击(bonus)。
ARP缓存欺骗攻击
- 欺骗过程:A、B为被欺骗主机,C为中间攻击者,三者的IP地址和MAC地址如下表所示:
实验环境 | IP地址 | MAC地址 |
---|---|---|
靶机A:WinXP | 192.168.200.2 | 00:0c:29:d0:d7:98 |
靶机B:Linux Metasploitable | 192.168.200.125 | 00:0c:29:2b:80:87 |
攻击机C:SEED_VM | 192.168.200.6 | 00:0c:29:cb:e2:20 |
-
攻击过程:C分别向A、B发送伪造的请求数据包进行欺骗,使得A、B的ARP缓存表中的映射关系分别是IP(B)/MAC(C),IP(A)/MAC(C)。
-
工具:Nextwox中的33号工具可以构造任意的以太网ARP数据报。
-
在攻击机当中执行以下命令
sudo netwox 33 -b (A的mac地址) -g (B的ip地址) -h (A的mac地址) -i(A的ip地址)
-
说明:
-b
显示网络协议下相关的模块;-g
显示与客户端相关的模块;-h
显示与服务器相关的模块;-i
显示与检测主机连通性相关的模块; -
也就是:
sudo netwox 33 -b 00:0c:29:d0:d7:98 -g 192.168.200.125 -h 00:0c:29:d0:d7:98 -i 192.168.200.2
-
下图显示了使用Netwox工具进行ARP欺骗的攻击过程:
-
箭头所指的关键语句使得目标主机A保存了IP(B)/MAC(C)这样的映射关系从而达到了欺骗目的。
-
也可以在主机A中使用
arp -a
查看arp高速缓存列表,看是否欺骗成功
-
同理可对B进行欺骗:
- 由于上面攻击机使用SEED_VM,打开wireshark总是抓不到攻击包,现在把攻击机换成kali再试一下:
实验环境 | IP地址 | MAC地址 |
---|---|---|
靶机A:WinXP | 192.168.200.2 | 00:0c:29:d0:d7:98 |
靶机B:Linux Metasploitable | 192.168.200.125 | 00:0c:29:2b:80:87 |
攻击机C:kali | 192.168.200.3 | 00:0c:29:cd:09:f8 |
- 看了解建国同学的博客,发现之前自己使用的Nextwox中的33号工具是一次执行,arp高速缓存列表很容易恢复成欺骗之前的样子(真的是我还没来得及抓包就发现已经变回去了),而80号工具可以周期性地发送ARP应答报,于是现在使用80号工具进行攻击。
- 在Kali上执行指令
netwox 80 -e 00:0c:29:cd:09:f8 -i 192.168.3.2
,即周期性地发送ARP应答包告诉ARP请求方(B)192.168.3.2(A)的MAC地址为00:0c:29:cd:09:f8
(攻击机C) - 可以看出A与B之间的通信在C主机上已经捕获,由此可知已成功实现了ARP欺骗
ICMP重定向攻击
实验环境 | IP地址 |
---|---|
靶机:WinXP | 192.168.200.2 |
攻击机:kali | 192.168.200.3 |
网关 | 192.168.200.1 |
- 攻击机利用Netwox的第86号工具,执行攻击命令
netwox 86 -f "host 192.168.200.2" -g 192.168.200.3 -i 192.168.200.1
,-f
代表靶机地址,-g
代表靶机的下一跳地址,-i
代表伪造的身份。 - 意思以路由192.168.200.1的名义向数据包的源地址192.168.200.2发送一个ICMP重定向报文,使其使用192.168.200.6为默认的路由。
- 在靶机访问任意网页的之后,对比实施ICMP重定向攻击前后的受害主机路由表,可见多出了路由为攻击机IP,如下图所示:
SYN Flood攻击
主机 | IP地址 |
---|---|
靶机A:WinXP | 192.168.200.2 |
靶机B:Linux Metasploitable | 192.168.200.125 |
攻击机C:kali | 192.168.200.3 |
-
在攻击之前,先将主机A向主机B登录
telnet 192.168.200.125
-
在攻击机kali上使用Netwok中的76号工具,对靶机的23号端口进行SYN Flood攻击
netwox 76 -i 192.168.200.125 -p 23
-
打开Wireshark查看,可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求
-
再次查看刚刚的登录页面,发现已失去和主机的联系。
TCP RST攻击
主机 | IP地址 |
---|---|
靶机A:WinXP | 192.168.200.2 |
靶机B:Linux Metasploitable | 192.168.200.125 |
攻击机C:kali | 192.168.200.3 |
- 在攻击之前,先将主机A向主机B登录
telnet 192.168.200.125
- 在攻击机kali上使用Netwox的78号工具“Reset every TCP packet”来实现TCP RST攻击
netwox 78 -i 192.168.200.125
- 再次查看刚刚的登录页面,发现A、B通信已经断开。
- 打开攻击机中的Wireshark查看抓包情况,可以看到第217号数据B向A发送了RST:
TCP会话劫持攻击
主机 | IP地址 | MAC地址 |
---|---|---|
靶机A:WinXP | 192.168.200.2 | 00:0c:29:d0:d7:98 |
靶机B:Linux Metasploitable | 192.168.200.125 | 00:0c:29:2b:80:87 |
攻击机C:kali | 192.168.200.3 | 00:0c:29:cd:09:f8 |
- 结合ARP欺骗来进行TCP会话劫持攻击。这里使用ettercap——是执行ARP欺骗嗅探的工具,通常用它来施行中间人攻击。
- 在kali中打开节点的IP转发功能:
cat /proc/sys/net/ipv4/ip_forward(如果结果是0继续输入下一个命令)
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward(此时输出的结果应该是1就算是打开成功了)
- kali中打开Ettercap工具,执行命令
ettercap -G
,选择“eth0”作为嗅探监听接口
Hosts
菜单中选择Scan for hosts
扫描局域网内攻击目标,并随后在菜单Hosts list
中,选择
192.168.200.2
和192.168.200.125
分别为target1和target2,如下图所示:
- 选择菜单
MITM
中的ARP poisoning
进行ARP欺骗,并选择Sniff remote connections
,要记住是选中第一项,第二项是单项ARP毒缓存 用于靶机会失败报警,单向欺骗网关。
- 再次确保已开启端口转发,有时会自己关上,不知道为什么:
echo '1' > /proc/sys/net/ipv4/ip_forward
- 分别在主机A和B中执行
arp -a
查看MAC地址缓存,发现ARP欺骗攻击已经成功。
- 在主机A-WinXP上执行
telnet 192.168.200.125
,在kali中的Ettercap菜单栏上选择View-Connections,可以看到Ettercap已经截获了telnet登录的两个主机的信息:
- 双击第二个会话连接,可进一步显示截获的数据,可以看到靶机B——Linux Metasploitable的账户密码都被截取了,而且执行的操作也一清二楚:
- kali中通过wireshark对上述过程的抓包如下,发现了很多
Tcp Dup ACK XXX#X
和Tcp Retransmission
,劫持成功!其中TCP Dup ACK XXX#X
是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失,TCP Retransmission
是超时引发的数据重传。也就是书上说的ACK风暴。
3.学习中遇到的问题及解决
-
问题1:在进行ARP攻击时,使用Netwox工具进行了ARP欺骗的攻击过程之后,在被欺骗主机A中使用命令
arp -a
查看arp高速缓存列表时候发现并没有欺骗成功。 -
问题1解决方案:原来主机A中并没有主机B的缓存,ping主机B之后ARP缓存表有所更新,之后再使用Netwox工具进行一次欺骗,就可以看到欺骗后的arp高速缓存列表了。
-
问题2:额。。在我准备关机的时候发现了winxp中忽然上不了网了,但是本地连接却显示的是已连接上,而且命令行模式中输入ipconfig后回车,是可以自动获得IP地址的。。。。
-
问题2解决方案:百度了一下说原因可能是 MAC 地址已被占用,只有修改 MAC 地址,才能联通网络。但是我修改 MAC 地址之后还是上图这样,重启之后还是不行。。。。最后我把所有的虚拟机都关机包括密网网关,然后重新开机居然好了,差点以为要又要全部重新配置一遍了。人生真的是大起大落。。
4.实践总结
本次课程学习了TCP/IP网络协议栈攻击,并对几种协议攻击进行了实际操作,学习到了netwox网络攻击软件一些基本使用。实践内容让我感到非常神奇,仅仅需要几行命令就可以进行各种攻击,虽然过程还是有些坎坷,但是学习到了很多知识。