我正在努力编写一个 ssh 命令来搜索我的服务器上包含的每个文件
<!--4e530a--> ... malcious code ... <!--/4e530a-->
然后删除标签和其中的javascript。
也很想知道代码是如何自我再生的。
首先,如果恶意代码正在“重新生成”,那么您面临的问题比简单地从文件中删除恶意代码要大得多。您可能已经通过某种方式受到威胁,并且攻击者可以持续访问您的系统,或者已经植入了一些恶意软件(可能是 root-kit)来骚扰您的服务器。 你需要解决这个问题!
这里有数以千计的可能性,但在您致电专业人士之前可以轻松检查一些可能性(您确实需要致电专业人士,但您可以提供的信息越多越便宜),新用户帐户,不寻常的用户帐户活动、失败的登录尝试、异常的流量负载/模式等。
至于您的实际问题,请使用find
将文件提供给grep
,并grep
搜索文件。像这样的东西:
grep --color --line-number "malicious code" $(echo $(eval find / -type f))
如果您的系统上有大量文件,您可能会遇到“args 太多”的问题。如果发生这种情况,您将不得不对脚本进行创作,或者在子目录中运行它。如果您愿意,可以使用我在 Github 上编写的名为“findref.sh”的脚本。该脚本将使您尝试做的事情变得容易,并且可以弥补“参数过多”的问题和 grep。
至于删除内容,使用 bash/SSH 自动执行将非常困难(但可能)。您可能想为此编写一个 Python 或 Perl 脚本并将其 SCP 结束,然后通过 SSH 启动它。小心使用脚本来修改您的代码,特别是如果它是生产代码。