Oracle EBS渗透测试工具

ERP安全是IT安全的独立部分。如今,ERP代表了各种基于不同技术编写的各种工具和服务。在安全领域拥有适当的知识和便于管理的工具是至关重要的。

当我们在探索Oracle电子商务套件安全性时,我们注意到市场上缺乏可以帮助我们简化安全评估,便利且免费的安全工具。有很多各种各样的模块或脚本也只是随随便随便的检查一两个问题。为此,我们决定开发自己的解决方案,第一个免费的Oracle电子商务套件安全扫描器 - ERPSCAN EBS Pentesting tool。

这是一个由我们研究团队开发的对多种EBS exploits的“封装”。所有模块都用python语言表示。目前,有四个主要模块(其中1个使用EBS用户密码解密器):

  • EBS DB用户爆破;
  • EBS用户爆破;
  • EBS Java序列化测试;
  • EBS XML序列化测试。

目前,我们只发布了其中的四个。如果这款工具反馈良好,我们将继续这个项目并发布更多我们的私有模块。

测试Oracle EBS数据库

Oracle EBS DB用户爆破

脚本使用预定义的密码爆破标准DB用户。此外,它可以从APPS.fnd_user表中获取EBS用户的密码,如果密码被哈希加密,则会使用ebsDecrypt.py模块对其解密。所有发现将会被保存在dbCheckResults.txt文件中。

Help

你应该安装cx_Oracle进行操作。

usage: dbUsersBforce.py [-h] [-H HOST] [-P PORT] [-s SID] [-d DEC] [-v]

EBS DB Users brute-force Python Script. It tests for default DB users with the predefined passwords. Also it can check
whether any bruted DB user can decrypt EBS Users passwords (of course if Password Hashing is not implemented).

optional arguments:
  -h, --help            显示帮助信息并退出
  -H HOST, --host HOST  DB host (默认: 127.0.0.1). 示例: ebs.example.com
  -P PORT, --port PORT  DB port (默认: 1521)
  -s SID, --sid SID     DB SID (默认: EBSDB)
  -d DEC, --dec DEC     尝试解密EBS用户密码? Y/N
  -v, --verbose         详细模式

Usage

应用程序用户密码应该大写。

$ decrypt.py -k APPS -d ZH4715DC7E9C2213F7CD56D44CE1CB8625FB71D0F4935EFEAE5B8CA66117B9C2D6A1E733BA80005F4CD19706A03218E8C5E4

测试Oracle EBS应用程序

EBS用户爆破

脚本使用预定义的密码爆破EBS默认用户。它处理两种类型的身份验证版本(不要与SSO混合!)。

Help

usage: ebsUsersBforce.py [-h] [-H HOST] [-P PORT] [-s] [-t TIMEOUT] [-v]

EBS Users brute-force python script brutes EBS default users with predefined passwords.

optional arguments:
  -h, --help            显示帮助信息并退出
  -H HOST, --host HOST  EBS host (默认: 127.0.0.1). 示例: ebs.example.com
  -P PORT, --port PORT  EBS web port (默认:8000)
  -s, --ssl             启用SSL
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP连接超时秒数 (默认:10)
  -v, --verbose         详细模式

Usage

$ ebsUsersBforce.py -H ebs.example.com -P 8000

Oracle EBS Java序列化测试

EBS python脚本,基于Apache Commons Collections 3的Java序列化sleep payloads测试。它会发送特殊的sleep payloads并检查响应时间值。如果响应时间值超过10秒,则表明测试主机极易可能受到Java反序列化的攻击。

Help

usage: javaSerDetect.py [-h] [-H HOST] [-P PORT] [-u URL] [-s] [-t TIMEOUT]
                        [-v]

EBS python script for Java Serialization sleep payloads testing based on Apache Commons Collections 3.

optional arguments:
  -h, --help            显示帮助信息并退出
  -H HOST, --host HOST  EBS host (默认: 127.0.0.1). 示例: ebs.example.com
  -P PORT, --port PORT  EBS web port (默认: 8000)
  -u URL, --url URL     EBS目标URL (默认: OA_HTML/iesRuntimeServlet)
  -s, --ssl             启用SSL
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP连接超时秒数 (默认: 15)
  -v, --verbose         详细模式

Usage

$ javaSerDetect.py -H ebs.example.com -P 8000

Oracle WebLogic级别检查

Oracle EBS XML序列化测试

Python脚本,基于CVE-2017-3506&10271的XML序列化sleep payloads测试。它会发送特殊的sleep payloads并检查响应时间值。如果响应时间值超过10秒,则表明测试主机极易可能受到XML反序列化的攻击。

