DDOS浅谈 (3)

最常见的消耗cpu攻击为ssl攻击。在ssl协议握手过程中需要使用非对称密钥算法进行加解密运算,而非对称加解密运算又十分消耗cpu资源,所以ssl协议成了攻击者实行DOS攻击的乐土。攻击者可以通过反复不断地进行ssl协商来耗尽目标cpu资源,以达到拒绝服务的目的

经典的SSL协商DOS攻击工具:thc-ssl-dos

 

3、攻击应用资源型:

  一些应用程序可能自身就存在拒绝服务漏洞,此时不用大量的僵尸主机,只需要使用一台设备向目标程序发送指定恶意代码就可使目标服务程序崩溃,以此达到拒绝服务攻击的目的。

 

4、攻击场景举例(彩蛋!  站在攻击者视角来进行一次DDOS攻击,请勿用于实际环境):

①、DNS攻击:

小明想让某小区不能上网。但由于自己手头带宽资源有限,没有能力来堵塞小区出口带宽。于是小明就想,大家上网除了要使用网络外还需要什么呢?对!DNS服务器!而且小区用户的DNS大多是使用DHCP的方式来获取的,那就是说有很大概率他们用的是同一台服务器,而且这台服务器的地址很容易获取到(假设这里的DNS服务器地址是1.1.1.1)。

现在被攻击目标就确定了,只需要把这台DNS服务器搞定就可以搞定一片用户。那么这台DNS服务器该怎么拿下呢? 渗透?一时半会儿恐怕搞不定。。。 社工?好像有点难度。。。 拒绝服务?好像可以琢磨琢磨。。。

小明想,DNS的正常业务逻辑是提供域名解析服务,那只需要让它超负荷工作就能起到拒绝服务攻击的目的了呢。那怎么才能让它超负荷工作呢?正常情况下DNS服务器收到一个查询请求后先看是否能命中自己的缓存,如果不命中才会向上级DNS进行查询。。。就是这!DNS的缓存机制缓解了它很大一部分压力,我只需要让它的缓存机制失灵就可以增大它的压力了!于是小明使用多台肉鸡向该DNS服务器疯狂发送不同域名的解析请求,导致该DNS服务器的缓存不断被刷新,而大量解析请求不能命中缓存从而必须消耗额外的资源进行迭代查询,最终导致这台DNS不堪重负不能及时处理正常的业务请求。

DDOS浅谈

随后小区居民纷纷向运营商投诉宽带不给力,网太卡甚至网不通。(网络工程师们哭晕在厕所,又躺枪!)

 

②、WEB攻击

小明这次又瞄上了某网站,为了让用户不能正常的访问该网站小明真是挠破了头,侦查了半个月也没找到可以渗透的点。于是小明决定来个鱼死网破,直接D它!

还是由于上面那个原因,小明这种个体户手里的带宽资源比较有限,打大流量的DDOS不太现实。然后小明就想了,虽然我手里的肉鸡都比较“瘦”,但麻雀虽小五脏俱全啊,它再“瘦”也总有65535个端口吧! 打打慢连接攻击消耗消耗目标设备的内存还是可以的嘛!

小明想,既然目标提供的是web服务,那只需要和目标建立HTTP后不撒手就好了。在HTTP的头部信息中正好有一种头部信息可以用在这里,那就是Content-Length。当web服务器收到含有Content-Length的请求时,服务会将该字段的值作为http请求包的body长度,利用这个特点就可以长时间与web服务器保持连接。如果目标服务器上新来的全是这种只握手不撒手的连接,那用不了多久服务端的内存资源就耗尽了。想到这里小明还有有点小激动呢。。。

心动不如行动,于是小明将手里肉鸡的每个端口都尽可能的利用起来,向目标发送一个Conetent-Length为10000的POST请求,然后将POST body以非常缓慢的速度一个字节一个字节的向web服务器发送。此时,目标服务器需要一直维持与小明的连接来等待其数据传输结束。由于小明一台肉鸡就可产生几万的并发,那么没用多少台肉鸡就成功将目标服务器内存撑满(假设目标服务器内存为32G,32G内存最大也就支持几十万并发),最终导致目标服务器不能与新来的正常用户建立连接。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjygj.html