通过SSH查找和删除?

时间:2012-02-16 15:04:57

标签: security ssh removeall

我的网络服务器遭到黑客入侵(尽管安全团队告诉我没有任何内容被泄露),并且无数数量的文件有额外的PHP代码生成一些链接到一些越南网站。

鉴于我的服务器上有成千上万的文件,我是否有办法使用SSH并从其中找到的每个文件中删除该行代码?

请具体说明你的答案,我只使用了几次SSH来完成一些非常基本的任务,并且不想最终删除一堆我的文件!

4 个答案:

答案 0 :(得分:2)

是的,有几行shell脚本可以做到。不过,我犹豫是否愿意给你,好像出了什么问题,我会因搞乱你的网络服务器而受到指责。也就是说,解决方案可以这么简单:

for i in `find /where/ever -name '*.php'`; do
    mv $i $i.bak
    grep -v "http://vietnamese.web.site" $i.bak >> $i
done

这会找到*php下的所有/where/ever个文件,并删除其中包含http://vietnamese.web.site的所有行。它会生成每个文件的*.bak副本。运行此操作后,一切似乎都很好,您可以使用

删除备份
find . -name '*.php.bak' -exec rm \{\} \;

您的下一个任务是寻找新的提供商,因为他们不仅遭到黑客入侵,而且他们显然不会保留备份。祝你好运。

答案 1 :(得分:0)

首先创建一个正则表达式,匹配坏代码(只有坏代码),然后运行

find /path/to/webroot -name \*.php -exec echo sed -i -e 's/your-regex-here//' {} \;

如果一切正常,请删除echo

答案 2 :(得分:0)

我是这样做的。例如。删除与特定名称或扩展名匹配的文件。

rm -rf * cron.php。 *

rm -rf * match_string *

其中 match_string 将是任何字符串。确保*和字符串名称之间没有空格。

答案 3 :(得分:0)

rm -f cron.php.*

删除此文件夹中名为 cron.php的所有文件。[whereveryouwant]