标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 obet ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kcratr_nab_less_than_odr ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle碎片 OSD-04016 YOUR FILES ARE ENCRYPTED 比特币加密文章分类
- MongoDB (1)
- MongoDB恢复 (1)
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,877)
- DB2 (22)
- MySQL (82)
- Oracle (1,703)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (72)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (659)
- Oracle安装升级 (107)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (91)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (5)
- 达梦恢复 (3)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (51)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (34)
- MongoDB (1)
-
最近发表
- MongoDB 离线提取工具—mongoext
- .bres勒索病毒加密数据库dmp文件可恢复
- ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
- 记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
- 不当数据库恢复操作导致一个月数据丢失
- obet快速修复oracle 位图损坏块
- 不太常见的10.2.0.1的oracle redo损坏恢复
- obet forcecopy功能抢救硬件故障中的数据文件
- kcratr_nab_less_than_odr和system坏块故障处理
- 通过obet 恢复system坏块,打开数据库
- obet dbv功能完整说明
- 分享一例运行在aix上的sap系统数据库恢复过程
- OBET-Oracle Block Editor Tool使用说明
- 几乎动用了所有手段的Oracle故障恢复
- Oracle Block Edit Tool (obet) 功能增强–2026.07
- Oracle 19c 202607补丁(RUs+OJVM)-19.32
- Patch_SCN快速修复ORA-01555数据库open故障
- 快速处理 ORA-01210: data file header is media corrupt 故障
- ORA-00314: log 3 of thread 1, expected sequence# N doesn’t match 0
- 记录block 0损坏,数据文件大量坏块,使用不当数据库版本恢复等各种操作之后的故障处理
分类目录归档:Oracle
.bres勒索病毒加密数据库dmp文件可恢复
近期.bres勒索病毒较多,加密文件名称一般为:原始文件名.id.bres

勒索信息为:id.readme文件

一般是勒索5000或者7500美元.通过我们对加密的oracle数据库文件和dmp的逻辑备份分析,确认该病毒对于两种类型的文件破坏比例不一样
一、对于bres勒索病毒数据库层面恢复探讨
1. 对于dbf/ora类型文件破坏比例非常大,达到1/3左右,而且还是间隔加密,对于这种情况,基于数据库文件基本上没有太大恢复价值,但是我们也遇到一些客户,由于某些原因导致这类病毒加密文件没有全部完成(数据文件被加密中途终止),这样的情况下,可以恢复没有被破坏的block中数据.

2.对于exp/expdp备份出来的dmp文件,该病毒一般只是加密前面30M的block,后续其他block全部是完整的,可以恢复出来后续数据,整体数据丢失较少,如果有历史完整的备份,可以实现较为完整的恢复效果

