近期通过遇到一个文件级勒索的修复,版本是12c(12.2.0.1),数据量50g,noncdb运行在windows环境下;
通过软件判断,发现本次加密为每个文件前加密了几十个块,末尾冗余了500个字节左右。
1)判断该库版本、字符集 2)从关键聚簇块拿到数据,修改OS、文件头、位图块,用于欺骗ORACLE开库。
6711是聚簇信息错误,5758790及5758822均为10进制的rdba地址,指向不一致的块
尝试提交两个块ITL及修改聚簇(也就是聚簇建),起库失败。
时间紧迫,换一个思路,10046跟踪执行sql,通过改写原oracle语句,跳过该对象拉起数据库,然后重建库。
PARSING IN CURSOR
#2402719296696 len=165 dep=3 uid=0 oct=3 lid=0 tim=433235311314 hv=1641257687 ad='7ff89caeeec0' sqlid='2sxqgx5hx76qr'
select /*+ rule */ bucket, endpoint, col
#, epvalue, epvalue_raw, ep_repeat_count, endpoint_enc from histgrm$ where obj#=:1 and intcol#=:2 and row#=:3 order by bucket
END OF STMT
PARSE
#2402719296696:c=0,e=259,p=0,cr=0,cu=0,mis=1,r=0,dep=3,og=3,plh=0,tim=433235311314
BINDS
#2402719296696:
Bind
#0
oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
oacflg=00 fl2=1000001 frm=00 csi=00 siz=72 off=0
kxsbbbfp=6d3ad540 bln=22 avl=02 flg=05
value=4
Bind
#1
oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
oacflg=00 fl2=1000001 frm=00 csi=00 siz=0 off=24
kxsbbbfp=6d3ad558 bln=22 avl=02 flg=01
value=3
Bind
#2
oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
oacflg=00 fl2=1000001 frm=00 csi=00 siz=0 off=48
kxsbbbfp=6d3ad570 bln=22 avl=01 flg=01
value=0
...
WAIT
#2402719296696: nam='db file sequential read' ela= 127 file#=1 block#=601 blocks=1 obj#=65 tim=433235312100
WAIT
#2402719296696: nam='db file sequential read' ela= 104 file#=1 block#=602 blocks=1 obj#=65 tim=433235312242
WAIT
#2402719296696: nam='db file sequential read' ela= 103 file#=1 block#=102285 blocks=1 obj#=66 tim=433235312398
FETCH
#2402719296696:c=0,e=495,p=3,cr=3,cu=0,mis=0,r=7,dep=3,og=3,plh=3312420081,tim=433235312454
STAT
#2402719296696 id=1 cnt=7 pid=0 pos=1 obj=0 op='SORT ORDER BY (cr=3 pr=3 pw=0 str=1 time=489 us cost=0 size=0 card=0)'
STAT
#2402719296696 id=2 cnt=7 pid=1 pos=1 obj=66 op='TABLE ACCESS CLUSTER HISTGRM$ (cr=3 pr=3 pw=0 str=1 time=477 us)'
STAT
#2402719296696 id=3 cnt=1 pid=2 pos=1 obj=65 op='INDEX UNIQUE SCAN I_OBJ#_INTCOL# (cr=2 pr=2 pw=0 str=1 time=308 us)'
...
EXEC
#2402719296696:c=0,e=97,p=0,cr=0,cu=0,mis=0,r=0,dep=3,og=3,plh=3312420081,tim=433235320550
WAIT
#2402719296696: nam='db file sequential read' ela= 122 file#=1 block#=1564486 blocks=1 obj#=66 tim=433235320694 --这个就是对应的报错rdba1
WAIT
#2402719296696: nam='db file sequential read' ela= 92 file#=1 block#=1564518 blocks=1 obj#=66 tim=433235320827 --这个就是对应的报错rdba2
WAIT
#2402719296696: nam='PGA memory operation' ela= 5 p1=65536 p2=1 p3=0 obj#=66 tim=433235321030
WAIT
#2402719296696: nam='PGA memory operation' ela= 2 p1=65536 p2=1 p3=0 obj#=66 tim=433235321329
WAIT
#2402719296696: nam='PGA memory operation' ela= 1 p1=65536 p2=1 p3=0 obj#=66 tim=433235321562
WAIT
#2402719296696: nam='PGA memory operation' ela= 1 p1=65536 p2=1 p3=0 obj#=66 tim=433235321820
...
2026-02-24T11:46:20.042476+08:00
Incident 61673 created, dump file: F:\APP\WANG\diag\rdbms\ithctj\ithctj\incident\incdir_61673\ithctj_ora_21180_i61673.trc
ORA-00600: ??????, ??: [6711], [5758790], [1], [5758822], [0], [], [], [], [], [], [], []
FETCH
#2402719296696:c=1312500,e=1514133,p=2,cr=65536,cu=0,mis=0,r=0,dep=3,og=3,plh=3312420081,tim=433236834693
CLOSE
#2402719296696:c=0,e=1,dep=3,type=3,tim=433236834920
=====================
PARSE ERROR
#2402719198024:len=66 dep=1 uid=0 oct=3 lid=0 tim=433236834993 err=600
SELECT NULL FROM PROPS$ WHERE NAME LIKE
'BOOTSTRAP_UPGRADE_ERROR%'
ORA-00600: ??????, ??: [6711], [5758790], [1], [5758822], [0], [], [], [], [], [], [], []
ORA-00704: ????????
ORA-00600: ??????, ??: [6711], [5758790], [1], [5758822], [0], [], [], [], [], [], [], []
ORA-00704: ????????
ORA-00600: ??????, ??: [6711], [5758790], [1], [5758822], [0], [], [], [], [], [], [], []
2026-02-24T11:46:21.183578+08:00
Incident 61674 created, dump file: F:\APP\WANG\diag\rdbms\ithctj\ithctj\incident\incdir_61674\ithctj_ora_21180_i61674.trc
ORA-00603: ORACLE ?????????????
ORA-01092: ORACLE ???????????
ORA-00704: ????????
ORA-00600: ??????, ??: [6711], [5758790], [1], [5758822], [0], [], [], [], [], [], [], []
kgefec: fatal error 1092
*** 2026-02-24T11:46:22.134402+08:00
USER (ospid: 21180): terminating the instance due to error 704
通过处理成功跳过了改对象

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27147296/viewspace-3112075/ ,如需转载,请注明出处,否则将追究法律责任。