攻防演练工具 | Oracle数据库getshell的另一种思路

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

这篇文章介绍了一个半自动化的Oracle数据库利用工具,用于获取主机控制权限。工具的设计思路是通过在IIS服务的根目录下写入webshell来实现getshell。文章还分享了工具的开发过程和实现方法。

🔎

延伸解读

适用场景与前提条件

该工具针对特定渗透场景:目标Web服务无漏洞可getshell,但已获取Oracle数据库system权限,且主机不出网无法远程下载文件。此时利用Oracle写文件能力,在IIS根目录写入webshell成为可行路径。读者需注意,此方法依赖目标开启IIS服务且能确定Web根目录,若站库分离则难以实施。

Oracle命令执行限制与绕过思路

Oracle通过创建Java源执行系统命令时,常因字符串截断机制(空字符导致)无法正常返回结果,使得大量操作受限。文章提出的绕过思路是:不直接依赖命令回显,而是利用数据库写文件功能,将webshell写入IIS根目录,从而获取主机控制权。这要求攻击者能准确判断Web应用存储路径。

工具定位与操作要点

该工具被作者定义为“半自动化”利用工具,旨在节约攻防演练中的时间。其核心模块包括获取操作系统信息(通过创建并编译Java源)和写入webshell。实际使用时,写入路径需根据经验判断,若目标为站库分离架构,则写入webshell的思路可能失效,需考虑其他方式。

❓

Q&A

这个工具是如何帮助获取Oracle数据库的控制权限的?

该工具通过在IIS服务的根目录下写入webshell来实现获取主机控制权限。

开发这个工具的原因是什么?

工具的开发起因于一次攻防演练中发现Oracle数据库的弱口令,旨在节约时间实现getshell。

Oracle数据库的字符串截断机制对操作有什么影响?

字符串截断机制限制了直接执行操作系统命令的能力,导致无法正常返回包含空字符的数据。

在开发过程中遇到了哪些挑战?

开发过程中需要根据经验判断web应用的存储路径,遇到站库分离的情况可能无法写入webshell。

这个工具的设计思路是什么?

设计思路是利用Oracle数据库的system权限和IIS服务,通过写入webshell实现getshell。

如何获取操作系统信息?

通过创建和编译Java源代码,利用数据库执行相关命令来获取操作系统信息。

🏷️

标签

➡️

继续阅读