这篇文章主要讲解了“分析windows构造关联用户搜索的LNK文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析windows构造关联用户搜索的LNK文件”吧!
Windows LNK格式
.lnk后缀是Windows中的一种文件格式,这种代码格式文件包含的信息可以用来访问Windows Shell中的其他数据对象。
LNK快捷方式文件时一种Shell Item类型,当用户通过一个支持的应用程序访问文件时,Windows操作系统将会自动创建LNK文件,不过用户也可以手动创建。LNK快捷方式文件一般会包含关于访问文件的元数据,其中包括文件名、文件大小、原始路径、时间戳、卷宗、系统信息和网络信息等。幸运的是,现在已经有工具可以解析这些文件了。在这篇文章中,我们将会使用Eric Zimmerman的LECmd来演示。
用户搜索LNK文件
近期,Mandiant遇到了一种我们此前没研究过的LNK文件格式,这种文件来自于Windows Server 2012 R2系统,文件路径类似如下所示:
C:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/passw.lnkC:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/gov.lnk
取证分析人员可以使用LNK快捷方式文件名来了解用户曾打开过一个名为passw或gov的文件。接下来,他们就可以使用类似LECmd之类的工具来恢复出额外的元数据。这样就可以获取到被访问文件的完整文件路径、被访问时间的时间戳以及其他类型的取证数据。
但是,之前的LNK文件并没有暴露额外的元数据,下面显示的是LECmd针对passw.lnk文件的分析输出:
LECmd version 1.3.2.1Author: Eric Zimmerman (saericzimmerman@gmail.com)https://github.com/EricZimmerman/LECmd--- Header --- Target created: Target modified: Target accessed: File size: 0 Flags: HasTargetIdList, IsUnicode, DisableKnownFolderTracking File attributes: 0 Icon index: 0 Show window: SwNormal (Activates and displays the window. The window is restored to its original size and position if the window is minimized or maximized.)--- Target ID information (Format: Type ==> Value) --- Absolute path: Search Folder/passw -Users property view ==> Search Folder >> Property store (Format: GUID/ID Description ==> Value) d5cdd505-2e9c-101b-9397-08002b2cf9ae/AutoList ==> VT_STREAM not implemented (yet) See extension block section for contents for now d5cdd505-2e9c-101b-9397-08002b2cf9ae/AutolistCacheTime ==> 1849138729510 d5cdd505-2e9c-101b-9397-08002b2cf9ae/AutolistCacheKey ==> Search Results in Local Disk (C:)0 -Variable: Users property view ==> passw >> Property store (Format: GUID/ID Description ==> Value) 1e3ee840-bc2b-476c-8237-2acd1a839b22/2 (Description not available) ==> VT_STREAM not implemented 1e3ee840-bc2b-476c-8237-2acd1a839b22/8 (Description not available) ==> passw 28636aa6-953d-11d2-b5d6-00c04fd918d0/11 Item Type ==> Stack 28636aa6-953d-11d2-b5d6-00c04fd918d0/25 SFGAO Flags ==> 805306372 b725f130-47ef-101a-a5f1-02608c9eebac/10 Item Name Display ==> passw--- End Target ID information ------ Extra blocks information --->> Property store data block (Format: GUID/ID Description ==> Value) (Property store is empty)
我们可以看到,在Target ID数据域中包含一些非常有意思的字符串,比如说“Search Folder/passw”和“Search Results in Local Disk (C:)”。为了方便对比,我们在下面的数据中标注了标准LNK快捷方式文件(测试文件)。需要注意的是,目标文件时间戳、文件大小、完整文件路径和其他元数据。
LECmd version 1.3.2.1Author: Eric Zimmerman (saericzimmerman@gmail.com)https://github.com/EricZimmerman/LECmd--- Header --- Target created: 2020-01-21 19:34:28 Target modified: 2020-01-21 19:34:28 Target accessed: 2020-01-22 21:25:12 File size: 4 Flags: HasTargetIdList, HasLinkInfo, HasRelativePath, HasWorkingDir, IsUnicode, DisableKnownFolderTracking File attributes: FileAttributeArchive Icon index: 0 Show window: SwNormal (Activates and displays the window. The window is restored to its original size and position if the window is minimized or maximized.)Relative Path: ../../../../../Desktop/test.txtWorking Directory: C:/Users/<username>/Desktop--- Link information ---Flags: VolumeIdAndLocalBasePath>>Volume information Drive type: Fixed storage media (Hard drive) Serial number: <serial number> Label: OSDisk Local path: C:/Users/<username>/Desktop/test.txt--- Target ID information (Format: Type ==> Value) --- Absolute path: My Computer/Desktop/test.txt -Root folder: GUID ==> My Computer -Root folder: GUID ==> Desktop -File ==> test.txt Short name: test.txt Modified: 2020-01-21 19:34:30 Extension block count: 1 --------- Block 0 (Beef0004) --------- Long name: test.txt Created: 2020-01-21 19:34:30 Last access: 2020-01-21 19:34:32 MFT entry/sequence #: 108919/8 (0x1A977/0x8)--- End Target ID information ------ Extra blocks information --->> Tracker database block Machine ID: <hostname> MAC Address: <mac address> MAC Vendor: INTEL Creation: 2020-01-21 15:19:59 Volume Droid: <volume> Volume Droid Birth: <volume> File Droid: <file> File Droid birth: <file>
幸运的是,在一次调查过程中,我们还解析了用户的NTUSER.DAT注册表文件,并查看了WorldWheelQuery键,其中包含了用户资源管理器的详细搜索历史。passw.lnk文件突然就变得更加有意思了!下面给出的是这个注册表键的解析条目:
wordwheelquery v.20100330(NTUSER.DAT) Gets contents of user's WordWheelQuery keySoftware/Microsoft/Windows/CurrentVersion/Explorer/WordWheelQueryLastWrite Time Wed Nov 13 06:51:46 2019 (UTC) Searches listed in MRUListEx order14 Secret 6 passw 13 ccc 12 bbb 11 aaa 10 *.cfg 9 apple 8 dni 7 private 4 gov 5 air 3 intelsat 2 adhealthcheck 1 *.ps1 0 global
通过分析WorldWheelQuery注册表键以及根据MRUListEx顺序,我们发现了passw就是用户资源管理器搜索记录中的最近的第二个搜索条目。MRUListEx是一个注册表键值,其中包含了用户近期搜索项目的顺序,也就是用户在资源管理器中搜索内容的顺序。passw还与之前一个包含了字符串“Search Results in Local Disk (C:)”的LNK文件相匹配,这也就意味着,这种LNK文件跟用户资源管理器搜索结果有关,因此我们可以暂且将其称之为“用户搜索LNK文件”。
细微差别分析
通过在系统中查询用户资源管理器搜索历史记录中的条目,我们发现并非所有的搜索条目都有与之相对应的用户搜索LNK文件。下面显示的是其中部分LNK文件以及其对应的文件创建与修改时间戳,我们发现有15条搜索与WorldWheelQuery注册表键有关,但是这里只有4个用户搜索LNK文件。
2019-11-09 08:33:14 Created ModifiedC:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/gov.lnk2019-11-09 09:29:11 Created2019-11-09 09:29:37 ModifiedC:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/private.lnk2019-11-09 08:38:29 Created2019-11-13 06:47:56 ModifiedC:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/passw.lnk2019-11-13 06:57:03 Created2019-11-13 06:57:25 ModifiedC:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/Secret.lnk
除此之外,我们还发现了同一时间创建出的拥有类似文件名的LNK文件对,下面这两个文件都是在2019-11-09 08:38:29 UTC创建的:
C:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/passw.lnkC:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/password.lnk
进一步分析后我们发现,当用户打开搜索结果所生成的其中一个文件后,系统将会根据资源管理器的搜索结果来创建一个用户搜索LNK文件。如果用户没有打开搜索结果所返回的文件,那么用户搜索LNK文件将不会被创建。
在这个样例中,password.lnk文件包含了目标文件元数据,指向的文件为T:/ directory/password.txt。passw.lnk只包含了用户搜索LNK文件的元数据,比如说Search Folder/passw的绝对路径。
基于passw.lnk文件的创建与修改时间戳之间的差异,我们可以知道用户搜索了passw,并在搜索结果中打开了这个文件:
2019-11-09 08:38:29 Created2019-11-13 06:47:56 ModifiedC:/Users/<user>/AppData/Roaming/Microsoft/Windows/Recent/passw.lnk
第二次搜索passw的行为发生在2019年11月13日,这一次,用户再次使用了Windows资源管理器的搜索功能来搜索passw,但是是在C:/盘驱动器根目录下执行的搜索,并且在搜索结果中点击了一个名为password2.txt的文件。LECmd对password2.lnk的解析结果如下:
LECmd version 1.3.2.1Author: Eric Zimmerman (saericzimmerman@gmail.com)https://github.com/EricZimmerman/LECmd--- Header --- Target created: 2015-11-09 22:14:10 Target modified: 2010-01-11 16:57:11 Target accessed: 2015-11-09 22:14:10 File size: 19 Flags: HasTargetIdList, HasLinkInfo, HasRelativePath, HasWorkingDir, IsUnicode, DisableKnownFolderTracking File attributes: FileAttributeArchive Icon index: 0 Show window: SwNormal (Activates and displays the window. The window is restored to its original size and position if the window is minimized or maximized.)Relative Path: ../../../../../../../<file path>/password2.txtWorking Directory: C:/<file path>--- Link information ---Flags: VolumeIdAndLocalBasePath, CommonNetworkRelativeLinkAndPathSuffix>>Volume information Drive type: Fixed storage media (Hard drive) Serial number: <serial number> Label: (No label) Network share information Share name: //<hostname>/<top level folder> Provider type: <provider type> Share flags: ValidNetType Local path: C:/<top level folder>/ Common path: <file path>/password2.txt--- Target ID information (Format: Type ==> Value) --- Absolute path: Search Folder/passw/password2 -Users property view ==> Search Folder >> Property store (Format: GUID/ID Description ==> Value) d5cdd505-2e9c-101b-9397-08002b2cf9ae/AutoList ==> VT_STREAM not implemented (yet) See extension block section for contents for now d5cdd505-2e9c-101b-9397-08002b2cf9ae/AutolistCacheTime ==> 1849138729510 d5cdd505-2e9c-101b-9397-08002b2cf9ae/AutolistCacheKey ==> Search Results in Local Disk (C:)0 -Variable: Users property view ==> passw >> Property store (Format: GUID/ID Description ==> Value) 1e3ee840-bc2b-476c-8237-2acd1a839b22/2 (Description not available) ==> VT_STREAM not implemented 1e3ee840-bc2b-476c-8237-2acd1a839b22/8 (Description not available) ==> passw 28636aa6-953d-11d2-b5d6-00c04fd918d0/11 Item Type ==> Stack 28636aa6-953d-11d2-b5d6-00c04fd918d0/25 SFGAO Flags ==> 805306372 b725f130-47ef-101a-a5f1-02608c9eebac/10 Item Name Display ==> passw -Variable: Users property view ==> password2 >> Property store (Format: GUID/ID Description ==> Value) 49691c90-7e17-101a-a91c-08002b2ecda9/3 Search Rank ==> 0 28636aa6-953d-11d2-b5d6-00c04fd918d0/25 SFGAO Flags ==> 1077936503 28636aa6-953d-11d2-b5d6-00c04fd918d0/32 Delegate ID List ==> VT_VECTOR data not implemented (yet) See extension block section for contents for now 28636aa6-953d-11d2-b5d6-00c04fd918d0/11 Item Type ==> .txt 28636aa6-953d-11d2-b5d6-00c04fd918d0/24 Parsing Name ==> password2.txt 446d16b1-8dad-4870-a748-402ea43d788c/100 Thumbnail Cache Id ==> 7524032674880659487 1e3ee840-bc2b-476c-8237-2acd1a839b22/12 (Description not available) ==> Null 1e3ee840-bc2b-476c-8237-2acd1a839b22/20 (Description not available) ==> 1 1e3ee840-bc2b-476c-8237-2acd1a839b22/3 (Description not available) ==> document 1e3ee840-bc2b-476c-8237-2acd1a839b22/17 (Description not available) ==> {1685D4AB-A51B-4AF1-A4E5-CEE87002431D}.Merge Any 1e3ee840-bc2b-476c-8237-2acd1a839b22/8 (Description not available) ==> C:/<file path>/password2.txt b725f130-47ef-101a-a5f1-02608c9eebac/4 Item Type Text ==> Text Document b725f130-47ef-101a-a5f1-02608c9eebac/10 Item Name Display ==> password2 b725f130-47ef-101a-a5f1-02608c9eebac/12 Size ==> 19 b725f130-47ef-101a-a5f1-02608c9eebac/14 Date Modified ==> 01/11/2010 16:57:11 006fdbaa-864f-4d1c-a8e8-e62772e454fe/11 (Description not available) ==> 59 006fdbaa-864f-4d1c-a8e8-e62772e454fe/13 (Description not available) ==> 1077936423 cf5be8c0-236c-4ad3-bace-cd608a2748d7/100 (Description not available) ==> True e3e0584c-b788-4a5a-bb20-7f5a44c9acdd/6 Item Folder Path Display ==> C:/<file path>--- End Target ID information ------ Extra blocks information --->> Property store data block (Format: GUID/ID Description ==> Value) (Property store is empty)>> Tracker database block Machine ID: <hostname> MAC Address: <mac address> MAC Vendor: VMWARE Creation: 2019-11-13 04:29:24 Volume Droid: <volume> Volume Droid Birth: <volume> File Droid: <file> File Droid birth: <file>这里的重点就在于,用户搜索LNK文件只跟搜索词相关,而与搜索上下文无关。
感谢各位的阅读,以上就是“分析windows构造关联用户搜索的LNK文件”的内容了,经过本文的学习后,相信大家对分析windows构造关联用户搜索的LNK文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/209190.html