數位鑑識 Windows PowerShell 資訊安全 開放原始碼

發揮PowerShell強大管理能力 變身Windows鑑識取證利器

安裝PowerForensics 快速蒐集分析數位證據

隨著PowerShell這套內建工具程式功能的強化,目前桌上型電腦最多人使用的Windows系統,已可協助電腦鑑識做證據蒐證與分析,惟此項工具程式使用時較為複雜,因此本文將介紹以PowerShell為基礎的開源工具PowerForensics,來當作在Windows平台的另一項取證利器。

 

儘管目前手機、平板電腦等已有取代部分桌上型電腦的趨勢,但目前桌上型電腦或筆記型電腦還是執行各項事務的主體,其中Windows系統在這個領域內還是占有相當高的市占率,因此在電腦鑑識上,從Windows系統中取得證據一直是主要研究的標的。

在Windows系統中要進行批次作業,最常用的莫過於DOS指令,DOS指令簡單易用,方便調查人員透過DOS指令搭配其他工具程式進行蒐證。然而,DOS指令的功能相較於UNUX/Linux的Shell就顯得相當陽春,尤其在蒐集系統資訊與進行後續分析處理時更顯得不足。因此微軟公司逐步地發展另一套可與UNUX/Linux的Shell比擬的PowerShell,PowerShell的功能日漸強大,如今已納入電腦鑑識的工具包。

PowerShell的缺點在於,若使用於電腦鑑識,指令及語法較為複雜,須耗費不少時間學習,因此本文改為使用另一套以PowerShell為基礎的開源工具PowerForensics進行電腦鑑識。

相關知識說明

接下來,先就PowerShell工具與PowerForensics軟體做一簡要的敘述。

PowerShell

微軟為了能開發出相當於UNIX/Linux中功能強大的Shell程式,在2006年推出PowerShell。原本PowerShell僅包含在微軟的Windows系統之中(如Windows Server 2003/2008/2012/2016、Windows XP/7/8/10),提供系統管理者以指令或Scirpt程式來管理系統,並可混合使用以往的DOS指令與部分的Linux指令(如cp、mv、man、pwd等),讓系統管理者在處理系統作業上更加容易。

目前PowerShell已經開放原始碼,並提供Linux與Mac OS版本,且隨著PowerShell的強化,管理者已經可以使用PowerShell來操作與管理系統、取得及分析系統資訊,也因此PowerShell也足以做為電腦鑑識工具。

然而,要操作PowerShell來執行鑑識作業,需要對PowerShell有足夠的了解才行。雖然有許多熱心人士已編寫相關的程式碼可以應用,但有時過於片段,欠缺整合應用,指令及語法稍嫌複雜,將影響電腦鑑識效率,因此以下介紹一套PowerShell-based的整合工具PowerForensics。

PowerForensics

