我们的密码破解工具一共分为如下六个部分,前面四个部分我们都有在之前的文章中介绍过了

  • 用户图形界面——GUI编程
  • 密码字典获取——Excel文件读取
  • 数据库类——MySQL、Oracle和SQL server
  • 邮件类——IMAP、POP3和SMTP
  • 文件传输类——FTP
  • 运维类——SSH

今天我们再将剩下来的ssh、ftp和SQL server协议的登录过程模拟出来看一看。

SSH登录验证

SSH的登录需要我们安装一个paramiko第三方模块,安装命令:

pip install paramiko

我们的登录验证代码是这样的

import paramiko

server_ip = '192.168.106.1'
port = 22
user = 'admin'
password = 'admin'
print("=======破解SSH协议========")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
ssh.connect(hostname=server_ip, port=port, username=user, password=password)
print("用户名:%s,密码:%s登录成功\n" % (user, password))
except:
print("用户名:%s,密码:%s无法登录成功\n" % (user, password))

从代码中看出我们要验证SSH用户名密码需要四个参数:服务器地址、服务器端口、用户名和密码。输出用户名密码的验证结果

FTP登录验证

FTP连接可以直接使用python内置模块——ftplib,连接过程编码如下:

import ftplib

server_ip = '127.0.0.1'
port = 21
user = 'admin'
password = 'admin'
print("=======破解FTP协议========")

ftp = ftplib.FTP()
ftp.connect(server_ip, port)
try:
ftp.login(user, password)
ftp.quit()
print("用户名:%s,密码:%s登录成功\n" % (user, password))
except:
print("用户名:%s,密码:%s无法登录成功\n" % (user, password))

从代码中看出我们要验证FTP用户名密码需要四个参数:服务器地址、服务器端口、用户名和密码。输出用户名密码的验证结果

SQL server登录验证

连接SQL server数据库需要我们安装第三方模块——pymssql,安装命令如下:

pip install pymssql

安装完成后,我们的用户名密码验证编码如下:

import pymssql

server_ip = '192.168.106.100'
port = '51502'
user = 'sa'
password = '123456'
print("=======破解SQL server协议========")
try:
pymssql.connect(server_ip, user, password,port=port)
print("用户名:%s,密码:%s登录成功\n" % (user, password))
except :
print("用户名:%s,密码:%s无法登录成功\n" % (user, password))

同样是可以看到我们验证SQL server的用户名密码需要四个输入参数:服务器地址、服务器端口、用户名和密码。输出用户名密码的验证结果

总结

接下来我们同样总结一下这三个协议的输入输出参数。

经过两天的时间对协议的连接梳理,我们发现所有的协议破解都是需要四个输入参数:服务器地址、服务器端口、用户名和密码。但是对于邮件协议和其它网络协议不一致的地方在于它们的用户名需要符合特殊的格式。

这样梳理之后,我们发现我们的密码破解工具输入参数应该是五个,除了前面说的服务器地址、服务器端口、用户名和密码以外,再添加一个破解的协议类型。输出为破解结果。

