OWASP-CM-002

DB Listener Testing (OWASP-CM-002) 数据库监听器测试

 

数据库的监听器是一个网络守护进程。它等待从远程客户端发起的连接请求。这个守护进程可以受到影响,从而影响到数据库的可用性。

对于一个 Oracle 数据库来说,数据监听器就是一个远程连接的接入点。它侦听连接请求,并做出相应处理。如果测试人员可以访问这个服务,这个测试是可能的。测试应该从内联网工作(主要甲骨文不公开此服务的外部网络)。该侦听器默认情况下侦听端口 1521 。改变此端口为另一个任意端口号是很好的做法。如果这个监听进程关闭,那么远程访问数据库是不可能的。所以,如果一个数据库服务器的应用程序失败,可能造成 DDOS 攻击。

 

Black Box testing and example 黑盒测试

Upon discovering the port on which the listener resides, one can assess the listener by running a tool developed by Integrigy: 通过这个工具,我们可以发现监听进程驻留的端口。

 

The tool above checks the following:

这个工具可以查看以下内容:

监听器密码。在许多 Oracle 系统,监听密码可能无法设置。该工具验证这一点。如果密码未设置,攻击者就可以设置密码,并劫持了监听器,虽然该密码可以通过本地编辑 listener.ora 文件删除。

启用日志记录。以上工具还能测试出是否已启用日志记录工具。如果没有,没人会发现对监听器的任何改变。此外,对监听器的暴力攻击将不会被审计。

管理限制。如果管理的限制没有启用,可以使用远程“设置”命令。

如果你发现一个服务器上开放了 TCP 1521 端口,可能在该服务器上运行了一个监听器。如果这个监听器没有被认证机制保护,或者你能很容易获得凭据,那么通过渗透枚举 Oracle 服务是可能的。使用 LSNRCTL ,可以获得下述信息。

TNSLSNR for 32-bit Windows: Version 9.2.0.4.0 - Production

TNS for 32-bit Windows: Version 9.2.0.4.0 - Production

Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 9.2.0.4.0 - Production

Windows NT Named Pipes NT Protocol Adapter for 32-bit Windows: Version 9.2.0.4.0 - Production

Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 9.2.0.4.0 - Production,,

SID(s): SERVICE_NAME = CONFDATA

SID(s): INSTANCE_NAME = CONFDATA

SID(s): SERVICE_NAME = CONFDATAPDB

SID(s): INSTANCE_NAME = CONFDATA

SID(s): SERVICE_NAME = CONFORGANIZ

SID(s): INSTANCE_NAME = CONFORGANIZ

The Oracle Listener permits to enumerate default users on Oracle Server:

Oracle 监听器允许枚举在 Oracle 数据库上的默认用户

User name   Password

OUTLN           OUTLN

DBSNMP          DBSNMP

BACKUP          BACKUP

MONITOR   MONITOR

PDB          CHANGE_ON_INSTALL

 

在这种情况下,我们还没有建立特权 DBA 帐户,但使用 OUTLN BACKUP 帐户有一个基本权限:执行任何程序。这意味着它可以执行所有程序,例如如下:

 

exec dbms_repcat_admin.grant_admin_any_schema('BACKUP');

The execution of this command permits one to obtain DBA privileges. Now the user can interact directly with the DB and execute, for example:

该命令运行以获得 DBA 权限。现在用户能够直接同 DB 交互,并执行。

 

select * from session_privs ;

The output is the following screenshot:

 

 

 

 

 

 

现在用户能够执行很多命令,比如删除任何一个表。

 

一些默认端口的列表

 

1521: Default port for the TNS Listener.

1522 – 1540: Commonly used ports for the TNS Listener

1575: Default port for the Oracle Names Server

1630: Default port for the Oracle Connection Manager – client connections

1830: Default port for the Oracle Connection Manager – admin connections

2481: Default port for Oracle JServer/Java VM listener

2482: Default port for Oracle JServer/Java VM listener using SSL

2483: New port for the TNS Listener

2484: New port for the TNS Listener using SSL

 

Gray Box testing and example 灰盒测试

Testing for restriction of the privileges of the listener 测试监听器的权限和限

 

给予监听器最少的权限,使其不能在服务器内存地址空间或数据库中读、写文件。

文件 listener.ora 用于定义数据库侦听器属性。应该检查下列行在 listener.ora 文件中的存在

Listener password: 监听密码

许多常见的攻击能够执行是由于监听器不设置密码。通过检查 listener.ora 文件,我们可以判断密码设置:

不能手动编辑 Listener.ora 文件来设置密码,如下所示来设置密码。

这样设置的问题是,密码通过明文来存储,访问 Listener.ora 的任何人都能读取。一个更为安全的方式是使用 LSNRCTRL 工具,调用 change_password 命令。

 

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 24-FEB-2004 11:27:55

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> set current_listener listener

Current Listener is listener

LSNRCTL> change_password

Old password:

New password:

Re-enter new password:

Connecting to <ADDRESS>

Password changed for listener

The command completed successfully

LSNRCTL> set password

Password:

The command completed successfully

LSNRCTL> save_config

Connecting to <ADDRESS>

Saved LISTENER configuration parameters.

Listener Parameter File   D:/oracle/ora90/network/admin/listener.ora

Old Parameter File   D:/oracle/ora90/network/admin/listener.bak

The command completed successfully

LSNRCTL>          

 

 

工具:

Tools

§  TNS Listener tool (Perl) - http://www.jammed.com/%7Ejwa/hacks/security/tnscmd/tnscmd-doc.html

§  Toad for Oracle - http://www.quest.com/toad

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值