一款文件系统取证分析扫描与威胁狩猎工具。可在MFT和操作系统层面扫描文件系统,并将数据存储于SQL、SQLite或CSV中。利用SQL的强大功能与语法,可对威胁与数据进行探查。

请允许我详细说明...
你从一个可能被恶意软件、病毒、APT 等污染(脏)的磁盘或磁盘映像开始,然后使用此工具扫描它们。(可选地,并且假设你有足够的智慧和远见,你可能会希望先用此工具扫描一个已知良好的基线磁盘映像——或者之后扫描也行,没关系。这当然不是必须的,但只会对你有帮助。)工具中的取证级扫描部分会收集文件系统中每个文件(或文件系统的映像)的 大量 属性,并将这些属性放入一个 SQL 关系数据库表中。秘密武器在于能够通过使用 SQL 语言对创建的数据进行威胁狩猎、调查或提问。这里的一个关键特性是 没有 发明一种专有查询语言。如果你懂 SQL,并且知道如何点击按钮,那么你已经知道如何像高手一样使用这个工具了。即使你不懂,这个概念的强大之处在于,预置的查询(见下方)也能让你取得很大进展。
首先,该工具在数据库中为 MFT(主文件表——NTFS 进行记录的方式)中找到的每个条目创建一条记录。这绕过了文件安全权限、文件隐藏、隐匿或混淆技术、文件删除或时间戳篡改。这些技术无法阻止文件被扫描和编录。文件的字节从 MFT 中读取,并在尝试使用更高级的操作系统 API 调用访问任何数据点之前,尽可能多地从 MFT 读取的字节中获取数据点。
在确保 MFT 和取证级数据安全后,将收集每个文件可用的操作系统级别属性、数据和元数据,并补充从 MFT 条目创建的每个条目。因此,即使由于文件权限(ACL)、文件锁定(正在使用)、磁盘损坏、零字节文件或各种其他原因导致无法通过操作系统 API 或 .NET Framework 访问文件或其属性,文件的存在仍会被记录、记录和跟踪。该条目只会缺少操作系统无法访问到的信息。每个文件最多可收集 51 个不同的数据点。

/*
思路:C:\Windows\System32\ 目录中的所有文件都应“属于” TrustedInstaller。
如果 System32 目录中的文件由其他用户所有,则表示存在异常,且该用户很可能是创建该文件的用户。
恶意软件喜欢伪装成合法的 Windows 系统文件。
放在 System32 目录中的可执行文件看起来不仅更官方(因为是系统文件的常见路径),而且从命令行、
Windows“运行”对话框或开始菜单以及 Win32 API 调用 ShellExecute 执行时,无需提供该可执行文件的显式路径。
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
[FileOwner] <> 'TrustedInstaller'
AND [DirectoryLocation] = ':\Windows\System32'
AND IsSigned = 0
ORDER BY [PrevalenceCount] DESC
/*
思路:MFT 创建时间戳和 OS 创建时间戳应匹配。
如果 MFT 创建时间戳晚于 OS 元数据报告的创建时间,则表示异常。
Timestomp 是 Metasploit 框架的一部分,允许用户将文件日期改为任意时间。
这样做确实没有好的正当理由(如果你能想到,请告诉我),并且被认为是一种反取证技术。
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
([MftTimeAccessed] <> [LastAccessTime]) OR
([MftTimeCreation] <> [CreationTime]) OR
([MftTimeMftModified] <> [LastWriteTime])
ORDER BY [DateSeen] DESC
/*
思路:任何可执行文件或 DLL 的“CompileDate”属性应始终早于该文件的创建时间戳。
类似的逻辑适用于 MFT 创建时间戳晚于创建时间戳的情况。程序怎么可能在包含它的文件创建之后才被编译?
此异常表示存在回溯或时间篡改。
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
([MftTimeCreation] < [CompileDate]) OR
([CreationTime] < [CompileDate])
ORDER BY [DateSeen] DESC
| MFTNumber | SequenceNumber | SHA256 | FullPath | Length | FileOwner | Attributes | IsExe | IsDll | IsDriver | BinaryType | IsSigned | IsSignatureValid | IsValidCertChain | IsTrusted | ImpHash | MD5 | SHA1 | CompileDate | MimeType | InternalName | ProductName | OriginalFileName | FileVersion | FileDescription | Copyright | Company | Language | Trademarks | Project | ApplicationName | Comment | Title | Link | ProviderItemID | ComputerName | DriveLetter | DirectoryLocation | Filename | Extension | CertSubject | CertIssuer | CertSerialNumber | CertThumbprint | CertNotBefore | CertNotAfter | PrevalenceCount | Entropy | YaraRulesMatched | DateSeen | MftTimeAccessed | MftTimeCreation | MftTimeModified | MftTimeMftModified | CreationTime | LastAccessTime | LastWriteTime |
|---|
| 18010 | 0 | C67BE7D3F54D44AC264A18E33909482F1F8CA7B7FBAAF5659EF71ED9F8092C34 | C:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_31bf3856ad364e35_6.3.9600.18603_none_73d12e8145b3841b\SymSrv.dll | 149264 | TrustedInstaller | A | 1 | 1 | 0 | 16 | 1 | 1 | 0 | 1 | 5D54F5D721E301667338323AC07578E3 | 65FB3391EB26F5AC647FC40501D8E21D | 4B46DB2A99A47FF6A6EE376F4D79F5298BFF28A2 | 2010-02-01 20:15:48.0000000 | application/x-msdownload | symsrv.dll | Debugging Tools for Windows(R) | symsrv.dll | 6.12.2.633 | Symbol Server | © Microsoft Corporation. All rights reserved. | Microsoft Corporation | English (United States) | L | C | C:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_31bf3856ad364e35_6.3.9600.18603_none_73d12e8145b3841b | SymSrv.dll | .dll | CN=Microsoft Corporation, OU=MOPR, O=Microsoft Corporation, L=Redmond, S=Washington, C=US | CN=Microsoft Code Signing PCA, O=Microsoft Corporation, L=Redmond, S=Washington, C=US | 6105F71E000000000032 | D468FAEB5190BF9DECD9827AF470F799C41A769C | 7/13/2009 5:00:18 PM | 10/13/2010 5:10:18 PM | 1 | 0 | NULL | 2020-10-25 06:17:12.0133333 | 2013-06-18 14:43:52.6497911 | 2013-08-22 06:56:50.9086288 | 2013-08-22 06:56:50.9086288 | 2019-01-15 19:13:49.1704756 | 2013-08-22 06:56:50.9086288 | 2013-08-22 06:56:50.9086288 | 2013-06-18 14:43:52.6497911 |