密码破解,大部分其实是通过枚举的方式,列出可能的密码,然后逐个尝试,直到找到真正的密码,有时也叫暴力破解。接下来,我们将举几个密码破解的例子。

密码破解例1--- OrakelCrackert

实验环境:Oracle 11g (Linux)

从数据字典中获得要破解的用户信息,本例中的要破解的用户是ZZ2。

1)         得到账户信息

SQL> select name, password, spare4 from sys.user$ where name = 'ZZ2';

NAME                           PASSWORD                       SPARE4

------------------------------ ------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ZZ2                            7F9F9BE075CE7FDF               S:C6F1AEE4FEA1505040BE0075534DE8F6D3B598822C7253B741A3D46ED75D

SQL>

注意PASSWORD、SPARE4对应的值。这些信息将用于破解。

2)         下载OrakelCrackert到你的台式机上

http://freeworld.thc.org/thc-orakelcrackert11g/thc-orakelcrackert11g.tar.gz

3)         启动破解

解压后双击thc-orakelcrackert11g.exe

4)         执行破解

输入下面的值
USERNAME= ZZ2

OLDSK3WL HASH=7F9F9BE075CE7FDF

SPARE4 HASH= C6F1AEE4FEA1505040BE0075534DE8F6D3B598822C7253B741A3D46ED75D(没有冒号及前面的值)

设置密码的长度。本例中为了方便实验,设置为2(本来就已知密码长度是2)

设置完成后 ,点击”Start”,不一会儿功夫,密码出来了,用户zz2的密码是wy(如下图所示)。

密码破解例2---使用ops_sse2破解Oracle的密码

环境

OS:LINUX

DB:Oracle 11G

1)         下载ops_sse2

[oracle@master1 db_base]$ wget http://conus.info/utils/ops_SIMD/ops_SIMD_linux86.tar

--2013-05-13 21:21:45--  http://conus.info/utils/ops_SIMD/ops_SIMD_linux86.tar

Resolving conus.info... failed: Temporary failure in name resolution.

wget: unable to resolve host address `conus.info'

[oracle@master1 db_base]$ wget http://conus.info/utils/ops_SIMD/ops_SIMD_linux86.tar

--2013-05-13 21:25:15--  http://conus.info/utils/ops_SIMD/ops_SIMD_linux86.tar

Resolving conus.info... 78.46.87.164

Connecting to conus.info|78.46.87.164|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 245760 (240K) [application/x-tar]

Saving to: `ops_SIMD_linux86.tar'

100%[==============================================================================================================================>]
245,760     83.3K/s   in 2.9s

