WordPress網站的滲透測試
已發表: 2020-03-20WordPress 為 Internet 上的許多網站提供支持。 因此,經驗豐富的攻擊者和“腳本小子”喜歡以 WordPress 網站為目標也就不足為奇了。 無論您是網站管理員還是安全專家,在負責評估 WordPress 網站的安全狀況時,了解攻擊者通常會利用的常見安全陷阱往往會有所幫助。 使用正確的滲透測試工具也很重要。
在本文中,我將介紹一些常見的安全漏洞、不當行為和攻擊者可能在許多 WordPress 安裝中濫用的有用信息。 我還將重點介紹一些您可以用來幫助您自動化 WordPress 滲透測試的工具。
注意——僅對屬於您或您已獲得許可的系統執行安全滲透測試。 了解您被授予的訪問權限並保持在這些限制內。
常見的 WordPress 安全問題和不當行為
過時的 WordPress 代碼版本
運行包含安全漏洞的舊版本 WordPress 核心可以說是與 WordPress 相關的最常見的安全漏洞之一。 雖然較新版本的 WordPress 可以輕鬆升級到最新版本,但較舊的 WordPress 網站落後的情況並不少見。
在 Internet 上運行舊版本的 WordPress 是一顆定時炸彈。 許多舊版本的 WordPress 包含安全漏洞。 其中許多安全問題通常被攻擊者集體利用。
在審核 WordPress 網站的安全漏洞時,這通常是您首先要檢查的事情之一。 對於攻擊者來說幸運的是,默認情況下,WordPress 添加了一個 HTML 元標記,其中包含正在使用的 WordPress 版本。
<元名稱=“生成器”內容=“WordPress 4.8.11” />
知道 WordPress 安裝運行的是舊版本可能使攻擊者有機會利用已知漏洞。 使用 CVE 安全漏洞數據庫搜索 WordPress 核心中的已知安全問題。
WordPress 主題和插件的過時版本
WordPress 核心非常安全。 數以百萬計的用戶和惡意黑客都在測試和徹底審查代碼。 這意味著在大多數情況下,安全問題會在被攻擊者濫用之前被發現並修復。 但是,它不能免受安全漏洞的影響。 不幸的是,這不適用於成千上萬的 WordPress 插件和主題。
任何人都可以提交主題或插件,並使其可供任何 WordPress 管理員下載和使用。 當然,這並不意味著每個WordPress 插件都編碼不佳且漏洞百出——遠非如此。 但是,已知漏洞向 WordPress 暴露了巨大的攻擊面,您在進行 WordPress 滲透測試時應該注意這一點。
用於對易受攻擊的 WordPress 插件和主題進行指紋識別的最快、可以說是最全面的工具是使用 WPScan。 WPScan 是一個開源的黑盒WordPress 安全掃描程序,經常用於掃描 WordPress 網站以查找核心、插件和主題中的已知漏洞。
在滲透測試期間使用 WPScan 時,請確保您註冊並將其配置為使用WPScan Vulnerability Database API 密鑰。 WPScan 漏洞數據庫是由 WPScan 的作者維護的數據庫,其中包含最新的已知漏洞及其各自的版本。
有關 WPScan 以及如何運行不同類型掃描的更多信息,請參閱 WPScan 入門。
舊版本的 PHP 和 Web 服務器
WordPress 是一個 PHP Web 應用程序,因此,所有 PHP 安全最佳實踐也適用於 WordPress。 在 WordPress 滲透測試期間,這是首先要尋找的東西之一。 運行舊版本 PHP 或 Web 服務器軟件(例如 Nginx、Apache HTTP Server、IIS ……)的 WordPress 安裝可能會使網站遭受各種不同的攻擊。
很容易找出 WordPress 網站使用的 Web 服務器和 PHP 版本。 在許多情況下,攻擊者需要做的只是密切關注從網站返回的 HTTP 響應標頭。 您可以使用 curl 自己發送請求:
$ curl -s -D – http://167.71.67.124/ -o /dev/null | grep -i “服務器\|X-Powered-By”
在響應中查找Server和X-Powered-By HTTP 標頭:
服務器:Apache/2.4.29 (Ubuntu)
X-Powered-By: PHP/5.5.9
根據網站的版本和配置,攻擊者可能能夠利用已知漏洞(例如 https://www.cvedetails.com/vendor/74/PHP.html)獲取有關目標的其他信息。 此類信息可以幫助升級攻擊,甚至可以直接在 Web 服務器上執行命令。
WordPress用戶名枚舉
除非系統管理員採取措施阻止它,否則默認情況下,WordPress 容易受到用戶枚舉攻擊。 WordPress 用戶枚舉攻擊,尋找 WordPress 如何響應特定請求的細微差別。 根據響應,攻擊者可以確定用戶是否存在,從而允許攻擊者可能將此信息用作更大攻擊的一部分。
以下是 WPScan 執行 WordPress 用戶名枚舉攻擊的截圖。
Web 服務器配置錯誤
目錄列表和其他 Web 服務器配置錯誤
除了過時的軟件外,還必須始終評估任何潛在的 Web 服務器配置錯誤。 配置錯誤的 Web 服務器可能會使 WordPress 網站容易受到攻擊。 即使 Web 服務器運行的是最新軟件,也可能發生這種情況。 以下是一些典型的 Web 服務器配置錯誤:
啟用目錄列表
目錄列表是一種非常常見的錯誤配置。 Apache Web 服務器默認啟用此功能,但沒有幫助。 當沒有索引文件時,目錄列表只是在圖形界面中列出 Web 服務器上的文件和目錄。
雖然這本身並不是特別有害,但它為攻擊者提供了瀏覽 Web 服務器目錄內容的可能性。 這可能讓他看到您網站上的所有文件,其中大部分不應該公開訪問,但可以訪問,例如備份、密碼和配置文件。
備份文件
備份文件是另一個非常常見的Web 服務器配置錯誤。 通常這些情況發生在系統管理員手動編輯生產系統上的文件時。
暴露潛在敏感信息的備份文件的一個常見示例可能是 PHP 文件的備份副本。 有時 PHP 文件包含重要的配置數據——例如 WordPress 的 wp-config.php 文件。
採取以下場景 - WordPress 管理員需要對 wp-config.php 進行更改。 他們沒有遵循最佳實踐並將文件副本保存在 Web 服務器以外的其他位置,而是製作了實時 wp-config.php 的副本,並將備份命名為 wp-config.php.bak。 現在讓我們假設系統管理員忘記刪除此文件,這比我們想像的更頻繁。
攻擊者現在可以通過簡單地請求http://www.example.com/wp-config.php.bak來讀取文件。 攻擊者可以讀取該文件,因為它的擴展名不再是 .php。 因此 PHP 引擎會忽略它,而 Web 服務器將其作為文本文件提供。 現在攻擊者知道了 WordPress 數據庫憑據、秘密令牌和您保存在該文件中的任何其他敏感配置信息。
臨時文件
與備份文件類似,錯誤位置的臨時文件可能會暴露潛在的敏感數據。 再次以 wp-config.php 為例。 如果系統管理員必須使用文本編輯器編輯此文件,並且由於某種原因程序沒有乾淨地退出,那麼編輯器很有可能會留下臨時文件。 例如,流行的命令行編輯器 Vim 將帶有 *.ext~ 擴展名的備份文件與 *.ext.swp 文件一起存儲。 swp 文件用作鎖定文件。 它們還包含所有撤消/重做歷史,以及 Vim 需要的其他內部信息。
因此,在發生崩潰時,Vim 會留下一個 wp-config.php.ext~ 文件,該文件可以像備份文件一樣以純文本形式訪問,因為它不以 *.php 文件擴展名結尾。 這種臨時文件並不是 Vim 獨有的——Emacs(另一種流行的命令行文本編輯器)也保存類似的臨時文件,無數其他工具也這樣做。
注意——為您的網站使用文件完整性監控插件,以獲取所有文件更改的警報,包括臨時文件和備份文件。 如果您不熟悉這項技術,請閱讀我們對 WordPress 文件完整性監控的介紹。
暴露的 MySQL
到目前為止,系統管理員可能犯的最嚴重的錯誤配置之一就是讓他們的 WordPress MySQL 數據庫服務器對 Internet 開放。 為什麼這聽起來很瘋狂,它的發生可能比你想像的要多。 以下是互聯網連接設備搜索引擎 Shodan 的屏幕截圖。
當然,僅僅因為 MySQL 暴露在 Internet 上並不意味著有人可以連接到它並訪問 WordPress 數據庫。 但是,特別是如果與其他攻擊結合使用,例如通過備份 wp-config.php 洩露密碼或猜測弱密碼,則可能導致災難場景。
一旦控制了 WordPress 數據庫,安裝 WordPress 就結束了。 攻擊者需要做的就是重置管理員密碼。 然後他們幾乎完全控制了您的 WordPress 網站,甚至可能通過故意安裝惡意插件來控制它運行的服務器。
運行不必要的服務
另一個常見的 Web 服務器配置錯誤問題是默認配置。 許多管理員運行默認配置並且不禁用他們不需要的服務。 在大多數情況下,默認安裝運行了許多不必要的服務,如果不安全,其中大部分會使 Web 服務器受到攻擊。
用於 WordPress 滲透測試人員和安全專業人員的滲透測試工具
滲透測試人員使用各種工具來自動化他們的工作和技術。 自動化有助於減少執行安全評估/滲透測試所需的時間。
卡利 Linux
一個人使用的工具千差萬別。 這取決於個人喜好和手頭的問題。 但是,一個好的起點是預先安裝各種工具供您使用。
Kali Linux,以前稱為 BackTrack,是首選的開源滲透測試 Linux 發行版。 Kali Linux 捆綁了一整套預安裝和預配置的工具。 它對希望快速入門的新手用戶以及經驗豐富的滲透測試人員都很有用。 Kali Linux 是免費提供的,可以在虛擬機上運行。
地圖
這款免費掃描儀是任何 pentester 武器庫中最基本和最通用的掃描儀之一。 Nmap 主要是一個端口掃描器。 但是,它可以通過其 NSE 腳本語言進行擴展以進行各種不同類型的掃描。
WP掃描
WPScan(本文前面介紹過)是一個開源的 WordPress 安全掃描器。 它掃描已知的 WordPress 漏洞——包括 WordPress 核心以及 WordPress 插件和主題中的漏洞。
WPScan 可以執行一系列黑盒測試。 也就是說,無需訪問源代碼。 因此,WPScan 非常適合快速準確地發現低懸的 WordPress 漏洞。
OWASP ZAP
OWASP Zed Attack Proxy (ZAP) 是一個免費的開源 Web 應用程序滲透測試工具。 開放 Web 應用程序安全項目 (OWASP) 維護此工具。 OWASP ZAP 專為測試 Web 應用程序的各種漏洞而設計,例如跨站點腳本 (XSS) 和 SQL 注入 (SQLi)。 ZAP 的核心是代理。 它位於滲透測試者的瀏覽器和網站之間,用於攔截和檢查兩者之間發送的請求。
除了充當代理之外,ZAP 還可以自動測試各種漏洞,還可以對各種輸入進行fuzz 。 Fuzzing是一種安全測試技術,其中向應用程序提供無效或意外的輸入,目的是發現安全漏洞。
WordPress 的滲透測試——評估您網站的安全狀況
WordPress 安全性不是一次性修復。 這是一個基於四個原則的持續過程:強化 > 監控 > 測試 > 改進。 通過滲透測試,您可以解決測試原理。 即您檢查您的網站的安全狀態。 然後,您可以根據您的發現採取必要的措施來改進設置。
因此,頻繁的 WordPress 網站滲透測試應該是您安全計劃的一部分。 您判斷應該多頻繁地進行滲透測試。 如果您經常更改您的網站,那麼您應該經常進行測試。 但是,如果您的網站很少得到更新,那麼季度滲透測試就可以解決問題。