<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>惜分飞 &#187; readme_to_recover</title>
	<atom:link href="https://www.xifenfei.com/tag/readme_to_recover/feed" rel="self" type="application/rss+xml" />
	<link>https://www.xifenfei.com</link>
	<description>提供7*24专业数据库(Oracle,SQL Server,MySQL,PostgreSQL等)恢复和技术支持@Tel:17813235971</description>
	<lastBuildDate>Thu, 22 Oct 2026 15:45:06 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>注意:PostgreSQL库出现readme_to_recover勒索</title>
		<link>https://www.xifenfei.com/2026/01/pg-readme_to_recover.html</link>
		<comments>https://www.xifenfei.com/2026/01/pg-readme_to_recover.html#comments</comments>
		<pubDate>Thu, 22 Jan 2026 13:30:25 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[pg 删表勒索]]></category>
		<category><![CDATA[readme_to_recover]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=11936</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2026/01/pg-readme_to_recover.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2026/01/pg-readme_to_recover.html" target="_blank">注意:PostgreSQL库出现readme_to_recover勒索</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>以前恢复过不少mysql库被删除的勒索case,比如:<br />
<a href="https://www.xifenfei.com/2024/05/read_me_recover_tn-recovery.html" title="read_me_recover_tn勒索恢复" rel="noopener" target="_blank">read_me_recover_tn勒索恢复</a><br />
<a href="https://www.xifenfei.com/2024/10/a_h_readme_to_recover.html" title="A_H_README_TO_RECOVER勒索恢复" rel="noopener" target="_blank">A_H_README_TO_RECOVER勒索恢复</a><br />
<a href="https://www.xifenfei.com/2023/11/a____z____recover____data.html" title="A____Z____RECOVER____DATA勒索恢复" rel="noopener" target="_blank">A____Z____RECOVER____DATA勒索恢复</a><br />
今天在PostgreSQL库中也简单了类似的勒索案例</p>
<pre class="brush: sql; title: ; notranslate">
[postgres@xifenfei database]$ psql 
psql (12.8)
Type &quot;help&quot; for help.

postgres=&gt; \l
                                     List of databases
       Name        |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
-------------------+----------+----------+------------+------------+-----------------------
 ldar-test         | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 postgres          | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 readme_to_recover | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0         | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
                   |          |          |            |            | postgres=CTc/postgres
 template1         | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
                   |          |          |            |            | postgres=CTc/postgres
(5 rows)

postgres=&gt; \c readme_to_recover
You are now connected to database &quot;readme_to_recover&quot; as user &quot;postgres&quot;.
readme_to_recover=&gt; \d
         List of relations
 Schema |  Name  | Type  |  Owner   
--------+--------+-------+----------
 public | readme | table | postgres
(1 row)

readme_to_recover=&gt; select * from readme;
                                                                                                   
                                 text_field                                              
-------------------------------------------------------------------------------------------------------
-------------------------------------------------
 All your data is backed up. You must pay 0.0051 BTC to bc1q9p333xxxxxxxxxxxxxj2z5fs27pu3u In 48 hours, 
  your data will be publicly disclosed and deleted . (more information: go to http://2info.win/psg)
 After paying send mail to us: rambler+3d2l7@onionmail.org and we will provide a link for 
   you to download your data. Your DBCODE is: xxxxx
(2 rows)

readme_to_recover=&gt; select oid,relname from pg_class;
   oid   |                    relname                    
---------+-----------------------------------------------
 2196735 | readme
    2619 | pg_statistic
    1247 | pg_type
    4159 | pg_toast_2600
    4160 | pg_toast_2600_index
    2830 | pg_toast_2604
    2831 | pg_toast_2604_index
    4161 | pg_toast_3456
    4162 | pg_toast_3456_index
    2832 | pg_toast_2606
    2833 | pg_toast_2606_index
………………
   13373 | _pg_foreign_tables
   13377 | foreign_table_options
   13383 | _pg_user_mappings
   13391 | user_mappings
   13387 | user_mapping_options
(396 rows)
</pre>
<p>根据这里的readme的oid值，初步怀疑是drop所有业务表,然后创建了readme表,并且插入了勒索信息.<br />
<br />
我做的各种数据库恢复比较多，说实话一直对pg这个特点非常不满意：<br />
<em>1. pg的数据存储本身依赖文件系统，通过oid(来表示库，表示表以及其他各种对象，和很多商业化数据库不一样，对于文件系统过于依赖，这样的情况如果发生了drop/truncate表等操作，表从文件系统中被删除，恢复难度较大<br />
2. pg的表对应本身没有在每个数据块的block记录表的id信息，这样使得无法很好的进行底层基于block的扫描恢复数据，目前我知道的pdu一定的这样的功能，但是那是依赖列匹配，原则上来说对于一个稍微复杂一点的系统，这个恢复思路基本上不可行（因为列相似的数据表可能很多，导致恢复的数据过于混乱）</em><br />
基于上述的两个特点，如果整个业务库被这种勒索破坏，如果没有备份，想比较好的恢复效果基本上很难（除非你运气非常好，os层面反删除恢复效果特别好，这要取决被删除的表在os上没有覆盖，文件系统元数据没有回收，系统没有识别是ssd环境等因素决定）<br />
<br />
基于这种故障在没有备份的情况下很难恢复，那我们要做的就是：<br />
1）有有效的备份或者容灾不被破坏;<br />
     1> 数据需要有效的备份,有条件的建议异机或者离线<br />
     2> 如果有条件可以部署延迟同步的备库,避免发生故障备库同步 被破坏</p>
<p>2）尽可能不让这种故障发生:<br />
     1>数据库不要暴露在公网上,减少被攻击和入侵的风险<br />
     2>数据库不要使用弱口令,减少被暴力攻破密码的风险<br />
     3>注意应用漏洞，减少通过sql注入进行数据库进行破坏<br />
     4>注意已知的数据库安全漏洞,防止被利用进行攻击<br />
     5>注意操作系统安全,因为登录了数据库服务器对于数据库来说就没有安全可言</p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/04/pg-createdb-gbk.html" rel="bookmark" class="crp_title">pg创建gbk字符集库</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/04/pg_filedump_batch.html" rel="bookmark" class="crp_title">PostgreSQL恢复系列:pg_filedump批量处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/09/pg-truncate-recovery.html" rel="bookmark" class="crp_title">Postgres数据库truncate表无有效备份恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2018/08/pg-tablespace-database-schema.html" rel="bookmark" class="crp_title">PostgreSQL的表空间、数据库、用户之间的关系</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2018/08/postgresql-archive_mode.html" rel="bookmark" class="crp_title">PostgreSQL修改归档模式</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/12/pg-replace-oid-recovery.html" rel="bookmark" class="crp_title">PostgreSQL oid文件替换实现数据访问</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/03/pg_control-rebuild.html" rel="bookmark" class="crp_title">pg_control丢失/损坏处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2018/08/pg_rman_backup_restore.html" rel="bookmark" class="crp_title">pg_rman 备份还原测试</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/04/postgresql-walminer.html" rel="bookmark" class="crp_title">PostgreSQL解析wal日志之&#8212;walminer</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2015/06/%e5%9c%a8linux%e4%b8%8a%e5%ae%89%e8%a3%85postgresql-9-4%e5%b9%b6%e5%90%af%e5%8a%a8%e5%92%8c%e5%85%b3%e9%97%ad%e6%95%b0%e6%8d%ae%e5%ba%93.html" rel="bookmark" class="crp_title">在linux上安装PostgreSQL 9.4并启动和关闭数据库</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/03/pdu-recovery-corrupt-block.html" rel="bookmark" class="crp_title">PostgreSQL表文件损坏恢复&#8212;pdu恢复损坏的表文件</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2024/04/postgresql-16-source-install.html" rel="bookmark" class="crp_title">PostgreSQL 16 源码安装</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2026/01/pg-readme_to_recover.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