太实用了!自己动手写软件——SSH、FTP和SQL server的密码破解的更多相关文章

  1. 太实用了!自己动手写软件——我们的密码PJ器终于完成了

    之前我们完成了密码破解工具的界面,今天我们来看看功能实现吧. 目录 编码 提交——功能实现 开始破解——功能实现 读取密码字典 选择协议并执行破解动作 POP3协议的破解函数 IMAP协议的破解函数 ...

  2. SQL 数据库 学习 003 什么是数据库? 为什么需要数据库?是不是所有的软件都是用Sql Server?

    什么是数据库? 为什么需要数据库? 是不是所有的软件都是用Sql Server? 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Exp ...

  3. 太实用了!自己动手写软件——GUI编程

    这几天我有一个想法就是将我之前做测试写的一些协议脚本(如:ssh.FTP.SMTP.MySQL.Oracle等)综合在一起做一个密码PJ器,这么多的协议放在一起,每个协议都有自己特殊的参数,如果还是和 ...

  4. SQL Server Log文件对磁盘的写操作大小是多少

    原文:SQL Server Log文件对磁盘的写操作大小是多少 SQL Server 数据库有三种文件类型,分别是数据文件.次要数据文件和日志文件,其中日志文件包含着用于恢复数据库的所有日志信息,SQ ...

  5. 使用PD(Power Designer)设计数据库,并且生成可执行的SQL文件创建数据库(本文以SQL Server Management Studio软件执行为例)

    下载和安装PD: 分享我的软件资源,里面包含了对PD汉化包(链接出问题时可以留言,汉化包只能对软件里面部分菜单栏汉化) 链接:https://pan.baidu.com/s/1lNt1UGZhtDV8 ...

  6. 【原创】自己动手写工具----XSmartNote [Beta 3.0]

    一.前面的话 在动笔之前,一直很纠结到底要不要继续完成这个工具,因为上次给它码代码还是一年多之前的事情,参考自己动手写工具----XSmartNote [Beta 2.0],这篇博文里,很多园友提出了 ...

  7. 【原创】自己动手写工具----XSmartNote [Beta 2.0]

    一.前面的话 在上一篇自己动手写工具----XSmartNote中,我简单介绍了这个小玩意儿的大致界面和要实现的功能,看了一下园子里的评论,评价褒贬不一,有人说“现在那么多云笔记的工具”,“极简版ev ...

  8. 【转】自己动手写SC语言编译器

    自序 编译原理与技术的一整套理论在整个计算机科学领域占有相当重要的地位,学习它对程序设计人员有很大的帮助.我们考究历史会发现那些人人称颂的程序设 计大师都是编译领域的高手,像写出BASIC语言的BIL ...

  9. 自己动手写 ASP.NET MVC 分页 part1

    学习编程也有一年半载了,从来没有自己动手写过东西,都是利用搜索软件找代码,最近偶发感慨,难道真的继续做码农??? 突发奇想是不是该自己动手写点东西,可是算法.逻辑思维都太弱了,只能copy网上的代码, ...

随机推荐

  1. C# 9.0 新特性之目标类型推导 new 表达式

    阅读本文大概需要 2 分钟. 呼~~,每次过完一个周末,写作就失去了动力,一两天才能缓过来.尽管如此,还是要坚持写好每一篇文章的.宁缺毋滥嘛,宁愿发文的频率低一点,也要保证文章的质量,至少排版不能差, ...

  2. 腾讯音乐Android工程师一面面试题记录,拿走不谢!

    最近参加了一次鹅厂音乐Android工程师面试,这里凭记忆记录了一些一面的面试题,希望能帮到正在面试的你! 1.Java调用函数传入实际参数时,是值传递还是引用传递? 2.单例模式的DCL方式,为什么 ...

  3. IP地址和端口

    IP地址是网络中计算机的唯一标识.没有IP地址,计算机无法接入互联网. IPv4地址32bit,用点分十进制表示,如202.38.64.3 IPv6地址128bit,用冒号分割十六进制表示,如2001 ...

  4. cb41a_c++_STL_算法_填充新值fill_generate

    cb41a_c++_STL_算法_填充新值fill_generatefill(b,e,v)fill_n(b,n,v),填充n个vgenerate(b,e,p)generate_n(b,n,p) gen ...

  5. EduSoho二次开发功能:单词本使用说明

    测试地址:http://shanxue.edusoho.site/ 管理账号:test 管理密码:123456 针对英语或其他语言进行单词展示,索引功能.可以针对单词进行最多三级的分类筛选,以及不限数 ...

  6. django 网站域名解析 IP绑定 新建站 新域名

    备案成功后,我们要用域名来访问服务器,这个不仅要修改nginx的配置文件,还要设置域名的解析,下面是我的一个调试经验过程:直接上图了. 1.问题查找

  7. django OperationalError: unable to open database file 创建数据库

  8. Perl入门(一)Perl的基本类型及运算符

    在学习Perl的基础之前,还是希望大家有空去看以下Perl的简介.百度百科 一.Perl的基本类型 Per的基本类型分为两种:数值型和字符串型. 数值型可细分为 整数型.如123. 浮点型.如123. ...

  9. Elasticsearch修改分词器以及自定义分词器

    Elasticsearch修改分词器以及自定义分词器 参考博客:https://blog.csdn.net/shuimofengyang/article/details/88973597

  10. tap4fun(成都尼必鲁)--2020春招实习

    笔试 可能是我做过最简单的笔试了,只有选择填空,而且难度都不是很大,没啥印象了,考点和其他公司的笔试都差不多. 一面(技术面) 具体的不太记得了,因为这是我很后面面的了,所以问题基本都是那几个问题,都 ...