哈喽,大家好,我是强哥。
不知道大家还记不记得强哥之前发的一篇文章:DDoS攻击让乌克兰断网,我也用DoS攻击把自己网站搞挂了,里面Diss了一个DoS的开源项目凭借花里胡哨的界面骗人。这个在3.15这个日子再拿出来鞭尸一下。
不过,今天强哥想要介绍的是另一款DoS开源项目。
当然了,首先还是要声明一点,介绍这个项目不是为了让大家学了去攻击别人的网站,而是想要让大家能够了解一些网络安全相关的知识,哪天被人用DoS攻击了,至少知道DoS是个什么玩意吧。
简介
哈哈哈,没错,项目的介绍就是这么简单。作者的README文件只给我们提供了一个YouTube的视频地址,而且可能是因为某些不可限力已经没法访问了。
不过大家既然能找到它,自然知道是个干什么的玩意儿。
项目结构
这个也很简单,就两个文件:
- headers.txt请求头配置信息
- hammer.py项目主代码,由python编写 别看就简简单单的两个文件,对于我们了解DoS攻击来说已经足够了。
反射攻击
这个项目强哥研究了一下,攻击方式也很刁钻,不但有使用直接攻击的方式硬钢目标主机,而且还通过反射攻击的方式进行双管齐下。
那么什么是反射攻击呢?要理解反射攻击,首先要理解什么是直接攻击。直接攻击就是攻击者拿自己的机子去攻击目标主机,这样的话,攻击者很容易被查到攻击的源头,虽然攻击者可以使用伪造源IP地址的方式(如使用IP代理池,这个强哥之前的文章也有提过:IP被封了,朋友让我帮忙下载……)进行隐藏,但更好的方式是使用反射攻击技术。
发射攻击又被称为DRDoS(分布式反射拒绝服务)攻击,是指利用路由器、服务器等设施对请求产生应答,从而反射攻击流量并隐藏攻击来源的一种分布式拒绝服务攻击技术。
项目原理
如上所述,项目写了两个方法,一个是直接攻击的方式,一个是反射攻击的方式。
首先直接攻击自不必多说,就是一个while(True)
的死循环不断的发送TCP请求,相关代码如下:
while True: packet = str("GET / HTTP/1.1\nHost: "+host+"\n\n User-Agent: "+random.choice(uagent)+"\n"+data).encode('utf-8') s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host,int(port))) if s.sendto( packet, (host, int(port)) ): s.shutdown(1) print ("\033[92m",time.ctime(time.time()),"\033[0m \033[94m <--packet sent! hammering--> \033[0m") else: s.shutdown(1) print("\033[91mshut<->down\033[0m") time.sleep(.1)
强哥这里重点说一下反射攻击。既然是反射,当然要有反射器了,这个项目主要用到了两个反射地址:
bots.append("http://validator.w3.org/check?uri=") bots.append("http://www.facebook.com/sharer/sharer.php?u=")
其实,这两个地址都是正规的网站地址,比如第一个就是W3C检查层叠样式表(CSS)文档和HTML或者XHTML文档中的CSS内容的网站。我们只要在链接参数uri
或者u
后跟上目标主机的地址,发送请求后,这两个网站就会对目标网站进行发起请求,检查网站的内容。
这个项目就是通过这种方式,借助第三方网站服务地址,然后外层包一个while(True)
死循环,巧妙的来隐藏自己,让反射网站攻击别人。
不过上面两个地址目前看着好像是都已经无法使用了……
学习
项目还是比较有学习价值的,特别是对于想要了解网络安全的小伙伴来说,一个好的项目真的是能够很快地提升我们对知识点的认知。
当然,有兴趣想具体学习项目代码的小伙伴,强哥设置个门槛,大家可以关注公众号「强哥叨逼叨」回复「hammer」获取到项目的具体地址。
项目代码仅供学习使用,毕竟目前项目能使用的方式只剩下直接攻击,直接用它,不但相当于把自己赤条条的暴露在被攻击者面前,而且完全没法实现所谓的攻击。
所以,大家且行且珍惜。遵纪守法,好好学习,不要是个东西,拿来就用。也是想让大家长个心眼,在这个3.15的特殊日子,学会提升自己的辨识能力,多关注强哥分享的文章才是硬道理。
好啦,今天就到这。