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/

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

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

(0)
上一篇 2022年7月11日 下午11:46
下一篇 2022年7月11日 下午11:46


相关推荐

  • eclipse 字体大小设置

    eclipse 字体大小设置窗口 Window 首选项 Preferences 常规 General 外观 Appearence 颜色与字体 ColorsAndFon 在右边的对话框里选择 Java JavaEditorTe 点击出现的修改 Change 按钮 可以设置显示在在主窗体中程序的字体大小 设置完之后点击右下角的应用 Apply 最后点击确定 OK

    2026年3月18日
    1
  • 设计模式——门面模式「建议收藏」

    设计模式——门面模式「建议收藏」今天我们继续来学习前面没有学完的结构型设计模式中的一种:门面模式。门面模式也是一种不太常用的设计模式。所以,我们今天依旧是了解为主,暂时不去深入的学习。概述门面模式:(FacadeDesignPattern)门面模式也叫外观模式,门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。门面模式原理和实现也比较简单,应用场景也比较明确,主要在接口设计方面使用。何时使用:解决易用性问题。解决性能问题。解决分布式事务问题。UML类图:角色组成:门面角色:客户端调用这个

    2025年6月6日
    5
  • dhcp服务器异常怎么修复,DHCP服务异常(图文)

    dhcp服务器异常怎么修复,DHCP服务异常(图文)导读 DHCP 服务异常 下面就是 191 路由网整理的网络知识百科 来看看吧 大家好 我是 191 路由器网小编 上述问题将由我为大家讲解 DHCP 服务异常的原因及解决方法 1 关闭 DHCP 服务 重启路由器 再开启 DHCP 服务 还原默认值 2 按 保持 5 秒 路由器的重置 RESET 按钮之后 等到所有的指示灯一起亮 重置成功 3 重置成功之后 还需要再对路由器设置一下 有向导 因为此时已还原到出厂默

    2026年3月16日
    2
  • 矩阵的对数运算公式_对数(运算层面)

    矩阵的对数运算公式_对数(运算层面)在上一个版本的教材 对数函数位于不等式的前面 可以说是让人第一次感受到高中数学难度的内容 说句题外话 很多对高中数学乃至数学整体的误解来源于此 上次的文章介绍了指数运算 指数函数和幂函数 而这次介绍的对数函数可以视为是指数函数的逆运算 对数的定义是其中称为底数 称为真数 有些读者可以发现 对数和方根都可以视为乘方的逆运算 为什么实数的加法和乘法只有一种逆运算 而乘方有两种 原因就是乘方

    2026年3月18日
    1
  • pycharm配置python2.7.6环境_pycharm如何配置python环境

    pycharm配置python2.7.6环境_pycharm如何配置python环境pycharm 配置 python 环境的方法是 1 依次点击 File ProjectInter 2 点击 ShowAll 选择 ExistingEnvi 3 选择 python 的安装路径 点击 OK 即可 配置方法 推荐学习 Python 入门教程 1 打开软件 依次点击 File Settings Project ProjectInter

    2026年3月27日
    3
  • mse均方误差计算公式_视觉SLAM十四讲实践之真实轨迹和估计轨迹均方根误差「建议收藏」

    mse均方误差计算公式_视觉SLAM十四讲实践之真实轨迹和估计轨迹均方根误差「建议收藏」为了理解RMSE首先介绍一些统计学的概念,然后介绍SLAM领域里面的计算精度ATE和RPE的用法。中位数一组数据按大小顺序排列,位于最中间的一个数据(当有偶数个数据时,为最中间两个数据的平均数)叫做这组数据的中位数。用中位数作为一组数据的代表,可靠性不高,但受极端数据影响的可能性小一些,有利于表达这组数据的“集中趋势”。众数几组数据中出现次数最多的那个数据,叫做这批数据的众数。用众…

    2026年4月19日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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