
أداة مسح تحليل جنائي لأنظمة الملفات وأداة صيد التهديدات. تفحص أنظمة الملفات على مستوى MFT ونظام التشغيل وتخزّن البيانات في SQL أو SQLite أو CSV. يمكن استقصاء التهديدات والبيانات باستخدام قوة وصياغة SQL.

اسمح لي أن أشرح...
تبدأ بقرص أو صور أقراص قد تكون ملوثة بالبرامج الضارة والفيروسات والتهديدات المستمرة المتقدمة (APT) أو ما شابه ذلك، ثم تقوم بفحصها باستخدام هذه الأداة. (بشكل اختياري، وبافتراض أن لديك الحكمة والبصيرة لفعل ذلك، قد ترغب في مسح صورة قرص أساسية معروفة بأنها جيدة بهذه الأداة أولاً (أو لاحقًا - لا يهم). هذا بالتأكيد ليس ضروريًا، ولكنه يمكن أن يساعدك فقط). جزء المسح على مستوى الطب الشرعي من هذه الأداة يجمع مجموعة من الخصائص حول كل ملف في نظام ملفات (أو صورة منه)، ويضع هذه الخصائص في جدول قاعدة بيانات علائقية SQL. السر يكمن في القدرة على البحث عن التهديدات والتحقيق وطرح أسئلة حول البيانات من خلال استخدام استعلامات بلغة SQL ضد قاعدة البيانات التي تم إنشاؤها. الميزة الرئيسية هنا هي عدم اختراع لغة استعلام خاصة. إذا كنت تعرف SQL وكيفية النقر على زر، فأنت تعرف بالفعل كيفية استخدام هذه الأداة مثل المحترفين. حتى لو كنت لا تعرف، هذا المفهوم قوي بما يكفي لجعل الاستعلامات الجاهزة (انظر أدناه) تمنحك الكثير من الفائدة.
أولاً، تقوم الأداة بإنشاء إدخال في قاعدة البيانات لكل سجل موجود في MFT (جدول الملفات الرئيسي - هكذا يقوم NTFS بتسجيلاته). هذا يتجاوز أذونات أمان الملفات، وإخفاء الملفات، وتقنيات التخفي أو التعتيم، أو حذف الملفات، أو التلاعب بالطوابع الزمنية. هذه التقنيات لن تمنع فهرسة الملف وتسجيله. تتم قراءة بايتات الملف من MFT ويتم أخذ أكبر عدد ممكن من نقاط البيانات من بايتات الملف المقروءة من MFT قبل محاولة الوصول إلى أي نقاط بيانات باستخدام استدعاءات API عالية المستوى لنظام التشغيل.
بعد تأمين بيانات MFT وبيانات الطب الشرعي، يتم جمع خصائص وبيانات وبيانات وصفية على مستوى نظام التشغيل المتاحة لكل ملف، ويتم إثراء كل إدخال تم إنشاؤه من إدخال MFT. نتيجة لذلك، حتى إذا تعذر الوصول إلى الملف أو خصائصه من API نظام التشغيل أو إطار عمل dotnet بسبب أذونات الملف (ACL)، أو أقفال الملف (قيد الاستخدام)، أو تلف القرص، أو ملف طوله صفر بايت، أو أي من الأسباب الأخرى المختلفة، سيظل وجود الملف مسجلاً ومتتبعًا. لكن الإدخال ببساطة لن يحتوي على المعلومات التي لم تكن قابلة للوصول من نظام التشغيل. يمكن جمع ما يصل إلى 51 نقطة بيانات مختلفة لكل ملف.

======
/*
IDEA: All files in the directory C:\Windows\System32\ should be 'owned' by TrustedInstaller.
If a file in the System32 directory is owned by a different user, this indicates an anomaly,
and that user is likely the user that created that file.
Malware likes to masquerade around as valid Windows system files.
Executables that are placed in the System32 directory not only look more official, as it is a common path for
system files, but an explicit path to that executable does not need to be supplied to execute it from the
command line, windows 'Run' dialog box of the start menu, or the win32 API call ShellExecute.
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
[FileOwner] <> 'TrustedInstaller'
AND [DirectoryLocation] = ':\Windows\System32'
AND IsSigned = 0
ORDER BY [PrevalenceCount] DESC
/*
IDEA: The MFT creation timestamp and the OS creation timestamp should match.
If the MFT creation timestamp occurs after the creation time reported by the OS meta-data,
this indicates an anomaly.
Timestomp is a tool that is part of the Metasploit Framework that allows a user to backdate a file
to an arbitrary time of their choosing. There really isn't a good legitimate reason for doing this
(let me know if you can think of one), and is considered an anti-forensics technique.
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
([MftTimeAccessed] <> [LastAccessTime]) OR
([MftTimeCreation] <> [CreationTime]) OR
([MftTimeMftModified] <> [LastWriteTime])
ORDER BY [DateSeen] DESC
/*
IDEA: The 'CompileDate' property of any executable or dll should always come before the creation timestamp for that file.
Similar logic applies as for the MFT creation timestamp occuring after the creation timestamp. How could a program have been
compiled AFTER the file that holds it was created? This anomaly indicates backdating or timestomping has occurred.
*/
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 |