Fork me on GitHub

20199104 2019-2020-2 《网络攻防实践》第5周作业

20199104 2019-2020-2 《网络攻防实践》第5周作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553
我在这个课程的目标是 学习并了解网络攻防的相关知识,期末有个好成绩
这个作业在哪个具体方面帮助我实现目标 了解学习对TCP/IP的攻击方法
作业正文 见下

实践内容

TCP/IP网络协议栈攻击概述

网络协议攻击及其基本概念

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

  • 网络攻击基本模式:截获、中断、篡改和伪造。截获是一种被动的攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反,具体为嗅探和监听。中断、篡改和伪造是主动攻击,中断攻击是使目标的正常网络通信和回话无法继续,是对可用性的破坏。伪造则是假冒网络通信方的身份,欺骗通信对方达到恶意目的,破坏真实性。篡改则是对网络通信过程的内容进行修改,破坏完整性。

TCP/IP网络协议栈安全缺陷与攻击技术

  • 网络接口层:以太网协议,当网络接口处于混杂模式可以直接嗅探并截获数据包,同时缺乏对MAC地址源的身份验证机制,实现MAC地址欺骗。

  • 互联层:基础协议是ipv4。IP协议只根据目的地址进行转发,不检查源IP地址是否真实有效,即缺乏IP地址身份认证机制,容易遭到IP地址欺骗。同时还包括源路由滥用(绕开网络安全防护措施)、IP分片攻击(拒绝服务和躲避检测)、PING OF DEATH攻击、ARP欺骗、ICMP重定向、拒绝服务攻击等。

  • 传输层:TCP建立会话之后的连接过程中,非常容易遭受伪造和欺骗攻击,攻击者可以进行TCP RST攻击直接中断会话过程。同时TCP的三次握手过程存在设计缺陷,攻击者可以进行SYN泛洪攻击。

  • 应用层:一些流行的应用层协议HTTP、FTP、POP3/SMTP、 DNS等均缺乏安全设计,多采用明文传输,存在被监听,欺骗,中间人攻击的风险。

上述协议栈攻击技术中,最为重要或者流行的就是欺骗技术了,欺骗技术即攻击者伪造出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。Netwox是一个开源工具包,可以创建任意的TCP/UDP/IP数据报文,支持命令行方式构造及发送伪造包,可以通过脚本编程实现自动化处理。

网络层协议攻击及防范措施

IP源地址欺骗攻击

IP源地址欺骗攻击是指攻击者会修改IP协议包头,使其包含一个不同的虚假IP地址,达到欺骗目标和隐藏发送源的目的。

  • 攻击步骤:

    1. 首先对受信任主机进行拒绝服务攻击,使其丧失工作能力。

    2. 对目标主机的TCP初始序列号(ISN)进行取样和猜测,为之后返回的SYN/ACK报文的时候将ACK设置为ISN+1做准备。

    3. 伪造源地址为受信任的主机IP的SYN数据包,发送给主机。

    4. 等待目标主机将SYN/ACK包发给已经瘫痪的受信任的主机。

    5. 伪装成被信任主机发送ACK包,设置发送数据包的ACK值为预测目标主机ISN+1。

    6. 建立连接,假冒被信任主机与主机进行通信。

  • 应用场景:拒绝服务攻击、网络扫描、对抗身份认证机制

  • 防范措施:

    1. 使用随机化的初试序列号,降低源地址欺骗风险。

    2. 使用网络层安全传输协议,对传输的数据包进行加密。

    3. 避免采用基于IP地址的信任策略,使用身份认证机制。

    4. 在路由器和网关上实施包过滤。

ARP欺骗攻击

  • 定义:指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗。

  • 原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,但是局域网内可以存在二五仔。ARP协议在进行IP地址到MAC地址映射查询时存在安全缺陷,因为没有进行真实性验证的技术流程与方法,另一方面ARP缓存机制会将主动的ARP应答视作有效信息进行接受,这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。

  • 攻击步骤:(A 、B通信,C是攻击者)

    1. 源节点A发送数据包给目的节点B时,会通过ARP协议在局域网段广播ARP请求包,询问节点B的IP地址所映射的MAC地址。

    2. 攻击节点C说IP目标IP地址所映射的MAC地址是他自己,并不断地向源节点发送ARP响应包。

    3. 由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存,导致A的IP-MAC映射表保存了错误的值,变成IP(B)与MAC(C)。

    4. 当源节点A要再次发送数据包到节点B时,直接将数据包发送到C对应的MAC地址,即攻击节点C,这样C就通过欺骗假冒了目的节点B。

    5. 同理C对B冒充A。

  • 应用场景:作为中间人嗅探信息,进行病毒传播和恶意代码等。

  • 防范措施:

    1. 静态绑定关键主机的IP地址和MAC地址映射关系
    2. 使用相应的ARP防范工具
    3. 使用虚拟子网细分网络拓扑
    4. 加密传输

