有段時間沒顧上管公眾號
不過好文還是源源不斷哦
這篇來自
我們的取證小王子
小趙同學
———————————————
至此
由平航科技裴總提供內部學習資料《智慧型手機取證》
的贈書活動就到這圓滿結束哦,
再次感謝!
最近
我們會開展趙長江老師《刑事電子數據證據規則》新書的約稿贈書活動,
還請大家繼續支持哦!
本篇文章著重於實戰方面,不深入講解加密機制。這裡基於的是windows7下未全盤加密的文件系統。歡迎大家共同探討交流。
0x01環境:
kali 3.26.2
0x02示例案例:
Windows 7 SP1 x64
0x03 Bitlocker加密方法簡介
BitLocker使用不同類型的加密方法,為了加密扇區數據,它使用帶有或不帶有Elephant Elephant Diffuser的AES-CBC模式。為了加密密鑰數據,BitLocker使用AES-CCM模式。
1)AES-CBC
加密和解密都使用:
l AES-CBC使用FVEK(全卷加密密鑰)解密扇區數據
2)帶有Elephant Diffuser的AES-CBC
加密過程:
l 與扇區密鑰key異或
l Elephant Elephant Diffuser A
l Elephant Elephant Diffuser B
l AES-CBC with FVEK
解密過程:
l AES-CBC with FVEK
l Elephant Elephant Diffuser B
l Elephant Elephant Diffuser A
l 與扇區密鑰key異或
3)AES-CCM
密鑰數據使用初始化向量為0的AES-CCM模式加密。
這部分我參照國外大牛的研究發布過一篇文章,詳情見https://www.anquanke.com/post/id/167329
0x04 Volatility Framework:
imagecopy
bitlocker
0x05 工具安裝
bitlocker插件的安裝
github地址:https://github.com/tribalchicken/volatility-bitlocker
下載後將bitlocker.py放入/usr/lib/python2.7/dist-packages/volatility/plugins目錄下
0x06實戰過程
拿到手的是一個vmdk格式的硬碟,首先需要將它轉換成dd格式的鏡像,這裡我使用的是qemu這款軟體
$qemu-img convert -f vmdk win7.vmdk -O raw win7.dd
然後將該dd格式拷貝到kali虛擬機中
1)確定分區布局並識別BitLocker卷
從扇區41947136開始的最後一個分區是受BitLocker保護的。可以通過查看文件系統頭來驗證它。使用BitLocker加密的卷將具有與標準NTFS標頭不同的籤名。BitLocker加密卷以「-FVE-FS-」籤名開頭。
$hexdump -C -s $((512*41947136)) -n 16 win7.dd
2)找到並轉換休眠文件
從扇區4096開始($Boot文件的物理扇區)以只讀模式安裝系統卷。
$sudo mount -o loop,ro,offset=$((512*4096)) win7.dd /mnt/1
以下是掛載後的C盤的NTFS卷,可以發現休眠文件
轉換休眠文件hiberfil.sys為原始數據格式RAW以便進行進一步的取證分析。
Hibernation File也就是系統的休眠文件Hiberfil.sys,位於系統卷的根目錄下。windows在系統休眠時,將物理內存中的數據(包括系統運行時的狀態數據)dump到Hiberfil.sys,並生成一個有效的文件頭。下次系統開機的時候,利用hiberfil.sys文件中的數據恢復系統。
$volatility -f /mnt/1/hiberfil.sys --profile Win7SP1x64 imagecopy -O hiberfil.raw
這裡用到了volatility的imagecopy插件
l imagecopy:將任何現有類型的地址空間(例如,崩潰轉儲,休眠文件,virtualbox核心轉儲,vmware快照或live firewire session)轉換為原始內存映像
3)使用bitlocker插件提取FVEK
該插件掃描內存映像以查找BitLocker加密分配(內存池)並提取AES密鑰(FVEK: 完整的卷加密密鑰)。
$volatility -f hiberfil.raw --profile Win7SP1x64 bitlocker
我們可以看到分析出了FVEK以及TWEAK,採取的加密方式為AES-128,如果是win8以上,可能會出現AES-256。
4)解密並訪問卷
使用先前提取的FVEK動態解密bitlocker卷。
$sudo bdemount -k 45b25efb68c5fb59fa9ca19c5dfa219b:7910dec84edd8b03fa639bd3be6be63a -o $((512*41947136)) win7.dd /crypt/1
最後掛載並訪問解密後的文件系統。
$sudo mount -o loop,ro /crypt/1/bde1 /mnt/2
$ls /mnt/2
至此,我們解密成功!