通用数据库弱密码检测解决方案

article/2025/8/20 1:25:30

通过加密解密算法检验数据库用户密码是否存在弱密码问题,可适用于主流的数据库产品(Oracle,MySQL,Postgres,SQLServer,达梦8,人大金仓8),解决传统通过碰库方式检测的效率低下和用户被锁的问题。

01

数据库密码存储图解说明

工具通过密码生成算法的方式,以最高的计算效率分析弱密码问题。以下是工具的性能效率测试统计。

测试项目

算法执行次数

执行时间(秒)

验证速率(次/秒)

备注

Oracle10g

857,375

08

107,171

破译容易

Oracle11g

857,375

12

71,447

破译容易

Oracle12c

9,025

55

164

Oracle19c

9,025

52

173

MySQL5

857,375

06

142,895

破译容易

MySQL8

9,025

31

291

Postgres_md5

857,375

08

107,171

破译容易

Postgres_scram

9,025

79

114

DM8

857,375

06

142,895

破译容易

SQLServer

857,375

08

107,171

破译容易

02

详细功能说明

在线模式:

通过online.json配置数据库连接信息,自动连接数据库并查询1次数据库用户表(对数据库性能无任何影响)获取用户信息后在本地进行checksum计算和校验,checksum匹配则说明密码匹配,记录匹配用户信息并最后生成报告,所有运算在本地服务器。

离线模式:

通过offline.json配置离线获取的用户和checksum信息,全部在本地进行checksum计算和校验,checksum匹配则说明密码匹配,记录匹配用户信息并最后生成报告,所有算力在本地服务器。

03

安装和部署

操作系统:CentOS Linux 6,7,8

软件包:libblkid libblkid-dev libblkid-devel openssl openssl-devel

JDK版本:jdk1.8以上

软件包安装:

# yum install libblkid libblkid-dev libblkid-devel openssl openssl-devel

创建用户

# useradd -g disk dbpass
# passwd dbpass

解压文件

# unzip -d /usr/local dbpass.zip# chown -R dbpass:dbpass /usr/local/dbpass

许可证

# su - dbpass$ cd /usr/local/dbpass$ ./run.sh license

00DBD8843BDC41152C72B370FBC846A68FF70F29

记录并提交获取用户使用授权码,请妥善保持

6BCCF0A6AB0B62F473B466933AC8E6114947BF6D

获取的授权码用于程序执行

04

配置文件说明

参数配置文件 param.json

[{"PARALLEL":8}]

参数说明

PARALLEL:并行参数,同时运行的线程数量。

连接配置文件 online.json

[{"NAME":"192.168.2.199_oradb","JAR_PATH":"/root/ojdbc6.jar","DRIVER":"oracle.jdbc.driver.OracleDriver","URL":"jdbc:oracle:thin:@//192.168.2.199/oradb","USER":"system","PASSWD":"abc123"}{"NAME":"192.168.2.199_3306","JAR_PATH":"/root/mysql-connector-java-5.1.49.jar","DRIVER":"com.mysql.jdbc.Driver","URL":"jdbc:mysql://192.168.2.199:3306/d1?useSSL=false","USER":"u1","PASSWD":"abc123"}]

参数说明

NAME:连接任务名称,可为任意易于识别字符串,可为空值。

JAR_PATH:数据库jdbc jar包完整路径,用于连接自动加载。

DRIVER:数据库jdbc驱动名称

URL:数据库连接串

USER:数据库用户

PASSWD:数据库密码

弱密码配置文件 pass.json(支持正则表达式)

[{"NAME":"","TYPE":"TEXT","VALUE":"abc123"}{"NAME":"","TYPE":"REGEX","VALUE":"abc[0-9a-bA-Z]{1,2}"}]

参数说明

NAME:密码规则名称,可为任意易于识别字符串,可为空值。

TYPE:TEXT为字符串密码,REGEX为正则表达式密码集。

VALUE:具体密码串或正则表达式值

离线checksum文件 offline.json(通过数据库查询语句获取用户和checksum值)

[{"NAME":"test","USER":"u1","CHECKSUM":"XXXXXXXXXXXXXXX"}{"NAME":"test","USER":"u1","CHECKSUM":"YYYYYYYYYYYYYYY"}]

参数说明

NAME:离线用户测试任务名称,可为任意易于识别字符串,可为空值。

USER:数据库用户名称。

CHECKSUM:数据库密码checksum值。

附不同数据库厂家,用户和checksum的查询语句

Oracle:

select name, nvl(password, spare4) checksum from sys.user$ where type# = 1

MySQL:

select concat_ws("@", user, host) user, hex(authentication_string) checksum from mysql.user where authentication_string is not null

SQL Server:

SELECT name, password_hash FROM sys.sql_logins

Postgres:

