相較於偵測系統是否存在已知安全漏洞的弱點評估作業,滲透測試是一種更積極驗證系統安全性的方法,透過模擬惡意攻擊行為,以便找出目前IT系統中不安全的部份,而要執行這樣的工作,除了請人工的方式來發動之外,也可搭配專用的工具軟體協助,較知名的有Nmap、Nessus、Wireshark等,而2009年Rapid7公司併購的Metasploit也是其中之一。

相較於前一版的功能規格,Metasploit 4.5版總共包含了180種新的模組,其中一半以上都與漏洞利用有關,但最受矚目的特色,是在專業版(Pro)中,該公司推出了全新的社交工程執行機制。

有了這項功能,測試人員能夠更快速執行這種以「人」為對象的安全演練,並即時看到驗證結果、取得報表,裡面包含風險分析與矯正的建議。

提供較多簡化測試流程操作的機制

Metasploit目前提供了多種版本,其中可免費下載使用的,有專門提供給開發與資安研究人員的Framework平臺(它同時是開放原始碼專案),以及社群版(Community)。

這套Framework,僅具備命令列的操作介面與基本的滲透測試功能,但已經包括近期針對不同平臺的數百種遠端漏洞利用行為模組,可讓IT人員混合運用,以便執行指定的滲透任務。至於社群版,已提供了簡單的網頁操作介面,具備管理資料、網路探勘(Discovery)與匯入第三方安全系統的能力,可進行基本的滲透測試。

Metasploit也有需付費使用的兩種版本可選購。以精簡版(Express)為例,裡面提供了更便於一般人操作的圖形使用介面,可自動探勘指定範圍的上網裝置、執行密碼稽核作業,以及協助設計、執行滲透測試的流程,並且內建更聰明的密碼暴力破解(Bruteforce)與漏洞利用(Exploit)機制,而在相關記錄的管理上,也有收集證據與報表產生的功能。

若需要執行更精密、複雜的滲透攻擊,Metasploit目前在比精簡版更高階的專業版裡面,提供了針對網頁應用程式、發動社交工程攻擊的功能,以及VPN樞紐測試(Pivoting,讓使用者可以將網路流量經由受滲透的主機轉向至不同的網路),同時,這個版本的系統也能支援多人使用,使測試團隊的多個成員之間能彼此協同作業,並提供他們自定報表的彈性。

我們到原廠網站下載Metasploit Pro版,執行安裝檔後,相關的建置步驟相當容易操作,但需注意的是,最好將這套軟體安裝在沒有啟用防毒軟體與個人防火牆的電腦上,因為裡面有些用到涉及漏洞利用的模組檔案與存取行為,通常會被這些安全機制視為惡意攻擊行為,而受到封鎖、隔離。

倘若這臺執行Metasploit系統的電腦不裝防毒軟體,又要長期架設在內部網路使用,我們建議還是要設法確保本身的安全性,例如落實身分驗證、系統更新等基礎系統安全措施、只裝系統必要的功能,以免原本作為執行滲透測試的主機反遭潛入,並遭到濫用。

由於Metasploit在社群版以上的版本提供了網頁介面,而我們所測試的專業版,讓我們能夠從瀏覽器直接登入系統的管理頁面,而不需要辛苦地背一堆指令,以便從命令列型態的主控臺操作。接下來,如果要開始執行滲透測試,主要是從這個網頁介面來,建立不同的專案,以便設定相關項目。

在Metasploit內,每個滲透測試專案包含了針對的目標與預計執行測試的任務,也等於是界定了不同的工作區範圍,因此我們可以指定網段或選擇不同群組的電腦、伺服器、網路設備,來建立個別的專案,能隨時檢視測試的過程結果,以便持續追蹤。

設定介面好上手,快速測試企業面對社交工程攻擊的反應,更為簡便

在滲透測試項目中,目前相關弱點管理的產品對於驗證網路、系統的安全性,各廠商所發展的功能已有一定成熟度,但要檢驗使用者資安意識是否足夠,想要針對用戶端電腦執行社交工程攻擊的測試,並不容易,往往要靠人工架設,然而這需要一定的網頁管理經驗、能力,搭配適合的軟硬體設備,等真正實作出來,已浪費很多時間。