Help

usage: xmlSerDetect.py [-h] [-H HOST] [-P PORT] [-u URL] [-s] [-t TIMEOUT]
                       [-v]

EBS python script for XML Serialization sleep payload testing based on `CVE-2017-3506 & 10271`.

optional arguments:
  -h, --help            显示帮助信息并退出
  -H HOST, --host HOST  WebLogic host (默认: 127.0.0.1). 示例: ebs.example.com
  -P PORT, --port PORT  WebLogic port (默认: 7001)
  -u URL, --url URL     WebLogic目标URL (默认: wls-wsat/CoordinatorPortType)
  -s, --ssl             启用SSL
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP连接超时秒数 (default: 15)
  -v, --verbose         详细模式

Usage

$ xmlSerDetect.py -H ebs.example.com -P 7001

工具地址:https://github.com/sahabrifki/erpscan

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员),有两个内容你必须去弄清楚。第一个内容是如何成为一个Oracle Applications DBA(Oracle应用程序数据库管理员)。第二个内容是你要搞清楚Oracle应用程序背后的架构体系,也就是说你要明白诸如以下产品的结构体系:Oracle电子商务套件、Oracle 11i数据库、Siebel产品等。 本文首先讲述如何从一个普通的Oracle DBA转变为一个Oracle Applications DBA(Oracle应用程序数据库管理员),接着讲述一些Oracle应用软件架构方面的内容 。 如何成为Oracle应用程序数据库管理员 首先是角色的转变 Oracle Applications DBA(Oracle应用程序数据库管理员)对“普通”的Oracle DBA(Oracle数据库管理员)来说是一个很大的挑战。拿Oracle EBS DBA(Oracle 电子商务套件DBA)来说,不仅需要了解EBS的各个组件、服务,而且还要更主动和其他相关人员接触。 一个Oracle Applications DBA(Oracle应用程序数据库管理员)不仅需要和其他DBA一样去负责managing、 sizing、maintaining和 tuning database这些日常的数据库管理的工作,如果他的Apps database是OLTP系统的话,他还需要监察wait和lock 。Oracle E-Business Suite还有一些特性需要DBA去完成,比如从外部资源里灌数据到Apps database里,或支持开发人员从已有数据中提取数据。 接着工作内容的转变 作为一个Oracle Applications DBA(Oracle应用程序数据库管理员),要想更好的对Oracle Application database做支持,需要仔细记住以下几项。 1.网络上没有什么比较容易简单的文档让你去熟悉Apps DBA,所以我建议去看帮助。 2.在你没有经过多次测试并且得到客户认可的时候不要去打补丁,并且你要确信这个补丁解决了现有的问题,而且没有带来其它新的问题。 3.记住Oracle Applications会有很多索引,定期rebuild index会对性能有好处,当然做这项工作应该在系统的空闲时间。 4.不要为了提高性能而在没有询问oracle Support前试着去增加额外的indexes。如果你一定要去做,那千万记住要有文档作记录,因为在这之后你再打patch的时候它可能会把你做的修改自动复原。 5. 知道怎么样是正确的打patch,先计划打哪个patch,然后取得patch,接着打patch,测试,最后文档记录。 6. 要知道任何时刻数据库都可能会有一些object 是invalid的,你的一些操作也会增加invalid objects,定期检查这些invalid objects的数量,然后定期用utlrp去重新编译,utlrp.squ在ORACLE HOME的rdbms/admin下,需要用SYS运行。在你的DB运行过程中如果碰到错误,就可以先重新编译invalid objects,如果没有解决问题再去递交iTAR(Internet created Technical Assistance Request). 7.能看懂日志。 8.了解Apps database的环境,包括操作系统和DB的,当你对你的工作环境了如指掌后,一切也就变得容易了,那时,你就是一个悠闲的Apps DBA了。 另外,对于APPS DB(应用程序数据库)来说,你可能需要创建或拷贝(克隆)多个生产库以外的数据库,比如测试和开发数据库,当然,需要多少数据库是由你的商业需求所决定的。开发环境数据库是供开发人员进行report,PL/SQL等开发的,这个环境可以在开发人员觉得数据已经不再满足开发需求的时候,当然也可以在这个环境测试补丁(patches)。当然最终使用patch的时候还需要在测试环境做测试,因为测试数据库是和生产数据库环境最接近的。(上面说的克隆cloning是一种将applications layer和database layer完全复制的一种方法。)所以,当你拥有这三个数据库的时候,打patch的步骤是先development database再test database最后才在production database环境应用。 构架应用体系 如果你研究过Oracle Forms,使用过Application Server和Devel

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值