技術

放了2000美元比特幣的PHP誘餌伺服器,19小時就被PHP2Shell攻破

Adrian Kessler
在 Google 中新增我們

一部執行未修補 PHP 的伺服器,內藏比特幣錢包金鑰作為誘餌並持續連線上網,撐不到一天就遭攻破。使用 KillaBoi(基拉博伊)為代號的研究人員,利用 PHP2Shell 入侵伺服器;這是 PHP 中兩個重大漏洞,而 PHP 正是大多數網站所使用的程式語言。他成功取出金鑰。同一個週末,Perplexity 的一名資安主管架設的蜜罐也記錄到攻擊者對一部真實伺服器做出相同攻擊,讓「這些漏洞太難利用,沒人能得手」這種令人安心的說法站不住腳。

這件事與所有架設網站的人,以及資料存放在網站上的人都息息相關。WordPress、Drupal、Joomla 和大多數虛擬主機服務都仰賴 PHP,而這些漏洞可能讓沒有帳號的人在伺服器上執行指令。修補程式推出後,主張可以暫緩更新的主要理由,一直是公開的攻擊嘗試屢屢失敗。如今這兩起結果都推翻了這個說法。

這項名為 Steal My Bitcoin 的挑戰,刊登於專屬網站,並透過論壇貼文公布。發起者以 cloudlandsdev 為名發文寫道:「我做這個是因為很好奇,有沒有人已經找出如何真正利用這個 PHP RCE。我們前幾天一直在恐慌。祝玩得開心!」獎金最初約為 502 美元,之後透過捐款增至 0.02511679 BTC;據 Tom’s Hardware 報導,挑戰推出約 19 小時後有人成功領取,當時價值 2,021.22 美元。大量嘗試攻擊的人潮讓伺服器不堪負荷,加上儲存空間有限,無法保留所有紀錄。

之後,基拉博伊在 GitHub 公開了一份概念驗證。WordPress 資安公司 Wordfence 創辦人 Mark Maunder(馬克・莫安德)稱這份說明是「你能看到關於 #php2shell 有多難利用的最佳解說」,並指出這類攻擊需要多麼精準的操作。事實證明,難度高不代表耗時長。

更令人憂心的結果來自這場挑戰之外。Perplexity 偵測與應變主管 Adel Karimi(阿德爾・卡里米)表示,他的蜜罐捕捉到一起已確認的遠端程式碼執行攻擊,目標是執行 PHP 8.4.26 的 Apache 伺服器。BleepingComputer 報導,他寫道:「現在已確認這是能實際利用記憶體洩漏的 RCE,不只是當機後出現可疑程序。」Expel 威脅研究員 Marcus Hutchins(馬庫斯・哈欽斯)一直追蹤成功攻擊的相關說法,他稱這是「迄今為止我看過、品質最高的 php2shell 野外利用確認案例」。在此之前,Cloudflare、watchTowr、Patchstack 等資安公司記錄到的都只有失敗的攻擊嘗試;Amazon 威脅情報團隊則在修補程式發布前四天,已觀察到掃描活動開始。

這兩起結果都不代表所有未修補的伺服器明天就會遭到攻擊。基拉博伊取回的金鑰,與網站公布的錢包地址並不相符;據 Cointelegraph 報導,主辦方稱這是設定失誤,並表示會轉移款項。資安網站 Cyberpress 也指出,公開證據顯示的是金鑰遭取出,而非獎金被盜。此外,公開的漏洞利用程式是針對某一個特定 PHP 版本建置調校,對同一版本的其他建置版本則無法奏效,因此並不是一款按下按鈕就能使用的工具。如今已經站不住腳的,是「沒有人成功利用過」這種辯解。

受影響範圍遍及全球。Cointelegraph 報導,荷蘭、澳洲、日本和芬蘭的政府機構,在等待修補程式準備就緒期間,讓重要網站暫時下線。資安公司 Mallory 透過 Shodan 統計發現,約有 884,000 台可從網際網路連線的主機,公開顯示已不再獲官方修補的 PHP 版本;據 Notebookcheck 報導,這約佔公開版本資訊的 150 萬台主機中的 59%。不過,這些只是伺服器橫幅資訊的統計,並非已確認的受害者數量,因為 Linux 發行版經常會在不更改版本號的情況下,為舊套件安裝修補程式。

對網站管理者而言,修補方式並沒有改變。已修補版本為 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35,於 10 月 21 日發布,修正的漏洞編號為 CVE-2026-109618 和 CVE-2026-109619,兩者的嚴重程度評分皆為 10 分中的 9.2 分。若使用虛擬主機,更新要由主機服務商處理,而不是透過更新 WordPress 或外掛完成;因此,向服務商確認網站執行的是哪個 PHP 建置版本,以及何時完成修補,才是實際有用的做法。美國網路安全暨基礎設施安全局 CISA 已要求無法更新,或仍在使用 PHP 8.1 及更舊版本的機構,先將這些系統下線,直到完成更新為止。

下一個問題已經浮現。週五,PHP 團隊公布第三個遠端程式碼執行漏洞的暫行因應方法,漏洞編號為 CVE-2026-115560,目前尚無修補程式,而且只影響「設定與應用程式程式碼組合異常」的系統。在修補程式推出前,PHP 開發者建議停用 session.upload_progress 設定;他們先前也曾在 PHP2Shell 修補程式發布前提出相同建議。PHP 8.2 的安全支援將於 2026 年 12 月 31 日結束,而仍停留在 8.1 的伺服器,支援期限早已過期。

標籤: , , , , ,

在 Google 中新增我們

討論

共有 0 則留言。