電子取證(Forensics)-Windows取證基礎

2021-02-14 瘋貓網絡

基礎

取證通常作為一個公司的事件響應調查人員或者司法調查的取證人員,通過調查被入侵的機器,將被入侵者的行為軌跡梳理出來,還原整個入侵的過程。對於入侵者而言,了解電子取證,可以更全面的了解到自己能夠在系統中留下的痕跡,從而具有針對性的消除痕跡,而對於取證人員來說,電子取證無疑是了解整個入侵過程的關鍵。電子取證近年來也發展為了一個獨立的學科,其中在安全競賽中,電子取證也作為一部分考察內容,被納入到雜項的大類中,也有隻考察取證的競賽。下面從技術層面介紹Windows取證的相關知識。

取證的分類活取證死取證獲取內存工具

在活取證中,可以使用內存dump工具,將被入侵的機器的內存保存下來,其中在Windows中經常使用的工具是Dumpit

DumpIt 是一款綠色免安裝的 windows 內存鏡像取證工具。利用它我們可以輕鬆地將一個系統的完整內存鏡像下來,並用於後續的調查取證工作

在dump內存後,獲取到的文件大小約等於主機內存的大小,所以在自己進行測試的時候,可以儘量把測試機的內存調小一點。

Dump內存

這裡使用上面說的Dumpit工具,下載之後放到虛擬機中,雙擊之後輸入y即可獲取當前的狀態的內存文件,保存後是一個raw格式的文件,這裡我在測試機上dump了一下內存,獲取到了一個文件,用於下面的示例講解,大家可以根據下面的講解自己創建鏡像進行測試。

取證工具

在取證工具中,比較有名的是Volatility,他是一個用於事件響應和惡意軟體分析的開源內存取證框架。它是用Python編寫的,支持Microsoft Windows,macOS和Linux,volatility框架是一個完全開放的工具集合,在GNU通用許可證下用Python實現,用於從易失性存儲器(RAM)樣本總提取數字鏡像。提取技術完全獨立於被取證的系統而執行,但可以查看到系統運行時的狀態信息。該框架旨在向人們介紹從內存樣本中提取的數字鏡像相關的技術,並為進一步研究該領域提供一個平臺,它可以分析 .raw、.vmem、.img後綴的文件

安裝方法

在windows中可以直接下載exe的程序,放入環境變量中使用,而linux下需要進行安裝,這裡介紹linux下的安裝方法
首先下載文件

git clone https://github.com/volatilityfoundation/volatility.git

Volatility需要使用python2環境,所以需要保證使用的是python2

cd volatility
python setup.py build
python setup.py install

安裝完成後可以在volatility目錄下執行 python vol.py --info 來測試是否安裝成功可以將Volatilty的目錄放入環境變量中,這樣就可以在任意目錄下執行 vol.py

如果在運行中報錯或者提示錯誤信息,可以根據提示下載相應的模塊,例如下面幾個

Distorm3:反編譯庫

pip install distorm3

Yara:惡意軟體分類工具

pip install yara

PyCrypto:加密工具集

pip install pycrypto

PIL:圖片處理庫

pip install Pillow

OpenPyxl:讀寫excel文件

pip install openpyxl

ujson:JSON解析

pip install ujson

在進行安裝時,部分模塊可能會報錯,這就需要到https://pypi.org/project/搜索相應版本的模塊的源碼,進行手動安裝

基本使用

Volatility命令的基本格式如下

python vol.py -f [image] ‐-profile=[profile][plugin]

其中 -f 後面加的是要取證的文件, --profile 後加的是工具識別出的系統版本, [plugin] 是指使用的插件,其中默認存在一些插件,另外還可以自己下載一些插件擴充。
可以使用 -h 參數獲取使用方法和插件介紹,這裡只列舉幾個常用到的

