超過40%的網站是由WordPress驅動的。但這使得這個受歡迎的CMS成為駭客的吸引目標。

因此,如果您運行一個WordPress網站,您需要確保其安全。而這不僅僅是一項技術任務,還是從品牌聲譽、數據洩露和業務連續性等多個角度的重要責任。

在WordPress生態系統中,有一個工具特別突出,那就是 WPScan。它是一款專門為WordPress設計的安全掃描器,根據您的需求提供付費和免費許可證。它也預裝在Kali Linux發行版中。

無論您是經驗豐富的網站管理員還是希望提高網站安全性的網站所有者,WPScan都可以幫助您在攻擊者利用漏洞之前識別出來。

在繼續之前,有一件非常重要的事情:本文的目的是幫助個人和組織通過有效利用WPScan來加強其WordPress網站的安全性。

雖然這個工具在識別漏洞方面非常強大,但強調任何未經授權使用WPScan的行為—例如在未經適當許可的情況下掃描網站—不僅是不道德的,也是非法的。

我分享這些信息的目標是使網站管理員和開發人員能夠主動保護他們的網站,保障他們的數據,並為所有人創造一個更安全的在線環境。

我們將涵蓋的內容:

  1. 什麼是WPScan?

  2. 如何使用WPScan掃描您的WordPress網站

  3. 如何處理WPScan的結果

  4. WPScan的限制

  5. 使用WPScan的最佳實踐

  6. 如何有效監控結果

  7. 結論

什麼是WPScan?

WPScan 是一個命令列工具,可以幫助您識別 WordPress 安裝中的潛在漏洞。它就像是您網站的安全警衛,監控著過時的外掛程式、配置錯誤和其他常見問題。

WPScan 的獨特之處在於它專注於 WordPress。它使用由安全專家維護的資料庫,該資料庫定期更新,以跟踪 WordPress 核心、外掛程式和主題中成千上萬的已知漏洞。

WPScan 能做什麼?

以下是 WPScan 可以幫助您處理的一些事情:

  • 檢測過時的 WordPress 核心版本。

  • 識別外掛程式和主題中的漏洞。

  • 列舉使用者(例如,發現使用者名稱)。

  • 測試弱密碼(使用字典攻擊)。

  • 尋找暴露的敏感文件(如備份或除錯日誌)。

現在讓我們來看看您可以使用的最常見命令。

如何使用 WPScan 掃描您的 WordPress 網站

1. 基本掃描

基本掃描提供了您的 WordPress 網站安全性概覽,通過識別關鍵的漏洞或錯誤配置。它可以檢測 WordPress 核心版本,並在版本過舊時標記出來,突顯出與舊版本相關的潛在風險,如 SQL 注入或跨站腳本(XSS)漏洞。

掃描還可能揭示公開可訪問的備份文件(例如,.sql.zip)或調試文件如 debug.log,這些文件可能會暴露敏感信息,如數據庫憑證或伺服器路徑。

它可以標記缺少或配置不當的 HTTP 安全標頭,例如嚴格傳輸安全(HSTS)或內容安全政策(CSP),這些對於防止協議降級攻擊和未經授權的腳本執行至關重要。

如果在公共元數據中識別到開放的目錄,這些目錄可能會暴露您網站的文件結構,以及潛在的易受攻擊的插件或主題,也可能會被標記。

這些發現提供了一個起點,以解決基本的安全漏洞。

wpscan --url http://yourwebsite.com

當您運行此命令時,您將在終端上看到這些內容:

2. 列舉用戶

用戶列舉是一個識別您 WordPress 網站上用戶名的過程。知道這些用戶名可以幫助攻擊者針對特定帳戶進行暴力破解攻擊。

要列舉用戶,請運行:

wpscan --url http://yourwebsite.com --enumerate u

輸出將顯示用戶名:

如果您發現像 admin 這樣的默認用戶名,您應該將其替換為獨特且安全的名稱。

以下是一些用戶名的最佳實踐:

  • 避免使用預設名稱:用獨特且不易猜測的名稱替換預設用戶名,如adminuser

  • 重命名易受攻擊的用戶名:要更改用戶名,可以創建一個具有管理員權限的新用戶,轉移帖子或內容的所有權,然後刪除舊用戶。

  • 小心使用基於角色的用戶名:避免根據其角色命名帳戶(例如editormanager),因為這些帳戶可能成為容易的攻擊目標。

  • 實施登錄鎖定:將安全的用戶名與在多次登錄失敗後鎖定帳戶的插件結合使用。

  • 啟用雙因素身份驗證 (2FA):添加2FA確保即使猜測了用戶名,帳戶仍然保持安全。