2013-05-13 21:25:21 (83.3 KB/s) - `ops_SIMD_linux86.tar' saved [245760/245760]

2)         解压

[oracle@master1 db_base]$ tar -xf ops_SIMD_linux86.tar

3)         得到加密口令

SQL> select password from user$ where name='SYS';

PASSWORD

------------------------------

CEEFED71DA7851B3

SQL>

4)         编辑文件filename.txt

[oracle@master1 db_base]$ cat filename.txt

在文件中加入下面的内容

SYS:CEEFED71DA7851B3:MOT

SYS 是用户名

CEEFED71DA7851B3 是加密密码,从上面的查询中得到的

MOT 是实例名

5)         执行口令破解

[oracle@master1 db_base]$ ./ops_sse2 --hashlist=filename.txt

Oracle passwords (DES) solver 0.3 (SSE2) -- Dennis Yurichev <dennis@conus.info>

Compiled @ Mar  2 2013 06:19:03

username=SYS: 1 unsolved hash(es) left

Checking 1-symbol passwords for username SYS

overall progress=  0%

username=SYS: 1 unsolved hash(es) left

Checking 2-symbol passwords for username SYS

overall progress=  0%

SYS/MOT: Found password: WY

SYS:WY:MOT

密码很快被破解了。

密码破解例3---使用Checkpwd破解Oracle的密码

OS:Windows XP

DB:Oracle 10G

Checkpwd也是一款基于数据字典破解Oracle密码的工具。它也能破解SYS的密码。不过,如果密码的长度超过2位,它好像就不能很好破解(内置用户的默认密码除外)。可以使用这个工具校验Oracle账户密码的安全性。

下面的例子将把下载的Checkpwd解压到  C:\oracle_checkpwd_big

Step01:创建测试用户u1

SQL> create user u1 identified by u1;

用户已创建。

SQL>

用户的密码也是u1

Step02:得到用户的加密密码

本例中的参数解释:

checkpwd破解命令

system/wy用户名/密码

192.168.1.116:1521数据库服务器的IP地址和端口号

NBO 实例名

password_fi.txt口令文件,从解压文件中解压出来的

开始破解………………….

C:\oracle_checkpwd_big>checkpwd system/wy@//192.168.1.116:1521/NBO password_fi

.txt

Checkpwd 1.23 [Win] - (c) 2005-2007 by Red-Database-Security GmbH

Oracle Security Consulting, Security Audits & Security Trainings

http://www.red-database-security.com

initializing Oracle client library

connecting to the database

retrieving users and password hash values

disconnecting from the database

opening weak password list file

reading weak passwords list

checking passwords

Starting 1 threads

SYS has weak passwordKK[OPEN]

SYSTEM has weak passwordWY[OPEN]

U2     OK [OPEN]

U1 has weak passwordU1[OPEN]

OUTLN has weak passwordOUTLN[EXPIRED & LOCKED]

MGMT_VIEW      OK [EXPIRED & LOCKED]

MDSYS has weak passwordMDSYS[EXPIRED & LOCKED]

ORDSYS has weak password ORDSYS [EXPIRED & LOCKED]

CTXSYS has weak password CHANGE_ON_INSTALL [EXPIRED & LOCKED]

ANONYMOUS      OK [EXPIRED & LOCKED]

EXFSYS has weak password EXFSYS [EXPIRED & LOCKED]

DMSYS has weak password DMSYS [EXPIRED & LOCKED]

DBSNMP has weak password DBSNMP [EXPIRED & LOCKED]

WMSYS has weak password WMSYS [EXPIRED & LOCKED]

SYSMAN has weak password SYSMAN [EXPIRED & LOCKED]

XDB has weak password CHANGE_ON_INSTALL [EXPIRED & LOCKED]

ORDPLUGINS has weak password ORDPLUGINS [EXPIRED & LOCKED]

SI_INFORMTN_SCHEMA     OK [EXPIRED & LOCKED]

OLAPSYS has weak password MANAGER [EXPIRED & LOCKED]

MDDATA has weak password MDDATA [EXPIRED & LOCKED]

DIP has weak password DIP [EXPIRED & LOCKED]

SCOTT has weak password TIGER [EXPIRED & LOCKED]

TSMSYS has weak password TSMSYS [EXPIRED & LOCKED]

Done. Summary:

Passwords checked     : 8395247

Weak passwords found  : 19

Elapsed time (min:sec) : 0:58

Passwords / second    : 144746

C:\oracle_checkpwd_big>

破解出:

U1的密码是U1

SYS的密码是KK

SYSTEM的密码是WY

密码破解例4---使用orabf破解Oracle的密码

环境说明

OS:Windows XP

DB:Oracle 10G

orabf-v0.7.6是一款基于数据字典,破解Oracle密码的工具,也是Oracle密码破解目前最快的工具。它甚至能破解SYS的密码。功能非常强大,如果密码的长度很长,则需要花费很长的时间进行破解。

下面的例子将把下载的orabf-v0.7.6解压到C:\orabf-v0.7.6 

破解普通用户

Step01:创建测试用户u1

SQL> create user u1 identified by t5593;

用户已创建。

SQL>

Step02:得到用户的加密密码

SQL> select username,password from dba_users where username='U1';

USERNAME                      PASSWORD

------------------------------ ------------------------------

U1                            75789C9844E63228

Step03:根据加密密码破解用户u1的密码

C:\orabf-v0.7.6>orabf75789C9844E63228:U1

orabf v0.7.6, (C)2005 orm@toolcrypt.org

---------------------------------------

Trying default passwords...done

Starting brute force session using charset:

#$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_

press 'q' to quit. any other key to see status

current password: F6IPF

13656128 passwords tried. elapsed time 00:00:11. t/s:1153024

password found: U1:T5593

45964574 passwords tried. elapsed time 00:00:41. t/s:1110088

快速破解出用户U1的密码是T5593

 

破解SYS用户的密码

Step01:得到用户的加密密码

SQL> select username,password from dba_users where username='SYS';

USERNAME                      PASSWORD

------------------------------ ------------------------------

SYS                           CEEFED71DA7851B3

Step02:根据加密密码破解用户SYS的密码

C:\orabf-v0.7.6>orabf CEEFED71DA7851B3:sys

orabf v0.7.6, (C)2005 orm@toolcrypt.org

---------------------------------------

Trying default passwords...done

Starting brute force session using charset:

#$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_

press 'q' to quit. any other key to see status

password found: SYS:WY

921 passwords tried. elapsed time 00:00:00. t/s:1

快速破解出用户SYS的密码是WY

n   密码破解的防御

使用很多工具,轻而易举地就破解了Oracle用户的密码,说明破解Oracle的密码不是什么难事。那么如何不让别人轻而易举地破解或者获得Oracle的密码呢?有下面切实可行的措施:

?  登录延迟

“登录延迟”是一个自动化的过程,不需要DBA的干预,当用户第一、二、三次登录数据库失败时,系统没有什么异常。但是,当用户第四次登录失败时,Oracle并不会立马让用户尝试重新登录,而是延迟一段时间,然后才让用户登录,第五次,第六次……都是这样。“登录延迟”可以延缓密码破解的过程。

?  设置复杂的口令

1)  尽量设置较长的口令,口令的长度可最多达到30个字符。

2)  口令包括大小写

3)  口令包含数字

4)  口令包含多字节字符

5)  口令包含下划线(_)、 美元符号($)、井号(#)等特殊字符

6)  不要用单词作为口令

7)  密码不能和用户名不能相同

?  使用资源限制文件(Profile),制定口令管理策略

创建资源限制文件(例如limit_password),这个资源限制文件用于制定用户的口令策略。

SQL> CREATE PROFILE limit_password LIMIT

2  FAILED_LOGIN_ATTEMPTS 5

3  PASSWORD_LIFE_TIME 60

4  PASSWORD_REUSE_TIME 60

5  PASSWORD_REUSE_MAX 5

6  PASSWORD_LOCK_TIME 1/24

7  PASSWORD_GRACE_TIME 10;

Profile created

SQL>

例如,下面的两个参数就非常重要。:

FAILED_LOGIN_ATTEMPTS:允许登录失败的次数,超过指定的次数后,这个账号将被锁定。

PASSWORD_LIFE_TIME:口令的生存时间,如果在口令的生存时间内,用户没有修改过口令,则这个口令在生存时间到达之后将会失效。

?  通过UTLPWDMG.SQL,设置更严格的口令规则设置

UTLPWDMG.SQL的用法如下所示(以11g为例):

运行脚本UTLPWDMG.SQL,创建口令复杂度函数

SQL> @/nbo/11g/db_base/db_home/rdbms/admin/utlpwdmg.sql

Function created.

Profile altered.

Function created.

SQL>

脚本utlpwdmg.sql 的位置是$ORACLE_HOME/rdbms/admin/

本例中的位置是/nbo/11g/db_base/db_home/rdbms/admin/

启用口令复杂度函数

SQL> ALTER PROFILE default LIMIT

2  PASSWORD_VERIFY_FUNCTION verify_function_11G;

Profile altered.

SQL>

当创建用户或者用户口令发生变化时,将会利用口令复杂度函数进行口令的复杂度检查。

?  使用操作系统认证或者第三方认证

原文地址:http://blog.chinaunix.net/uid-16728139-id-3694866.html

Oracle之数据库安全的更多相关文章

  1. Oracle数据库安全(二)资源限制于口令管理

    一.资源限制与口令管理概述 1.概要文件介绍: 在Oracle数据库中,用户对数据库和系统资源使用的限制以及对用户口令的管理的是建立概要文件实现的.它是Oracle数据库安全策略的重要组成不封.每个数 ...

  2. Oracle数据库安全(一)用户管理

    一.预定义用户 用户管理是Oracle数据库管理的核心和基础. 在创建Oracle数据库时,系统预定义创建的用户根据作用不同又可以分为以下3类 管理员用户 实例方案用户 内置用户 此外Oracle数据 ...

  3. Oracle Database 12c Data Redaction介绍

    什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...

  4. Oracle 表空间

    表空间 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表 ...

  5. oracle 学习

    一.数据库语言部分1. SQL语言:关系数据库的标准语言2. PL/SQL:过程化语言Procedural Language3. SQL*Plus:简单的报表,操作系统接口 4. Oracle 8.0 ...

  6. Oracle的体系结构

    前言 这个章节主要想说的是Oracle的体系结构,这个也是理论强些.还有一些比较理论的知识点(比如表空间啊),就暂时先不写了,下一章节开始进入Oracle的操作阶段,比如表的查询啊.插入以及重点是和S ...

  7. oracle的学习 第二节:创建数据表

    学习内容: A.创建数据库和表空间 B.创建用户和分配权限 C.创建数据表 一.创建数据库和表空间 (一)SQL语言的基本概念 1.概念 高级的结构化查询语言:沟通数据库服务器和客户的重要桥梁. PL ...

  8. ORACLE触发器的管理与实际应用【weber出品】

    一.INSTEAD OF触发器 对于简单的视图可以执行INSERT,UPDATE和DELETE操作,但是对于复杂视图,不允许直接执行INSERT,UPDATE,DELETE操作,当视图出现以下任何一种 ...

  9. [oracle]Oracle数据库安全管理

    目录 +  1.数据库安全控制策略概述 +  2.用户管理 +  3.资源限制与口令管理 +  4.权限管理 +  5.角色管理 +  6.审计 1.数据库安全控制策略概述 安全性是评估一个数据库的重 ...

随机推荐

  1. BZOJ 1010 玩具装箱toy(斜率优化DP)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1010 题目大意:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他 ...

  2. hdu 3308(线段树区间合并)

    LCIS Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  3. CentOS7下python工作环境管理

    一.pyenv管理不同的python版本1.下载安装git clone git://github.com/yyuu/pyenv.git ~/.pyenv  echo 'export PYENV_ROO ...

  4. 不同版本的jquery的复选框checkbox的相关问题

    在尝试写复选框时候遇到一个问题,调试了很久都没调试出来,极其郁闷: IE10,Chrome,FF中,对于选中状态,第一次$('#checkbox').attr('checked',true)可以实现 ...

  5. 洛谷P3258松鼠的新家

    题目传送门 恩,很明显的一个树剖题,配合树上差分其实也并不难,不过无奈蒟蒻树剖还没那么熟练,而且树上差分也做的少,所以这题愣是做了一中午......唉,果然我还是太菜了.恩,具体做法在代码中解释吧: ...

  6. 洛谷——P3909 异或之积

    P3909 异或之积 题目描述 对于A_1,A_2,A_3,\cdots,A_NA1​,A2​,A3​,⋯,AN​,求 (6\times \sum_{i=1}^N\sum_{j=i+1}^N\sum_ ...

  7. Spring的消息 Java Message Service (JMS)

     Spring有两种方法提供对EJB的支持: Spring能让你在Spring的配置文件里,把EJB作为Bean来声明.这样,把EJB引用置入到其他Bean的属性里就成为可能了,好像EJB就是另一个P ...

  8. C++中的error C2662,const的this指针问题

    今天在写C++代码的时候遇到一个错误,涉及到了常量的this指针的问题. 简化后的代码如下: #include <iostream> #include <string> usi ...

  9. ACM的奇计淫巧_bitset优化

    什么是bitset bitset 是STL库中的二进制容器,根据C++ reference 的说法,bitset可以看作bool数组,但优化了空间复杂度和时间复杂度,并且可以像整形一样按位与或. 使用 ...

  10. [Codeforces #210] Tutorial

    Link: Codeforces #210 传送门 A: 贪心,对每个值都取最大值,不会有其他解使答案变优 #include <bits/stdc++.h> using namespace ...