ICMP路由重定向攻击

  • 定义:攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。

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

  • 攻击步骤:

    1. 攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。

    2. 被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新的路由器。

    3. 攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。

    4. 在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。

  • 防范措施:

    1. 根据类型过滤一些ICMP数据包

    2. 设置防火墙过滤

    3. 对ICMP重定向报文判断是不是来自本地路由器

传输层协议攻击及防范措施

TCP RST攻击

  • 原理:TCP RST攻击也被称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。TCP协议头有一个reset,该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。

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

TCP会话劫持攻击

  • 原理:TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。在建立TCP会话之后再进行劫持,可以避免身份验证。

  • 攻击步骤:

    1. victim主机与telnet服务器进行连接,并通过身份认证建立起会话。

    2. telnet服务器将会向victim发送响应包,并包含服务器当前序列号(SVR_SEQ)以及期望客户端发送的下一个序列号(SVR_ACK)。

    3. 攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得victim和telnet服务器间的通信内容,然后假冒victim的IP地址及身份,向talent服务器发送数据包,声称自己是victim。攻击者发送数据包中的序列号必须满足条件:SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND。

    4. victim仍然会继续持续talent服务器之间的连接会话,攻击机仿冒服务器向靶机发送RST包,避免靶机对通信的干扰。。

  • 防范措施:

    1. 禁用主机上的源路由

    2. 采用静态绑定IP-MAC映射表以及避免ARP欺骗

    3.引用和过滤ICMP重定向报文

TCP SYN Flood拒绝服务攻击

  • 原理:基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。

  • 攻击步骤:

    1. 攻击主机向服务器发送 SYN信息,请求建立连接。

    2. 服务器响应SYN/ACK包,并等待源端返回ACK包。

    3. 如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文,受害主机继续发送SYN/ACK包,当半开连接报文填满,服务器也就拒绝新的连接,使端口无法响应正常请求。

  • 防范措施:

    1. SYN-Cookie措施(建立链接才分配资源)

    2. 防火墙地址状态监控技术

UDP Flood拒绝服务攻击

  • 原理:通过向目标主机和网络发送大量UDP数据包,造成目标主机显著的计算负载提升,或者通过网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。

  • 防范措施:

    1. 禁用或过滤监控和响应服务

    2. 禁用或过滤其他UDP服务

  1. 在网络关键位置使用防火墙和代理机制来过滤掉一些非预期的网络流量

TCP/IP网络协议栈攻击防范措施

  • 监测、预防与安全加固:在网络设计上尽量细分和优化网络结构,尽量消除数据广播的情况,并对关键路径上的网关、路由器等设备进行严格的安全防护,以减少网络嗅探的危害影响。此外,对于无线网络而言,应增强链路层加密的强度,同时对各类网络采用上层的加密通信协议,使得通信即使遭受嗅探也不会破坏数据的机密性属性要求。对关键服务器使用静态绑定IP-MAC映射表、使用IPsec协议加密通信等预防机制,可以有效地增强网络对欺骗攻击的抵御能力。在传输层,可以实现基于面向连接和无连接服务的加密传输和安全控制机制,包括身份认证,访问控制等。应用层可以采用加密、用户级身份认证、数字签名技术、授权和访问控制技术,以及主机安全技术,如审计、入侵检测等。

  • 改进网络安全协议:网络接口层(802.1X)、网络互联层(IPsec)、传输层(TLS)、应用层(HTTPS)的安全协议。

  • 下一代互联网协议:IPV6

实践过程

ARP缓存欺骗攻击

原IP地址与MAC地址

主机 IP地址 MAC地址
KALI攻击机 192.168.200.2 00:0c:29:24:f5:77
LINUX靶机 192.168.200.125 00:0c:29:22:81:fd
seedUbuntu靶机 192.168.200.5 00:0c:29:34:54:dd

