問題描述

我的 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。