二、病毒入侵渠道与内网扩散逻辑
.bres病毒主要有四类入侵入口,其中内网共享权限漏洞是最高发渠道。
第一,共享存储与NAS弱口令入侵。工贸企业、工程公司大量使用NAS存放图纸、合同,为方便异地办公,直接开放外网访问,账号密码长期不修改。黑客会批量扫描公网设备,尝试默认密码登录,拿到权限后植入后门程序,长期潜伏在内网。这也是.bres最标志性的入侵方式,区别于其他病毒以钓鱼邮件为主要入口。
第二,钓鱼邮件投递。伪装成供应商对账函、项目验收单、物流通知单,压缩包内放置恶意程序。员工解压运行之后,木马悄悄植入电脑,建立持久后门,为后续内网横向扩散铺路。
第三,RDP远程桌面爆破。部分小微企业为远程管理服务器,3389端口对外暴露,使用简单密码。黑客利用工具批量爆破账号密码,登陆服务器投放病毒载荷。
第四,根据我们近期恢复的一些case,大量是同一个软件厂商的软件在不同客户现场几乎同一时间被勒索加密,怀疑可能是由于应用某组件有漏洞被黑客利用进行攻击,建议加强应用版本管理,及时更新应用修复漏洞。
ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
客户由于断电,导致一个19c数据库无法正常启动,接手时候报错为:ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
2026-09-15T06:36:24.908317-07:00 ALTER DATABASE OPEN RESETLOGS 2026-09-15T06:36:24.912251-07:00 RESETLOGS is being done without consistancy checks. This may result in a corrupted database. The database should be recreated. RESETLOGS after incomplete recovery UNTIL CHANGE 22297188690 time NET (PID:36760): Unable to create archive log file '/u19/dbs/arch1_1_1243990641.dbf' 2026-09-15T06:36:24.919696-07:00 Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_36760.trc: ORA-19504: failed to create file "/u19/dbs/arch1_1_1243990641.dbf" ORA-27038: created file already exists Additional information: 1 NET (PID:36760): Error 19504 Creating archive log file to '/u19/app/dbs/arch1_1_1243990641.dbf' NET (PID:36760): Archiving not possible: error count exceeded Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_36760.trc (incident=119876): ORA-00600: internal error code, arguments: [krsm_mrp_rebuild_lf_list.lno_mismatch], [3], [1], [1], [0], [] Incident details in: /u19/app/oracle/diag/rdbms/orcl/orcl/incident/incdir_119876/orcl_ora_36760_i119876.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. NET (PID:36760): Archive all ORLs failed, error=600 ORA-600 signalled during: ALTER DATABASE OPEN RESETLOGS...
通过alert日志大概回溯现场人员的恢复过程,最初数据库断电重启之后报ORA-00742错误
2026-09-14T20:52:37.294285-07:00 ALTER DATABASE OPEN Ping without log force is disabled: instance mounted in exclusive mode. 2026-09-14T20:52:37.313266-07:00 Beginning crash recovery of 1 threads Thread 1: Recovery starting at checkpoint rba (logseq 63111 block 286483), scn 0 2026-09-14T20:52:37.370330-07:00 Started redo scan 2026-09-14T20:52:37.419944-07:00 Aborting crash recovery due to error 742 2026-09-14T20:52:37.420039-07:00 Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_68055.trc: ORA-00742: Log read detects lost write in thread 1 sequence 63111 block 326157 ORA-00312: online log 3 thread 1: '/u19/app/oracle/oradata/ORCL/redo03.log' 2026-09-14T20:52:37.420977-07:00 Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_68055.trc: ORA-00742: Log read detects lost write in thread 1 sequence 63111 block 326157 ORA-00312: online log 3 thread 1: '/u19/app/oracle/oradata/ORCL/redo03.log' ORA-742 signalled during: ALTER DATABASE OPEN...
现场人员加上隐含参数强制拉库,然后数据库报ORA-600 kcbzib_kcrsds_1错误
2026-09-14T21:35:21.425310-07:00 ALTER DATABASE OPEN RESETLOGS 2026-09-14T21:35:21.429136-07:00 RESETLOGS is being done without consistancy checks. This may result in a corrupted database. The database should be recreated. RESETLOGS after incomplete recovery UNTIL CHANGE 22297188666 time Resetting resetlogs activation ID 1680209845 (0x6425f7b5) 2026-09-14T21:35:34.017515-07:00 Setting recovery target incarnation to 3 2026-09-14T21:35:34.028360-07:00 Ping without log force is disabled: instance mounted in exclusive mode. Endian type of dictionary set to little 2026-09-14T21:35:34.043771-07:00 Assigning activation ID 1771732361 (0x699a7d89) 2026-09-14T21:35:34.125473-07:00 TT00 (PID:47466): Gap Manager starting 2026-09-14T21:35:34.127554-07:00 Redo log for group 1, sequence 1 is not located on DAX storage Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /u19/app/oracle/oradata/ORCL/redo01.log Successful open of redo thread 1 2026-09-14T21:35:34.165332-07:00 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set stopping change tracking 2026-09-14T21:35:35.507453-07:00 ORA-00600: internal error code, arguments: [kcbzib_kcrsds_1], , [], [], [], [], [] Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. SYSTEM DUMP REDO DBA MIN 4 128 DBA MAX 4 128 SCN MIN 1; 2026-09-14T21:35:37.154962-07:00 ***************************************************************** An internal routine has requested a dump of selected redo. This usually happens following a specific internal error, when analysis of the redo logs will help Oracle Support with the diagnosis. It is recommended that you retain all the redo logs generated (by all the instances) during the past 12 hours, in case additional redo dumps are required to help with the diagnosis. ***************************************************************** Undo initialization recovery: err:600 start: 3433752 end: 3435865 diff: 2113 ms (2.1 seconds) 2026-09-14T21:35:37.475752-07:00 Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_46217.trc: ORA-00600: internal error code, arguments: [kcbzib_kcrsds_1], , [], [], [], [], [] 2026-09-14T21:35:37.475831-07:00 Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_46217.trc: ORA-00600: internal error code, arguments: [kcbzib_kcrsds_1], , [], [], [], [], [] Error 600 happened during db open, shutting down database Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_46217.trc (incident=48128): ORA-00603: ORACLE server session terminated by fatal error ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [kcbzib_kcrsds_1], , [], [], [], [], []
现场人员重建控制文件,然后启动库报ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
2026-09-15T04:26:41.297637-07:00
Successful mount of redo thread 1, with mount id 1771762176
Completed: CREATE CONTROLFILE REUSE SET DATABASE "ORCL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 16
LOGFILE
GROUP 1 '/u19/app/oracle/oradata/ORCL_NEW/redo01.log' SIZE 200M,
GROUP 2 '/u19/app/oracle/oradata/ORCL_NEW/redo02.log' SIZE 200M
DATAFILE
'/u19/app/oracle/oradata/ORCL_NEW/system01.dbf',
'/u19/app/oracle/oradata/ORCL_NEW/sysaux01.dbf',
'/u19/app/oracle/oradata/ORCL_NEW/undotbs01.dbf',
…………
2026-09-15T04:26:52.121793-07:00
ALTER DATABASE OPEN RESETLOGS
2026-09-15T04:26:52.126848-07:00
RESETLOGS is being done without consistancy checks. This may result
in a corrupted database. The database should be recreated.
RESETLOGS after incomplete recovery UNTIL CHANGE 22297188686 time
NET (PID:27130): Unable to create archive log file '/u19/dbs/arch1_1_1243990641.dbf'
2026-09-15T04:26:52.233538-07:00
Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_27130.trc:
ORA-19504: failed to create file "/u19/dbs/arch1_1_1243990641.dbf"
ORA-27038: created file already exists
Additional information: 1
NET (PID:27130): Error 19504 Creating archive log file to '/u19/dbs/arch1_1_1243990641.dbf'
NET (PID:27130): Archiving not possible: error count exceeded
Errors in file /u19/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_27130.trc (incident=102102):
ORA-00600: internal error code, arguments: [krsm_mrp_rebuild_lf_list.lno_mismatch], [2], [1], [1], [0], []
Incident details in: /u19/app/oracle/diag/rdbms/orcl/orcl/incident/incdir_102102/orcl_ora_27130_i102102.trc
接手故障开始处理,尝试open库,重现ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch错误
SQL> recover database using backup controlfile;
ORA-00279: change 22297188689 generated at 09/15/2026 00:57:22 needed for thread 1
ORA-00289: suggestion : /u19/dbs/arch/1_1_1243990641.dbf
ORA-00280: change 22297188689 for thread 1 is in sequence #1
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u19/app/oracle/oradata/ORCL/redo01.log
Log applied.
Media recovery complete.
SQL>
SQL>
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [krsm_mrp_rebuild_lf_list.lno_mismatch], [3], [1], [1], [0]
分析alert日志,是由于归档无法被正常创建导致该问题,对/u19/dbs/arch/进行创建并授权之后,再次尝试打开数据库,数据库报ORA-600 kcbzib_kcrsds_1错误
SQL> startup nomount pfile='/tmp/pfile'; ORACLE instance started. Total System Global Area 6442448984 bytes Fixed Size 8910936 bytes Variable Size 3858759680 bytes Database Buffers 2566914048 bytes Redo Buffers 7864320 bytes SQL> alter database mount; Database altered. SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-00603: ORACLE server session terminated by fatal error ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [kcbzib_kcrsds_1], [], [], [], [] Process ID: 42259 Session ID: 1 Serial number: 19675
使用obet的patch scn功能修改scn之后(obet patch_scn使用说明),顺利打开库


