目录
Dos攻击
Dos(Denial of service)即拒绝服务。Dos攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地将攻击对象资源耗尽。
目的:让计算机或网络无法提供正常的服务或者资源访问,使目标系统停止甚至崩溃。
TCP三次握手
seq:序列号 ack:确认序列号
第一次握手:建立连接时,客户端发送SYN包(SYN=a)到服务器,并进入SYN_SENT状态,等待服务器确认。
第二次握手:服务器收到SYN包,确认客户端的SYN(ACK=a+1),同时自己发送一个SYN包(SYN=b)即SYN+ACK包,进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=b+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
接下来客户端和服务端开始传送数据。
如若发生意外(连接中)
半连接:收到SYN包还未收到ACK包的连接--->半连接,即尚未完成三次握手的TCP连接.
半连接队列:该队列为每个客户端的SYN包(SYN=a)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,等待客户的确认包。当收到确认包后会删除条目,服务器进入ESTABLISHED状态。
SYN_ACK重传次数:服务器发送完SYN-ACK包后 ,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。
半连接存活时间(Timeout时间/SYN_RECV存活时间):指半连接队列的条目存活的最长时间,即服务器从收到SYN包到确认这个包无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。
SYN_RECV:一个请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
攻击手段
1.SYN flood
简单来将只完成TCP握手前两个步骤,请求方由于采用源地址欺骗手段使得服务方接收不到ACK回应,于是服务方一直处于等待接收请求方ACK消息状态。对于某台服务器而言只有有限的内存缓冲区用于创建连接,这些虚假信息很快阻塞TCP队列,系统资源急剧减少,可用带宽迅速缩小。服务器将无法向用户提供正常合法服务。
攻击主机A(伪装地址为A')-----大量的SYN包----->被攻击主机
A'<-------------------------------------SYN/ACK包-------被攻击主机
由于A'地址不可达,被攻击主机等待SYN包超时。攻击主机通过发大量SYN包填满未连接队列,导致正常SYN包被拒绝服务。
2.Land(LandAttack)攻击
与SYN flood类似,不过攻击包中原地址和目标地址都是攻击对象的IP.------->被攻击的机器死循环最终资源耗而死机。
3.HTTP洪水攻击
使用代理服务器向受害服务器发送大量貌似合法的请求(通常GET)。借代理机制广泛使用免费代理服务器(支持匿名)发动DDOS攻击。
4.ACK flood