而Metasploit Pro在4.5版中,特別增加了發動社交工程模擬攻擊的演練項目,測試人員能夠設定電子郵件、網頁與檔案,來發動網路釣魚、USB丟包(USB drops)、檔案格式漏洞利用等攻擊。

所謂的USB drops,前身是CD Drops和Floppy Drops,是指精心設計一個可以反向連接的木馬程式,隱藏在USB、光碟、軟碟中的檔案內,當受害者執行看似正常的軟體、文件、圖檔等,會同時觸發惡意程式,造成受害者的系統遭植入反向後門,或在系統背景蒐集電腦內的文件打包後,自動上傳給駭客。

例如,若攻擊目標是男性,發動者可以在對方的置物櫃、路上、桌上等放置成人光碟片,誘騙觀看後,導引他執行惡意程式或開啟惡意網站,達到入侵的效果。這種方式並不會受到Windows的AutoRun保護機制所限,因此這種迂迴的攻擊手法仍有很大的成效。

若要在社交工程演練中,發動更進階的網頁攻擊,測試人員還可以利用Metasploit本身的Browser Autopwn模組,或專門針對已簽署的Java Applet來設定。前者的作用,是為了主動偵測誘騙端所使用的瀏覽器類型,並利用與已知漏洞匹配的攻擊程式碼來埋入後門程式。後者是指利用中間人攻擊(Man In The Middle)的手法,將使用者原本所存取正常的網址瀏覽重新導向,並提示Java簽章許可畫面,目的是誘騙使用者允許執行惡意的Java Applet程式碼,達到入侵的效果。

基本上,這套產品提供了很容易上手設定的網頁使用介面,只要照著圖示的步驟引導去逐項設定,雖然系統預設提供的電子郵件與網頁範本的內容,都是以英文寫成,但就算不對照說明書,還是能夠很快建立多組社交工程攻擊性質的活動。我們實際用一步步設完,不修改系統提供的選項,在很短時間內即可完成假網站的架設,並寄出釣魚信(內含網頁連結或夾帶可安裝惡意程式的附檔),操作起來相當直覺。

測試人員若要即時查看測試進行的結果,在Metasploit Pro的網頁介面上,可以直接檢視截止當前為止的統計資訊,或用報表檔案產生的形式呈現、下載(支援PDF、DOCX、RTF、HTML等4種格式),來應付資安稽核需求。

提供網路探勘功能,並可搭配多種弱點評估平臺使用

在執行一般的滲透測試之前,我們需要先探勘指定IP位址範圍,Metasploit會利用Nmap4的探測器,但系統並不自動探勘IPv6的位址,若要針對這樣的網路環境去使用,需自行匯入或手動輸入到該套系統中。

若不想用預設的網路探勘方式,管理者也能自定Nmap的執行參數,以及想預先排除掃描的端點IP位址與TCP埠號,還可針對PortScan設定逾時上限與套用5種執行速度(例如可快到延遲不超過5毫秒,也可慢到足以迴避IDS的偵測),以及額外要掃描的項目——開H.323視訊會議的相關端點、SNMP的Community String。

若掃描的是提供微軟Windows網路芳鄰共享服務,或執行SMB/Samba協定的電腦,我們也可以在Metasploit探勘設定中,輸入帳號、密碼和網域,以便讓Metasploit的SMB計數模組能夠運用。

如果系統發現掃描到的端點是虛擬機器,隨後也會在處理結果中,搭配專用的小圖示來突顯。這裡可以支援VMware、Xen等7種虛擬機器上所執行的作業系統(Guest OS),以及執行這些VM的主機(Host),但目前僅支援VMware ESX/ESXi和vCenter Server。

Metasploit也可以結合Rapid 7的另一套弱點評估產品Nexpose,用它來掃描這些設備是否具有已知的弱點未修補,之後這些掃描結果可以透過特製的連結機制,自動匯入Metasploit的專案裡,以便進一步驗證與測試(能掃描的最大設備數量,端賴Nexpose版本而定)。

在匯入弱點掃描資料上,許多知名的弱點評估系統所使用的格式,Metasploit都支援,例如Foundstone、微軟MBSA、Nessus、Qualys、Nmap、Retina等。

涵蓋網頁應用程式的弱點管理

有別於上述單純從網路層面來看待系統弱點的方式,針對網頁應用程式的安全性檢測需求,Metasploit在專業版提供了網頁掃描、弱點稽核功能,能偵測遠端程式碼執行、跨站腳本和SQL注入等類型的弱點,並可結合它自身提供的漏洞利用攻擊機制,形成一整套針對網頁環境的專屬弱點管理機制。