记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
由于服务器断电导致数据库启动报错
Mon Sep 07 12:47:52 2026 ALTER DATABASE OPEN Beginning crash recovery of 1 threads parallel recovery started with 32 processes Started redo scan ORA-00354: 损坏重做日志块标头 ORA-00353: 日志损坏接近块 41735 更改 2385313823 时间 09/07/2026 10:35:04 ORA-00312: 联机日志 5 线程 1: 'D:\APP\LIMSADMIN\ORADATA\ORCL\REDO05.LOG' Mon Sep 07 12:47:58 2026 Trace dumping is performing id=[cdmp_20260907124758] Errors in file d:\app\limsadmin\diag\rdbms\primary\orcl\trace\orcl_ora_3040.trc: ORA-00354: 损坏重做日志块标头 ORA-00353: 日志损坏接近块 41735 更改 2385313823 时间 09/07/2026 10:35:04 ORA-00312: 联机日志 5 线程 1: 'D:\APP\LIMSADMIN\ORADATA\ORCL\REDO05.LOG' ORA-354 signalled during: ALTER DATABASE OPEN...
从这里看,数据库在启动的时候实例恢复需要读取REDO05.LOG日志,但是发现该日志中有block损坏,而且损坏日志的时间点为09/07/2026 10:35:04,scn为2385313823(ORA-00353: 日志损坏接近块 41735 更改 2385313823 时间 09/07/2026 10:35:04),导致实例恢复无法完成,从而数据库无法正常启动.通过Oracle Recovery Check脚本检查数据库当前状态,数据库的checkpoint time为:09/07/2026 10:37:37,checkpoint scn为:2385314357


这个就比较明显,数据库文件正在需要的日志是sequence 19001 REDO01.LOG(而不是报错的sequence 19000 REDO05.LOG),基于这样的情况,出现这种问题,是由于control中记录的Thread Checkpoint RBA不正确导致.解决这个问题相对比较简单,重建ctl即可

由于redo05.log有损坏,该库为归档模式,需要先clear redo05.log(不然会导致redo无法归档,数据库hang住),然后对全库发起备份

加我微信(17813235971)
加我QQ(107644445)

