DDoS攻击工具HOIC分析

DDoS攻击工具HOIC分析本文是绿盟科技安全+技术刊物中的文章,文章对拒绝服务攻击工具—”HighOrbitIonCannon”的技术性分析。HOIC是一款用RealBasic开发可移植的多平台拒绝服务攻击工具,该工具虽然对使用者的水平…

大家好,又见面了,我是你们的朋友全栈君。

本文是绿盟科技安全+技术刊物中的文章,文章对拒绝服务攻击工具—”High Orbit Ion Cannon” 的技术性分析。HOIC 是一款用RealBasic 开发可移植的多平台拒绝服务攻击工具,该工具虽然对使用者的水平有较高要求,需要了解HTTP 协议本身,但由于在DDoS 攻击来源中具有一定代表性,有必要对其分析并加以防范。本文尝试通过技术性分析,探讨相应的防范措施。

目前针对企业的互联网攻击日趋频繁,且攻击形式不断更新,但最常见的形式还是DDoS。绿盟科技威胁响应中心,通过对安全事件的分析了解到,很多攻击者都采用了一种称为“High Orbit Ion Cannon”的工具,这种工具可以引发拒绝服务攻击。

作为应对措施之一,行业中常见的形式是建立威胁响应机制,以提供及时且行之有效的攻击防护分析及建议。本文着重分析了这个工具,并探讨了防范措施,从而避免或降低危害及损失。

概述

HOIC(The high orbit ion cannon)是一款基于HTTP 协议开源的DDOS 攻击工具,可用于内部网络或者外部服务器的安全性和稳定性的测试等等。HOIC 具有以下特点:

  • 高速多线程的HTTP 洪水攻击。
  • 一次可同时洪水攻击高达256 个网站。
  • 内置脚本系统,允许自行修改设置脚本,用来阻挠DDoS 攻
  • 击的防御措施,并增加DOS 输出。
  • 简单且易于使用的界面。
  • 可移植到Linux/ Mac。
  • 能够选择攻击的线程数。
  • 可设置三种攻击强度:低,中,高。
  • 用REALbasic 这种极其书面的语言写成,简单易修改。

关键功能界面

TARGETS 这里是参数的设定,包括强度和脚本的选择。实际上URL 这里可以不输入任何东西,直接在扩展名为.hoic 的攻击脚本中指定多个目标URL,这样更灵活。如果URL 处保持为空,在后续操作中会有一个警示信息出现,直接确定,不必理会它。


列表为已经添加的攻击目标URL 信息、强度等级、脚本信息和状态。“THREADS”为线程数量,“可以在THREADS”处点击左右键头调整并发线程数,建议有几个CPU 或有几个核,就设几个并发线程数,多了没有意义。此处程序实现上有BUG,没有检查线程数的下限,比如可以下调至-1,此时没有任何攻击报文发送出去,因为流程根本不会到达下面那个for 循环内部:

表1



Dim i as integer

for i = 0 to Val( edtThreads.Text )-1

threads.Append( New attackThread )

threads( threads.Ubound ).Run

Next

目标列表显示攻击目标信息,“OUTPUT”显示攻击流量数据,OUTPUT 处的字节数对应全局变量TotalBytesSent,是动态递增的。

关键功能对应源码

点击”FIRE THE LAZER”之后,程序会启动线程框指定个数的线程用来攻击服务器,并且启动tmTurbo 控制器,用来不断通过脚本来更新Headers。
表2 代码段省略

attackThread // 循环遍历列表中的所有目标主机,然后根据全局变量powerFactor( 对应LOW、MEDIUM 和HIGH) 的不同以不同的两次攻击报文之间的休眠时间发送攻击数据包,并且不断在主界面同步显示发送的流量。

表3 代码段省略

HOIC 本身只是一个DoS 框架程序,真正的DoS 攻击行为通过扩展名为.hoic 的攻击脚本指定,离开这些.hoic 文件,HOIC本身什么也干不了。.hoic 脚本文件必须与
HOIC 主程序位于同一目录,否则会找不到。脚本也是用RealBasic 写成,通过Generic函数可以看到程序会以RbScript 类来执行脚本文件,脚本文件可以影响到程序内的变
量值。例如程序调用下面脚本后,所发送的攻击数据包就会根据我们自定义的脚本中需要构建的HTTP 请求数据块配置上附带的信息,进行攻击。服务器会根据自定义的数
据块信息把程序发送的数据包识别为正常的数据包。


下面这些都是HOIC 主程序预定义并使用的全局变量,可以在.hoic 脚本中直接使用: Headers 、PostBuffer、powerFactor、URL、UsePost

表4  代码段省略

Hoic2.1(dev) 作者由于呼吁大家攻击一个司法网站,发布此版本时提供了新脚本。

此脚本在多个数据块中随机调用Array 中的信息,可以用来降低攻击被检测的可能性,提高攻击效果。

表5  代码段省略

HOIC 2.1(dev) 版随包自带了四个.hoic文件:

  • DutchFreedom.hoic
  • GenericBoost.hoic
  • user-agent-test.hoic
  • visa_stress.hoic

DutchFreedom.hoic 是用来攻击http://www.om.nl/ 司法网站的,为LOIC 出气。GenericBoost.hoic 相当于一个.hoic模板, 黑客们可以在此基础上编写自己的.hoic 文件。


user-agent-test.hoic 用来演示通过.hoic 指定”User-Agent”。


visa_stress.hoic,顾名思义,在攻击http://visa.via.infonow.net/。