select rolname, rolpassword from pg_catalog.pg_authid where rolpassword is not null

DM:

select a.username, b.password from dba_users a, sysuser$ b where a.user_id = b.id

kingbase:

select rolname, rolpassword from pg_catalog.sysauthid where rolpassword is not null

05

任务运行

/usr/local/dbpass/run.sh online  <param.json> <online.json>  <passwd.json> <licence string>

在线模式:

$ /usr/local/dbpass/run.sh ONLINE param.json online.json passwd.json C474517AF70C9DD0DB5E14E6D4F6B91F98829AF7

/usr/local/dbpass/run.sh offline <param.json> <offline.json> <passwd.json> <licence string>

离线模式:

$ /usr/local/dbpass/run.sh OFFLINE param.json offline.json passwd.json C474517AF70C9DD0DB5E14E6D4F6B91F98829AF7

06

运行和生成excel报告

$ /usr/local/dbpass/run.sh ONLINE param.json online.json passwd.json C474517AF70C9DD0DB5E14E6D4F6B91F98829AF72022-03-29 10:58:02 Thread started, name: 192.168.2.199_oradb2022-03-29 10:58:04 Thread done, name: 192.168.2.199_oradb, status: 0, total Computed: 35592, total User count: 24, total Found user: 0, total User error: 0.Generate weak password report: online_report_2022_03_29_10_58_08.xlsx


任务汇总表

弱密码样式配置表

被检出弱密码信息表

微信联系方式:13533073162


http://chatgpt.dhexx.cn/article/wviZhpJw.shtml

相关文章

使用Hydra破解弱密码

实验目的&#xff1a; 使用kali的Hydra工具破解CtenOs7的密码&#xff1b;. 实验环境&#xff1a; 系统: CentOs7 kali CentOs7用户名1&#xff1a;root 密码&#xff1a;123456 kali用户名&#xff1a;kali 密码&am…

Tomcat 弱密码爆破 漏洞复现

Tomcat 弱密码爆破 漏洞复现 一、漏洞描述二、漏洞影响三、漏洞复现1、环境搭建2、漏洞复现 四、漏洞POC五、参考链接 一、漏洞描述 Tomcat有一个管理后台&#xff0c;其用户名和密码在Tomcat安装目录下的conf\tomcat-users.xml文件中配置&#xff0c;不少管理员为了方便&…

密码套件 and 弱密码套件漏洞

目录 what is 密码套件 (TLS cipher suit) potocol版本 SSL vs TLS key exchange Authentication : Cipher&#xff1a; MAC&#xff1a; 常见密码套件 什么是“弱密码套件”漏洞 what is 密码套件 (TLS cipher suit) 当一个client端browser试图去访问webapp的时候&am…

linux弱密码检测

1.安装一个john软件包用来检测弱密码 2.进入桌面可以看到 3.使用mkdir /soft 在/下创建一个soft的文件夹;然后使用mv命令:mv john-1.8.0.tar.xz /soft/ 把john包移动到soft下面: 4.在soft的文件夹下使用:tar -xf john-1.8.0.tar.xz 解压缩: 5.进入到src目录下: 6.ma…

Tomcat控制台弱密码漏洞

文章目录 一、漏洞介绍1.1 漏洞原理1.2 影响版本1.3 触发条件 二、环境搭建2.1 环境信息2.2 tomcat配置2.3 配置漏洞环境 三、攻击过程3.1 控制台弱密码3.2 冰蝎控制 四、漏洞修复 一、漏洞介绍 1.1 漏洞原理 Tomcat支持后台部署War文件&#xff0c;默认情况下管理页面仅允许本…

前端JS弱密码验证

前端JS弱密码验证 前言JS文件使用姿势尾巴 前言 最近在学习uniapp开发&#xff0c;开发过程中要对用户密码做弱密码校验&#xff0c;然后总结了下常用的弱密码规则和校验方式&#xff0c;通过封装成js文件来提供一系列验证方法&#xff0c;下面就直接看封装后的leak-pwd-check…

信息安全学习3. 常用的攻击手段 弱密码

信息安全学习3. 弱密码 一、概念二、Linux系统密码安全性设置1. 口令复杂度设置2. 生成复杂密码方法(1) 使用keepass开源密码管理软件(2) 使用OpenSSL命令生成随机字符串(3) 在Linux中使用pwgen(4) 使用一些在线网站生成随机密码 3. 弱密码校验破解工具John the ripper 三、一些…

在线摩尔斯密码加密解密工具

在线摩尔斯密码工具&#xff0c;可实现将英文字母数字等转换成摩尔斯密码以及将摩尔斯密码转换成英文与数字的功能。 工具链接&#xff1a;http://www.atoolbox.net/Tool.php?Id764 摩尔斯电码&#xff08;又译为摩斯密码&#xff0c;Morse code&#xff09;是一种时通时断的…

