最近看了些有關(guān) Oracle 的安全資料,看后隨手做了一個(gè)滲透測(cè)試,把過(guò)程記錄下來(lái)方便日后查閱.。先用 SuperScan4.0 掃描下要測(cè)試的主機(jī),速度很快,結(jié)果如圖 1 所示
![]() |
圖1 |
端口 1521 是 Oracle 的 TNS Listener 默認(rèn)監(jiān)聽(tīng)的端口,通過(guò)掃描報(bào)告還可以看到 Oracle 的版本為 8i.現(xiàn)在還不知道對(duì)方的操作系統(tǒng)版本,看到主機(jī)還開(kāi)放了終端服務(wù),直接連上去看下操作系統(tǒng)版本.如圖 2
![]() |
圖2 |
確定操作系統(tǒng)版本為 Windows Server 2003 企業(yè)版。Oracle 10g 之前的版本默認(rèn)情況下是允許遠(yuǎn)程管理 TNS Listener 的,這臺(tái)主機(jī)的 Oracle 版本為 8i,我們通過(guò) TNS Listenner 來(lái)收集下更多的詳細(xì)信息.如果本地安裝了 Oracle 可以直接調(diào)用 Lsnrctl 連接到測(cè)試的主機(jī),如圖 3 所示:
![]() |
圖3 |
通過(guò)輸入"status "命令我們可以得到 oracle 詳細(xì)版本(8.1.70.0),操作系統(tǒng)(Windows),跟蹤級(jí)別為 OFF(說(shuō)明沒(méi)有開(kāi)啟審核),安全性為 OFF(說(shuō)明沒(méi)有設(shè)置 Listener 口令),日志文件的絕對(duì)路徑(判斷 Oracle 安裝路徑),數(shù)據(jù)庫(kù)的 SID(ccdr).
要遠(yuǎn)程管理 Oracle, 需要知道 IP,數(shù)據(jù)庫(kù)的 SID,和連接的用戶名和密碼.IP 和 SID 我們已經(jīng)知道了. 接下來(lái)用oscanner 工具掃描下要測(cè)試主機(jī)是否存在默認(rèn)的密碼.如圖 4 所示
![]() |
圖4 |
看來(lái)管理員安裝完 Oracle8i 后就沒(méi)有進(jìn)行進(jìn)一步的安全配置 , 所有的用戶名密碼都是默認(rèn)的 . 在Oracle中,SYS/SYSTEM 都是具有 DBA 權(quán)限的帳戶,我這里選擇使用 SYSTEM/MA NAGER 來(lái)連接數(shù)據(jù)庫(kù).
在本地用 Sqlplus 連接到目標(biāo) Oracle 數(shù)據(jù)庫(kù),命令為:
SqlPlus system/manager@//victimip:1521/ccdr |
連接成功后,可以通過(guò) PL/SQL 來(lái)運(yùn)行 OS 命令,首先需要?jiǎng)?chuàng)建庫(kù)來(lái)定位 msvcrt.dll 文件.這里需要使用完整的路徑,通過(guò)剛才對(duì)主機(jī)的查點(diǎn)我們已經(jīng)知道操作系統(tǒng)為 win2003, 如果系統(tǒng)安裝到C盤(pán)的話 , 那msvcrt.dll 默認(rèn)路徑就為
c:\windows\system32\msvcrt. |
創(chuàng)建庫(kù)的命令如下:
CREATE OR REPLACE LIBRARY exec_shell AS 'c:\windows\system32\msvcrt.dll';
接下來(lái)寫(xiě)一個(gè)過(guò)程來(lái)調(diào)用 msvcrt.dll 里的 system()函數(shù).命令如下:
CREATE OR REPLACE PACKAGE oracmd IS |
創(chuàng)建完后,就可以運(yùn)行 OS 命令了.由于主機(jī)已經(jīng)開(kāi)放了終端服務(wù),所以我這里添加個(gè)管理員,然后連接服務(wù)器.命 令如下:
exec oracmd.exec ('net user mickey imissyou /add'); |
帳戶創(chuàng)建完成后,如圖 5,就可以連接終端服務(wù)了,一臺(tái)肉雞到手了.:-)
![]() |
圖5 |