3. 檢查插件和主題

插件和主題可能存在安全問題。WPScan 可以列出所有已安裝的插件和主題,以及任何相關的漏洞。

對於插件,運行這個:

wpscan --url http://yourwebsite.com --enumerate p

它的輸出會像這樣:

對於主題,運行這個:

wpscan --url http://yourwebsite.com --enumerate t

它的輸出會類似於這樣:

在結果中尋找過時的版本或已知的漏洞,並立即更新或替換這些組件。

讓我們來看看插件和主題中的一些常見安全問題。

首先,我們有 跨站腳本攻擊 (XSS)。插件或主題中不安全的輸入處理可能允許攻擊者注入惡意腳本,潛在地竊取用戶信息或接管管理會話。一個安全性較差的 WordPress 網站如果存在 XSS 漏洞,可能允許攻擊者竊取會話 cookies,潛在地獲得未經授權的管理訪問權,注入惡意重定向,將用戶帶到網絡釣魚網站,顯示欺騙性內容,誘使用戶提供敏感信息。

還有 SQL 注入。編寫不良的插件或主題可能使攻擊者能夠操縱數據庫查詢,暴露敏感數據或損壞您的網站。SQL 注入漏洞可以被利用來轉儲敏感數據、繞過身份驗證,並修改或刪除數據。

某些插件或主題可能包含惡意代碼——無論是故意還是由於安全性差——這使得攻擊者可以未經授權訪問您的網站,這被稱為 後門。一旦安裝,後門可以提供持久訪問權限,允許任意文件上傳,破壞網站完整性,並竊取敏感數據。

還有 遠端代碼執行 (RCE)——這些漏洞允許攻擊者在您的伺服器上執行任意代碼,通常導致對您的網站或伺服器的完全控制。一旦攻擊者獲得 RCE 訪問權限,他們可以創建管理用戶,竊取數據,發動進一步的攻擊,以及提升權限。

最佳實踐:

  • 始終將插件和主題更新到最新版本。

  • 刪除任何未使用或不活躍的插件和主題,因為這些仍然可能構成風險。

  • 確保插件和主題來自可信的、聲譽良好的來源,並且有活躍維護的歷史。

  • 考慮使用安全插件來監控插件或主題文件的變更並檢測可疑活動。

4. 密碼測試

WPScan 可以通過使用字典進行暴力破解攻擊來測試弱密碼:

wpscan --url http://yourwebsite.com --passwords /path/to/passwords.txt

這是您命令行的輸出:

什麼是暴力破解?

暴力破解是攻擊者使用的一種方法,通過系統地嘗試每一種可能的組合,直到找到正確的密碼。當結合一個字典——一個包含常用密碼集合的文件時,暴力破解變得更快速和更有效率。

一個典型的字典可能包括:

  • 簡單密碼,如 123456passwordqwerty

  • 常見模式,例如 Spring2024!welcome123

  • 從先前數據泄露中洩漏的密碼

通過模擬這種類型的攻擊,WPScan 可以識別使用弱密碼的帳戶,讓您主動解決漏洞問題。

弱密碼使暴力破解變得更容易和更快。一個短小或可預測的密碼可能在幾秒內被猜中,而一個更長、更複雜且具有獨特元素的密碼則更難破解。

如何創建強密碼

強密碼是抵禦暴力破解攻擊的第一道防線。以下是強密碼的關鍵特徵:

  • 長度:至少 12–16 個字符長。

  • 複雜性:使用大小寫字母、數字和特殊字符的組合。

  • 獨特性:避免在多個帳戶間重複使用密碼。

  • 不可預測性:避免使用字典單詞、常見短語或個人資訊,如生日。

生成強密碼的策略

你可以採取各種措施來創建強密碼。首先,使用密碼生成器 像 LastPass 和 Bitwarden 這樣的工具可以為你創建並存儲高度複雜的密碼。

你還應該使用密碼短語(而不僅僅是普通密碼)。將隨機、不相關的單詞與數字和符號結合,例如 Sky#Tree!Motorbike12

最後,避免可能被攻擊者輕易猜測的模式。不要使用像 abcdefqwerty 這樣的順序或鍵盤模式。

使用工具來管理密碼

管理強密碼可能會很具挑戰性。密碼管理器通過安全存儲和自動填充您的憑據來簡化這一過程。流行的選擇包括:

  • Bitwarden

  • LastPass

這些工具還具有密碼審計等功能,以檢測重複或弱密碼。

使用雙重身份驗證 (2FA)

