<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>叶子's blog - DDOS攻击/Ddos</title><link>http://yezishell.cn/</link><description>叶子的博客|关注网络安全！关注网络技术！关注SEO优化！ - </description><generator>RainbowSoft Studio Z-Blog 1.8 Walle Build 100427</generator><language>zh-CN</language><copyright>CopyRight 2009 叶子's blog　  鲁ICP备09016725号　　</copyright><pubDate>Thu, 09 Sep 2010 12:59:15 +0800</pubDate><item><title>发现最新式的DDOS攻击方式</title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/228/</link><pubDate>Sat, 29 Aug 2009 13:59:48 +0800</pubDate><guid>http://yezishell.cn/ddos/228/</guid><description><![CDATA[<p>在TCP三次握手后插入伪造的TCP包</p><p>用 Socket的API Connect完成TCP建立连接的三次握手，同时子进程抓包，抓完三次握手的包后，插入第四个包即可，从对端返回的第五个包来看插入成功了，但因为插入了一个TCP包，之后的连接将发生混乱。可以将插入的那个包Data设置为HTTP Request，向WEB服务器提交请求。又如果目标系统的TCP序列号是可预计算的，那么是否可以做带伪源地址的Blind TCP three-time handshakes和插入，值得试验！<br /><br />作者所做的实验其实什么也说明不了，只是验证了一下TCP协议序号和检验和计算函数而已。<br />我想作者八成是受了CC攻击原理的启发，想不通过代理的方式以达到CC攻击效果。但在序号预测这个步骤上，说实话没有可行性。正常TCP协议采用的同步序号是随机值，在43亿的可选空间中，以百兆带宽的速度进行预测也将是杯水车薪。但是&hellip;&hellip;<br />为了防御ddos，不少厂商的安全设备中都实现了无状态的syn cookie算法，这种算法在大量syn冲击下利用cookie序号在ack包回传的方式判断连接请求的合法性。所以他们的TCP协议握手部分不是一个健康的实现，本思路经修改后用于攻击此类设备将会取得不错的效果。下面简单介绍攻击者如何以64字节ACK包换取服务器1518大数据包重传，如果源IP伪造成功，攻击者从理论上将获得20余倍的带宽放大攻击效果 。如果有两个目标网站，本方法将一箭双雕。<br />攻击原理：利用TCP协议收到ACK后的快速重传机制<br /><br />序号乱刀之一：攻击正常TCP/IP协议栈示意图<br />当我们获得http response回应后，立即回复一个ack数据包，此ack数据包的seq值是http response数据包中的ack seq值，而ack seq值为http response数据包的seq序号值。这样当server收到此ack数据包后，会认为是自己刚才发送的http response包在网络中已丢失，会利用快速重传机制加以重传。如果我们拼命发送大量的ack包，则服务器就会不断进行重传。Ack数据包的大小只需 64字节，但http response通常都在512字节左右，最长可达1518字节。<br />因为正常tcp协议序号的不可预测性，所以我们在这次攻击中暴露了自己的真实IP。<br /><br /><br /><img style="zoom: 60%" alt="ddos" width="800" height="525" onload="javascript:contentimage(this);" onmousewheel="return cgimg(this);" src="http://www.176ku.com/wenzhai/UploadFiles_7336/200908/20090828203701154.jpg" /><br /><br />序号乱刀之二：攻击采用静态syn cookie的ddos设备防护下的服务器<br />所谓静态syn cookie就是以客户端请求之syn包为参数计算回复syn ack中的seq值，并在ack包回传时判断连接合法性的方法，这种方法被ddos厂商大量采用，并且获得数量可观的国家发明专利，呵呵&hellip;.。你经常会听到ddos厂商的人说他们的设备比防火墙&ldquo;牛&rdquo;多了，可轻松达到百兆线速syn防御，但百兆防火墙30M攻击流量就可以干掉，说这种话的ddos厂商，我可以打赌他们的设备80%采用了这种syn cookie算法。<br />Syn cookie算法的好处是只在synflood攻击时消耗CPU资源，这对于X86下强悍的通用CPU来说，正适用。<br />读者可能会感到很奇怪，为什么如此成熟的技术防火墙不采用，而让ddos厂商成天挤对？这有如下几个方面的原因：<br />1: 防火墙也用syn cookie进行synflood防御的，但大多不是静态syn cookie，而是严格记录连接状态采用动态syn cookie，所以当syn flood攻击时不光消耗CPU，还要消耗大量内存。这也就是我本文开头提及的本方法可以攻击大部分ddos厂商和小部分防火墙厂商的原因。<br />2:syn cookie/syn proxy是bsd系统内核源码的一部分，在Linux最新版的2.6内核中syn proxy还没有被包含。所以ddos设备也大多由bsd系统组成。当然bsd是开源的，移植也不是什么大问题喽。<br />3:防火墙大多以Linux下的开源软件netfilter 为基础，但netfilter中hash算法和连接表设计不是很优秀，防火墙转发性能的瓶颈就在于此，如果再加入syn proxy表项，会进一步降低对数据包的处理能力或加大连接表体积。高端防火墙大都支持数百万的连接数，这百万的表项就够防火墙喝一壶的了，再加一个 syn proxy表项，性能还不得掉的稀里哗拉的？<br />4:防火墙很重要的一个网络功能就是DNAT，在没有DNAT操作前，防火墙不知道这些 syn包的最终目的地是自身还是DMZ区的服务器，所以syn包必须DNAT后才知道是否要进行syn cookie保护。但这时就已经进入到netfilter处理框架了，性能当然就跟不上了。你见过几个ddos设备支持NAT的？如果支持了，他的性能也会下降不少。如果防火墙工作在桥模式下，不经过netfilter处理框架，防火墙就可以摇身一变成为性能卓越的抗ddos设备了，吗功能都没有，当然一身轻松了。呵呵&hellip;但您买的是防火墙，会这么大材小用吗？<br />言归正传，采用静态syn cookie的ddos设备，我们只需要重放一个ack包就可以达到与服务器的三次握手效果，因此可以做到源IP地址伪装。（这个伪装的源IP地址是你以前用过的，并且与ddos设备通讯过，并保存下来的，现在将它重放而己。如果你看不懂我在说什么，参照我写的《对国内ddos厂商技术点评》一文，抓包分析一下就知道了）。第二步就是发送一个正常的http request请求，随后就是大量的虚假ack请求重传。<br />天知道，谁在用我们伪装的源IP地址，做为一个连带的牺牲品。<br />你可能会认为受害服务器B会回复rst包给受害服务器A。这是有可能，但如果服务器B前面加装了一个&ldquo;状态检测&rdquo;防火墙，就会直接丢弃这个反射的http response数据包。<br /><br /><img style="zoom: 60%" alt="ddos" width="800" height="539" onload="javascript:contentimage(this);" onmousewheel="return cgimg(this);" src="http://www.176ku.com/wenzhai/UploadFiles_7336/200908/20090828203702341.jpg" /><br /><br />本思路有价值的地方：<br />1. 利用一条合法连接，对服务器进行下行带宽攻击，现在的&ldquo;状态检测&rdquo;设备不一定可以发现<br />2. 目标服务器应用层程序感知不到这种攻击，可以逃避基于应用层流量统计的防御方式，因为重传是TCP协议特性，TCP协议自动完成。重传的数据包，对应用层来说是透明的。<br />3. 现在只是一种思路，不局限于TCP协议。UDP加入重传机制后，也可以保证通讯可靠性。并且这是私人或公司独立开发的协议，漏洞会比TCP协议更大。<br />4. drdos的带宽放大效果也只不过是6倍而己，并且消耗的是上行带宽。<br />5. 真正的威胁不在现在，而是在对&ldquo;长肥管道&rdquo;的攻击效果。对方下行带宽越宽，攻击效果越明显。TCP会禁用分片，所以重传数据包大小依靠你与服务器之间最小的那个设备的MTU值，所以你见到的TCP协议的IP首部中的长度字段不会超时1518。但在&ldquo;长肥管道&rdquo;中，IP首部的长度字段会达到65535的极大值，对这些数据包的重传攻击，会达到令人吃惊的1:1024的放大效果。<br />1M对1G <br />1G对1T<br />明白？就是因为这点，我才会提供本思路，否则1:25的消耗也是蛮力。<br />攻击完善的TCP协议其实是很困难的：<br />1.具体可以参见RFC2581中关于Fast Retransmit/Fast Recovery的说明部分。<br />2.你的ack包构造不好，服务器协议栈还是会利用超时重传，而不是快速重传</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/228/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=228</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=228&amp;key=7a11bb5c</trackback:ping></item><item><title>CC DDOS攻击器的思路及防范</title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/70/</link><pubDate>Mon, 15 Jun 2009 11:21:45 +0800</pubDate><guid>http://yezishell.cn/ddos/70/</guid><description><![CDATA[<p>前置知识：ASP基本阅读能力</p><p>蝴蝶：前段时间上海一家游戏娱乐公司的网站遭到了基于页面请求的DDOS分布式拒绝服务攻击，网站陷入完全瘫痪状态，并被黑客的匿名信勒索，金额高达10万元，而在勒索过程中，这群黑客还表示会对腾讯QQ等网站下手，随后QQ&ldquo;服务器维护&rdquo;几天。12月5号的时候，全球BitTorrent服务器也受到了很强烈的DDOS攻击，一度陷入瘫痪。而DDOS攻击中最流行的也是威力最大的就是基于页面的DDOS以及将这个攻击理论发挥得淋漓尽致的攻击工具CC，本文特邀CC作者和我们共同了解CC的相关攻击原理和防范方法，希望能让更多的朋友了解这样的攻击方式并能防范它。</p><p><br />我写CC的思路及防范方法</p><p>文/ kiki</p><p>&nbsp;&nbsp;&nbsp; 很多朋友都知道木桶理论，一桶水的最大容量不是由它最高的地方决定的，而是由它最低的地方决定，服务器也是一样，服务器的安全性也是由它最脆弱的地方决定的，最脆弱的地方有多危险服务器就有多危险。DDOS也是一样，只要你的服务器存在一个很耗资源的地方，限制又不够，就马上成为别人DDOS的对象。比如SYN-FLOOD，它就是利用服务器的半连接状态比完全连接状态更耗资源，而SYN发动方只需要不停的发包，根本不需要多少资源。</p><p>&nbsp;&nbsp;&nbsp; 一个好的DDOS攻击必须是通过自己极少资源的消耗带来对方较大的资源消耗，否则比如ICMP-FLOOD和UDP-FLOOD都必须和别人一样大的带宽，对方服务器消耗多少资源自己也得赔上多少资源，效率极其低下，又很容易被人发现，现在基本没有什么人用了。</p><p>&nbsp;&nbsp;&nbsp; 攻击原理</p><p>&nbsp;&nbsp;&nbsp; CC主要是用来攻击页面的。大家都有这样的经历，就是在访问论坛时，如果这个论坛比较大，访问的人比较多，打开页面的速度会比较慢，对不？！一般来说，访问的人越多，论坛的页面越多，数据库就越大，被访问的频率也越高，占用的系统资源也就相当可观，现在知道为什么很多空间服务商都说大家不要上传论坛，聊天室等东西了吧。</p><p>&nbsp;&nbsp;&nbsp; 一个静态页面不需要服务器多少资源，甚至可以说直接从内存中读出来发给你就可以了，但是论坛就不一样了，我看一个帖子，系统需要到数据库中判断我是否有读读帖子的权限，如果有，就读出帖子里面的内容，显示出来&mdash;&mdash;这里至少访问了2次数据库，如果数据库的体积有200MB大小，系统很可能就要在这200MB大小的数据空间搜索一遍，这需要多少的CPU资源和时间？如果我是查找一个关键字，那么时间更加可观，因为前面的搜索可以限定在一个很小的范围内，比如用户权限只查用户表，帖子内容只查帖子表，而且查到就可以马上停止查询，而搜索肯定会对所有的数据进行一次判断，消耗的时间是相当的大。</p><p>&nbsp;&nbsp;&nbsp; CC就是充分利用了这个特点，模拟多个用户（多少线程就是多少用户）不停的进行访问（访问那些需要大量数据操作，就是需要大量CPU时间的页面）。很多朋友问到，为什么要使用代理呢？因为代理可以有效地隐藏自己的身份，也可以绕开所有的防火墙，因为基本上所有的防火墙都会检测并发的TCP/IP连接数目，超过一定数目一定频率就会被认为是Connection-Flood。</p><p>&nbsp;&nbsp;&nbsp; 使用代理攻击还能很好的保持连接，我们这里发送了数据，代理帮我们转发给对方服务器，我们就可以马上断开，代理还会继续保持着和对方连接（我知道的记录是有人利用2000个代理产生了35万并发连接）。</p><p>&nbsp;&nbsp;&nbsp; 可能很多朋友还不能很好的理解，我来描述一下吧。我们假设服务器A对Search.asp的处理时间需要0.01S（多线程只是时间分割，对结论没有影响），也就是说他一秒可以保证100个用户的Search请求，服务器允许的最大连接时间为60s，那么我们使用CC模拟120个用户并发连接，那么经过1分钟，服务器的被请求了7200次，处理了6000次，于是剩下了1200个并发连接没有被处理。有的朋友会说：丢连接！丢连接！问题是服务器是按先来后到的顺序丢的，这1200个是在最后10秒的时候发起的，想丢？！还早，经过计算，服务器满负开始丢连接的时候，应该是有7200个并发连接存在队列，然后服务器开始120个/秒的丢连接，我们发动的连接也是120个/秒，服务器永远有处理不完的连接，服务器的CPU 100%并长时间保持，然后丢连接的60秒服务器也判断处理不过来了，新的连接也处理不了，这样服务器达到了超级繁忙状态。</p><p>&nbsp;&nbsp;&nbsp; 蝴蝶：我们假设服务器处理Search只用了0.01S，也就是10毫秒（这个速度你可以去各个有开放时间显示的论坛看看），我们使用的线程也只有120，很多服务器的丢连接时间远比60S长，我们的使用线程远比120多，可以想象可怕了吧，而且客户机只要发送了断开，连接的保持是代理做的，而且当服务器收到SQL请求，肯定会进入队列，不论连接是否已经断开，而且服务器是并发的，不是顺序执行，这样使得更多的请求进入内存请求，对服务器负担更大。</p><p>&nbsp;&nbsp;&nbsp; 当然，CC也可以利用这里方法对FTP进行攻击，也可以实现TCP-FLOOD，这些都是经过测试有效的。</p><p>&nbsp;&nbsp;&nbsp; 防范方法</p><p>&nbsp;&nbsp;&nbsp; 说了攻击原理，大家肯定会问，那么怎么防御？使用硬件防火墙我不知道如何防范，除非你完全屏蔽页面访问，我的方法是通过页面的编写实现防御。</p><p>&nbsp;&nbsp;&nbsp; 1. 使用Cookie认证。这时候朋友说CC里面也允许Cookie，但是这里的Cookie是所有连接都使用的，所以启用IP+Cookie认证就可以了。</p><p>&nbsp;&nbsp;&nbsp; 2. 利用Session。这个判断比Cookie更加方便，不光可以IP认证，还可以防刷新模式，在页面里判断刷新，是刷新就不让它访问，没有刷新符号给它刷新符号。给些示范代码吧，Session：</p><p>&lt;%if&nbsp; session(&ldquo;refresh&rdquo;)&lt;&gt; 1 then&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; Session(&ldquo;refresh&rdquo;)=session(&ldquo;refresh&rdquo;)+1 <br />&nbsp;&nbsp;&nbsp;&nbsp; Response.redirect &ldquo;index.asp&rdquo; <br />&nbsp;&nbsp;&nbsp;&nbsp; End if <br />%&gt;</p><p>&nbsp;&nbsp;&nbsp; 这样用户第一次访问会使得Refresh=1，第二次访问，正常，第三次，不让他访问了，认为是刷新，可以加上一个时间参数，让多少时间允许访问，这样就限制了耗时间的页面的访问，对正常客户几乎没有什么影响。</p><p>&nbsp;&nbsp;&nbsp; 3. 通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP，这招完全可以找到发动攻击的人，当然，不是所有的代理服务器都发送，但是有很多代理都发送这个参数。详细代码：</p><p>&lt;% <br />Dim fsoObject <br />Dim tsObject <br />dim file <br />if Request.ServerVariables(&quot;HTTP_X_FORWARDED_FOR&quot;)=&quot;&quot; then&nbsp; <br />&nbsp;&nbsp; response.write &quot;无代理访问&quot; <br />&nbsp;&nbsp; response.end <br />&nbsp;&nbsp; end if <br />Set fsoObject = Server.CreateObject(&quot;Scripting.FileSystemObject&quot;) <br />file = server.mappath(&quot;CCLog.txt&quot;) <br />if not fsoObject.fileexists(file) then <br />fsoObject.createtextfile file,true,false <br />end if <br />set tsObject = fsoObject.OpenTextFile(file,8) <br />tsObject.Writeline Request.ServerVariables(&quot;HTTP_X_FORWARDED_FOR&quot;)&amp;&quot;[&quot;&amp;Request.ServerVariables(&quot;REMOTE_ADDR&quot;)&amp;&quot;]&quot;&amp;now() <br />Set fsoObject = Nothing <br />Set tsObject = Nothing <br />response.write &quot;有代理访问&quot; <br />%&gt;</p><p>&nbsp;&nbsp;&nbsp; 这样会生成CCLog.txt，它的记录格式是：真实IP [代理的IP] 时间，看看哪个真实IP出现的次数多，就知道是谁在攻击了。将这个代码做成Conn.asp文件，替代那些连接数据库的文件，这样所有的数据库请求就连接到这个文件上，然后马上就能发现攻击的人。</p><p>&nbsp;&nbsp;&nbsp; 4. 还有一个方法就是把需要对数据查询的语句做在Redirect后面，让对方必须先访问一个判断页面，然后Redirect过去。</p><p>&nbsp;&nbsp;&nbsp; 5. 在存在多站的服务器上，严格限制每一个站允许的IP连接数和CPU使用时间，这是一个很有效的方法。</p><p>&nbsp;&nbsp;&nbsp; CC的防御要从代码做起，其实一个好的页面代码都应该注意这些东西，还有SQL注入，不光是一个入侵工具，更是一个DDOS缺口，大家都应该在代码中注意。举个例子吧，某服务器，开动了5000线的CC攻击，没有一点反应，因为它所有的访问数据库请求都必须一个随机参数在Session里面，全是静态页面，没有效果。突然发现它有一个请求会和外面的服务器联系获得，需要较长的时间，而且没有什么认证，开800线攻击，服务器马上满负荷了。 <br />　　　 <br />&nbsp;&nbsp;&nbsp; 代码层的防御需要从点点滴滴做起，一个脚本代码的错误，可能带来的是整个站的影响，甚至是整个服务器的影响，慎之！</p><p>&nbsp;</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/70/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=70</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=70&amp;key=f816b09d</trackback:ping></item><item><title>预防DDoS攻击的十项安全策略 </title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/72/</link><pubDate>Fri, 15 May 2009 11:25:15 +0800</pubDate><guid>http://yezishell.cn/ddos/72/</guid><description><![CDATA[<p>本文是由编写分布式拒绝服务攻击工具TFN和TFN2K（这些工具曾被用于攻击Yahoo等大型网站）的德国著名黑客Mixter（年仅20岁）提供。 <br />　　简单地说，掌握所有可能导致被入侵和被用于实施拒绝服务攻击的原因和安全漏洞是非常复杂的。详细地说，没有简单和专门的方法保护不受到这些攻击，而只能尽可能地应用各种安全和保护策略。对于每个面临安全威胁的系统，这里列出了一些简单易行和快速的安全策略以保护免受这些攻击。<br />　　对于面临拒绝服务攻击的目标或潜在目标，应该采取的重要措施：<br />　　1、消除FUD心态<br />　　FUD的意思是Fear（恐惧）、Uncerntainty（猜测）和Doubt（怀疑）。最近发生的攻击可能会使某些人因为害怕成为攻击目标而整天担心受怕。其实必须意识到可能会成为拒绝服务攻击目标的公司或主机只是极少数，而且多数是一些著名站点，如搜索引擎、门户站点、大型电子商务和证券公司、IRC服务器和新闻杂志等。如果不属于这类站点，大可不必过于担心成为拒绝服务攻击的直接目标。<br />　　2、要求与ISP协助和合作<br />　　获得你的主要互联网服务供应商（ISP）的协助和合作是非常重要的。分布式拒绝服务（DDoS）攻击主要是耗用带宽，单凭你自己管理网络是无法对付这些攻击的。与你的ISP协商，确保他们同意帮助你实施正确的路由访问控制策略以保护带宽和内部网络。最理想的情况是当发生攻击时你的ISP愿意监视或允许你访问他们的路由器。<br />　　3、优化路由和网络结构<br />　　如果你管理的不仅仅是一台主机，而是网络，就需要调整路由表以将拒绝服务攻击的影响减到最小。为了防止SYN flood攻击，应设置TCP侦听功能。详细资料请参阅相关路由器技术文档。另外禁止网络不需要使用的UDP和ICMP包通过，尤其是不应该允许出站ICMP&ldquo;不可到达&rdquo;消息。<br />　　4、优化对外开放访问的主机<br />　　对所有可能成为目标的主机都进行优化。禁止所有不必要的服务。另外多IP主机也会增加攻击者的难度。建议在多台主机中使用多IP地址技术，而这些主机的首页只会自动转向真正的web服务器。<br />　　5、正在受到攻击时，必须立刻应用对应策略。<br />　　尽可能迅速地阻止攻击数据包是非常重要的，同时如果发现这些数据包来自某些ISP时应尽快和他们取得联系。千万不要依赖数据包中的源地址，因为它们在DoS攻击中往往都是随机选择的。是否能迅速准确地确定伪造来源将取决于你的响应动作是否迅速，因为路由器中的记录可能会在攻击中止后很快就被清除。</p><p>　　对于已被或可能被入侵和安装DDoS代理端程序的主机，应该采取的重要措施：<br />　　6、消除FUN心态<br />　　作为可能被入侵的对象，没必要太过紧张，只需尽快采取合理和有效的措施即可。现在的拒绝服务攻击服务器都只被安装到Linux和Solaris系统中。虽然可能会被移植到*BSD*或其它系统中，但只要这些系统足够安全，系统被入侵的可能性不大。<br />　　7、确保主机不被入侵和是安全的<br />　　现在互联网上有许多旧的和新的漏洞攻击程序。以确保你的服务器版本不受这些漏洞影响。记住，入侵者总是利用已存在的漏洞进入系统和安装攻击程序。系统管理员应该经常检查服务器配置和安全问题，运行最新升级的软件版本，最重要的一点就是只运行必要的服务。如果能够完全按照以上思路，系统就可以被认为是足够安全，而且不会被入侵控制。<br />　　8、周期性审核系统<br />　　必须意识到你要对自己管理的系统负责。应该充分了解系统和服务器软件是如何工作的，经常检查系统配置和安全策略。另外还要时刻留意安全站点公布的与自发管理的操作系统及软件有关的最新安全漏洞和问题。<br />　　9、检查文件完整性<br />　　当确定系统未曾被入侵时，应该尽快这所有二进制程序和其它重要的系统文件产生文件签名，并且周期性地与这些文件比较以确保不被非法修改。另外，强烈推荐将文件检验和保存到另一台主机或可移动介质中。这类文件/目录完整性检查的免费工具（如tripwire等）可以在许多FTP站点上下载。当然也可以选择购买商业软件包。<br />　　10、发现正在实施攻击时，必须立刻关闭系统并进行调查<br />　　如果监测到（或被通知）网络或主机正实施攻击，应该立刻关闭系统，或者至少切断与网络的连接。因为这些攻击同时也意味着入侵者已几乎完全控制了该主机，所以应该进行研究分析和重新安装系统。建议联系安全组织。必须记往，将攻击者遗留在入侵主机中的所有程序和数据完整地提供给安全组织或专家是非常重要，因为这能帮助追踪攻击的来源。</p><p>&nbsp;</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/72/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=72</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=72&amp;key=bac9f238</trackback:ping></item><item><title>DDoS攻击原理及工具介绍 </title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/73/</link><pubDate>Sun, 15 Feb 2009 11:25:15 +0800</pubDate><guid>http://yezishell.cn/ddos/73/</guid><description><![CDATA[<p>DDoS攻击原理及工具介绍 <br />　进入2000年以来，网络遭受攻击事件不断发生，全球许多著名网站如yahoo、cnn、buy、ebay、fbi，包括中国的新浪网相继遭到不名身份的黑客攻击，值得注意的是，在这些攻击行为中，黑客摈弃了以往常常采用的更改主页这一对网站实际破坏性有限的做法，取而代之的是，在一定时间内，彻底使被攻击的网络丧失正常服务功能，这种攻击手法为 DDoS，即分布式拒绝服务攻击(Distributed denial of service )。 <br />　　 简单的讲，拒绝服务就是用超出被攻击目标处理能力的海量数据包消耗可用系统，带宽资源，致使网络服务瘫痪的一种攻击手段。在早期， 拒绝服务攻击主要是针对处理能力比较弱的单机，如个人pc，或是窄带宽连接的网站，对拥有高带宽连接，高性能设备的网站影响不大，但在99年底，伴随着DDoS的出现，这种高端网站高枕无忧的局面不复存在，与早期的DoS攻击由单台攻击主机发起，单兵作战相较，DDoS实现是借助数百，甚至数千台被植入攻击守护进程的攻击主机同时发起的集团作战行为，在这种几百，几千对一的较量中， 网络服务提供商所面对的破坏力是空前巨大的。</p><p>　　 拒绝服务攻击自问世以来，衍生了多种形式，现将两种使用较频繁的TCP-SYN flood， UDP flood做一个介绍 。TCP-SYN flood又称半开式连接攻击，每当我们进行一次标准的TCP连接(如WWW浏览，下载文件等)会有一个一个三次握手的过程，首先是请求方向服务方发送一个SYN消息，服务方收到SYN后，会向请求方回送一个SYN-ACK表示确认，当请求方收到SYN-ACK后则再次向服务方发送一个ACK消息，一次成功的TCP连接由此就建立，可以进行后续工作了，如图所示:</p><p>&nbsp;</p><p><br />　　 而TCP-SYN flood在它的实现过程中只有前两个步骤，当服务方收到请求方的SYN并回送SYN-ACK确认消息后， 请求方由于采用源地址欺骗等手段，致使服务方得不到ACK回应，这样，服务方会在一定时间处于等待接收请求方ACK消息的状态，一台服务器可用的TCP连接是有限的，如果恶意攻击方快速连续的发送此类连接请求，则服务器可用TCP连接队列很快将会阻塞，系统可用资源，网络可用带宽急剧下降，无法向用户提供正常的网络服务。</p><p>　　 Udp在网络中的应用也是比较广泛的，比如DNS解析、realaudio实时音乐、网络管理、联网游戏等，基于udp的攻击种类也是比较多的，如目前在互连网上提供www、mail等服务的设备一般为使用unix操作系统的服务器，他们默认是开放一些有被恶意利用可能的udp服务的，如:echo,chargen. echo服务回显接收到的每一个数据包，而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符，如果恶意攻击者将这两个udp服务互指，则网络可用带宽会很快耗尽。</p><p>　　 自99年后半年开始，DDoS攻击不断在Internet出现，并在应用的过程中不断的得到完善，在Unix或nt环境上截至目前已有一系列比较成熟的软件产品，如Trinoo，TFN，TFN2K，STACHELDRATH等，他们基本核心及攻击思路是很相象的，下面就通过Trinoo对这类软件做一介绍。</p><p>　　 Trinoo是基于UDP flood的攻击软件，它向被攻击目标主机随机端口发送全零的4字节UDP包，被攻击主机的网络性能在处理这些超出其处理能力垃圾数据包的过程中不断下降，直至不能提供正常服务甚至崩溃。</p><p>　　 Trinoo攻击功能的实现，是通过三个模块付诸实施的，</p><p>　　 1:攻击守护进程(NS) 2:攻击控制进程(MASTER) 3:客户端(NETCAT，标准TELNET程序等)，</p><p>　　 攻击守护进程NS是真正实施攻击的程序，它一般和攻击控制进程(MASTER)所在主机分离，在原始C文件ns.c编译的时候，需要加入可控制其执行的攻击控制进程MASTER所在主机IP，（只有在ns.c中的IP方可发起ns的攻击行为）编译成功后，黑客通过目前比较成熟的主机系统漏洞破解（如rpc.cmsd，rpc.ttdbserver，rpc.statd）可以方便的将大量NS植入因特网中有上述漏洞主机内。ns运行时，会首先向攻击控制进程(MASTER)所在主机的31335端口发送内容为HELLO的UDP包，标示它自身的存在，随后攻击守护进程即处于对端口27444的侦听状态，等待master攻击指令的 到来。</p><p>　　 攻击控制进程(MASTER)在收到攻击守护进程的HELLO包后，会在自己所在目录生成一个加密的名为...的可利用主机表文件， MASTER的启动是需要密码的，在正确输入默认密码gOrave后， MASTER即成功启动，它一方面侦听端口31335，等待攻击守护进程的HELLO包，另一方面侦听端口27665，等待客户端对其的连接。当客户端连接成功并发出指令时， MASTER所在主机将向攻击守护进程ns所在主机的27444端口传递指令。</p><p>　　 客户端不是trinoo自带的一部分，可用标准的能提供TCP连接的程序，如TELNET，NETCAT等，连接MASTER所在主机的27665端口， 输入默认密码betaalmostdone后，即完成了连接工作，进入攻击控制可操作的提示状态。</p><p>　　 目前版本的trinoo有六个可用命令，mtimer:设定攻击时长，如mtimer 60，攻击60秒，如果不设置的话，默认是无限。dos:对某一目标主机实施攻击，如dos 12.34.45.56 mdie:停止正在实施的攻击，使用这一功能需要输入口令killme，mping:请求攻击守护进程NS回应，监测ns是否工作。mdos， 对多个目标主机实施攻击，msize:设置攻击UDP包的大小。 Trinoo运行的总体轮廓可用下图说明:</p><p>&nbsp;</p><p>&nbsp;</p><p>　　 我们来看一次攻击的实例: <br />　　 被攻击的目标主机victim IP为:12.23.34.45 <br />　　 ns被植入三台sun的主机里，他们的IP对应关系分别为client1:11.11.11.11 <br />　　 client2:22.22.22.22 <br />　　 client3:33.33.33.33 <br />　　 master所在主机为masterhost:11.22.33.44 <br />　　 首先我们要启动各个进程，在client1，2，3上分别执行ns，启动攻击守护进程， <br />　　 其次，在master所在主机启动master <br />　　 masterhost# ./master <br />　　 ?? gOrave (系统示输入密码，输入gOrave后master成功启动) <br />　　 trinoo v1.07d2+f3+c [Mar 20 2000:14:38:49] (连接成功) <br />　　</p><p>　　 在任意一台与网络连通的可使用telnet的设备上，执行 <br />　　 telnet 11.22.33.44 27665 <br />　　 Escape character is '^]'. <br />　　 betaalmostdone (输入密码) <br />　　 trinoo v1.07d2+f3+c..[rpm8d/cb4Sx/] <br />　　 trinoo&gt; (进入提示符) <br />　　 trinoo&gt; mping (我们首先来监测一下各个攻击守护进程是否成功启动) <br />　　 mping: Sending a PING to every Bcasts. <br />　　 trinoo&gt; PONG 1 Received from 11.11.11.11 <br />　　 PONG 2 Received from 22.22.22.22 <br />　　 PONG 3 Received from 33.33.33.33 (成功响应) <br />　　 trinoo&gt; mtimer 60 (设定攻击时间为60秒) <br />　　 mtimer: Setting timer on bcast to 60. <br />　　 trinoo&gt; dos 12.23.34.45 <br />　　 DoS: Packeting 12.23.34.45......</p><p>　　 至此一次攻击结束，此时ping 12.23.34.45，会得到icmp不可到达反馈，目标主机此时与网络的正常连接已被破坏。</p><p>　　 由于目前版本的trinoo尚未采用IP地址欺骗，因此在被攻击的主机系统日志里我们可以看到如下纪录:</p><p>　　 Mar 20 14:40:34 victim snmpXdmid: Will attempt to re-establish connection. <br />　　 Mar 20 14:40:35 victim snmpdx: error while receiving a pdu from 11.11.11.11.59841: The message has a wrong header type (0x0) <br />　　 Mar 20 14:40:35 victim snmpdx: error while receiving a pdu from 22.22.22.22.43661: The message has a wrong header type (0x0) <br />　　 Mar 20 14:40:36 victim snmpdx: error while receiving a pdu from 33.33.33.33.40183: The message has a wrong header type (0x0) <br />　　 Mar 20 14:40:36 victim snmpXdmid: Error receiving PDU The message has a wrong header type (0x0). <br />　　 Mar 20 14:40:36 victim snmpXdmid: Error receiving packet from agent; rc = -1. <br />　　 Mar 20 14:40:36 victim snmpXdmid: Will attempt to re-establish connection. <br />　　 Mar 20 14:40:36 victim snmpXdmid: Error receiving PDU The message has a wrong header type (0x0). <br />　　 Mar 20 14:40:36 victim snmpXdmid: Error receiving packet from agent; rc = -1.</p><p>　　 由上述日志，我们不难看出发起攻击的ip地址，这一问题，通过ip spoof在后期的软件tfn，tfn2k等软件中得到了解决，给被攻击者找出肇事者进一步增加了难度。</p><p>　　 Trinoo等DdoS攻击软件的出现，对网络的安全产生了巨大的挑战，借助这种在网上可以得到的公开软件，任何一个普通的上网者对网络的安全都构成了潜在的威胁，那么能不能做一些预防工作呢?</p><p>　　 有一些是可以做的，</p><p>　　 首先，检测自己的系统是否被植入了攻击守护程序，最简单的办法，检测上述提到的udp端口，如netstat -a | grep udp 端口号，如果得到listen等激活状态，就要注意了，或者用专门的检测软件，这里推荐美国FBI专门研制的Find Distributed Denial of Service (find_ddos) ， 最新版本的可检测到tfn2k client， tfn2k daemon， trinoo daemon， trinoo master， tfn daemon， tfn client， stacheldraht master， stacheldraht client， stachelddraht demon和 tfn-rush client等目前几乎所有流行攻击软件。 它的运行很简单，解开包，运行find_ddos即可，下面为在一台可疑设备运行结果，</p><p>　　 Logging output to: LOG <br />　　 Scanning running processes... <br />　　 /proc/795/object/a.out: trinoo daemon <br />　　 /usr/bin/gcore: core.795 dumped <br />　　 /proc/800/object/a.out: trinoo master <br />　　 /usr/bin/gcore: core.800 dumped <br />　　 Scanning &quot;/tmp&quot;... <br />　　 Scanning &quot;/&quot;... <br />　　 /yiming/tfn2k/td: tfn2k daemon <br />　　 /yiming/tfn2k/tfn: tfn2k client <br />　　 /yiming/trinoo/daemon/ns: trinoo daemon <br />　　 /yiming/trinoo/master/master: trinoo master <br />　　 /yiming/trinoo/master/...: possible IP list file <br />　　 NOTE: This message is based on the filename being suspicious, and is not <br />　　 based on an analysis of the file contents. It is up to you to examine the <br />　　 file and decide whether it is actually an IP list file related to a DDOS <br />　　 tool. <br />　　 /yiming/stacheldrahtV4/leaf/td: stacheldraht daemon <br />　　 /yiming/stacheldrahtV4/telnetc/client: stacheldraht client <br />　　 /yiming/stacheldrahtV4/td: stacheldraht daemon <br />　　 /yiming/stacheldrahtV4/client: stacheldraht client <br />　　 /yiming/stacheldrahtV4/mserv: stacheldraht master</p><p>　　 ALERT: One or more DDOS tools were found on your system. <br />　　 Please examine LOG and take appropriate action.</p><p>　　 看来这台设备的攻击守护程序还不少呢，系统管理员要注意啦!</p><p>　　 这个软件可从下面的地址得到：http://www.fbi.gov/nipc/trinoo.htm 。</p><p>　　 其次，封掉不必要的UDP服务，如echo,chargen,减少udp攻击的入口。</p><p>　　 第三，在路由器连接骨干网络的端口结合采用CEF和ip verify unicast reverse-path，挡住一部分ip spoof,syn的攻击。同时使用access control lists将可能被使用的网络保留地址封掉。 借助使用CAR技术来限制 ICMP 报文大小。具体使用可查阅cisco网站。</p><p>　　 第四，在敏感主机如www服务器使用ip filter软件。</p><p>　　 截至目前，实际很彻底的防御手段还没有出现，但采用上述做法可以较大地减小不安全性。</p><p>　　 Internet的发展，永远是一场不会停止的网络安全攻与防的较量<br />&nbsp;</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/73/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=73</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=73&amp;key=a3bf998b</trackback:ping></item><item><title>永远可用的越过DDOS防火墙的DDOS攻击方法 </title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/69/</link><pubDate>Sun, 15 Feb 2009 11:21:12 +0800</pubDate><guid>http://yezishell.cn/ddos/69/</guid><description><![CDATA[<p>永远可用的越过DDOS防火墙的DDOS攻击方法！</p><p>用扫描器进行DDOS攻击，相信大家会很奇怪！ <br />不过这方法真的很好！因为扫描器可以无条件扫描！ <br />由于他扫描的是最新漏洞！（有的扫描软件还带脚本攻击，这也能帮助你更快使服务器瘫痪） <br />如果大家把他当一般的DDOS工具用，我们就能顺利的越过防火墙，对主机进行DDOS 攻击！</p><p><br />原理：我们扫描某IP也是对那主机发送信息后，收到主机返回信息！DDOS攻击也是对主机发信息来消耗主机资源！所以我们完全可以把扫描拿来当DDOS攻击用！因为我们可以无条件扫描，所以我们不怕主机有DDOS防火墙！ <br />但用扫描攻击有个缺点，自己消耗的资源比主机大，由于我们是DDOS攻击，是许多机器一起攻击！（这缺点也算不了什么了）</p><p><br />我曾经用这方法攻击过国内某黑客组织的WEB聊天室！ <br />他们还是专门做DDOS防火墙的，越过他们防火墙就怎么简单！</p><p>这方法是我在一次偶然扫描中发现的！ <br />版权归：西门之枫</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/69/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=69</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=69&amp;key=321da2aa</trackback:ping></item><item><title>DDoS防范和全局安全网络的应对 </title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/71/</link><pubDate>Thu, 15 Jan 2009 11:22:34 +0800</pubDate><guid>http://yezishell.cn/ddos/71/</guid><description><![CDATA[<p>【简 介】<br />作为破坏力较强的黑客攻击手段，DDoS是一种形式比较特殊的拒绝服务攻击。作为一种分布、协作的大规模攻击方式，它往往把受害目标锁定在大型Internet站点，例如商业公司、搜索引擎或政府部门网站。由于DDoS攻击的恶劣性(往往通过利用一批受控制的网络终端向某一个公共端口发起冲击，来势迅猛又令人难以防备，具有极大破坏力)难以被侦测和控制，因此也广泛受到网络安全业界的关注。从最初的入侵检测系统(IDS)到目前新兴的全局安全网络体系，在防范DDoS攻击的过程中先进的网络安全措施发挥作用，使对抗黑客攻击的手段 日益提升，向着智能化、全局化的方向大步迈进。</p><p>作为破坏力较强的黑客攻击手段，DDoS是一种形式比较特殊的拒绝服务攻击。作为一种分布、协作的大规模攻击方式，它往往把受害目标锁定在大型Internet站点，例如商业公司、搜索引擎或政府部门网站。由于DDoS攻击的恶劣性(往往通过利用一批受控制的网络终端向某一个公共端口发起冲击，来势迅猛又令人难以防备，具有极大破坏力)难以被侦测和控制，因此也广泛受到网络安全业界的关注。从最初的入侵检测系统(IDS)到目前新兴的全局安全网络体系，在防范DDoS攻击的过程中先进的网络安全措施发挥作用，使对抗黑客攻击的手段 日益提升，向着智能化、全局化的方向大步迈进。</p><p>　　知己知彼:全面解剖DDoS攻击</p><p>　　分布式攻击系统和我们日常生活中司空见惯的客户机/服务器模式非常相象，但是DDoS系统的日趋复杂性和隐蔽性使人难以发现。入侵者控制了一些节点，将它们设计成控制点，这些控制点控制了Internet大量的主机，将它们设计成攻击点，攻击点中装载了攻击程序，正是由这些攻击点计算机对攻击目标发动的攻击。DDoS攻击的前奏是率先攻破一些安全性较差的电脑作为控制点主机。因为这些电脑在标准网络服务程序中存在众所周知的缺陷，它们还没有来得及打补丁或进行系统升级，还有可能是操作系统本身有Bug，这样的系统使入侵者很容易闯入。</p><p>　　典型的DDoS攻击包括带宽攻击和应用攻击。在带宽攻击中，网络资源或网络设备被高流量数据包所消耗。在应用攻击时，TCP或HTTP资源无法被用来处理交易或请求。发动攻击时，入侵者只需运行一个简单的命令，一层一层发送命令到所有控制的攻击点上，让这些攻击点一齐&ldquo;开炮&rdquo;&mdash;&mdash;向目标传送大量的无用的数据包，就在这样的&ldquo;炮火&rdquo;下，攻击目标的网络带宽被占满，路由器处理能力被耗尽。而较之一般的黑客攻击手段来说，DDoS的可怕之处有二:一是DDoS利用Internet的开放性和从任意源地址向任意目标地址提交数据包;二是人们很难将非法的数据包与合法的数据包区分开。</p><p>　　屡战屡败:防范手段失效溯源</p><p>　　既然了解DDoS攻击的起源结果，为什么还会让它如此肆虐呢?平心而论，以往所采用的几种防御形式的被动和片面，是DDoS攻击难以被遏止的真正原因。</p><p>　　在遭遇DDoS攻击时，一些用户会选择直接丢弃数据包的过滤手段。通过改变数据流的传送方向，将其丢弃在一个数据&ldquo;黑洞&rdquo;中，以阻止所有的数据流。这种方法的缺点是所有的数据流(不管是合法的还是非法的)都被丢弃，业务应用被中止。数据包过滤和速率限制等措施同样能够关闭所有应用，拒绝为合法用户提供接入。这样做的结果很明显，就是&ldquo;因噎废食&rdquo;，可以说是恰恰满足了黑客的心愿。</p><p>　　既然&ldquo;因噎废食&rdquo;不可取，那么路由器、防火墙和入侵检测系统(IDS)的功效又怎样呢?从应用情况来看，通过配置路由器过滤不必要的协议可以阻止简单的ping攻击以及无效的IP地址，但是通常不能有效阻止更复杂的嗅探攻击和使用有效IP地址发起的应用级攻击。而防火墙可以阻挡与攻击相关的特定数据流，不过与路由器一样，防火墙不具备反嗅探功能，所以防范手段仍旧是被动和不可靠的。目前常见的IDS能够进行异常状况检测，但它不能自动配置，需要技术水平较高的安全专家进行手工调整，因此对新型攻击的反应速度较慢，终究不是解决之道。</p><p><br />--------------------------------------------------------------------------------</p><p>&nbsp;</p><p>&nbsp;</p><p>全局安全:充分遏制DDoS魔爪 <br />　　深究各种防范措施对DDoS攻击束手无策的原因，变幻莫测的攻击来源和层出不穷的攻击手段是症结所在。为了彻底打破这种被动局面，目前业界领先的网络安全技术厂商已然趋于共识:那就是在网络中配置整体联动的安全体系，通过软件与硬件技术结合、深入网络终端的全局防范措施，以加强实施网络安全管理的能力。</p><p>　　以锐捷网络2004年底推出的GSN??全局安全网络解决方案为例，它在解决DDoS方面给出了自己独特的见解。首先，GSN??在网络中针对所有要求进行网络访问的行为进行统一的注册，没有经过注册的网络访问行为将不被允许访问网络。通过GSN??安全策略平台的帮助，管理员可以有效的了解整个网络的运行情况，进而对网络中存在的危及安全行为进行控制。在具体防范DDoS攻击的过程中，每一个在网络中发生的访问行为都会被系统检测并判断其合法性，一旦发觉这一行为存在安全威胁，系统将自动调用安全策略，采取直接阻止访问、限制该终端访问网络区域(例如避开网络内的核心数据或关键服务区，以及限制访问权限等)和限制该终端享用网络带宽速率的方式，将DDoS攻击发作的危害降到最低。</p><p>　　在终端用户的安全控制方面，GSN ??能对所有进入网络的用户系统安全性进行评估，杜绝网络内终端用户成为DDoS攻击来源的威胁。从当用户终端接入网络时，安全客户端会自动检测终端用户的安全状态。一旦检测到用户系统存在安全漏洞(未及时安装补丁等)，用户会从网络正常区域中隔离开，并自动置于系统修复区域内加以修复，直到完成系统规定的安全策略，才能进入正常的网络环境中。这样一来，不仅可以杜绝网络内部各个终端产生安全隐患的威胁，也使网络内各个终端用户的访问行为得到了有效控制。通过在接入网络时进行自动&ldquo;健康检查&rdquo;，DDoS再也不能潜藏在网络中，并利用网络内的终端设备发动攻击了。</p><p>　　对于用户来说，正常业务的开展是最根本的利益所在。随着人们对Internet的依赖性不断增加，DDoS攻击的危害性也在不断加剧。不少安全专家都曾撰文指出:及早发现系统存在的攻击漏洞、及时安装系统补丁程序，以及不断提升网络安全策略，都是防范DDoS攻击的有效办法。而先进的全局安全网络体系的出现，实现了将系统层面和网络层面相结合来有效的进行安全解决方案的自动部署，进一步提高了对于DDoS这类&ldquo;行踪飘渺&rdquo;的恶性网络攻击的自动防范能力。尽管目前以DDoS为代表的黑客攻击仍旧气焰嚣张，但是在可以预见的将来，广大用户手中握紧的安全利刃必定可以斩断DDoS的魔爪。</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/71/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=71</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=71&amp;key=3507df5a</trackback:ping></item><item><title>简单设置防御小流量DDOS攻击 </title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/74/</link><pubDate>Thu, 15 Jan 2009 11:21:45 +0800</pubDate><guid>http://yezishell.cn/ddos/74/</guid><description><![CDATA[<p>防范DDOS攻击并不一定非要用防火墙。一部份DDOS我们可以通过DOS命令netstat -an|more或者网络综合分析软件：sniff等查到相关攻击手法、如攻击某个主要端口、或者对方主要来自哪个端口、对方IP等。这样我们可以利用w2k自带的远程访问与路由或者IP策略等本身自带的工具解决掉这些攻击。做为无法利用这些查到相关数据的我们也可以尝试一下通过对服务器进行安全设置来防范DDOS攻击。如果通过对服务器设置不能有效解决，那么就可以考虑购买抗DDOS防火墙了。 其实从操作系统角度来说，本身就藏有很多的功能，只是很多是需要我们慢慢的去挖掘的。这里我给大家简单介绍一下如何在Win2000环境下通过修改注册表，增强系统的抗DoS能力。 　</p><p>&nbsp; 请注意，以下的安全设置均通过注册表进行修改，该设置的性能取决于服务器的配置，尤其是CPU的处理能力。如按照如下进行安全设置，采用双路至强2.4G的服务器配置，经过测试，可承受大约1万个包的攻击量。</p><p>\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]</p><p><br />'关闭无效网关的检查。当服务器设置了多个网关，这样在网络不通畅的时候系统会尝试连接<br />'第二个网关，通过关闭它可以优化网络。<br />&quot;EnableDeadGWDetect&quot;=dword:00000000</p><p>'禁止响应ICMP重定向报文。此类报文有可能用以攻击，所以系统应该拒绝接受ICMP重定向报文。<br />&quot;EnableICMPRedirects&quot;=dword:00000000</p><p>'不允许释放NETBIOS名。当攻击者发出查询服务器NETBIOS名的请求时，可以使服务器禁止响应。<br />'注意系统必须安装SP2以上<br />&quot;NonameReleaseOnDemand&quot;=dword:00000001</p><p>'发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态，<br />'不设该值，则系统每隔2小时对TCP是否有闲置连接进行检查，这里设置时间为5分钟。<br />&quot;KeepAliveTime&quot;=dword:000493e0</p><p>'禁止进行最大包长度路径检测。该项值为1时，将自动检测出可以传输的数据包的大小，<br />'可以用来提高传输效率，如出现故障或安全起见，设项值为0，表示使用固定MTU值576bytes。<br />&quot;EnablePMTUDiscovery&quot;=dword:00000000</p><p>'启动syn攻击保护。缺省项值为0，表示不开启攻击保护，项值为1和2表示启动syn攻击保护，设成2之后<br />'安全级别更高，对何种状况下认为是攻击，则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值<br />'设定的条件来触发启动了。这里需要注意的是，NT4.0必须设为1，设为2后在某种特殊数据包下会导致系统重启。<br />&quot;SynAttackProtect&quot;=dword:00000002</p><p>'同时允许打开的半连接数量。所谓半连接，表示未完整建立的TCP会话，用netstat命令可以看到呈SYN_RCVD状态<br />'的就是。这里使用微软建议值，服务器设为100，高级服务器设为500。建议可以设稍微小一点。<br />&quot;TcpMaxHalfOpen&quot;=dword:00000064</p><p>'判断是否存在攻击的触发点。这里使用微软建议值，服务器为80，高级服务器为400。<br />&quot;TcpMaxHalfOpenRetried&quot;=dword:00000050</p><p>'设置等待SYN-ACK时间。缺省项值为3，缺省这一过程消耗时间45秒。项值为2，消耗时间为21秒。<br />'项值为1，消耗时间为9秒。最低可以设为0，表示不等待，消耗时间为3秒。这个值可以根据遭受攻击规模修改。<br />'微软站点安全推荐为2。<br />&quot;TcpMaxConnectResponseRetransmissions&quot;=dword:00000001</p><p>'设置TCP重传单个数据段的次数。缺省项值为5，缺省这一过程消耗时间240秒。微软站点安全推荐为3。<br />&quot;TcpMaxDataRetransmissions&quot;=dword:00000003</p><p>'设置syn攻击保护的临界点。当可用的backlog变为0时，此参数用于控制syn攻击保护的开启，微软站点安全推荐为5。<br />&quot;TCPMaxPortsExhausted&quot;=dword:00000005</p><p>'禁止IP源路由。缺省项值为1，表示不转发源路由包，项值设为0，表示全部转发，设置为2，表示丢弃所有接受的<br />'源路由包，微软站点安全推荐为2。<br />&quot;DisableIPSourceRouting&quot;=dword:0000002</p><p>'限制处于TIME_WAIT状态的最长时间。缺省为240秒，最低为30秒，最高为300秒。建议设为30秒。<br />&quot;TcpTimedWaitDelay&quot;=dword:0000001e</p><p>　</p><p>\CurrentControlSet\Services\NetBT\Parameters]<br />'增大NetBT的连接块增加幅度。缺省为3，范围1-20，数值越大在连接越多时提升性能。每个连接块消耗87个字节。<br />&quot;BacklogIncrement&quot;=dword:00000003</p><p>'最大NetBT的连接快的数目。范围1-40000，这里设置为1000，数值越大在连接越多时允许更多连接。<br />&quot;MaxConnBackLog&quot;=dword:000003e8</p><p>　</p><p>SYSTEM\CurrentControlSet\Services\Afd\Parameters]<br />'配置激活动态Backlog。对于网络繁忙或者易遭受SYN攻击的系统，建议设置为1，表示允许动态Backlog。<br />&quot;EnableDynamicBacklog&quot;=dword:00000001</p><p>'配置最小动态Backlog。默认项值为0，表示动态Backlog分配的自由连接的最小数目。当自由连接数目<br />'低于此数目时，将自动的分配自由连接。默认值为0，对于网络繁忙或者易遭受SYN攻击的系统，建议设置为20。<br />&quot;MinimumDynamicBacklog&quot;=dword:00000014</p><p>'最大动态Backlog。表示定义最大&quot;准&quot;连接的数目，主要看内存大小，理论每32M内存最大可以<br />'增加5000个，这里设为20000。<br />&quot;MaximumDynamicBacklog&quot;=dword:00002e20</p><p>'每次增加的自由连接数据。默认项值为5，表示定义每次增加的自由连接数目。对于网络繁忙或者易遭受SYN攻击<br />'的系统，建议设置为10。<br />&quot;DynamicBacklogGrowthDelta&quot;=dword:0000000a</p><p><br />以下部分需要根据实际情况手动修改</p><p>'-------------------------------------------------------------------------<br />'[\CurrentControlSet\Services\Tcpip\Parameters]<br />'启用网卡上的安全过滤<br />'&quot;EnableSecurityFilters&quot;=dword:00000001<br />'<br />'同时打开的TCP连接数，这里可以根据情况进行控制。<br />'&quot;TcpNumConnections&quot;=<br />'<br />'该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上，增加该设置可以提高 SYN 攻击期间的响应性能。<br />'&quot;TcpMaxSendFree&quot;=<br />'<br />'[\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{自己的网卡接口}<br />'禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录，可以导致攻击，所以禁止路由发现。<br />&quot;PerformRouterDiscovery &quot;=dword:00000000</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/74/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=74</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=74&amp;key=720b5f91</trackback:ping></item><item><title>DDoS攻击：“缓存溢出”新变形 </title><author>250048111@qq.com (yezi)</author><link>http://yezishell.cn/ddos/68/</link><pubDate>Thu, 15 Jan 2009 11:18:49 +0800</pubDate><guid>http://yezishell.cn/ddos/68/</guid><description><![CDATA[<p>最近，一种被称为&ldquo;缓存溢出（buffer overflow）&rdquo;的设计缺陷，正在严重危害着系统的安全，成为比y2k更为头痛的问题。一旦这个缺陷被别有用心的人发现，就会被利用作为非法入侵的一种手段，破坏电脑中的资料。据统计，通过缓存溢出进行的攻击占所有系统攻击总数的80%以上，最近各大网站所遭受的所谓分布式服务拒绝（ddos）式的攻击也是一种利用缓存溢出原理的攻击方式。</p><p>　　简单地说，缓存溢出是指一种攻击系统的手段，通过往程序的缓冲区中写入超出其长度的内容造成溢出，从而破坏程序的堆栈，使程序转而执行其它指令，而达到攻击的目的。分布式拒绝服务（ddos）的入侵者采用的是输入很长的字串，将通讯栏等区域填到超过设计的容量，有些多余字串就会被电脑误认为是执行密码，使入侵者有机会进入电脑，而同时系统无法察觉。有报告指出，&ldquo;缓存溢出&rdquo;是过去十年发生的非常普遍的电脑安全问题，入侵者可以利用它完全控制电脑。</p><p>　　■ 缓存溢出黑客们的惯用伎俩</p><p>　　在unix系统中，通过缓存溢出来获得root权限是目前使用得相当普遍的一种黑客技术。事实上这是一个黑客在系统本地已经拥有了一个基本账号后的首选攻击方式。它也被广泛应用于远程攻击，通过对daemon进程的堆栈溢出来实现远程获得rootshell的技术，已经有很多实例。</p><p>在windows系统中，同样存在着缓存溢出的问题。而且，随着internet的普及，win系列平台上的internet服务程序越来越多，低水平的win程序就成为你系统上的致命伤，因为它们同样会发生远程堆栈溢出。而遥捎趙in系统使用者和管理者普遍缺乏安全防范意识，一台win系统上的堆栈溢出，如果被恶意利用，将导致整个机器被黑客所控制，进而可能导致整个局域网落入黑客之手。在微软的产品iis server4.0中就被发现存在一种被称为&ldquo;非法htr请求&rdquo;的缺陷。据微软称，此缺陷在特定情况下会导致任意代码都可以在服务器端运行。黑客可以利用这一漏洞对iis服务器进行完全的控制，而实际上许多电子商务站点恰恰是基于这套系统的。</p><p>　　■ 黑客如何搅乱缓存</p><p>　　下面让我们了解一下缓存溢出的原理。众说周知，c语言不进行数组的边界检查，在许多运用c语言实现的应用程序中，都假定缓冲区的大小是足够的，其容量肯定大于要拷贝的字符串的长度。然而事实并不总是这样，当程序出错或者恶意的用户故意送入一过长的字符串时，便有许多意想不到的事情发生，超过的那部分字符将会覆盖与数组相邻的其他变量的空间，使变量出现不可预料的值。如果碰巧，数组与子程序的返回地址邻近时，便有可能由于超出的一部分字符串覆盖了子程序的返回地址，而使得子程序执行完毕返回时转向了另一个无法预料的地址，使程序的执行流程发生了错误。甚至，由于应用程序访问了不在进程地址空间范围的地址，而使进程发生违例的故障。这种错误其实是编程中常犯的。</p><p>　　一个利用缓冲区溢出而企图破坏或非法进入系统的程序通常由如下几个部分组成：</p><p>　　1．准备一段可以调出一个shell的机器码形成的字符串，在下面我们将它称为shellcode。</p><p>　　2．申请一个缓冲区，并将机器码填入缓冲区的低端。</p><p>　　3．估算机器码在堆栈中可能的起始位置，并将这个位置写入缓冲区的高端。这个起始的位置也是我们执行这一程序时需要反复调用的一个参数。</p><p>　　4．将这个缓冲区作为系统一个有缓冲区溢出错误程序的入口参数，并执行这个有错误的程序。</p><p>　　通过以上的分析和实例，我们可以看到缓存溢出对系统的安全带来的巨大威胁。在unix系统中，使用一类精心编写的程序，利用suid程序中存在的这种错误可以很轻易地取得系统的超级用户的权限。当服务程序在端口提供服务时，缓冲区溢出程序可以轻易地将这个服务关闭，使得系统的服务在一定的时间内瘫痪，严重的可能使系统立刻宕机，从而变成一种拒绝服务的攻击。这种错误不仅是程序员的错误，系统本身在实现的时候出现的这种错误更多。如今，缓冲区溢出的错误正源源不断地从unix、windows、路由器、网关以及其他的网络设备中被发现，并构成了对系统安全威胁数量最大、程度较大的一类。</p><p>&nbsp;</p>]]></description><category>DDOS攻击/Ddos</category><comments>http://yezishell.cn/ddos/68/#comment</comments><wfw:comment>http://yezishell.cn/</wfw:comment><wfw:commentRss>http://yezishell.cn/feed.asp?cmt=68</wfw:commentRss><trackback:ping>http://yezishell.cn/cmd.asp?act=tb&amp;id=68&amp;key=2c1c6efa</trackback:ping></item></channel></rss>
