1.实践内容
这章主要是介绍TCP/IP协议栈的相关内容
1.1 TCP/IP网络协议栈攻击概述
1.1.1网络安全属性与攻击模式
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。
网络安全属性:1. 可用性 2. 机密性 3. 完整性 4. 可靠性 5. 不可抵赖性
网络攻击模式:
1. 截获:获取双方的通讯信息,违反机密性。
2.中断:使通话无法继续,违反可用性.
3.篡改:修改内容,违反完整性。
4.伪造:假冒身份,违反真实性。
5.中间人攻击:假设AB进行通话,C对两人的通话进行拦截,,并对A声称自己是B,对B声称自己是A。
1.1.2 TCP/IP网络协议栈安全缺陷与攻击技术
1.2 网络层协议攻击
1.2.1 IP源地址欺骗
IP源地址欺骗(IP Spoofing):攻击者伪造具有虚假源地址的IP数据包进行发送以达到隐藏发送者身份、假冒其他计算机的目的。
IP欺骗的防范,一方面需要目标设备采取更强有力的认证措施,不仅仅根据源IP就信任来访者,更多的需要强口令等认证手段;另一方面采用健壮的交互协议以提高伪装源IP的门槛。有些高层协议拥有独特的防御方法,比如TCP(传输控制协议)通过回复序列号来保证数据包来自于已建立的连接。由于攻击者通常收不到回复信息,因此无从得知序列号。不过有些老机器和旧系统的TCP序列号可以被探得。
1.2.2 ARP欺骗
ARP欺骗(ARP Spoofing):是指攻击者在有线以太网或无线网络上发送伪造ARP信息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
ARP协议基本功能:对目标IP地址查询它的MAC地址,以便把数据包发送到目标主机
防范措施:静态绑定关键主机的IP地址与MAC地址映射关系;使用相应的ARP防范工具;使用VLAN虚拟子网细分网络拓扑并加密传输数据以降低ARP欺骗攻击的危害后果等
1.2.3 ICMP路由重定向攻击
ICMP路由重定向攻击(ICMP Redirect Attack)是指攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术
ICMP重定向攻击技术:利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己则可以伪装成为路由器,使目标机器的数据报发送至攻击机从而加强监听
1.3 传输层协议攻击
1.3.1 TCP RST攻击
TCP RST攻击:也被称为伪造TCP重置报文攻击(Spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法
TCP重置报文将直接关闭掉一个TCP会话连接
1.3.2 TCP会话劫持攻击
TCP会话劫持(TCP Session Hijacking)目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信
TCP会话劫持攻击技术过程如下图:
1.3.3 TCP SYN Flood拒绝服务攻击
拒绝服务攻击(Denial of Service,DoS)目的是使服务器不能够为正常访问的用户提供服务
TCP SYN Flood:又称为SYN洪泛攻击,它利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务
2.实践过程
任务:在网络攻防实践环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.ARP缓存欺骗攻击
这里选用Kali为攻击机,Linux-MetaSploitable和SEED-Ubuntu为靶机,联网后记录三台机器的IP和MAC地址
主机 | IP地址 | MAC地址 |
---|---|---|
Kali-linux | 192.168.200.2 | 00:0c:29:4e:38:8f |
Linux-MetaSploitable | 192.168.200.125 | 00:0c:29:9f:00:36 |
SEED-Ubuntu | 192.168.200.4 | 00:0c:29:51:e5:a0 |
(1)用SEED-Ubuntu来ping
Linux-MetaSploitable可得到arp缓存表,通过arp -a
来查看缓存表
可看到第二行得到了MetaSploitable的MAC地址。
(2)首先在kali上安装netwox工具,指令为sudo apt-get install netwox
在Kali上执行指令netwox 80 -e 00:0c:29:4e:38:8f -i 192.168.200.125
其中80指netwox的80号工具,MAC地址是kali的,ip是meta的。
执行后就在局域网内广播这条命令。
伪装成功,实验完成
2.ICMP重定向攻击
此实验中主要修改SEED Ubuntu的路由表,在SEED Ubuntu上访问www.baidu.com,然后打开wireshark来查看流量
然后在kali上执行netwox 86 -f "host 192.168.200.4" -g 192.168.200.3 -i 192.168.200.2
目的是为了让kali嗅探到SEED的数据包192.168.200.4
时,以192.168.200.2
的名义发送ICMP重定向报文,使
Kali192.168.200.2
成为其默认路由,然后观察wireshark的数据包的变换。
由下图可看出SEED访问baidu.com的数据包已经被重新定向到192.168.200.3
3.SYN Flood攻击
这里用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,用kali攻击靶机的telnet服务端口
使用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,然后输入账号密码,可正常登录。
然后在kali上通过指令76 -i 192.168.200.125 -p 23
可对靶机的23号端口进行攻击,
随后再次尝试使用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,发现不可访问,说明攻击成功
4.TCP RST攻击
这里同样先利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问
然后回到kali通过指令netwox 78 -i 192.168.200.125
,发现SEED上的连接已经被关闭
.TCP会话劫持
(1)这里同样先利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问
(2)然后在kali上打开wireshark,设置过滤条件tcp.port == 23
,然后在seed上输入ls
,回到kali的wireshark查看,会有l
和 s
的数据包。
(3)然后打开最后一个包,观察源端口,目的端口,NEXT Seq NMU和ACK的值
(4)通过指令
netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.4 --ip4-dst 192.168.200.125 --tcp-src 34192 --tcp-dst 23 --tcp-seqnum 13 --tcp-acknum 97 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
伪造包
然后可以在wireshark里观察到发送的值hello
3.学习中遇到的问题及解决
通过参考解建国同学的博客以及陈昱帆同学给我一些教程,本次实验过程基本顺利
4.实践总结
参考资料
- netwox入门教程》
- 解建国同学博客
- TCP劫持