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/157777.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ghost备份系统有什么用_win备份和ghost备份的区别

    ghost备份系统有什么用_win备份和ghost备份的区别  Ghost(是GeneralHardwareOrientedSoftwareTransfer的缩写译为“面向通用型硬件系统传送器”)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16、FAT32、NTFS、OS2等多种硬盘分区格式的分区及硬盘的备份还原。俗称克隆软件。  1、特点:既然称之为克隆软件,说明其Ghost的备份还原是以硬盘的扇区为单位进行的

    2022年9月5日
    4
  • 孙鑫Java视频教程下载

    孙鑫Java视频教程下载刚刚学习Java。还没有入门。 孙鑫老师的这套教程还没有看完。把下载地址发上来,有兴趣的可以下来看看。 一共12集,每集大约2个半小时。讲得很详细,适合入门。 请用迅雷下载。 thunder://QUFodHRwOi8vdmlwLmlib29rOC5jb20vdmlkZW8vy+/2zkpBVkHO3sTRysIxMkNELzAxLnJhclpa|http://ww

    2022年5月13日
    43
  • MySQL基于日志还原数据

    MySQL基于日志还原数据

    2022年2月15日
    41
  • mysql如何做到读写分离_MySQL读写分离如何实现?

    主要说下读写分离,当我们的数据量很大时,数据库服务器的压力变大,这时候我们需要从架构方面来解决这一问题,在一个网站中读的操作很多,写的操作很少,这时候我们需要配置读写分离,把读操作和写操作分离出来,最大程度的利用好数据库服务器。读写分离的实现原理就是在执行SQL语句的时候,判断到底是读操作还是写操作,把读的操作转向到读服务器上(从服务器,一般是多台),写的操作转到写的服务器上(主服务器,一般是一台…

    2022年4月6日
    47
  • java类加载和初始化_java静态变量什么时候初始化

    java类加载和初始化_java静态变量什么时候初始化????Java学习路线配套文章:Java学习路线总结,搬砖工逆袭Java架构师(全网最强)????基础推荐:Java基础教程系列????实战推荐:SpringBoot基础教程????简介:Java领域优质创作者????、CSDN哪吒公众号作者✌、Java架构师奋斗者????????扫描主页左侧二维码,加入群聊,一起学习、一起进步????欢迎点赞????收藏⭐留言????目录一、类的加载与ClassLoader的理解1、加载2、链接3、初始化二、什么时候会发生类初始化1

    2022年8月11日
    3
  • H2内存数据库的函数「建议收藏」

    每个数据库为了使用者的查询简便性以及使用效率,都有专门提供一些函数给使用者进行使用,H2也同样如此,虽然没有oracle那么多强大的函数,但是一般需求的使用还是能够满足,下面就简单介绍下都有哪些函数一、函数的分类以及名称1、聚合函数(AggregateFunctions) AVGBOOL_ANDBOOL_ORCOUNTGROUP_CONCAT MAXMIN…

    2022年4月15日
    35

发表回复

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

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