Morse code(摩尔斯电码-摩斯密码)

摩尔斯电码&#xff08;又译为摩斯密码&#xff0c;Morse code&#xff09;是一种时通时断的信号代码&#xff0c;通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年&#xff0c;发明者有争议&#xff0c;是美国人塞缪尔莫尔斯或者艾尔菲德维尔。 摩尔斯…

摩斯密码学习

摩斯密码&#xff08;morse code&#xff09;&#xff0c;是最普遍的密码&#xff0c;无人不知&#xff0c;无人不晓&#xff0c;但很复杂。 是一种图像化密码 O的来源&#xff1a;有三个— — — SOS&#xff1a;. . . — — — . . .

摩斯密码参照表

参考&#xff1a; A .&#xff0d; I . . R .&#xff0d;. 1.&#xff0d;&#xff0d;&#xff0d;&#xff0d; B &#xff0d;. . . J .&#xff0d;&#xff0d;&#xff0d; …

摩尔斯密码输出I LOVE YOU ,SOS

2叉树记忆摩斯密码 摩尔斯密码表 根据以上摩尔斯密码表我们可以分析出来I LOVE YOU相对应的国际摩尔斯密码为&#xff1a;… .-… — …- . -.-- — …- SOS求救的摩尔斯密码为… — …

摩尔斯电码笔记

文章目录 1. 前言2. 什么是摩尔斯电码&#xff1f;3. 摩尔斯电码是如何发明的&#xff1f;4. 摩尔斯电码还在使用吗&#xff1f;5. 如何快速记住6. 体验7. 形式表达8. 相关电影 1. 前言 最近突然想起之前学习过的莫斯密码已经忘记了&#xff0c;发现如果不实践的话&#xff0c…

【算法千题案例】每日LeetCode打卡——95.唯一摩尔斯密码词

&#x1f4e2;前言 &#x1f332;原题样例&#xff1a;唯一摩尔斯密码词&#x1f33b;C#方法&#xff1a;暴力法&#x1f33b;Java 方法&#xff1a;哈希集合 &#x1f4ac;总结 &#x1f4e2;前言 &#x1f680; 算法题 &#x1f680; &#x1f332; 每天打卡一道算法题&…

摩斯密码基础知识介绍

我嗯我可能闲的&#xff0c;就来看看摩斯密码这个著名的无线电编码是怎么回事~ 参考&#xff1a;百度百科https://baike.baidu.com/item/%E6%91%A9%E5%B0%94%E6%96%AF%E7%94%B5%E7%A0%81/1527853?fromtitle%E6%91%A9%E6%96%AF%E5%AF%86%E7%A0%81&fromid397016&fralad…

漫画:什么是摩尔斯电码?

摩尔斯电码是什么 摩尔斯电码&#xff08;Morse code&#xff09;&#xff0c;是1837年由美国人发明&#xff0c;本质上是一种对信息的编码&#xff0c;最初用于人们的远程通信。 那个时候&#xff0c;人们连电话都还没发明出来&#xff0c;更不用说手机和互联网了。人们远程通…

实验四:激光传感器实验,摩尔斯密码

注意&#xff1a;不要直视激光头&#xff0c;它会对你的眼睛造成很大的伤害。 注意&#xff1a;不要直视激光头&#xff0c;它会对你的眼睛造成很大的伤害。 注意&#xff1a;不要直视激光头&#xff0c;它会对你的眼睛造成很大的伤害。 OK&#xff0c;今天来讲一个稍微复杂…

摩斯密码加解密

摩斯密码又叫莫尔斯电码&#xff0c;摩斯电码 著名的SOS救难信号用莫尔斯电码表示为&#xff1a;...---...滴滴滴嗒嗒嗒滴滴滴 一、间隔时间 滴&#xff0c;1t&#xff0c;用.表示嗒&#xff0c;3t&#xff0c;用-表示滴嗒间&#xff0c;1t&#xff0c;不用表示字符间&#xff…

A : 摩斯密码

题目描述&#xff1a; 摩尔斯电码&#xff08;又译为摩斯密码&#xff0c;Morse code&#xff09;是一种时通时断的信号代码&#xff0c;通过不同的排列顺序来表达不同的英文字母、数字和标点符号。为了简单问题&#xff0c;去除所有的标点符号。 现在给你一段摩斯密码&#xf…

摩斯密码

摩斯密码&#xff0c;很多人肯定都听说过它的大名。但是多数人不了解它&#xff0c;认为这是个神一样的领域&#xff0c;难以企及。 但是我要告诉你&#xff0c;你如果想用这个密码日常聊天有些难&#xff0c;但是学两手来秀两手还是可以的。 比如说电影中经常出现的一个摩斯…