針對網頁與網站應用程式的掃描功能,是專業版所獨有的。Metasploit提供了網頁擷取器,能蒐羅具有動態內容的網頁與表單,IT人員可以自定最大的頁面抓取量(從每個網址連結裡面最多能抓取的網頁數量)、時限,以及可同時發動的抓取程序數量,若是需要使用者登入才能存取的網站,這裡也可以先輸入一組帳號、密碼,讓Metasploit以模擬合法使用者的方式,進入網站。

以網頁掃描來說,這套產品可以爬取(crawl)網頁應用程式內容,以辨識所用的網址與IP位址;接著,能用來偵測網頁應用程式、網站伺服器和後端資料庫的弱點(Metasploit用「Audit」來形容這個動作)。最後,用在攻擊演練時,Metasploit可基於這些系統被發現的弱點,自動產生對應的漏洞利用攻擊計畫,接著它能發動相關的攻擊模組來對應這些已知弱點,並且試圖滲透,以便控制網頁應用程式。

可模擬暴力破解攻擊,檢測系統帳密安全性

進行滲透測試的主要目的,就是希望觀察系統在模擬攻擊的執行下,是否能夠不被侵入。在那之前,測試人員需掌握受測設備既存的安全漏洞,之後才能執行利用該弱點的程式碼,建立與被侵入對象之間的連線。

為了要獲得對目標的存取權,首先是要取得能登入系統的帳號、密碼,而這裡所謂的暴力破解,是指不斷嘗試輸入大量的使用者帳號、密碼來猜測,達到潛入系統的目的,與一般常見的字典攻擊手法相同。

而Metasploit Pro所具備的暴力破解攻擊功能中,已內建了大量的使用者帳號與密碼,再透過本身能與各種伺服器或網路設備連線的模組(session capable module),即可自動開啟相關連線。這套軟體可支援的連線類型,相當豐富,包括常見的網路協定,如HTTP、HTTPS、SSH、Telnet、FTP等協定,以及SMB、SNMP、VMAUTHD,同時也涵蓋到DB2、SQL Server、MySQL、PostgreSQL等4種資料庫的連線。

此外,系統在使用者帳號、密碼清單的運用上,提供很多種模式。像是Metasploit預設提供6種滲透深度,測試人員可從中選擇,最淺的是用25組帳號、密碼,來猜測被攻擊系統的登入,這可以檢查最基本的預設帳密組合,像是Admin/admin、user/user,之後再驗證這些帳號是否搭配空白密碼,至於在最深的模式下,可用5萬組帳號和密碼。除了用帳密清單,系統也支援用單一帳密的方式來測試密碼安全性。

測試人員還可以在進階設定中,選擇突變(Mutation)的方式,讓系統能將既存或匯入的帳密清單,產生更多變化,以便提生暴力攻擊執行時的多樣性。

Metasploit這裡也提供5種發動攻擊速度,不單是快速執行,還能用緩慢速度運作,以便躲過網路入侵防禦系統的異常偵測,測試人員藉此查看環境本身的安全性能否因應。

除了上述的密碼破解法,Metasploit還可以使用John the Ripper(JtR)的工具來發動攻擊。這種手法是透過破解密碼的雜湊值,來復原強度較弱的密碼。不過,這必須先到網頁管理介面中的模組功能中,去搜尋、選定後才能進行,Metasploit目前提供的JtR模組,可針對Oracle、MySQL、微軟SQL Server,以及Linux、Windows等環境,施行攻擊演練。

能發動漏洞利用攻擊,驗證系統是否已落實弱點修補

利用已知的漏洞來侵入系統,是常見的攻擊手法,像是緩衝區溢位、程式碼注入,Metasploit可讓測試人員執行自動或手動的漏洞攻擊。這套工具可選擇6種不同強度的執行模式,例如若需要進行SQL injection等網頁應用程式的漏洞攻擊,就需要選取最高等級才能進行。

以自動執行的漏洞利用行為來說,系統會參考被攻擊目標已開放的網路埠、匯入的弱點資訊,以及漏洞利用模組中的資訊來進行,並根據先前網路探勘所發現的目標設備資訊——作業系統、提供的服務類型與Metasploit本身擁有的弱點資訊,來建立攻擊計畫。