imageinfo:顯示目標鏡像的摘要信息,這常常是第一步---獲取內存的作業系統類型及版本,之後可以在 –profile 中帶上對應的作業系統,後續操作都要帶上這一參數
pslist:該插件列舉出系統進程,但它不能檢測到隱藏或者解鏈的進程,psscan可以
notepad:查看當前展示的 notepad 文本
editbox:顯示有關編輯控制項的信息
screenshot:保存基於GDI窗口的偽截屏
psscan:可以找到先前已終止(不活動)的進程以及被rootkit隱藏或解鏈的進程
pstree:以樹的形式查看進程列表,和pslist一樣,也無法檢測隱藏或解鏈的進程
mendump:提取出指定進程,常用foremost 來分離裡面的文件(歷年美亞杯有此題)
filescan:掃描所有的文件列表
hashdump:查看當前作業系統中的 password hash,例如 Windows 的 SAM 文件內容(實際中沒有mimikatz效果好)
svcscan:掃描 Windows 的服務
connscan:查看網絡連接
cmdscan:可用於查看終端記錄
dlllist: 列出某一進程加載的所有dll文件
dumpfiles:導出某一文件(指定虛擬地址)
hivelist: 列出所有的註冊表項及其虛擬地址和物理地址
timeliner: 將所有作業系統事件以時間線的方式展開

示例講解

下面使用Volatility對前面獲取的內存鏡像進行分析
首先獲取鏡像的摘要信息,一般這是進行鏡像分析的第一步

python vol.py -f TEST-PC.raw imageinfo

這其中比較有用的信息就是Suggested Profile(s) ,這個是工具識別的系統版本,存在多個的原因是這是根據一些特徵識別的,所以可能有誤報,就把各種結果按照可能性排列出來了,一般直接選擇第一個,如果加載插件報錯的話 可以嘗試後面的。
這裡根據給出的結果選擇第一個,然後使用 pslist 插件,看一下系統中運行的進程。

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 pslist

圖中標紅的是幾個需要注意的點,其中前兩個說明系統運行著 http 和 mysql 服務,後面的 notepad.exe 是指正在運行一個記事本程序,而 mspaint.exe  是指是微軟畫圖程序, cmd.exe 指正在運行命令行程序, DumpIt.exe 是之前說的用於獲取內存鏡像的工具。下面針對說到的幾個進行進行分析。

獲取記事本數據

在上面介紹插件的時候,其中有兩個關於記事本的插件 notepad 、 editbox

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 notepad

顯示該這個插件不支持這個系統,這時可以使用 editbox 查看

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 editbox

可以看到這樣就能查看到當前打開的記事本中的內容了

查看當前桌面截圖


可以使用 screenshot 查看查看當前桌面的偽截圖,其中會顯示桌面上窗口的框,不會顯示其中的內容

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 screenshot -D ./tmp

其中 -D 參數是導出的地址

在保存下來的圖片中可以看到有一張顯示了當時桌面的狀態

可以看到有一個DumpIt.exe 的窗口,還有另外兩個窗口

查看畫圖圖像

在上面的進程中可以看到,存在一個 mspaint.exe 的進程,它是微軟的畫圖軟體,對於這樣的情況,可以使用工具還原內存中的圖片,來當時查看的圖片或者當時狀態的圖片,是用的工具是gimp,可以在linux上安裝使用。
這裡首先將 mspaint.exe 的進程內存dump出來,使用 memdump 插件,在之前列舉進程的截圖中,進程名字後面一行就是該進程的PID。

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 memdump -p 1616 -D ./

將獲取到的1616.dmp文件改名為1616.data,然後在gime中點擊顯示全部文件,選擇1616.data打開

調節技巧
首先選擇一個固定的寬度,這裡選擇1000,然後調節高度把屏幕鋪滿,然後再大幅度拖動Image下的Offset的滑塊,當看到圖片類似下圖時停止,可以看到隱隱約約有一張圖,但是有點重疊,這時,點擊上下箭頭緩慢調節Width,其中Heigth在調節中作用是不大的,主要是Width和Offset的調節決定是否能看到圖片

當調節到一定程度後,可以看到大致恢復出了畫圖程序當時的圖像,但是有點傾斜,如果更加細緻的調節,是可以調正的,同樣也可以找到彩色界面圖片。

當參數調節為以下時,可以看到當時圖片的彩色圖片,這時僅僅是圖片,沒有畫圖程序的界面。

