關于Dissect

Dissect是一款功能強大的事件響應和數字取證框架,廣大研究人員和企業安全專家可以使用該工具實現快速訪問和分析各種磁盤和文件格式的取證數據。該工具是一個元數據包,專為紅隊研究人員設計,并且執行后會自動安裝其他所有的功能組件。

Dissect可以使我們擺脫數據格式和平臺的限制,并消除了對如何訪問調查數據方面的擔憂。在該工具的幫助下,我們可以專注于執行分析、開發復雜的分析插件或執行研究。值得一提的是,具有腳本編寫經驗的高級分析人員還可以通過使用各種Dissect API和解析器創建新的工具和插件來利用Dissect的全部功能。

功能介紹

1、根據所有取證數據和事件日志一次性生成事件時間軸;
2、識別組件中的異常情況;
3、在虛擬機磁盤中執行勒索軟件加密事件響應;
4、在幾小時內對上千臺主機執行復雜的IoC檢測;
5、將Bitlocker加密磁盤中的所有USN日志記錄導出到Splunk,而無需等待解密;
6、直接從虛擬機管理程序收集所有實時虛擬機的取證數據;
7、支持將所有的分析數據導出為任何數據格式,例如CSV、JSON或Avro等,也可以直接傳輸到Splunk或Elastic;

工具要求

由于該項目基于Python 3開發,因此我們首先需要在本地設備上安裝并配置好Python 3環境。

工具安裝

廣大研究人員可以直接使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/fox-it/dissect.git

或者直接使用PyPI安裝Dissect:

pip install dissect

Docker鏡像

docker run -it --rm -v /path/to/targets/:/mnt:ro ghcr.io/fox-it/dissect:3.2

工具使用

安裝完成后,直接在命令行窗口中執行“target-”命令并按Tab鍵,就能夠看到下列內容了:

$ target-<TAB>

target-fs                target-query             target-shell

target-dd               target-mount             target-reg

使用target-query獲取基本信息

下列命令可以從一個目標收集基本的取證信息,其中包括主機名稱、域名、操作系統信息、IP地址和用戶信息等:

$ target-query /mnt/SCHARDT.001 -f hostname,domain,os,version,ips -d ';'

<Target /mnt/SCHARDT.001> N-1A9ODN6ZXK4LQ;None;windows;Microsoft Windows XP (NT 5.1) 2600 ;['192.168.1.111']

輸出結果如下:

$ target-query /mnt/SCHARDT.001 -f users

<windows/user hostname='N-1A9ODN6ZXK4LQ' domain=None sid='S-1-5-18' name='systemprofile' home='%systemroot%\\system32\\config\\systemprofile'>

<windows/user hostname='N-1A9ODN6ZXK4LQ' domain=None sid='S-1-5-19' name='LocalService' home='%SystemDrive%\\Documents and Settings\\LocalService'>

<windows/user hostname='N-1A9ODN6ZXK4LQ' domain=None sid='S-1-5-20' name='NetworkService' home='%SystemDrive%\\Documents and Settings\\NetworkService'>

<windows/user hostname='N-1A9ODN6ZXK4LQ' domain=None sid='S-1-5-21-2000478354-688789844-1708537768-1003' name='Mr. Evil' home='%SystemDrive%\\Documents and Settings\\Mr. Evil'>

使用target-shell瀏覽目標信息

$ target-shell /mnt/SCHARDT.001

N-1A9ODN6ZXK4LQ /> info

OS Plugin : WindowsPlugin

 

Disks     :

- <SplitContainer size=4871268352 vs=<DissectVolumeSystem serial=3965578333>>

 

Volumes   :

- <Volume name='part_00007e00' size=4869333504 fs=<NtfsFilesystem>>

 

Hostname  : N-1A9ODN6ZXK4LQ

OS        : Microsoft Windows XP (NT 5.1) 2600

Domain    : None

IPs       : ['192.168.1.111']

 

N-1A9ODN6ZXK4LQ /> cd sysvol

N-1A9ODN6ZXK4LQ /sysvol> cat boot.ini

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

N-1A9ODN6ZXK4LQ /sysvol> cd Documents and Settings

N-1A9ODN6ZXK4LQ /sysvol/Documents and Settings> ls

All Users

Default User

LocalService

Mr. Evil

NetworkService

使用target-fs計算文件哈希

$ target-fs targets/MSEDGEWIN10.tar cat "C:\Windows\System32\Drivers\null.sys" | sha256sum

32c714dd5588e5cdacc6980044d2a66a28c42b0d5208ac2ffbac5d64be95568  -

使用target-reg查看指定注冊表鍵的子健并輸出其內容

$ target-reg targets/MSEDGEWIN10.tar -k "HKLM\\SYSTEM\\CURRENTCONTROLSET\\ENUM\\USB\\VID_0E0F&PID_0003&MI_00"

+ 'VID_0E0F&PID_0003&MI_00' (2020-12-09 12:06:15.867247+00:00)

  + '7&3ae26960&0&0000' (2022-08-17 10:56:49.798122+00:00)

      - 'DeviceDesc' '@input.inf,%hid.devicedesc%;USB Input Device'

      - 'LocationInformation' '000b.0000.0000.005.000.000.000.000.000'

      - 'Capabilities' 128

      - 'Address' 5

      - 'ContainerID' '{ee33e11a-3a16-11eb-bde6-806e6f6e6963}'

      - 'HardwareID' ['USB\\VID_0E0F&PID_0003&REV_0102&MI_00', 'USB\\VID_0E0F&PID_0003&MI_00']

      - 'CompatibleIDs' ['USB\\Class_03&SubClass_00&Prot_00', 'USB\\Class_03&SubClass_00', 'USB\\Class_03']

      - 'ClassGUID' '{745a17a0-74d3-11d0-b6fe-00a0c90f57da}'

      - 'Service' 'HidUsb'

      - 'Driver' '{745a17a0-74d3-11d0-b6fe-00a0c90f57da}\\0000'

      - 'Mfg' '@input.inf,%stdmfg%;(Standard system devices)'

      - 'ConfigFlags' 0

      - 'ParentIdPrefix' '8&367bfb7c&0'

Dissect組成

當前版本的Dissect由下列開源項目組成:

dissect.cim
dissect.clfs
dissect.cstruct
dissect.esedb
dissect.etl
dissect.eventlog
dissect.evidence
dissect.executable
dissect.extfs
dissect.fat
dissect.ffs
dissect.hypervisor
dissect.ntfs
dissect.ole
dissect.regf
dissect.sql
dissect.squashfs
dissect.target
dissect.thumbcache
dissect.util
dissect.vmfs
dissect.volume
dissect.xfs

Dissect線上體驗版本

Dissect線上體驗版本:https://try.dissect.tools/

本項目的開發與發布遵循AGPL-3.0開源許可證協議。

項目地址

Dissect:https://github.com/fox-it/dissect

參考資料

https://docs.dissect.tools/en/latest/
https://github.com/fox-it/acquire
https://github.com/fox-it/flow.record