Linux命令行:编辑被黑客攻击的索引文件

Linux命令行:编辑被黑客攻击的索引文件,linux,security,command-line,plesk,Linux,Security,Command Line,Plesk,不幸的是,我又一次遇到了Linux Plesk服务器上的一个被黑客攻击的站点。虽然这个问题在FTP访问被改变后得到了解决(这可以归结为著名的个人电脑上的Filezilla FTP代码黑客),但我很高兴知道如何编辑文件,因为将站点恢复到我们拥有的最新备份可能需要一个多小时,我很高兴它能更快地恢复在线。 黑客攻击相当简单:在站点中的许多index*(似乎只有index.php)文件中插入了javascript代码。 我正在寻找一种大规模编辑被黑客攻击的文件的方法,因为我知道即使目标javascrip

不幸的是,我又一次遇到了Linux Plesk服务器上的一个被黑客攻击的站点。虽然这个问题在FTP访问被改变后得到了解决(这可以归结为著名的个人电脑上的Filezilla FTP代码黑客),但我很高兴知道如何编辑文件,因为将站点恢复到我们拥有的最新备份可能需要一个多小时,我很高兴它能更快地恢复在线。 黑客攻击相当简单:在站点中的许多index*(似乎只有index.php)文件中插入了javascript代码。 我正在寻找一种大规模编辑被黑客攻击的文件的方法,因为我知道即使目标javascript代码是相同的,它也可能是从一些可能也被黑客攻击的站点调用的。所以当我的合法索引文件开始时

<?php

我会在解决此问题之前修复跨端脚本漏洞,否则一切都将徒劳。完成后,只需简单地搜索和替换包含公共字符串的脚本块就足够了。

我真诚地希望您不要实际管理生产域。您应该通知用户,修复问题,让用户返回到最近没有问题的备份

很难说还有什么被篡改了

我很高兴我的副总裁在别的地方

find-name'index.php'-print0|
find -name 'index.php' -print0 |
    xargs -0 sed -i '1s#^<script type="text/javascript" src="http://.*\?/facebook.php"></script>##g'
xargs-0 sed-i'1s^###g'
我们应该创造奇迹

sed命令:

  • 1
    (第一行匹配)
  • s#pattern#replacement#g
    (用替换替换模式,而不是后者为空)
  • ^
    必须在行首匹配
  • *\?
    接受任意长度的字符序列;但是,如果可以对整个图案进行多个a匹配,则只能匹配其最短的变体

Cheers

“我会在解决此问题之前修复跨端脚本漏洞,否则一切都将徒劳无功。”这肯定是有道理的,我也在努力解决这一问题。不过,一旦解决了这个问题,我很高兴看到一个“简单搜索并替换包含公共字符串的脚本块”的例子。我只是想澄清一下,黑客攻击并没有发生在我们的服务器端,从技术上讲,是使用合法帐户进行的未经授权的访问,当服务器网站上的更改发生在一台被黑客入侵的Windows PC上的凭据被盗时,显然是在Filezilla未加密的存储凭据中。谢谢你的有效帮助。@sehe实际上,我对答案投了反对票,因为它们没有回答原始海报的问题,而且坦率地说是煽动性的。OP有一系列的问题要处理被黑客攻击的服务器,其中包括修复损坏,这就是这个问题所涉及的。也许OP应该编辑帖子说“我已经识别并删除了漏洞”,以便从社区获得合法的帮助。我很感激你否决了它。没有害处。我将删除OP中的尖刻评论。然而,我确实觉得这两个答案都试图诚实地防止进一步的危险和损害。我确实觉得从另一个答案开始是没有用的。这个很棒的网站是为了帮助像我这样的人提高他们对正则表达式和cli工具的知识,不要收到对任何人都没有帮助的半途而废的明智和无用的sarastic评论。我不是在要求投票:)虽然我很想知道如何使用流编辑器来做这件事,但你可能可以用[0-9a-zA-Z.]+来隔离随机域部分+不确定在什么时候我就你一无所知的上下文征求了建议。没有生产站点,也没有你应该担心的用户。是的,我确实在一个服务器上遇到了一个安全问题,该服务器托管了一个我工作的测试域,所以这个问题是关于批量编辑文件的帮助,没有其他问题。我确实投票否决了任何答案,但我很高兴一些和蔼可亲的人觉得你应该这么做。我想我对“不幸再次处理…”和“假设80个不同的网站:”的理解是错误的。(我支持我的建议,但因为它没用,我发布了一个真实的答案)@poundifdef:谢谢你抓住了这一点:用
反勾号引用是一个坏习惯。。。我将开始观察它(第一次发生)并将其分解:
xargs
获取
find
返回的每个结果,并将其用作
sed
中的参数
-i
就地替换文件(通过xargs作为参数传递给sed)。对于正则表达式。。。好吧,其他人将不得不解释正则表达式是如何工作的@poundifdef:通过Addedthan的一些令人兴奋的谈话,我最终用sed-I's_解决了这个问题,我很久以前就投票重新开放了,但仍然需要更多的投票:)干杯
find -name 'index.php' -print0 |
    xargs -0 sed -i '1s#^<script type="text/javascript" src="http://.*\?/facebook.php"></script>##g'