在調節時,不僅僅只能看到畫圖程序的圖片,如下圖,就調出了另一個狀態的一個系統圖片

獲取系統中的用戶以及密碼

Hash,一般翻譯為"散列",也有直接音譯為"哈希"的,就是把任意長度的輸入(又叫做預映射,pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一的確定輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。

使用hashdump插件可以獲取計算機內存中的用戶hash

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 hashdump

可以看到系統中存在六個帳戶,後面三個是隱藏帳戶,可能是入侵者創建的,下面介紹一下Windows下的Hash密碼值的格式
Windows系統下的hash密碼格式為:用戶名稱: RID:LM-HASH值:NT-HASH 值,例如:
Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC::: 表示
用戶名稱為:Administrator
RID 為:500
LM-HASH值為:C8825DB10F2590EAAAD3B435B51404EE
NT-HASH 值為:683020925C5D8569C23AA724774CE6CC
所以可以將獲取的hash值拿到破解網站獲得明文,類型選擇NTLM

另外還可以從註冊表中,獲取系統中的用戶,

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"

可以看到這裡獲取到的結果與使用hashdump獲取的不同,通過hashdump可以看到系統中共存在三個隱藏帳戶,其中的W4$僅僅是通過添加了$來進行了隱藏,這時,通過net user命令是看不到此用戶的,如下圖所示

但是在註冊表中,還存在該用戶的信息,所以可以通過查看註冊表的方式來找出該用戶。
而HomeGroupUser和hacker兩個用戶在添加了$符號的同時,還在註冊表中刪除了信息,所以通過註冊表是無法獲取到這兩個用戶的

在NT/2000/XP下有一個叫HideAdmin的工具,可以自動創建隱藏的具有管理員權限的用戶,創建後,通過net user命令和註冊表都無法看到用戶,甚至在計算機管理中,也無法看到隱藏用戶,如下圖

獲取運行過的命令

在上面查看進程時,可以看到存在一個cmd進程,那麼可以使用cmdscan插件來查看運行過的命令。

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 cmdscan

可以看到執行了whoami、ifconfig、ipconfig這三個命令

查看系統中的文件

通過filescan命令,可以掃描當前狀態下的一些文件,例如桌面的文件,或者特定類型的文件,這些都是結合grep命令來實現的

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 filescan | grep -E "zip|txt|doc|pdf"

查看桌面的文件

vol.py -f TEST-PC.raw --profile=Win7SP1x64 filescan | grep  "Desktop"

這裡可以看到桌面有一個yep.txt的文件,下一步把它dump出來

dump掃描到的文件

在上一步中,發現了桌面的一個yep.txt,那麼可以使用dumpfiles命令來將文件dump出來

python vol.py -f TEST-PC.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003d87bf20 -D ./

這裡的 -Q   參數是前面掃描時候的第一個參數標記了文件的轉儲的物理地址

dump 出的文件默認是dat後綴的,可以使用linux 下的 file 命令來查看獲取的文件類型,或者是根據之前掃描文件獲取到的文件名來修改後綴。

修改後可以看到文件的內容

總結

本篇文章僅是簡單介紹了一下電子取證以及Volatility的簡單用法,實際電子取證還有很多內容,Volatility也有很多其他功能,想要詳細了解還需要繼續深入學習,並且多找機會練習,多積累經驗,這樣在拿到一個鏡像後,才有分析的方向。在上面的示例講解中,對使用Volatility取證的步驟做了簡單的介紹,並對notepad、editbox、memdump、hashdump  printkeyfilescan、dumpfiles、cmdscan插件的使用做了相關示例的講解 另外介紹了gime的一個功能,在後面的文章中將會更深入介紹取證工具的使用和針對不同環境的取證方法。

相關焦點

  • 電子取證(Forensics)-Windows日誌分析
    在上節Windows取證基礎中簡單介紹了取證的分類以及內存取證的基礎知識,在取證中,不僅僅是通過內存進行取證,還可以在其他方向進行信息提取
  • 22款受歡迎的計算機取證工具
    這些電腦取證工具,也被分為了不同的類別:磁碟和數據捕獲工具文件查看器文件分析工具註冊表分析工具網際網路分析工具電子郵件分析工具行動裝置分析工具Mac OS分析工具網絡取證工具資料庫取證工具在本文中,我將為大家羅列一些當前流行的計算機取證工具
  • 你必須知道的全球七大頂尖取證工具!
    這裡就為大家奉上全球調查人員和專業人士偏愛的7種網絡取證工具。拷問數據,它自然會坦白。——羅納德·考斯網絡取證,顧名思義,就是為非法行為發生後的調查收集證據。網絡/計算機取證是數字取證科學的一個分支,為提升網絡安全而生。2002年出版的《計算機取證》一書中,計算機取證被定義為:對計算機數據的保存、鑑別、抽取、歸檔和解釋。
  • 計算機取證系列教程:最佳取證工具MACtimes
    從而導致各個行業涉及計算機、區域網、網際網路的高科技犯罪、商業欺詐、白領犯罪等行為越來越多,因此有越來越多的諮詢顧問公司、商業調查機構、會計師行、私人調查公司開始從事計算機取證服務。在國際上,軍隊、警察、海關、反貪、金融、稅務、律師、保險等部門是電子證據的主要應用部門。計算機取證的應用已經成為一門專用的學科了。
  • 第十屆全國計算機取證技術研討會 會議徵文及會議通知
    涉眾型經濟案件取證6. 網際網路金融與取證7. 電子數據取證法律問題8. 法律和技術標準9. 反取證與隱私保護10. 信息安全與取證11. 數據挖掘技術與取證12. 人工智慧技術在計算機取證中的應用13. 大數據時代計算機取證技術的新發展14.
  • iOS取證之應用快照
    這些都是看似平常的操作,但今天我們並不是教大家如何使用iPhone,而是從取證的角度來看看這些日常的操作,能給取證工作帶來哪些信息,這就是我們今天要分享的主題—iOS的應用快照。既然蘋果加入了自己的元素,那麼同樣蘋果旗下的Mac系統,是否兼容其自己的格式呢,經驗證,發現在windows下無法直接預覽的ktx文件,在Mac系統下可以直接預覽,果然自己兼容自己的格式,順理成章。
  • 全國首個區塊鏈取證App上線,電子籤名等技術運用於取證全過程
    近日,一款基於區塊鏈技術的取證APP在杭州發布。此次上線的區塊鏈取證App是一套基於Android系統的移動端應用,該應用將區塊鏈、電子籤名、電子數據鑑定等技術運用於取證全過程。該取證APP集成了「錄屏取證、錄像取證、拍照取證、錄音取證」四個功能,可滿足監管執法人員隨時、隨地對相關手機應用軟體、小程序、直播實況等進行取證,系統將自動生成含有區塊鏈上鏈信息的固證文書。
  • 計算機取證方法介紹
    取證的方法通常是使用軟體和工具,按照一些預先定義的程序,全面地檢查計算機系統,以提取和保護有關計算機犯罪的證據。計算機取證主要是圍繞電子證據進行的。電子證據也稱為計算機證據,是指在計算機或計算機系統運行過程中產生的,以其記錄的內容來證明案件事實的電磁記錄。多媒體技術的發展,電子證據綜合了文本、圖形、圖像、動畫、音頻及視頻等多種類型的信息。
  • 第二屆「美亞杯」全國電子數據取證大賽——團體賽
    找出「com.android.email"文件夾,資料庫中設置的電子郵件地址是什麼?根據上述問題,總共發現多少條電子郵件的記錄?(Answer format:  50)1 Remark:  EmailProvider.db – Table 「Message」153.根據上述問題,誰是首個電子郵件的接收者?
  • BCS電子取證分享直播:「聚焦iOS取證」系列之走近iTunes備份
    北京網絡安全大會(BCS)電子取證系列直播分享活動持續進行,在第五期的課程中,奇安信取證案件組組長青山帶領眾多電子取證專業人員聚焦iOS取證,走近iTunes
  • 電子數據取證應注意的幾個問題
    從辦案實踐來看,職務犯罪一般具有犯罪行為隱蔽、言詞證據穩定性差、可供調查的犯罪現場少等特點,這也決定了通過電子數據來取得案件突破、固定犯罪證據的必要性。電子數據雖然在職務犯罪案件的調查工作中發揮著重要作用,但該類證據在物質形態、存在方式及外在特徵等方面均有別於傳統證據類型,因此,在獲取電子數據作為證據使用時,應注意以下幾方面問題。一、注意電子數據收集的真實性。
  • 電子數據取證之阿里雲網站伺服器鏡像取證方法
    當辦案人員從阿里雲公司獲取涉案網站伺服器的鏡像後,將面對如何對伺服器的鏡像進行取證的難題。  下面,效率源盤點關於阿里雲網站伺服器鏡像文件的取證思路,希望能給公檢法機構辦案人員一些靈感和參考。  取證思路  從上文我們知道辦案人員拿到的鏡像是關於涉案網站的伺服器鏡像,在針對這個伺服器鏡像進行取證時,可以通過仿真的方法將網站重新搭建起來,然後對網站進行取證。這樣對伺服器鏡像的取證就變成了對網站的取證。
  • 【319期-1】美國的電子數據取證標準
    來源:電子數據取證與鑑定美國的取證實驗室已經比較普及,至少有70%的法律部門都擁有自己獨立的實驗室,當有計算機犯罪案件被舉報
  • 電子數據現場取證小課堂丨 辦案取證中,如何破解涉案密碼?
    ,越來越多的行政案件需要在案發現場對電子數據進行取證。2019年4月1日施行的《市場監督管理行政處罰程序暫行規定》(國家市場監督管理總局令第2號)第二十三條明晰了行政處罰一般程序中的電子數據證據規則。掌握正確的電子取證技巧、科學運用電子證據已成為執法辦案重要和關鍵的一環。
  • 【iOS取證】應用快照
    這些都是看似平常的操作,但今天我們並不是教大家如何使用iPhone,而是從取證的角度來看看這些日常的操作,能給取證工作帶來哪些信息,這就是我們今天要分享的主題—iOS的應用快照。上面兩張圖直觀的體現了應用快照,左圖是任務切換,右圖是應用運行界面。
  • 河圖創意 | 電子數據證據取證要點
    在維權時取證是十分重要的一個環節,電子數據證據也在生活被網絡貫穿的年代,逐漸被利用起來。電子數據證據在採集與使用時,相較於傳統證據又有著特別的要素。,電子數據證據只能依託一定的載體才能以文字、圖像、視頻等方式展現出來。
  • 第二屆全國電子數據取證大賽章程及案例背景
    一、大賽介紹為進一步推進電子數據取證技術的國際經驗交流,提高電子數據取證能力水平,促進我國電子數據調查取證技術發展
  • 電子數據取證分析師告訴我:「永遠不要執著於訴求完美的取證工具」
    電子數據取證背負著網際網路時代的安全重責,而分析師則成為眾人所盼。電子數據取證分析師離不開各種取證工具,它們可以幫助分析師更好更快捷地去獲取有價值的數據,完成解決方案,達到工作目的。但工具也僅僅只是一種手段而已。當使用一種系統,一種工具時,我們每個人總會有某種偏好、傾向。
  • 大數據對審計取證的影響
    為此,本文的理論框架首先分析大數據對審計載體的影響,在此基礎上,再分析審計載體的變化所帶來的審計取證方式、模式及方法的變化,審計取證方式、模式和方法是不同層級的問題,需要分別討論。上述這些內容,構成大數據影響審計取證的理論框架。(一)大數據對審計載體的影響通俗地說,大數據就是數據量很大的數據。然而,究竟要大到什麼程度才是大數據呢?
  • 電子數據取證大比武賽後,看看他們怎麼想!
    我認為電子數據取證的進一步發展,還有很多工作要做:第一,希望根據《總局2號令》制定符合市場監管執法要求的電子數據取證程序規定,為電子數據取證在市場監管執法全面鋪開打好基礎,同時也規範了執法人員取證流程,確保採集固定的電子數據真實、完整、有效。