雙重身份驗證 (2FA) 通過要求用戶通過密碼以外的第二個因素來驗證其身份,增加了額外的安全層。這可以包括:

  • 一次性代碼通過電子郵件或短信發送。

  • 應用生成的代碼來自像 Google Authenticator 或 Authy 的工具。

  • 生物識別驗證,例如指紋或面部識別。

即使攻擊者通過暴力破解猜測了您的密碼,2FA 也可以防止他們在沒有第二次驗證的情況下訪問您的帳戶。這一步驟使得暴力破解變得不切實際,因為攻擊者還需要破壞您的 2FA 設備或方法。

如何在 WordPress 中實施 2FA
  1. 安裝 WordPress 外掛程式,例如Google Authenticator

  2. 要求所有使用者帳戶,尤其是管理員,啟用雙因素驗證(2FA)。

  3. 提供備用代碼或恢復選項,以防使用者無法存取其2FA設備。

  4. 在強制實施之前,測試並確保2FA對所有使用者角色都能可靠運作。

密碼衛生的重要性

通過使用強密碼並實施2FA,您可以顯著降低暴力破解攻擊的有效性。

WPScan 的密碼測試功能可以幫助您識別弱密碼。它還強調了積極的密碼衛生和額外安全層的重要性,以確保您的 WordPress 網站安全。

如何處理 WPScan 的結果

WPScan 的報告提供對網站安全的具體見解。以下是您可以根據信息採取的行動:

首先,更新 WordPress 核心、外掛程式和佈景主題:保持所有更新以修補漏洞。

其次,解決配置問題:修復配置錯誤的文件權限、不安全的 HTTP 標頭和其他警告。

這裡有幾個你可以應用的糾正示例:

  • 目錄索引:如果 WPScan 檢測到開放目錄,請通過將以下行添加到您的 .htaccess 文件來禁用目錄瀏覽:

      Options -Indexes
    
  • 文件權限:確保像 wp-config.php 這樣的關鍵文件是只讀的,方法是使用以下命令將權限設置為 440400

      chmod 400 wp-config.php
    

你還應該加強所有用戶帳戶的安全性。可以通過幾種方式來實現這一點:

  • 更新弱密碼:為所有用戶帳戶使用強大、獨特的密碼(參考密碼測試部分以獲得建議)。

  • 刪除未使用的帳戶:刪除不活躍的帳戶,尤其是具有管理員特權的帳戶。

  • 重新命名可預測的用戶名: 將像admin這樣的用戶名更改為不那麼明顯的名稱。

同時確保保護任何敏感文件:如果WPScan發現像debug.log這樣的暴露文件,請刪除或保護它們。刪除不必要的文件或舊備份。

對於需要保留的文件,將它們移動到網站根目錄之外的目錄中。您還可以使用.htaccess保護文件,通過使用DenyAllow規則阻止對敏感文件的訪問:

<Files wp-login.php>
    Order Deny,Allow
    Deny from all
    Allow from 123.456.789.000
</Files>

WPScan的限制

WPScan是一個強大的工具,但它確實具有一些限制。只是要意識到這些限制,這樣您就可以採取其他措施來保護您的WP站點。

1. 僅已知漏洞

WPScan依賴於其已知漏洞的數據庫,因此它無法捕捉零日漏洞或自定義漏洞。

以下是一些您可以應對此問題的建議:

  • 保持消息靈通: 監視WordPress安全博客、CVE或WPVulnDB等漏洞數據庫,以及社區論壇,以防範新興威脅。

  • 使用網路應用防火牆(WAF):像 Cloudflare 或 Sucuri 的工具可以阻止可疑活動和試圖利用未知漏洞的行為。

  • 進行手動安全審查:定期檢查您的網站是否有異常行為或未經授權的變更,特別是在關鍵檔案中,如 wp-config.php 或您的資料庫。

2. 無即時保護

WPScan 是一個診斷工具,不是防火牆或入侵檢測系統。為了提供即時保護,將 WPScan 與其他工具結合使用是一個好主意。

您可以採取的一些步驟是:

  • 安裝安全插件:使用特定的安全插件提供持續監控、惡意軟體掃描和防火牆保護。

  • 監控活動日誌:設置活動追蹤以識別可疑的登錄嘗試、檔案變更或未經授權的用戶行為。

3. 資源密集

掃描具有許多插件和主題的大型站點可能耗時並可能影響伺服器性能。

您可以採取各種策略來減輕這種情況,例如在低流量時段安排掃描以最小化對站點訪問者的干擾。您還可以在站點的暫存副本上執行掃描,而不是直接在實時環境中執行。

4. 學習曲線

作為一個命令行工具,WPScan 可能對技術水平較低的用戶具有威嚇作用。然而,文檔非常出色,並且通過練習,您將變得熟練。

