欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

破解Oracle数据库的密码

程序员文章站 2022-03-12 17:47:04
要连接远程的 Oracle 数据库,需要知道 SID,用户名, 密码,当然还有最重要的 IP 地址。SID 如果被管理 员修改的话,可以利用 sidguess 来进行破解,速度非常的快,至于成功与否,就... 08-10-08...
要连接远程的 oracle 数据库,需要知道 sid,用户名, 密码,当然还有最重要的 ip 地址。sid 如果被管理 员修改的话,可以利用 sidguess 来进行破解,速度非常的快,至于成功与否,就要看你的字典配置了。破解 效果如图 1。  

破解Oracle数据库的密码

图 1

  oracle 不同的版本有大量的默认帐户密码。可是有些情况下,oracle 数据库管理员把默认的密码给修改了, 我们就要选择暴力破解了 。如果帐户破解成功 ,登录上去,是 dba 权限的话最好 ,不是的话,也可以利用 oracle 的一些漏洞进行提权到 dba。进入数据库后,我一般选择的是抓取其他用户的密码哈希值,然后本地 rainbow 破解。如果同网段还有其他的 oracle 数据库,可以抓包等待其他用户的 oracle 登录验证,取出敏感 信息,然后破解。进一步扩大战果。下面我就分别讲讲这三种破解方法及相关工具的使用。

  quotation

  有关 oracle 密码的基础知识

  1、标准的 oracle 密码可以由英文字母,数字,#,下划线(_),美元字符($)构成,密码的最大长度为 30 字符;oracle 密码不能以"$","#","_"或任何数字开头;密码不能包含像"select","delete","create"这类的 oracle/sql 关键字。

  2、oracle 的弱算法加密机制:两个相同的用户名和密码在两台不同的 oracle 数据库机器中,将具有相同的哈希值。这些哈希值存储在 sys.user$表中。可以通过像 dba_users 这类的视图来访问。

  3、oracle 默认配置下,每个帐户如果有 10 次的失败登录,此帐户将会被锁定。但是 sys 帐户在 oracle 数据库中具有最高权限,能够做任何事情,包括启动/关闭 oracle 数据库。即使 sys 被锁定,也依然能够访问数据库。

  一、远程暴力破解

  由前面的基础知识 3,可以得知选择远程破解 oracle 的最好帐户是 sys,因为此帐户永远有效。在 oracle10g

  以前的版本在安装的时候并没有提示修改 sys 的默认密码,oracle10g 虽然提示修改密码了,但是并没有检查密码的复杂性。如图2 

破解Oracle数据库的密码

图 2

  可以使用 orabrute 工具来进行远程破解,在使用这个工具的时候,需要系统提前安装好 sqlplus,该工具的 原理很简单,就是不停的调用 sqlplus 然后进行登录验证,帐户选择的是 sys,密码则为 password.txt 中的密 码单词。只要登录成功 ,就会调用 selectpassword.sql 脚本抓取出在 sys.user$表中的其他用户的哈希值 , 然后退出程序。这里有个注意的地方,当第二次运行 orabrute 的时候,需要删除或移动同目录下的前一次运行 orabrute 时生成的 thepasswordsarehere .txt 和 output.txt 文件。

  orabrute 的使用方法为:

  orabrute

  效果如图 3,4 

破解Oracle数据库的密码

图 3 

破解Oracle数据库的密码

图 4 orabrute 的破解速度比较慢,我们可以采取变通的方法来破解,如果 oracle 的数据库版本为 oracle10g。默 认自带个通过 8080 端口来远程管理数据库的 web 接口,如图 5 

破解Oracle数据库的密码

图 5

  当我们访问 http://ip:8080/oradb/public/global_name 时,会弹出认证信息,这种 http 的基本验证,有好 多的工具可以快速破解,可以选择著名的 hydra,我这里选择的是图形界面的 wwwhack,设置好用户名为 sys, 选择字典,就可以破解了。速度要比通过 orabrute 来破解快许多。效果如图 6 所示

破解Oracle数据库的密码

图 6