ODAT(Oracle Database Attacking Tool) 是一款开源的渗透测试工具, 主要用于测试远端 oracle 数据库的安全性
ODAT 使用场景示例:
你希望找到远端 Oracle 数据库的 SID 和有效凭证以连接数据库
你已获取到一个有效的 Oracle 帐户, 并想将你的权限提升为 DBA 或 SYSDBA
你有一个 Oracle 帐户, 并希望执行系统命令 (例如, 反向 shell), 以在托管数据库的操作系统上进一步的渗透
已在 10g 11g 和 12c(12.1.0.2.0) 版本上做过测试
特点
ODAT 可以为你做以下事情:
通过以下方式在远端 Oracle 数据库侦听器上搜索有效 SID:
字典攻击
爆力攻击
侦听器的 ALIAS
Oracle 账户获取可通过:
字典攻击
密码 同账户名 (需要先得到一个可用账户)
在数据库服务器执行系统命令, 可使用:
- DBMS_SCHEDULER
- JAVA
- external tables
- oradbg
在数据库服务器存储下载文件, 可使用:
- UTL_FILE
- external tables
- CTXSYS
- DBMS_LOB
在数据库服务器上传文件, 可使用:
- UTL_FILE
- DBMS_XSLPROCESSOR
- DBMS_ADVISOR
删除文件可使用:
UTL_FILE
使用以下系统权限组合获得访问权限, 请参阅 privesc 模块命令的帮助信息):(2016/02/21)
- CREATE ANY PROCEDURE
- CREATE PROCEDURE and EXECUTE ANY PROCEDURE
- CREATE ANY TRIGER (and CREATE PROCEDURE)
- ANALYZE ANY (and CREATE PROCEDURE)
- CREATE ANY INDEX (and CREATE PROCEDURE)
从数据库服务器发送 / 接收 HTTP 请求, 可使用:
- UTL_HTTP
- HttpUriType
扫描本地或远程服务器端口, 可使用:
- UTL_HTTP
- HttpUriType
- UTL_TCP
捕获 SMB 验证, 可通过:
一个索引来触发一个 SMB 连接
利用一些 CVE:
CVE-2012-3137
拾取任意用户的会话密钥和盐
对会话进行字典攻击
CVE-2012-???? : 通过身份验证的用户可以修改所有可选择的表, 即使他无法正常修改它们 (无 ALTER 权限)
CVE-2012-1675 TNS Listener 远程数据投毒漏洞 (25/03/2016)
在搜索模块中搜索列名:
在列名中搜索一个匹配模式 (例如: password)
unwrap PL/SQL 源码 (10g/11g 和 12c)
获取系统权限和角色分配
支持平台和依赖关系
ODAT 当前仅支持 Linux 平台安装使用
独立版不需要安装依赖和 slqplus(请参阅 https://github.com/quentinhardy/odat/releases/ ) 由于安装了 pyinstaller,ODAT standalone 已经生成
如果你想要在你的计算机上安装开发版本, 则需要以下工具和依赖项:
语言环境: Python 2.7
Oracle 依赖:
- Instant Oracle basic
- Instant Oracle sdk
Python 库:
- cx_Oracle
- passlib
- pycrypto
- python-scapy
- colorlog (推荐)
- termcolor(推荐)
- argcomplete(推荐)
- pyinstaller(推荐)
来源: http://www.tuicool.com/articles/mqeIZfj