在進階設定中,測試人員可以指定漏洞利用攻擊的「彈頭(payload)」,預設用Meterpreter,也可改用指令介面。

Meterpreter相當特別,它是Metasploit Framework 內含的Meta-Interpreter,可執行一些其他需純粹以組合語言實作的複雜功能,以這種方法能夠開發出DLL型態的檔案,以便在漏洞利用行為執行後,能夠上傳或注入目標電腦記憶體中的應用程式處理程序,而且不需存取磁碟,因此也就無法輕易被一般防毒軟體所偵測到。

至於要執行手動式的漏洞利用攻擊,方式和自動攻擊有些不同,測試人員是需選定相關的模組之後,再挑選相關的目標電腦,但這種作法的特色在於,可設定較細部的攻擊控制項目與迴避防毒軟體偵測的選項。

提供強大的報表管理功能

在報表機制上,Metasploit Pro目前提供了很多種產生方式,預設支援10種標準報表,當中包含了針對PCI和FISMA這兩種法規遵循要求的格式,也有檢視網路服務、網頁應用程式與社交工程等安全主題的報表。

此外,對於更高階的安全稽核需求(以整個專案為範圍),以及細部的資訊,像是系統或網路安全受到破壞、帳號登入遭破解的狀況,Metasploit Pro也都提供了預設的報表項目。

測試人員也可以自定報表內容,Metasploit預設是套用JRXML(報表軟體JasperReports定義的報表格式)格式的範本,若要修改版面配置,可以根據這個範本檔去修改,但這也意味著除了要懂SQL之外,你也必須對JasperReports/Jasper iReport、XML、Java有一定的了解。

不論類型是標準報表或自定報表,在Metasploit Pro的網頁介面上,都可以將這些資訊,設定成用電子郵件寄給指定的收件者,但需額外勾選該功能與輸入電子郵件信箱。

至於在Metasploit系統內產生的所有資料,也可以從報表功能匯出、打包,像是滲透測試的活動記錄,或是曾經執行的指令碼。

提供多種命令列的操作模式

除了網頁介面,測試人員也能透過命令列介面來操作,這裡還可以同時開啟許多不同的分頁視窗,像是指令型態的主控臺介面,也能執行IRB(Interactive Ruby Shell)的指令介面。

可指定服務類型執行破解密碼的攻擊

測試人員在Metaspolit網頁介面上,能選擇要進行破解密碼攻擊的系統或網路服務類型。

提供模組化的攻擊模式

Metasploit將所要執行的攻擊行為分成不同的模組,主要有針對所偵測到的漏洞加以運用(Exploit)、輔助執行(Auxiliary)和利用後的動作(Post-Exploitation)等三大類。

可用自動或手動模式進行漏洞攻擊

Metasploit能夠執行測試人員指定的一連串的攻擊指令,這套產品允許用自動或手動操作等兩種方式,圖中為自動漏洞利用攻擊,主要是透過反向式的網路連結,或偵測特定網路埠的手法,而不是用破解使用者帳密的方式。

一目了然的社交工程攻擊建立步驟

測試人員若想要建立社交工程攻擊的演練,點選Campaign頁面的設定組態,就可以開始進行。其中,標示紅框的部份,表示該項目現在還沒有完成設定,可以點選進去開始輸入。

社交工程攻擊可搭配漏洞攻擊模組

除了發動網路釣魚的社交工程攻擊之外,測試人員也可以自行搭配不同的漏洞利用攻擊模組,圖中使用的是,Metasploit的Browser Autopwn輔助模組。

可掌握使用者資安意識不足的比例

在社交工程攻擊的演練過程中,測試人員能夠在網頁介面上,查看因欠缺資安意識而誤點網頁連結,甚至輸入私人個資的使用者比例。


產品資訊

●建議售價:廠商未提供 ●原廠:Rapid7 ●網址:www.rapid7.com ●代理商:達友科技(02) 2717-5608 ●處理器需求:2GHz ●記憶體需求:2GB ●硬碟空間需求:500MB ●作業系統需求:Windows XP~7/Server 2008、Red Hat Enterprise Linux 5/6、Ubuntu Linux 8.04/10.04 ●重要功能:模擬社交工程攻擊、網頁應用程式掃描、報表

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商。】


Advertisement

更多 iThome相關內容