如果 CLI 對您來說太困難,請嘗試將 WPScan 與提供基於 GUI 的掃描和報告的安全插件配對。

使用 WPScan 的最佳實踐

為了充分利用 WPScan,您需要根據站點的特定需求量身定制其使用方式,並建立強大的監控結果策略。以下是您可以最大化其效果的方法:

為您的站點選擇適合的掃描

WPScan 提供各種掃描選項,從基本掃描到針對插件、主題和用戶帳戶的有針對性的漏洞檢查。選擇正確的掃描取決於您管理的站點類型以及其處理的數據的敏感性。

對於小型、低流量站點

  • 優先進行基本掃描,檢查 WordPress 核心、插件和主題是否有更新和漏洞。

  • 每月運行掃描或在重要更新後運行。

  • 如果懷疑存在弱密碼或默認用戶名,請使用用戶列舉(--enumerate u)功能。

對於中型企業網站:

  • 除了基本掃描外,還應包括插件和主題列舉(--enumerate p,t)功能,以確保所有組件都是安全的。

  • 每周進行掃描,以應對新興威脅。

  • 結合 WPScan 與活動日誌插件,以跟踪用戶操作和文件更改。

對於高流量或電子商務網站:

  • 執行全面掃描,包括用戶列舉(--enumerate u)、文件列舉(--enumerate f)和密碼暴力測試(如有允許)。

  • 每日或每週掃描以降低風險。

  • 為管理帳戶實施額外措施,如雙因素身份驗證(2FA)、網頁應用防火牆(WAF)和安全標頭,以加強您的網站安全。

對於處理敏感數據的網站

  • 優先進行所有可用掃描,包括針對暴露文件和配置漏洞的掃描。

  • 每週掃描並通過安全插件進行實時監控。

  • 使用測試環境來測試安全設置,而不影響生產環境。

您應該使用所有掃描嗎?

雖然使用WPScan提供的每個掃描似乎是有益的,但有各種因素需要考慮。

首先,考慮您網站的大小和資源。對於較小的網站,運行所有掃描可能會造成資源浪費和過度負擔。

您還需要專注於針對您網站最可能的漏洞進行掃描。例如,一個電子商務網站應優先考慮用戶和支付安全,而不是全面的文件列舉。

合規要求也是需要考慮的重要因素。如果您受到如GDPR等法規的約束,請確保您掃描並處理與數據保護相關的漏洞。

如何有效監控結果

監控WPScan結果是很重要的。這不僅有助於您修復漏洞,還幫助您建立一個系統來跟蹤隨時間的變化並保持警覺。

設置報告

您可以使用--output標誌將掃描結果保存到文件中:

wpscan --url http://example.com --output /path/to/report.txt

然後定期審查報告並將其與之前的掃描進行比較,以識別重複出現的問題或新漏洞。

制定行動計劃

根據嚴重性(例如,危急、中等、低)對漏洞進行分類是一個好主意。

這使您能夠立即處理高嚴重性問題(例如,存在已知漏洞的過時插件)。然後,您可以安排較低優先級的任務,例如文件權限調整或小型配置更改,以進行例行維護。

使用電子表格或項目管理應用(例如,Trello、Asana)來記錄漏洞、修復和後續行動。

確保分析重複問題以識別模式,例如頻繁的插件漏洞,並考慮更換有問題的組件。

自動通知

如果您使用cron工作排程掃描,請設置電子郵件警報或通知以及時查看結果。

使用具有實時監控功能的安全插件,在WPScan檢查之間通知您有可疑活動。

與您的團隊溝通:

您需要確保與相關團隊成員(例如開發人員或網站管理員)分享報告,以便每個人都了解潛在的漏洞。

另外,建立對於發現關鍵漏洞時立即採取行動的協議也是一個好主意。

通過根據您網站特定需求選擇掃描並實施結構化監控結果的方法,您可以確保有效使用WPScan。同時,確保將工具適應您的風險配置文件,隨時間追踪漏洞並將其發現整合到更廣泛的安全策略中。

這種方法不僅提高了您網站的安全性,還減少了資源使用和努力,同時提供最大的保護。

結論

WPScan對於任何管理WordPress網站的人來說都是一個無價的工具。它簡化了識別漏洞的過程,並提供清晰的可行建議來加強您網站的安全性。

透過將 WPScan 整合到您的工作流程中並遵循最佳實踐,您可以降低攻擊風險並保持您的 WordPress 網站安全。安全是一個持續的旅程,像 WPScan 這樣的工具使您更容易在潛在威脅之前保持領先。