arp安全
以太网帧的type =0806 表示arp
arp攻击:hack伪造arp应答包给target(当target使用arp广播寻找目的mac时,回答mac=hack)
IP报文格式
20字节头部+最多40字节选项,IP数据报最长65535字节
MTU 1500字节,帧头6+6+2=14字节
常用ip头内容:
前4位,协议(ipv4 ipv6),然后是4位的头部长度,单位是4字节
标识字段用来唯一表示一个IP数据报,IP分片,根据标识和偏移重组,偏移量fragment offset的单位是8字节
checksum只校验头部
TTL,最大生存时间,即IP数据报被丢弃前,最多能经过几个节点,每过一节点,TTL减1,减到0时丢弃
DoS攻击
构造两个分片,第一个分片的偏移为0;第二个分片的偏移是64800。为了重组,目标主机会分配64k的缓存,可通过不断发包消耗目标内存。
tear drop攻击
利用系统处理IP分片重叠的漏洞
前提:当产生IP分片重叠时,系统采取这种策略——由第一分片覆盖重叠区域,并将第二分片的剩余部分重组到第一分片后。
先计算到底重叠长度,len=pre->end - p->offset;//pre代表前分片,p代表后分片
然后将指向第二个分片的指针朝后移动这个长度,p->offset += len;
接下来需要将第二个分片的剩余内容拷贝一下,以形成完整的数据报文。
首先需要计算第二个分片还剩余多少字节。unsigned short fp->len = p->end - p->offset;
接下来就可以从ptr开始,拷贝fp->len字节的内容,就完成了处理。
对于正常的重叠
对于不正常的重叠,fp->len 会产生溢出,len变成一个很大的数(2^16 + 负数),拷贝后,很容易把内存中系统内核部分覆盖,导致崩溃。
微小碎片攻击
包过滤防火墙,通过过滤SYN包,防止外部链接。假设防火墙filter的规则是:如果IP数据报的第一分片含有SYN,则拒绝这一分片,放行其他分片。
IP数据报最小分片长度为68字节,利用i选项字段填满ip头=60字节,,则第一分片数据部分可以只有8字节
第一分片只包含tcp头的前8字节,而syn被放在了第二分片,从而避开了filter。此时第二分片的offset为1。
如何防御:
如果第二分片offset ==1 且是tcp协议,则丢弃第二分片
IP欺骗,留后门
- 假设hack要攻击某主机x,x有一个terminal与某sever建立了连接。 假设tcp的seq是有规律的。
- hack 向server发syn洪泛,保证server在收到syn+ack后,不会发送RST
- hack 伪造ip(与server不同)向x-terminal发包,寻找seq的规律
- 冒充server_ip,根据seq规律,与x-terminal件里tcp连接
- 发包命令x-t将外界设置为信任,echo ++ > ./rhost
参考:
https://zhuanlan.zhihu.com/p/58610182
《TCP/IP详解》