oracle數據庫被注入惡意攻擊程序導致tab$被刪除恢復方案


by 蔡建良 2019-2-25

經過長時間摸索,參考網上各類文章。今天終於讓我成功恢復了oracle的sys.tab$表,並成功打開了數據庫。

將此過程記錄下來,與大家共享。如有疑問可聯系我QQ: 304125648

sys.tab$表的恢復要點如下:

1) Tab$表刪除后在行記錄頭部會標記0x7c,沒刪除前是0x6c。因此只要將找到所有tab$行記錄將第一個字節改為0x6c就成功一大半的。

此處建議在linux中恢復數據。可采用虛擬機來創建oracle環境。

Oracle VM VirtualBox6.0+Centos7+oracle11g

安裝涉及問題有:

(1) Xshell 5+Xftp 6組合,用來遠程控制linux和傳輸文件。

(2) oracle 11g for linux bbed - Oracle BBED工具安裝

將三個文件移到$ORACLE_HOME/rdbms/lib/ 目錄下。

l $ mv bbedus.msb $ORACLE_HOME/rdbms/mesg/

l $ cd $ORACLE_HOME/rdbms/lib

l $ make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

安裝成功登陸如下:
[oracle@bys3 ~]$ bbed
Password:            默認密碼是:blockedit

l BBED> exit

oracle11g for linuxx64編譯bbed需要的三個文件

 Xshell+Xftp組合安裝包

刪除tab$記錄的恢復腳本文件

 

2) 禁用sys.tab$的索引I_TAB1:

//這樣恢復,索引與表存在不一致情況,要禁用sys.tab$的索引I_TAB1.

BBED> assign /x  dba 1,523 offset 4910= 0x3c
BBED> sum apply dba 1,523
BBED> verify dba 1,523

 

3) 由於Oracle數據庫被注入觸發器,因此必須禁用數據庫的觸發器。

所以總結解決辦法如下(處理前最好進行備份):

1、 關閉數據庫  shutdown immediate

2、 啟動數據庫到mount狀態下  startup mount  執行以下語句

alter system set "_system_trig_enabled"=false scope=both;

 

4) Tab$表恢復后將SYSTEM01.dbf文件復制到原來的數據目錄覆蓋原有文件。

5) 重建控制文件。

6) Open數據庫。

具體可參考:

https://www.cnblogs.com/lfree/p/10368150.html

https://www.cnblogs.com/lfree/p/10368158.html

https://www.cnblogs.com/lfree/p/10368167.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM