20199122 2019-2020-2 《网络攻防实践》第五周作业
20199122 2019-2020-2 《网络攻防实践》第五周作业
1.实践内容
1.1 TCP/IP 网络协议栈攻击
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。
- 网络安全属性:机密性、完整性、可用性、真实性、不可抵赖性
- 网络攻击基本模式
攻击模式 | 含义 | 攻击技术 |
---|---|---|
截获 | 被动攻击,获取通信信息 | 嗅探、监听 |
中断 | 主动攻击,使正常的网络通信和会话无法继续 | 拒绝服务 |
篡改 | 主动攻击,假冒通信方身份,欺骗通信对方达到恶意目的 | 欺骗 |
伪造 | 主动攻击,对网络通信过程的信息内容进行修改 | 中间人攻击 |
- TCP/IP网络协议栈采用分层模式,分了网络接口层、互联层、传输层和应用层。
- 原始报文伪造工具:Netwox
1.2 网络层协议攻击
-
IP源地址欺骗:攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。
- 原理:IP协议设计时只验证数据包中的目标地址,不验证源地址的真实性
- 攻击过程如下:
-
应用场景:拒绝服务攻击;网络扫描时隐藏真实的扫描源地址
-
工具:netwox的第41号工具构造ICMP数据包;用nmap扫描器中的-D后接伪造的地址,如
nmap -sS -p 8080 172.31.4.200 -D 172.31.4.180
,使用源地址为172.31.4.180查看172.31.4.200上的8080端口是否开放。 -
防范措施:使用随机化的初始序列;使用网络层安全协议如IPsec;避免采用基于IP地址的信任策略;局域网关上启动过滤机制
-
ARP欺骗:攻击者在有线以太网或无线网络上发送伪造ARP信息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
- ARP协议基本功能:对目标IP地址查询MAC地址,在局域网内通过MAC地址进行通信,过程如下图:
-
ARP欺骗攻击根源:ARP协议设计时认为局域网内部所有用户是可信的。
-
安全缺陷:采用广播请求包方式在局域网段中询问映射关系;ARP缓存机制。
-
攻击过程:
- 源节点A发送数据包给目标节点B,广播ARP请求B的MAC地址
- B应答,发送MAC(B),攻击者C不断发送MAC(C),覆盖掉了ARP缓存中的IP与MAC对应关系
- C就可以冒充B与A通信
-
工具:Netwox的33号工具可以构造任意的以太网ARP数据报,80号工具可以周期性地发送ARP应答报。
-
防范措施:静态绑定关键主机的IP地址与MAC地址映射关系;使用ARP防范工具
-
ICMP路由重定向攻击:攻击者伪造路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径。
-
IP协议提供一种无连接,尽力而为的服务,缺少差错控制和查询机制,于是设计了ICMP协议。ICMP报文类型:差错报告类和控制类。
-
ICMP路由重定向主要用于应对网络故障时的数据包处置。
-
攻击步骤:
- 冒充路由发送ICMP重定向报文给被攻击节点
- 被攻击节点接受后,选择攻击节点作为新路由器(网关)
- 攻击节点开启路由转发,充当中间人,对通信进行嗅探
-
工具:Netwox的86号工具,可以进行ICMP重定向攻击,
netwox 86 -f "host 172.31.4.200" -g 172.31.4.210 -i 172.31.4.1
,即嗅探到数据包的源或目的IP地址172.31.4.200时,就以172.31.4.1的名义向数据包的源地址发送一个ICMP重定向报文,使之使用172.31.4.210为默认路由。 -
防范措施:设置防火墙过滤
-
1.3 传输层协议攻击
-
TCP RST攻击:又称伪造TCP重置报文攻击,是一种假冒干扰TCP通信连接的技术方法。TCP重置报文的设计是为了避免在发生一些特殊情况时TCP仍继续传输无效数据。
-
netwox的78号工具实现TCP RST攻击
-
TCP会话劫持攻击:劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份与另一方进行通信。
-
目前普遍是结合ARP欺骗进行TCP会话劫持攻击,过程如下:
- victim主机与telnet服务器建立会话连接
- telnet服务器向victim发送响应包
- 攻击者使用ARP欺骗实施中间人攻击,嗅探到通信内容,假冒victim的IP地址及身份,向telnet服务器发送数据包,宣称自己是victim
- 攻击者发送RST重置掉victim和服务器的会话连接,防止ACK风暴使得TCP会话劫持攻击被网络管理人员发现。
- 防范措施:禁用主机上的源路由;采用静态绑定IP-MAC映射表以避免ARP欺骗;引用和过滤ICMP重定向报文
-
TCP SYN Flood拒绝服务攻击:又称SYN洪泛攻击,利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能为正常用户提供服务。
- netwox里的76号工具输入目标地址,即可进行TCP SYN Flood攻击
- 防范措施:SYN-Cookie技术;防火墙地址状态监控技术
-
UDP Flood拒绝服务攻击:通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升或者目标网络的网络拥塞,造成拒绝服务攻击。一般会用于分布式拒绝服务攻击,UDP Flood通常会结合IP源地址欺骗技术。
2.实践过程
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
IP地址 | MAC地址 | ||
---|---|---|---|
SEED_VM | 攻击机C | 192.168.200.4 | 00:0c:29:08:86:26 |
Linux Metasploitable | 靶机A | 192.168.200.5 | 00:0c:29:06:fe:02 |
Windows XP | 靶机B | 192.168.200.2 | 00:0c:29:9E:95:0E |
-
ARP欺骗攻击
- 攻击机C利用netwox分别对A和B进行ARP欺骗, 使A,B中的ARP缓存表中的映射关系分别是IP(B)/MAC(C), IP(A)/MAC(C). 对A进行欺骗, 在局域网广播B的IP地址对应的MAC地址,这是攻击机的MAC地址:
netwox 80 -e 00:0c:29:08:86:26 -i 192.168.200.2
, 同样地对B进行欺骗:netwox 80 -e 00:0c:29:08:86:26 -i 192.168.200.5
- 用
arp -a
查看arp缓存表,下图分别是A和B的ARP缓存表
- 攻击机C利用netwox分别对A和B进行ARP欺骗, 使A,B中的ARP缓存表中的映射关系分别是IP(B)/MAC(C), IP(A)/MAC(C). 对A进行欺骗, 在局域网广播B的IP地址对应的MAC地址,这是攻击机的MAC地址:
- 当用B pingA时,可以在C上的wireshark上捕捉到数据信息
- 用B ftp 192.168.200.5 即A的ip地址,也可以看到B向A发送的信息
-
ICMP重定向攻击
这里在测试时出现了windowsxp系统无法上网,我将三台机子都改成了桥接模式.然后IP地址变了.
IP地址 MAC地址 SEED_VM 攻击机C 192.168.1.106 00:0c:29:08:86:26 Linux Metasploitable 靶机A 192.168.1.125 00:0c:29:06:fe:02 Windows XP 靶机B 192.168.1.105 00:0c:29:9E:95:0E -
用ipconfig /all查看B的默认网关, 以便攻击时使B信任
-
在攻击机C上执行
netwox 86 -f "host 192.168.1.105" -g 192.168.1.106 -i 192.168.1.1
, 当嗅探到192.168.1.105
(B)的数据包,就以192.168.1.1
的名义向B发送ICMP重定向报文, 使192.168.1.106
(C)的IP地址成为B的路由 -
用
route print
查看路由,可以看到攻击成功
-
-
SYN Flood攻击
- 靶机B向靶机A发起ftp服务
- C用netwox76号工具对A进行攻击,命令
netwox 76 -i 192.168.1.125 -p 21
-
B用ftp再次访问A,连接失败
-
用wireshark可以查看许多未知ip向A发送SYN包
-
TCP RST攻击
-
靶机B向靶机A发起telnet服务
-
C用netwox78号工具对A进行攻击,命令
netwox 78 -i 192.168.1.125
-
B用telnet访问A的界面显示连接失败
-
用wireshark可以查看攻击机以B的名义向A发送RST
-
-
TCP会话劫持攻击
- 先回顾一下三次握手
- 靶机B telnet靶机A ,攻击机C打开wireshark,然后再windowsxp系统靶机B上输入
ls
,在wireshark上查看数据
-
用telnet过滤,查看最后一个包的源端口,目的端口,next seq和ack信息
-
伪造发下一个包,将next seq作为下一个包的ack,用ack作为下一个包的seq。
-
攻击机C使用 netwox 工具伪造B给 A发一个 tcp 包
netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-tt1 64 --ip4-protocol 6 --ip4-src 192.168.1.105 --ip4-dst 192.168.1.125 --tcp-src 1195 --tcp-dst 23 --tcp-seqnum 1119125010 --tcp-acknum 3259117351 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data ``"6869"
40是netwox的40号工具,在
ip4-src
后输入B的地址,在ip4-dst
后输入靶机A的地址,tcp-src
输入源端口地址,tcp-seqnum
和tcp-acknum
输入伪造的值,tcp-data
是要发的数据的16进制值,这里的是hi的16进制。
- 观察wireshark存在TCP Dup, TCP Dup ACK7#1表示是哪个序号的报文丢失,是第几次丢失,而且可以看到攻击机以靶机B的名义向A发送的数据“hi”
3.学习中遇到的问题及解决
- 问题1:我查询ip的时候,ip查不到了,在前天还可以查到,昨天我电脑中了个流氓安装软件的病毒,然后我用了一下杀毒软件,然后今天桥接模式查不到ip地址了
- 问题1解决方案:感谢这位网友分析的如何解决:UP BROADCAST MULTICAST 问题,我一一检查了一下,发现是虚拟机的网络设置里无桥接网络,可能是杀毒软件时关掉了。
- 问题2:ping不通linux的靶机
- 问题2解决方案:因为我把网络模式改成了桥接模式,之前自己设置的ip地址没有改,将ip地址设成与物理机在同一段就可以了
4.实践总结
1.看理论的时候是一知半解,果然做实验就可以加深对概念的理解
2.发现推出ftp服务是用bye,退出telnet是ctrl+]
,再按quit
3.感谢同学的帮助