1

我的服务器感染了恶意软件。我已将我的 Linux 服务器升级到最新版本,并且没有新文件被感染,但我现在需要清理所有文件。

我可以找到执行以下操作的所有文件:

grep -H "gzinflate(base64_decode" /home/website/data/private/assets/ -R | cut -d: -f1

但是,我现在想删除gzinflate(base64_decode每个文件中包含的行。

4

2 回答 2

2

我会sed -i '/gzinflate(base64_decode/d'用来删除文件中的那些匹配行:

... | xargs -I'{}' sed -i '/gzinflate(base64_decode/d' '{}'

注意:您确实希望仅使用grep -Rlnot grep -RH .. | cut -d: -f1as-l列出匹配的文件名,因此您不需要通过管道传输到cut.

警告:你真的应该关心这里更深层次的安全问题,我现在根本不相信这个系统,你不知道哪些后门打开了,哪些文件可能仍然被感染。

于 2013-01-17T13:30:49.877 回答
0

一旦你使用你的命令得到这些文件

 grep -H "gzinflate(base64_decode" /home/website/data/private/assets/ -R | cut -d: -f1

您逐个循环文件​​并使用 grep -v "gzinflate(base64_decode" file > newfile

于 2013-01-17T13:28:11.310 回答