orabf

有时候我们会需要破解oracle下用户的密码,这时,可能使用orabf工具是个不错的选择。

 

orabf工具可以从网上下载到,使用也很简单,以下是10g环境下的实验:

 

SQL> select * from v$version;

 

BANNER

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

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi

PL/SQL Release 10.2.0.3.0 - Production

CORE    10.2.0.3.0      Production

TNS for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Productio

NLSRTL Version 10.2.0.3.0 – Production

 

SQL> select username,password from dba_users;

 

USERNAME                       PASSWORD

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

SYSTEM                         2D594E86F93B17A1

SYS                            8A8F025737A9097A

OUTLN                          4A3BA55E08595C81

LINCINQ                        D78C79D84704D283

LINC                           2555BD338BBA1FF5

DIP                            CE4A36B8E06CA59C

TSMSYS                         3DF26A8B17D0F29F

WMSYS                          7C9BA362F8314299

DBSNMP                         E066D214D5421CCC

 

使用orabf工具:

 

D:\orabf>

D:\orabf>orabf 2D594E86F93B17A1:system

 

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

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

Trying default passwords...

password found: SYSTEM:ORACLE

 

D:\orabf>orabf 8A8F025737A9097A:sys

 

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

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

Trying default passwords...

password found: SYS:ORACLE

 

D:\orabf>orabf 2555BD338BBA1FF5:linc

 

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: LINC:UNIX

 

1265807 passwords tried. elapsed time 00:00:01. t/s:1227449

 

 

一般比较简单的密码,orabf可以轻易地进行暴力破解,或者从文本文件default.txt中枚举得到,当然default.txt文件也是可以手工编辑的。

 

另外在11g下,出于安全考虑,oracle不再显示dba_uses.password列的信息。

 

SQL> select * from v$version;

 

BANNER

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

 

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for 32-bit Windows: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

 

SQL> select username,password from dba_users;

 

USERNAME                       PASSWORD

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

DBSNMP

TEST1

SYSMAN

TEST

MGMT_VIEW

SYS

SYSTEM

FLOWS_FILES

MDSYS

ORDSYS

EXFSYS

WMSYS

ORACLE_OCM

APPQOSSYS

XS$NULL

APEX_030200

OWBSYS_AUDIT

LBACSYS

MDDATA

ORDDATA

CTXSYS

ANONYMOUS

OUTLN

DIP

APEX_PUBLIC_USER

XDB

SPATIAL_CSW_ADMIN_USR

SPATIAL_WFS_ADMIN_USR

ORDPLUGINS

OWBSYS

SI_INFORMTN_SCHEMA

OLAPSYS

 

已选择32行。

 

 

如果需要查询password信息,可直接查询user$基表,以下是11g的实验环境:

 

SQL> select * from v$version;

 

BANNER

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

 

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for 32-bit Windows: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 – Production

 

SQL> show parameter sec_case_sensitive_logon

 

NAME                                 TYPE        VALUE

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

sec_case_sensitive_logon             boolean     TRUE

 

SQL> create user xsfree identified by xsfree;

 

用户已创建。

 

SQL> select user#,name,password from user$ where name='XSFREE';

 

     USER# NAME                           PASSWORD

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

        90 XSFREE                         F144DFF1B6068904

 

SQL> drop user xsfree;

 

用户已删除。

 

SQL> create user xsfree identified by XSFREE;

 

用户已创建。

 

SQL> select user#,name,password from user$ where name='XSFREE';

 

     USER# NAME                           PASSWORD

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

        91 XSFREE                         F144DFF1B6068904

 

SQL> grant connect to xsfree;

 

授权成功。

 

SQL> conn xsfree/xsfree

ERROR:

ORA-01017: 用户名/口令无效; 登录被拒绝

 

 

警告: 您不再连接到 ORACLE

 

SQL> conn xsfree/XSFREE

已连接。

 

从上述的实验中,我们发现,虽然11g环境受参数sec_case_sensitive_logon影响会导致用户的数据库密码大小写敏感,但在user$.password列显示的内容却是一样的。

 

因为在11g下,原来旧的密码hash算法校验值仍被存储在user$.password列,而新的160 bitSHA-1哈希算法校验会被存储在user$.spare4列中,而user$.spare4列中的值会被使用来验证密码的大小写。可以想象,当将参数sec_case_sensitive_logon设置为false时,oracle实际做的只是不校验user$.spare4列的哈希值。

 

从我实际的实验结果来看,user$.spare4得到的计算结果并非只对密码的大小写进行哈希,因为2次创建相同用户相同密码的user$.spare4值不同。

 

回到上述实验环境,尝试一下orabf工具:

 

D:\orabf>orabf F144DFF1B6068904:xsfree

 

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

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

Trying default passwords...

password found: XSFREE:XSFREE

 

密码同样被破解了,只是这一次,在登录11g数据库时,我们还要进行密码大小写的尝试。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20750200/viewspace-711636/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20750200/viewspace-711636/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值