我们发现,当我们进行DDOS的时候,由于各种原因使你对目标主机造不成威胁,更有甚者的是,目标机器没有任何反应,而你自己却死掉了。这个问题一直困扰着我相当长一段时间,最近与WinEggDrop谈到此事的时候得到了一些答案:
第一、也就是大家最常说的,自己的机器系统资源严重不足,机器死掉了,这是非常有可能的,当我们进行ddos之前,先用 taskmgr.exe 命令查看cpu使用情况,我们会发现cpu使用率一般在1%-5%左右,如果你的机器不是做为WEB服务器的话。而你进行ddos的时候再去查看,cpu使用率会突然上升到 95%-100% ,这时如果你的机器承受不住的话,首先死掉的当然是你。
第二、这个问题一直没有找到答案,但确实是存在的,由于各种原因及你的机器配置问题,你的机器本身发不出假IP源地址的数据封包,所以你发出的真实IP源地址数据封包达到目标主机的时候,你就造成不了什么威胁了,相反的如果目标机器管理员把你的数据包认做是攻击行为的时候,你就把自己置于危险的境地了。
第三、目下最流行的攻击手法是 SYN Flood ,这种攻击手段由于不是以耗费尽目标系统资源和带宽为目地,所以并不需要太多肉鸡即可以达到攻击的目地,几台足矣!SYN Flood 原理在此不想细说了,这种攻击主要是针对 TCP/IP 第三次握手。
当我们用SYN Flood进行攻击前,使用 Sniffer 之类的软件对我们所发的数据封包进行检测,查到源地址是我们所造的假IP,但这时并不表示你已经可以进行攻击了,因为有时你会奇怪的发现,当你的数据封包到达目标主机时,你的源地址竟莫名其妙的变成了你的真实IP地址,其实这时候就是你的ISP在做怪了。
近年来,由于DDOS的猖獗,以及攻击手法的简单化,使大多数不需要懂许多计算机原理的人就可以做到攻击,只要会有鼠标的人就会攻击,这种现象确实很可笑,亦复可忧,所以ISP及硬件生产厂商均有不同的对策来抑制这种情况,由于我们都没有进入过电信机房里去研究哪些设备,所以并不了解他们的动作情况,但我们可以肯定的说原因就出在那里。
当你的ISP注册了某段IP,比如说是 1.1.1.1―1.1.1.255,这时你的一切网络行为就都在他的掌握之下,并受到其监测了,如果这时你发送假IP源地址数据封包,ISP会做出三种反映:
一是不予理睬,允许你通过,这种情况是最理想的了。
二是过滤掉你的数据包,不允许你发送出去,这就是为什么目标主机没有反映的原因了。
三就是把你的假IP源地址转换成你的真实源IP地址发出去,这时你就与目标主机不断的SYN----SYN+ACK----SYN+ACK,如果你的机器性能及带宽均不如目标主机的话,你就会很快的死掉。其实这也不完全是你的机器性能问题,因为你的机器需要不断的制造数据封包,所以首先你的机器就已经承受了很大的压力,如果再被目标主机被动攻击的话,你的情况就会很不乐观,更糟糕的是,由于你是从目标主机上死掉的,这时你的终端连接会被你的肉机记录下来以等待你下次连接,如果有心人追查下去的话,你就暴露了。
要解决这个问题的方法就是你先拥有两台机器,从你的攻击主机向你的目标机器发送SYN,当然了,你只能做很少量的攻击,不要把目标主机搞死掉。然后到目标主机上使用 netstat -an|find "port" 来查看SYN连接情况,如果成功的话,会发现有许多 SYN LISTENING 连接,并且都是你制造的假IP地址。
当你通过上面几项检测成功,证明你的机器可以发送假IP的址的时候,你就拥有了一台DDOS主机了,如果你这台机器的性能可以达到每秒制造10万个假IP数据封包并不费力的发送出去的话?我想你就对网络造成威胁了,但这种情况却又是可遇而不可求。
为什么把防御写在最后呢,首先因为想法还很不成熟,不敢摆在前面献丑,另外想到总是先存在攻击才会产生防御,所以就这样了。
1、当你只有一个IP的情况:
在局域网内部:多台服务器使用同一IP,当有SYN请求时候,多台服务器进行竞争,谁竞争到了谁就连接,这样的话,一旦正在工作的服务器出了问题,就会自动有其他的服务器替换。
2、拥有多个IP的情况:
广域网里服务器A和服务器B上同时运行一个线程,假设A现在提供服务,那么该线程在运行时就不断告诉B“我还活着”这类的消息,一旦该线程无法发送此类消息了,B就会认为A已经死掉了,就会自动切换过去,取代A。
3、使用网关,路由表,一旦出现了问题,进行自动切换。
4、具体情况需要在算法中实现,欢迎有志之士研究。