Web 伺服器攻擊方法論描述了攻擊者為了成功攻擊 Web 伺服器而進行的步驟。以下是攻擊者通常採用的六個主要階段:
攻擊者在進行攻擊之前,會先收集與目標伺服器相關的所有資訊,這包括伺服器的 IP 位址、網域名稱、開放的埠、作業系統版本、已安裝的 Web 應用程式以及其他可用於後續攻擊的資訊。這個階段的主要目標是找出所有可用的資訊,以便在後續攻擊中加以利用。
這個階段中,攻擊者會進行 Web 伺服器的足跡分析,深入瞭解伺服器的結構和組態資訊。通常使用的工具包括 Nmap
和 Netcraft
等,用來掃描伺服器的服務、已知漏洞及其他技術細節。透過這些分析,攻擊者能夠更加精確地鎖定目標,並找出潛在的攻擊路徑。
攻擊者會利用 HTTrack
、wget
或其他網站複製工具來下載目標網站的所有頁面,建立一個離線的網站鏡像。這樣做的目的是分析網站內容與結構,並在離線環境中測試漏洞或模擬攻擊,避免直接攻擊目標伺服器而被偵測。
在漏洞掃描階段,攻擊者會使用 Nessus
、OpenVAS
、Acunetix
等自動化工具來掃描 Web 伺服器上潛在的安全漏洞。這些工具會嘗試辨識已知的弱點,包括過期的軟體版本、錯誤設定的服務、弱密碼或可被利用的後門程式等。掃描結果可以幫助攻擊者找出可以利用的漏洞來執行進一步攻擊。
在攻擊者進入會話劫持階段時,會試圖奪取目標使用者與 Web 伺服器之間的有效 TCP 或 HTTP 會話。透過監聽或注入惡意封包,攻擊者能夠劫持合法使用者的會話,進而模擬使用者與伺服器進行互動,竊取敏感資訊或進一步控制伺服器。
攻擊者在這個階段會針對 Web 伺服器進行密碼破解攻擊。常見的手法包括暴力破解(Brute Force)、字典攻擊(Dictionary Attack)及社交工程(Social Engineering)。攻擊者透過這些手段來取得伺服器管理員或其他使用者的密碼,以獲得系統的完全控制權。
在這些階段中,攻擊者會利用多種自動化與手動工具來達成目的。常見的工具包含但不限於:
Nmap
:用於進行伺服器與網路的掃描,檢測開放埠和服務。Netcraft
:用來進行網站技術細節的探查。HTTrack
、wget
:用於網站鏡像下載。Nessus
、OpenVAS
、Acunetix
:用於漏洞掃描。Hydra
、John the Ripper
:用於密碼破解。資訊收集是攻擊者在進行 Web 伺服器攻擊之前,最重要的第一步。這個階段的目標是收集目標公司或組織的所有相關資訊,幫助攻擊者評估 Web 伺服器的安全性狀態。透過不同的工具和技術,攻擊者可以找出並理解伺服器的架構和潛在的弱點。
who.is
和 Whois Lookup)查詢 WhoIs 資料庫
who.is
是一個用於執行 WhoIs 查詢功能的工具。它提供網域查詢、WhoIs IP 查詢和 WhoIs 資料庫查詢等功能,幫助攻擊者蒐集有關網域註冊和可用性的相關資訊。who.is
進行查詢example.com
)。透過資訊收集,攻擊者可以針對目標建立一個完整的檔案,了解伺服器的軟硬體架構及潛在的漏洞,為後續的攻擊策略制定奠定基礎。這個階段越完整,攻擊的成功率就越高。因此,企業應定期檢查並限制公開的敏感資訊,同時加強對 WhoIs 資料的管理與隱私保護。
robots.txt
文件進行資訊收集(Information Gathering from robots.txt
File)robots.txt
是網站用來控制搜尋引擎爬蟲行為的文件,它告知搜尋引擎哪些目錄和檔案不應被索引。網站擁有者透過設定 robots.txt
,可以規範搜尋引擎不應訪問的特定區域。然而,若該文件配置不當,可能會將機密資料或特定檔案公開,進而造成安全隱患。
robots.txt
文件的特性robots.txt
文件包含了網站希望搜尋引擎不進行索引的檔案或目錄列表。網站網址/robots.txt
)直接訪問 robots.txt
文件,從中發現可能包含敏感資訊的路徑或檔案。robots.txt
文件進行以下操作:網站網址/robots.txt
查詢該網站的 robots.txt
文件,查看網站禁止搜尋引擎訪問的路徑及檔案。robots.txt
文件中列出某些目錄或檔案(如管理員登入頁面、系統設定檔、用戶帳號資料等),這些路徑可能透露了網站的結構及系統設定資訊。wget
工具下載 robots.txt
文件
wget
這類下載工具將目標網站的 robots.txt
文件下載到本地進行分析,找出潛在的漏洞。假設某網站的 robots.txt
文件包含以下內容:
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /backup/
這表示:
/admin/
、/private/
、/backup/
這些目錄。但攻擊者可以透過直接訪問這些路徑來嘗試發現未被保護的頁面。/backup/
目錄中包含網站的備份檔案,攻擊者可能會下載這些檔案,進而取得網站的原始碼或資料庫備份,導致資訊洩露。以下是兩個常見的工具及其使用方式:
Netcat
Netcat
是一種在網路連接中讀寫資料的工具,利用 TCP/IP 協定執行資料傳輸與偵測。
執行命令:按下 Enter 後再輸入:重複按下 Enter 兩次,這樣可以取得伺服器的標頭資訊,並透過該資訊判別伺服器作業系統與 HTTP 版本。
n -vv www.microsoft.com 80
GET / HTTP/1.0
Telnet
Telnet
是一個傳統的網路協定,用來與遠端伺服器建立互動式的文字介面連線。
執行命令:按下 Enter 後再輸入:重複按下 Enter 兩次,可以取得伺服器回應標頭中的 Server
欄位資訊,幫助了解伺服器所使用的 HTTP 伺服器類型及版本。
telnet www.moviescope.com 80
GET / HTTP/1.0
Nmap 是一個強大的網路探測及安全審查工具,可用來列舉網頁伺服器的詳細資訊。Nmap 提供了進階的指令與 Nmap Scripting Engine (NSE) 腳本,能協助攻擊者或管理者蒐集伺服器的服務版本、漏洞及登入憑證等資訊。
以下列出使用 Nmap 列舉目標網站資訊的範例命令:
列舉伺服器版本資訊
nmap -sV -O -p target IP address
sV
:啟用版本偵測,顯示開放端口的版本資訊。O
:啟用作業系統偵測。p
:指定掃描的端口號。列舉 HTTP 協定與伺服器服務資訊
nmap -sV --script http-enum target IP addres
-script http-enum
:使用內建的 HTTP 列舉腳本來查詢 HTTP 服務的詳細資訊。掃描特定端口並使用腳本檢測登入介面
nmap target IP address -p 80 --script =http-frontpage-login
p 80
:指定掃描 80 號端口(HTTP 標準端口)。-script=http-frontpage-login
:使用 http-frontpage-login 腳本來檢測 Web 前端的登入介面。檢查伺服器上是否存在已知的密碼漏洞
nmap --script http-passwd --script-args http-passwd.root=/ target IP address
-script http-passwd
:使用內建的 http-passwd 腳本來列舉伺服器上可能存在的敏感密碼檔案。-script-args
:指定腳本參數,例如 http-passwd.root=/
,表示從根目錄開始檢查可能的密碼檔案。網站鏡像是一種創建網站的完整副本的技術,可以幫助攻擊者或滲透測試人員建立網站的結構資訊檔案。網站鏡像會將目標網站的目錄結構、檔案結構、外部連結等資訊進行下載及儲存,以便進行更深入的分析。
網站鏡像會向目標伺服器發送大量請求,以提取所有可用的網站資源。這可能會導致伺服器負載過高,並引起伺服器端的日誌紀錄。管理者可以使用以下方法來防範網站被鏡像:
Web 伺服器的管理介面通常會被攻擊者鎖定,尤其是那些公開可訪問並且使用預設憑證的管理頁面。攻擊者可以利用這些憑證來取得管理員權限,進而控制伺服器及其上的資源。
攻擊者可以使用以下幾種技術來查找並嘗試預設憑證:
大多數 Web 應用程式伺服器都包含預設的內容和功能,這些預設的內容可能成為攻擊者利用的目標。例如,管理員調試和測試功能、樣本功能、公開訪問的強大功能以及伺服器的安裝手冊,這些預設內容如果沒有適當保護,可能會讓攻擊者發現並利用來發動攻擊。
攻擊者通常使用自動化掃描工具來查找 Web 伺服器上的預設內容和功能。例如:
在 Web 伺服器中,目錄列表是指伺服器返回的包含該目錄下所有檔案與資料夾名稱的網頁內容。當 Web 伺服器收到對某個目錄的請求時,可能會以下列方式之一來回應請求:
index.html
、index.php
等。403 Forbidden
或其他錯誤訊息。當伺服器未正確配置時,目錄列表可能會暴露伺服器的結構、文件名稱和敏感文件,讓攻擊者利用這些資訊來進行進一步的攻擊。
目錄列表有時會包含以下弱點,使攻擊者能夠更容易地入侵 Web 伺服器:
http://example.com/files/
,如果伺服器未正確配置,可能會直接返回該目錄下的所有文件名稱列表。弱點掃描是指透過自動化工具來識別網路中可能存在的弱點,並確定系統是否容易受到攻擊者的利用。這種方法旨在幫助安全專家找出網路、伺服器和應用程式中的漏洞,並進行修補以降低風險。
Acunetix 是一款專業的 Web 弱點掃描工具,以下是使用 Acunetix 進行掃描的過程:
https://example.com
在進行 Web 伺服器攻擊時,攻擊者會使用多種密碼破解技術來試圖獲取伺服器的登入密碼,以下是常見的破解技術:
以下是使用這些工具進行 Web 伺服器密碼破解的範例:
使用 Hashcat 進行暴力破解攻擊
hashcat -a 3 -m 0 hashes.txt ?d?d?d?d
a 3
來執行暴力攻擊,嘗試所有可能的四位數組合(?d
表示數字)。使用 THC Hydra 對 SSH 進行字典攻擊
hydra -l admin -P passwords.txt ssh://192.168.1.10
192.168.1.10
上的 SSH 服務執行字典攻擊,l admin
表示使用者名稱,P passwords.txt
表示使用 passwords.txt 檔案中的密碼進行測試。使用 Ncrack 對 FTP 服務進行密碼測試
ncrack -p ftp -U users.txt -P passwords.txt 192.168.1.20
192.168.1.20
上的 FTP 服務進行密碼破解測試,U users.txt
表示使用者名稱檔案,P passwords.txt
表示密碼檔案。攻擊者可以利用啟用了**轉發(forwarding)和反向 HTTP 代理功能(reverse HTTP proxy functions)**的 Web 伺服器,將其用作攻擊的中介代理。這種情況下,攻擊者可以通過這些伺服器發起下列行為:
GET
和 CONNECT
請求來連接到目標系統。這些請求會通過代理 Web 伺服器傳送,伺服器會將請求轉發到最終目標系統。Metasploit Framework 是一個專門用於開發和運行各種漏洞利用程序(exploit)的平台,它能夠完全自動化地對 Web 伺服器進行攻擊,並利用已知的漏洞來進行入侵。攻擊者可以通過 Telnet、SSH、HTTP 和 SNMP 等協定,利用 Metasploit 平台中的弱密碼和已知漏洞來達到攻擊目的。
Metasploit 是一個功能強大且用途廣泛的攻擊工具,能夠幫助使用者快速進行漏洞測試與攻擊操作。無論是滲透測試還是系統防護,了解 Metasploit 的使用都是非常重要的。然而,由於其強大的攻擊能力,應謹慎使用,並僅用於合法的滲透測試與安全研究。
修補管理是一個確保系統安裝適當修補程式以修復已知漏洞的過程,主要目的是維護系統安全性和穩定性。
修補管理的自動化流程可分為以下幾個步驟:
修補程式可以透過以下兩種方式安裝:
修補管理工具 (Patch Management Tools)