PowerForensics是一款以PowerShell為基礎的鑑識工具框架(Framework),提供電腦鑑識及分析的工具,可在Windows的NTFS與FAT系統下使用(https://github.com/Invoke-IR/PowerForensics)。


PowerForensics提供開機磁碟(Boot Sector)、NTFS檔案系統、Windows系統操作跡證(Artifact)、快取資料(Cache)、註冊檔(Registry)等標的操作工具,並提供bit-copy功能的複製工具,功能已算是相當完整。

PowerForensics有兩種安裝方式,一種是透過PowerShell指令來安裝,另一種則是直接使用PowerForensics套件,再安裝至指定路徑。這裡將以PowerShell指令安裝的方式做說明。首先執行Windows PowerShell(系統管理員),因此得以系統管理員的權限來進行。接下來,如圖1所示執行「find-module -Name *PowerForensics*」,讓系統搜尋是否有PowerForensics的相關套件。如果有找到,就可以再執行「Install-Module -Name PowerForensics」,將這套工具安裝至自己的系統上。

圖1  安裝PowerForensics。

安裝完成後,就可以啟用這套工具,以「Import-Module PowerForensics」將這套工具帶入目前的操作環境之中,並且能夠使用「Get-Command」指令來查詢有那些工具可以使用,如圖2所示。

圖2  啟用PowerForensics。

鑑識方法介紹

PowerForensics有許多種電腦鑑識的工具,包括針對開機磁區、檔案系統、系統設定、Windows Registry、使用者操作資料等,另外要順利執行這些工具,PowerShell須以系統管理者身分執行,以下就功能進行分類,並做簡要介紹。

開機磁區相關工具

PowerForensics可用於開機磁區的相關工具,分別說明如下:

Get-ForensicMasterBootRecord:取得主要啟動磁區的資訊。

Get-ForensicGuidPartitionTable:查詢GUID磁碟分割表的資訊。

Get-ForensicBootSector:取得開機磁區的資訊。

Get-ForensicPartitionTable:查詢磁碟分割表的資訊。

執行電腦鑑識一開始,需要先確認操作的環境,包括所進行操作的磁碟資訊,所以必須取得磁區的資訊以磁碟分割表的訊息等。若是尚未能確定磁碟的路徑,可以先使用PowerShell透過WMI來取得,指令為「Get-WmiObject -Class Win32_DiskDrive」。

如果需要查詢磁碟0的訊息,可執行「Get-ForensicPartitionTable -Path \\.\PHYSICALDRIVE0」指令來取得該磁碟的磁區訊息,如圖3所示。

圖3  取得開機磁區相關資訊。

取得檔案系統資料

PowerForensics可用於取得檔案系統資料的指令,如下所述:

Get-ForensicFileRecord:由指定硬碟區中的主檔案表(Master File Table,MFT)取得檔案相關紀錄。

Get-ForensicVolumeBootRecord:取得指定硬碟區的開機磁區資料。

在得知磁碟的狀況之後,如果確認要操作的是C槽,可以透過「Get-ForensicVolumeBootRecord C:」指令進一步檢視磁碟的檔案系統狀態,評估所使用的磁區與主檔案表(Master File Table,MFT)是否正確,如圖4所示。

圖4  檢視MFT資訊。

為了將所有檔案訊息進行蒐證,需要檔案在MFT中的相關訊息,其中最主要的就是檔案創建(Born)、修改(Modified)、存取(Access)等時間,可透過「Get-ForensicFileRecord」指令來取得,所獲得全部檔案的訊息如下:

Get-ForensicFileRecord -VolumeName \\.\C:

若只需要取得特定檔案,例如Windows計算機(calc.exe)程式的訊息,就直接指定該檔案所在路徑即可,如圖5所示:

Get-ForensicFileRecord C:\windows \system32\calc.exe

圖5  取得「calc.exe」的檔案資訊。

取得系統設定資料

若想取得系統設定資料,可使用以下的指令:

Get-ForensicAlternateDataStream:取得NTFS中Alternate Data Streams的訊息。

Get-ForensicShellLink:取得有關捷徑(.LNK)的訊息。

Get-ForensicExplorerTypedPath:查詢曾在Windows檔案總管中輸入過的路徑。

Get-ForensicNetworkList:獲得網路連線資訊。

Get-ForensicScheduledJob:取得排程的資訊。

Get-ForensicSid:查詢系統的SID(Security Identifier)。

Get-ForensicTimezone:取得系統目前設定所在時區(如臺灣為臺北時間)。

在NTFS檔案系統中,可允許檔案加入其他的資料串流(Alternate Data Stream,ADS),若以一般檔案列印,無法直接看到被加入的資訊串流,須透過其他指令方能顯示。

例如建立一檔案內容為「Hello, I am AVATAR.」,再將「This is a secret from ICCL」的字串加入到test.txt檔案中,若以type指令來查看會無法見到後來所加入的字串,須透過more方能得知,如圖6所示,但如果不知道所加入的名稱為hidden.txt,也不易得知其內容。

圖6  將訊息加入到ADS中。

可透過Get-ForensicAlternateDataStream來取得整個磁區的資料,或是僅針對特定檔案。例如,當想取得C槽中所有的ADS資料時,執行如下指令:

Get-ForensicAlternateDataStream -VolumeName \\.\C:

如果想取得「D:\test.txt」的ADS資料,則執行如圖7所示的指令:

Get-ForensicAlternateDataStream -Path D:\test.txt

圖7  檢視檔案「test.txt」所隱藏的ADS訊息。

只要透過Get-ForensicSid與Get-ForensicTimezone指令,就能取得系統上的SID值與時間資訊,如圖8所示。由於SID值通常具有唯一性,配合時間即可做為數位證據。

圖8  取得系統的SID與時區資訊。

取得Windows Registry的資料

當需要取得Windows Registry的資料時,可使用以下的指令工具:

Get-ForensicRegistryKey:取得特定的系統註冊機碼。

Get-ForensicRegistryValue:取得特定系統註冊機碼的設定值。

Windows註冊檔記錄了許多系統的設定資料與使用者的資訊,對於電腦鑑識工作相當重要。透過Get-ForensicRegistryKey 與Get-ForensicRegistryValue指令,可直接解析註冊檔的資料,搭配指令鍵值,更快速地找到機碼的資料。例如,想要查詢WinRAR的相關註冊機碼資料,即可搭配相關工具快速取得,如圖9所示。

圖9  取得系統註冊檔中WinRAR的設定值。

 

取得使用者操作資料

可用於取得使用者操作資料的指令,介紹如下:

Get-ForensicOfficeFileMru:取得使用者最近採用Office所開啟的檔案列表。

Get-ForensicWindowsSearchHistory:取得使用者最近在Windows搜尋的關鍵字。

Get-ForensicUserAssist:檢視使用者近期的系統操作紀錄。

在Windows系統中,許多與個別帳號相關的訊息資料會存放在個人profile路徑之下的NTUSER.DAT檔(預設為隱藏),這個檔案在使用者登入期間無法直接開啟,即使開啟了,也無法直接判讀,所以需要相關工具協助解析。

這裡使用「Get-ForensicUserAssist -HivePath C:\Users\user\NTUSER.DAT」來取得「user」帳號下的操作紀錄,從中可見到「mspaint.exe」在2019年3月18日下午1時52分43秒被執行,如圖10所示。

圖10  檢視使用者操作紀錄。

情境模擬演練

台安公司近來發現有內部網路攻擊事件發生,為避免公司的機密資料外洩,並且要確認是內部員工或是有系統遭受入侵所致,於是請資訊部門進行清查。

資訊部門先就防火牆與入侵偵測系統紀錄分析,評估可能遭受SQL Injection攻擊,並查出數台電腦有嫌疑,於是規劃逐台進行查核。另公司電腦均使用Windows系統,且因尚無損害發生,暫無須採用嚴格的電腦鑑識程序,所以資訊部門決定使用PowerForensics進行電腦鑑識。在每台電腦上,資訊部門執行以下步驟:

步驟一:啟用PowerForensics

以系統管理者身分啟動PowerShell,確認系統環境並安裝PowerForensics。

步驟二:確認系統時區與SID

使用Get-ForensicSid與Get-ForensicTimezone記錄系統的SID與Time Zone,確認系統的時間與識別碼。

步驟三:匯出近期執行或開啟過的程式、捷徑與文件

使用Get-ForensicUserAssist來取得使用者近期的系統操作紀錄,並以Get-ForensicOfficeFileMru取得使用者最近利用Microsoft Office所開啟的檔案列表。

步驟四:檢測可疑的程式

到最近執行的程式或文件列表中查看是否有可疑程式,配合惡意程式進行檢測。

最後,在員工A的電腦發中現曾有執行可疑的程式Havij.exe,如圖11所示。經過分析比對後,確認為執行SQL Injection之工具程式,再比對SID與公司Active Directory上的紀錄,如圖12所示。 v 比對員工A的登入紀錄後,確認為員工A執行網路攻擊。而員工A見到原本的操作流程被解析出來,只能坦承因一時好奇,下載並學習使用駭客工具,資訊部門將調查結果呈交執行長,員工A因涉及資安事件的不當操作與處理,而得由公司重新派送學習科技資安教育訓練,以強化科技資安的管理。

圖11  查看使用者近期操作的紀錄。
圖12  查詢AD系統上的SID值。

結語

由於目前一般使用者還是以Windows為主,鑑識標的最常接觸的也是Windows系統,因此若要Windows上取證,透過Windows的工具會較為簡便,而且在微軟開始推動PowerShell之後,Windows平台便多了另一種電腦鑑識的好選擇。對此,本文介紹了PowerForensics,以作為電腦鑑識工具使用,並提供相關的使用方法,在實驗過程中,也可見識到現今PowerShell的強大之處,靈活使用幾乎足以取得Windows系統的相關跡證,若微軟未來仍持續以PowerShell作為系統操作指令工具的話,相信在未來的電腦鑑識中,這將占有一席之地。

<本文作者:台灣E化資安分析管理協會(ESAM, http://esam.nctu.me/esam/)從事E化資訊安全的分析管理與學術研究, 並與政府、產學及國際資安機構交流與合作,推廣資訊安全應用與發展, 協助企業、產業評估資安分析與風險。>

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!