黑客可以建立一个网站向外发布各种.hoic文件,别人只要下载黑客编写的.hoic文件并加载到HOIC 中,就可以进行相应的DoS 攻击,甚至不用输入目标URL。如果用户设置添加的攻击URL 与脚本中指定的目标URL 不一样,此时发起攻击后,会先去访问用户设置添加的攻击URL,提交6 次同样的HTTP 请求,然后再去DoS 脚本中设定的地址,会抑制前述对话框中用户输入的URL 从此不再攻击用户自己设置的URL。这个设计不知是HOIC 作者有意为之还是无心插柳,总之结果很险恶,因为DutchFreedom.hoic 正是自己指定了目标URL,并且还是随hoic.zip 自带的。很多小白们使用HOIC 进行DoS 攻击,指定DutchFreedom.hoic,他们最终都参与攻击http://www.om.nl/,而不是攻击他们自己输入的目标URL。

HOIC 的作者水平比LOIC 的作者水平高,至少是个比较熟练的RealBasic 程序员,程序BUG 较少。HOIC 对使用者的水平有较高要求,需要了解HTTP 协议本身,如果不提供现成的.hoic 文件,很多使用者可能完全无法有效使用HOIC 进行DoS 攻击。而高水平的黑客们可以通过提供现成的.hoic 文件利用各种小白们一起DoS 指定目标。


与同类流行工具的对比及特点

本工具与同类拒绝服务攻击工具的区别和特点在于可允许用户定义目标主机的URL、攻击强度和自定义攻击脚本。当用户点击TURBO 按钮后, 程序会间隔时间不断地调用用户自定义脚本来生成自定义Headers。当用户点击FIRE THELAZERS 之后,程序会启动N 个线程用来攻击目标主机,在攻击过程中会根据用户选择的攻击强度的不同,以不同的时间间隔发送数据报,并且在界面上同步发送的数据包的流量。

可使用用户自定义Headers 来产生伪造的Header,比如自行添加修改sessionID 或cookie 信息可以对某些设置过滤或阻隔的站点同样进行有效攻击。优点是灵活多变,攻击的数据包都是正常的数据包,攻击请求都是有效的、无法拒绝的请求。缺点是不能攻击其他服务端口,此软件不支持代理,无法改变攻击来源使用真实IP 进行攻击,但可通过第三方软件实现代理伪造攻击来源。仍然需要大量、分散的主机在同一时间集中进行攻击效果才更显著。

软件在网络上流量特征

攻击来源只有一台主机,此主机发出大量的数据包,占用了大量流量,非常异常。

这台主机发包的目标主机只有一个,同时其发包的时间间隔极短,是典型的网络攻击行为。

攻击采用的是合法协议,均是通过HTTP 协议攻击目标主机固定端口,80 端口。

此种攻击和正常访问网站是一样的,只是瞬间访问量增加几十倍甚至上百倍。

软件历史沿革

The high orbit ion cannon Current Release: 2.1(dev)—2010/12/10
The high orbit ion cannon Current Release: 1.0—2010/12/09

相关文章请参看 DDoS HOIC分析

附录

文中一些代码段不便复制,如果您需要查看完整内容,请点击下载绿盟科技安全+技术刊物16期

obbe8a030e65e55d89548b33d9a93270eo01b4c65a363ccb19eefa2b2ad2e8464f

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/34549/viewspace-1348799/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/34549/viewspace-1348799/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157778.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 计算机网络体系结构及其简单通信技术_简述计算机网络体系结构的概念

    计算机网络体系结构及其简单通信技术_简述计算机网络体系结构的概念(一)通信的基本概念:我们知道,通信的目的是快速、有效地传递信息。下面我们先来简单地介绍一点通信的基本知识:现代信息的表达方式有文字、符号、声音、图像数据等多种形式。为了实现信息传递,通常以光、电等信号作为信息的载体。信号:信息的表达形式信道:信号传输的通道,是信号传输媒介的总称。信源:发出信息的地方信宿:信息传送的终点根据传送信息的信道(信号传输媒介)不同,通信可分为有线通信和无线

  • resque 遍历加载job目录下的类

    resque 遍历加载job目录下的类

  • TinyXML2使用总结「建议收藏」

    TinyXML2使用总结「建议收藏」TinyXML2是简单实用的开源的C++XML文件解析库,可以很方便的应用到现有的项目之中。 TinyXML2解析器相对TinyXML1在代码上是完全重写,使其更适合于游戏开发中使用。它使用更少的内存,更快,并使用更少的内存分配。xml类似数据库,一般来说对数据库有什么操作,那么对xml文件也能实现什么操作。数据库增删查改对应xml文件就是新建xml文件…

  • 推荐 20 款 IDEA 主题!「建议收藏」

    推荐 20 款 IDEA 主题!「建议收藏」官方对主题模块的介绍作为一名开发人员,您需要使用大量文本资源:编辑器中的源代码、搜索结果、调试器信息、控制台输入和输出等等。颜色和字体样式用于格式化这个文本,并帮助您更好地理解它一目了然…

  • rwx

    rwx常用的linux文件权限:444r–r–r–600rw——-644rw-r–r–666rw-rw-rw-700rwx——744rwxr–r–755rwxr-xr-x777rwxrwxrwx从左至右,1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9数字代表其他用户的权限。而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写…

  • 常量字符串过长的解决办法_java编译异常和运行异常

    常量字符串过长的解决办法_java编译异常和运行异常如果使用String str = “这是一个很长很长很长 你需要的字符串。”; 出现异常不能正常编译运行时,可以使用下方:StringBuilder sb = new StringBuilder();sb.append(“这是一个很长很长”);sb.append(“很长 你需要的字符串”);字符串太长或字符串其他情况下可使用 : StringBuilder sb = new StringBuilder()…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号