在Kali上执行指令netwox 80 -e 00:0c:29:24:f5:77 -i 192.168.200.125。80是指netwox的80号工具,00:0c:29:24:f5:77为攻击机Kali的MAC地址,192.168.200.125为LINUX靶机的IP地址。参考http://c.biancheng.net/view/6396.html,可以看出已经成功改动。

使用wireshark抓包验证

ICMP重定向攻击

将SEED Ubuntu改为桥接模式
linux查看路由表:在命令行下输入:route -n,再按回车。

在Kali主机上执行命令netwox 86 -f "host 192.168.43.19" -g 192.168.43.72 -i 192.168.43.3即嗅探到192.168.43.19(SEED Ubuntu)的数据包时,以192.168.43.3的名义发送ICMP重定向报文,使192.168.43.72(Kali)成为其默认路由,然后观察Wireshark数据包的情况。

观察wireshark的数据包和ping的过程,我们发现其访问百度的数据包已经被重定向到192.168.43.3

但是我遇到一个问题,就是route -n没有更新,但是ping www.baidu.com可以看出更新,我也不知道为什么

之后在启龙大佬的帮助下,进行了改进。对XP进行攻击,成功攻击。原因出在网关不是任意设置,应该设置为NET下的网关。echo 1 > /proc/sys/net/ipv4/ip_forward开启攻击机的路由转发功能。

netwox 86 -f "host 192.168.200.3" -g 192.168.200.2 -i 192.168.200.1即嗅探到192.168.200.3(xp)的数据包时,以192.168.200.1的名义发送ICMP重定向报文,使192.168.200.2(Kali)成为其默认路由。


SYN Flood攻击

这里选择利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。输入telnet 192.168.200.4(靶机MetaSploitabled的ip)输入账号密码 msfadmin/msfadmin

在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i 192.168.200.4 -p 23

在上面这个页面会卡很久,但是多等一下还是能登录上,可能是我的kali性能不高,之后我调低了靶机的配置,成功的攻击。遇到一个奇怪的地方是靶机MetaSploitable有时候IP自己会变化,我重启一次之后又变回设定的样子。

TCP RST攻击

这里选择利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,并用Wireshark查看。输入telnet 192.168.200.4(靶机MetaSploitabled的ip)输入账号密码 msfadmin/msfadmin

在Kali上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i 192.168.200.4



TCP会话劫持攻击

  1. 首先我们将SEED Ubuntu利用telnet 192.168.200.4登陆MetaSploitable,并在kali上使用wireshark进行抓包。

  2. 接下来我们输入命令ls可以看到命令可以正常执行,在Kali的Wireshark中输入过滤条件tcp.port == 23,会发现有ls的数据包,之后拉到最后,看到源端口、目的端口、Next Seq Num和ACK值。

  1. 我们要伪造发下一个包,所以把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息之后,攻击机使用netwox工具伪造SEED Ubuntu给MetaSploitable发一个tcp包。发送成功后,原来的SEED Ubuntu就会失去连接,同时MetaSploitable会把Kali当作访问者 ,如此实现了会话劫持。使用指令netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.5 --ip4-dst 192.168.200.4 --tcp-src 52372 --tcp-dst 23 --tcp-seqnum 3966614761 --tcp-acknum 2783565091 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data "6c"tcp-src表示原端口号,tcp-seqnum输入sequence number(raw)和tcp-acknum输入Acknowledgement number(raw),tcp-data是你要发的数据的16进制值,我输入的6C代表字母字母 l 。

参考博客https://www.cnblogs.com/dggsec/p/10136818.html
下载https://github.com/revanth5/shijackk
之后参考博客给出的工具,输入./shijack-lnx eth0 192.168.200.5 52376 192.168.200.4 23可以看到较好的效果。Kali和MetaSploitable之间是正常通信的,而且出现了ACK风暴。

学习中遇到的问题及解决

  • 问题1:LINUX靶机 MetaSploitable的IP变化

  • 问题1解决方案:重启之后有时候会自己变化,但是不影响实验

  • 问题2:ICMP重定向攻击时,使用rount -n不显示变化,当时wireshark抓包可以看出变化

  • 问题2解决方案:在winxp下做,且使用NET模式,最后网关不是任意输入,是输入设定好的网关

实践总结

这次作业太多了,具体的细节地方有些都先没看

参考资料

posted @ 2020-03-30 16:31  20199104许星霖  阅读(325)  评论(0编辑  收藏  举报