标题: 利用/proc//exe恢复被删除的文件
创建: 2020-08-14 17:47
更新:
链接: http://scz.617.cn:8/unix/202008141747.txt
先不多说,直接看操作序列,有Linux基础的一看就明白。
$ cp $(which cat) /tmp/some
$ md5sum $(which cat) /tmp/some
7dae2782851e077091a2980d986646a2 /usr/bin/cat
7dae2782851e077091a2980d986646a2 /tmp/some
$ /tmp/some /dev/urandom > /dev/null
上述命令不会终止,始终在那里执行,换个伪终端继续。
$ rm -f /tmp/some
$ ls -l /tmp/some
ls: cannot access /tmp/some: No such file or directory
$ ls -l /proc/$(pidof some)/exe
lrwxrwxrwx. 1 scz scz 0 Aug 14 17:44 /proc/56823/exe -> /tmp/some (deleted)
/tmp/some从文件系统删除了,但之前启动的那个进程还在,藉此可以恢复some文件。尽管形式上看"/proc//exe"只是个符号链接,且源文件已被删除,但这种情况下可以视之为源文件的物理备份,对之进行拷贝操作。
$ cp /proc/$(pidof some)/exe /tmp/some.recover
$ md5sum $(which cat) /tmp/some.recover
7dae2782851e077091a2980d986646a2 /usr/bin/cat
7dae2782851e077091a2980d986646a2 /tmp/some.recover
该技巧存在很久,有些人可能没往这方面想过,有些人可能长期用不上而忘记它的存在,干脆再提醒一下。
某些时候这招用得上。但有些时候可能必须进行内存转储,考虑自解压、自解密、自脱壳的情形,再比如解密密钥是在环境变量中临时指定的,等等。关于内存转储,参看:
《*nix环境用户态memdump的几种方案》
http://scz.617.cn:8/unix/201811271208.txt
后面的内容与标题无关,但其实后面的内容才是本文的要点,因为我要开始胡说八道打广告了!
先看胡珀给某人写的列传:
再看胡珀给某人写的简介:
马传雷,著名白帽子,又名马三、三叔、flyh4t、马院长,蚂蚁金服业务安全专家,曾任同盾反欺诈研究院院长、腾讯安全应急响应中心(TSRC)负责人、绿盟安全技术总监,著《互联网业务反欺诈之路》,号“业务安全之父”、TSRC终身荣誉顾问(世袭罔替)
下面是我关于马传雷的描述。首先其自称PHP程序员,我不懂编程,不知道这是拼音首字母缩写还是啥,总之,这位天天给我说PHP是最好的语言。虽然我们宇宙虫族的精神图腾不是这个,但我有几刻也就假装信了。其次,这是我见过的少有的义气之辈,非常之义气,由于事涉个人不便细述,总之在安全江湖中交游极其广泛,为人极其热心。第三,跟前面列传所述不同,这位肚量似海,为人宽厚,正常情况下我会叫他传雷,不正常情况下我会叫她马大妈,你们仔细看看照片,就知道我说的才是真实情况。。他是2007年来NSFOCUS的,跟我有过长达7年的同事关系,后来南下去负责腾讯TSRC,再后来去同盾工作,现在去了阿里。他负责TSRC期间,我还给他贩卖过若干高手,也曾拿过腾讯的荐人费,哈哈。
今天的广告是:
购买链接在此:
https://item.m.jd.com/product/12946188.html
或进点击"阅读原文"进行跳转。