这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 |
我在这个课程的目标是 | 学习并掌握网络攻防知识,能完成相关实践 |
这个作业在哪个具体方面帮助我实现目标 | 了解了TCP/IP网络协议攻击的原理并进行了运用 |
1.知识点梳理与总结
概述
1、网络安全属性:机密性,完整性,可用性、真实性和不可抵赖性。
2、网络攻击基本模式:
- 截获:被动攻击,具体技术包括嗅探和监听。获取网络通信双方的通信信息内容,破坏机密性。
- 中断:主动攻击,具体技术为拒绝服务(DoS)。使正常的网络通信和会话无法进行,破坏可用性。
- 伪造:主动攻击,具体技术为欺骗。假冒网络通信方的身份,欺骗通信对方达到恶意目的,破坏真实性。
- 篡改:主动攻击,具体技术为数据包篡改,结合身份欺骗进行中间人攻击。对网络通信工程的信息内容进行篡改,使得通信一方或双方接收到虚假消息,破坏完整性。
4、原始报文伪造工具:Netwox、Netwag
网络层协议攻击
网络层攻击:IP源地址欺骗、ARP欺骗、ICMP路由重定向攻击
1、IP源地址欺骗:
IP协议不对源地址进行真实性的验证,故攻击机通过伪造具有虚假原地址的IP数据包进行发送,达到隐藏身份、假冒的目的。
过程:
应用场景:
拒绝服务攻击(向目标主机发送大量流量已耗尽网络带宽或计算资源)、网络扫描、攻击基于IP的身份认证机制(较难成功)。
netwox伪造报文:
- 41号工具—构造ICMP的数据包,0x01—ICMP协议,ICMP协议类型0x08—ICMP回送请求
- netwox 41 -j 128 -k 1 -l 192.168.200.2(源IP) -m 192.168.200.3 (目的IP)-o 8
nmap伪造源地址:
- -D后加要伪造的IP
- nmap -sS -p 8080 192.168.200.2 -D 192.168.200.3使用.5的地址扫描
防范措辞:
- 使用随机化初始序列号、使用网络层安全传输协议IPsec、避免采用基于IP地址的信任策略、在路由和网关上实施包过滤。
2、ARP欺骗/ARP下毒:
广播机制、主动ARP应答有效。发送伪造ARP消息,对特定IP所对应MAC地址进行欺骗。
ARP工作原理:
当主机发送数据包时,会检查ARP映射表,若存在映射关系,则直接发送数据包;若没有,则通在本地局域网段发送ARP请求广播包,进行查询。
收到的主机会检查自己的IP与被请求的IP是否相符,相符则发送arp响应包,并更新ARP缓存表。
攻击过程:
应用场景:
构造中间人攻击,进而实施TCP会话劫持;ARP病毒;
netwox伪造报文:
- 33号工具—构造ARP的数据包,80号工具—周期性发送ARP应答包
- netwox 33 -b MAC(A) -g IP(B) -h MAC(A) -i IP(A)
防范措辞:
- 静态绑定关键主机的IP地址与MAC地址的映射表(arp –s ip mac);使用ARP防范工具;使用虚拟子网细分网络拓扑;加密传输
3、ICMP路由重定向攻击:
- 攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击。
- ICMP报文分为两种类型:差错报告类(目的站不可达、数据报超时、数据包参数错误)、控制类(请求/应答类和通知类)。主机只接受之前所使用的路由器发来的重定向,新指定路由必须与主机直接相连。
原理:
利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。
攻击过程:
netwox伪造报文:
- 86号工具
- netwox 86 -f "host 靶机IP" -g 攻击机IP -i 网关IP
防范措辞:
- 根据类型过滤一些ICMP数据包;设置防火墙过滤;对ICMP重定向报文判断是不是来自本地路由器
传输层协议攻击
传输层攻击:TCP RST、TCP会话劫持、SYN Flood和UDP Flood攻击
1、TCP RST攻击/伪造TCP重置报文攻击:
一种假冒干扰TCP通信连接的技术方法。
原理:
TCP协议头有一个reset比特位,该标志位置为1,则接收该数据包的主机将立即断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。
攻击过程:
- 攻击主机C通过嗅探方式监视通信双方A、B之间的TCP连接。
- 获得源、目标IP地址及端口、序列号之后,结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给另一方。
- 在确保端口号一致及序列号落入TCP窗口之内,即可关闭此连接,造成通信双方正常网络通信的中断,达到拒绝服务的效果。
netwox伪造报文:
- 78号工具
- netwox 78 -i 通信一方IP
防范措辞:
- 根据类型过滤一些ICMP数据包;设置防火墙过滤;对ICMP重定向报文判断是不是来自本地路由器
2、TCP会话劫持攻击:
劫持通信双方已建立的TCP会话连接,假冒其中一方(常为客户端)的身份,与另一方进行进一步通信。
攻击过程:
- 受害主机与telnet服务器进行连接,并通过身份认证建立起会话。
- telnet服务器会向受害主机发送响应包,并包含服务器当前序列号(SVR_SEQ),以及期望客户端发送的下一个序列号(SVR_ACK)。
- 攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得受害主机和telnet服务器间的通信内容,然后假冒受害主机的IP地址及身份,向talent服务器发送数据包,声称自己是受害主机。
- 攻击者发送数据包中的序列号(CLT _SEQ)必须满足条件:SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND。
- 受害主机仍会继续维持talent服务器之间的连接会话,但由于与telnet服务器之间的ACK值互相不匹配出现ACK风暴。
防范措辞:
- 禁用主机上的源路由;采用静态绑定IP-MAC映射表以及避免ARP欺骗;引用和过滤ICMP重定向报文;采用IPsec协议;
3、TCP SYN Flood拒绝服务攻击/SYN洪泛攻击:
利用TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
攻击过程:
- 在TCP SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。
- 受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。
- 如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文。受害主机继续发送SYN+ACK包,当半开连接队列填满,服务器也就拒绝新的连接。
netwox伪造报文:
- 76号工具
- netwox 76 -i 靶机IP -p 端口号
防范措辞:
- SYN-Cookie技术(在连接信息未完全到达前不进行资源的分配);防火墙地址状态监控技术(TCP连接状态分为初态、NEW、GOOD、BAD)。
4、UDP Flood拒绝服务攻击:
通过向目标主机和网络发送大量UDP数据包,造成目标主机显著的计算负载提升,或者网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。用于DDoS
防范措施:
- 禁用或过滤监控和响应服务;禁用或过滤其他的UDP服务;在网络的关键位置使用防火墙和代理机制来过滤到一些非预期的网络流量来保护服务。
TCP/IP网络协议栈攻击防范措施
- 1、监测、预防和安全加固
通过向目标主机和网络发送大量UDP数据包,造成目标主机显著的计算负载提升,或者网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。用于DDoS
- 网络接口层:主要的安全威胁是网络嗅探。利用防范网络嗅探的思想,检测监听点,并在网络设计上尽量细分和优化网络结构。对各类网络采用上层的加密通信协议。
- 互联层:采用多种检测和过滤技术进行检测和预防;增强防火墙、路由器和网管设备的安全策略;静态绑定IP-MAC映射表;使用IPsec;
- 传输层:身份认证、访问控制。
- 应用层:采用加密、用户及身份认证、数字签名技术、授权和访问控制技术,如审计、入侵检测等
- 2、网络安全协议:
- 网络接口层: WEP、WPA/WPA2、IEEE8002.11X协议等。
- 网络互联层:IPsec协议簇。IPsec协议包含AH协议和ESP协议, AH协议提供无连接的完整性、数据源认证和抗重放保护服务;ESP提供IP协议的机密性、数据源验证、抗重放以及数据完整性保护服务。
- 传输层: TLS。加密和可靠。TLS记录协议和TLS握手协议。
- 应用层安全协议:使用HTTPS(443)代替HTTP;S/MIME(安全电子邮件协议);SSH代替telnet等。
- 3、应用下一代IPv6协议
2.实践过程
任务:在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
ARP缓存欺骗攻击
主机 | IP | mac |
SEED | 192.168.200.3 | 00:0c:29:5a:21:c9 |
Metasploitable-linux | 192.168.200.6 | 00:0c:29:fa:dd:2a |
kali(攻击机) | 192.168.200.5 | 00:0c:29:8f:c2:ed |
-
用seed 【ping 192.168.200.6】,然后输入【arp -a】查看ARP映射,Metasploitable的IP地址和MAC地址是对应的:(Metasploitable中同理)
-
在kali中使用命令【netwox 80 -e 00:0c:29:8f:c2:ed -i 192.168.200.6】使seed收到IP(Metasploitable)/MAC(kali)的映射。
80是指netwox的80号工具,第一个为攻击机Kali放入MAC地址,第二个为MetaSploitable的IP地址,执行后就在局域网内广播这条命令。 (这里指令没有输出结果,刚开始还一直以为出错了)
-
同理对MetaSploitable进行欺骗【netwox 80 -e 00:0c:29:8f:c2:ed -i 192.168.200.3】
-在seedh和MetaSploitable中再次使用【arp -a】查看ARP映射,欺骗成功:
ICMP重定向攻击
-
使用上述seed和kali完成
-
在seed上打开Wireshark查看数据流量,在终端【ping baidu.com】,可以看到seed桥接之后直接访问外网
-
在Kali上执行命令【netwox 86 -f "host 192.168.200.3" -g 192.168.200.5 -i 192.168.200.1】,打开wireshark捕包,即以192.168.200.1的名义发送ICMP重定向报文,使192.168.200.5(Kali)成为其默认路由。
SYN Flood攻击
-
选择利用seed向MetaSploitable发起telnet服务访问,用Kali攻击机攻击MetaSploitable的telnet服务端口,并用Wireshark查看。
-
用seed向MetaSploitable发起登陆【telnet 192.168.200.6】,输入MetaSploitable登陆的用户名密码
。 -
在Kali上利用netwox的76号工具对靶机的23号端口(telnet)进行SYN Flood攻击【netwox 76 -i 192.168.200.6 -p 23】。
-
在kali中用Wireshark捕包,可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求。同时seed上进行访问也发现无法访问了。(电脑实在是卡到不行,截个图要卡死)
TCP RST攻击
-
发现以用kali电脑就考到不行,上面一个实验让电脑成功卡死,强制结束进程,最后发现kali被我搞坏了,最后重装了,哎
-
选择利用kali向winxp发起ftp服务访问,用Kali攻击机攻击MetaSploitable的telnet服务端口,并用Wireshark查看。
-
在Kali上利用netwox的78号工具对靶机进行TCP RST攻击【netwox 78 -i 192.168.200.6 】。
-
在kali中用Wireshark捕包,可以看到攻击机向靶机发送了RST包。(这里抓包试了好几次,总是抓不到,过程也没什么问题,最后抓到了不过不是大量的包??)
TCP会话劫持攻击
这是一个坎坷的实验,尝试了大半天,用了好几个虚拟机,进行到telnet或ftp连接时始终连不上,最后在耐心用完的时候可以了!!
具体尝试留在问题里说明,下面是正常的实验过程:
-
依旧选用kali,seed,MetaSploitable完成。
-
利用kali对seed和MetaSploitable进行ARP欺骗,但参照上面的过程始终是ARP缓存表修改成功,但telnet始终连不上,尝试ping也是不行,最终使用了33号工具成功!参考https://blog.csdn.net/The__Apollo/article/details/63686740
-
在seed上利用【telnet 192.168.3.21】登陆MetaSploitable,同时在kali上用Wireshark进行捕包
-
在Kali上打开Wireshark设置过滤条件telnet,找到最后一个数据包,打开TransmissionControl Protocol 查看:源端口、目的端口、Next Seq Num和ACK值。
-
伪造下一个包,把Next Seq Num作为下一个包的ACK,把ACK作为下一个包的Seq。在kali中使用netwox工具伪造seed给MetaSploitable发一个tcp包。发送成功后,原来的seed就会失去连接,同时MetaSploitable会把Kali当作访问者,从而实现会话劫持。
netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.3 --ip4-dst 192.168.200.6 --tcp-src 41632 --tcp-dst 23 --tcp-seqnum 151 --tcp-acknum 1325 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "6c"
40是netwox的40号工具;ip4-src后输入seed地址;ip4-dst后输入MetaSploitable地址;tcp-src表示源端口号(最后一个包的目的端口);tcp-dst表示目的端口号(最后一个包的源端口);tcp-seqnum和tcp-acknum输入在前面说明的值;tcp-data是你要发的数据的16进制值,6c是l的16进制。
3、学习中遇到的问题及解决
1、netwox初次使用command not found
- 没有安装当然不能用了!apt-get install netwox
2、后面三个实验电脑实在过于卡顿,kali罢工
- 重新安装了kali。感觉每次用到kali就很卡,虚拟机是在娇气的很。
3、tcp会话劫持中ARP欺骗,ARP缓存表修改成功,但telnet始终连不上,尝试ping也是不行。
- 开始欺骗完没有尝试ping以下,以为telnet服务没开,但打开后依旧不行。最后ping完发现是ARP欺骗的问题,并不是telnet服务的问题。
- 最终使用了33号工具成功!参考https://blog.csdn.net/The__Apollo/article/details/63686740
4、学习感悟
这次实践真的很不顺利,主要是一开始攻击电脑就卡成蜗牛,然后开始等待再等待,有点害怕万一抽到验收我会不会当场卡死T^T
这周的实践操作上不算难,不过对于各种攻击的原理感觉看书的时候懂了,不看书可能又忘了。不过通过实践还是记忆加深了一些。本次实践,运用了netwox工具进行了ARP欺骗攻击、ICMP路由重定向攻击、SYN Flood攻击、TCP RST 攻击、TCP会话劫持。实践中还是要在多一些耐心,但是电脑卡起来真的是着急也没有。
参考文献
TCP会话劫持原理和利用
netwox入门教程
ARP缓存欺骗攻击
WinXP打开Telnet服务的方法