映射攻击者活动技术:LNK文件构建关联用户搜索
摘要:LNK快捷方式文件是确定用户对目标文件和相关文件元数据的访问权的可靠方法。搜索LNK文件,可丰富Windows资源管理器搜索记录,并通过向用户搜索活动额外时间戳对用户活动进行更详细的分析
LNK快捷方式文件是确定用户对目标文件和相关文件元数据的访问权的可靠方法。搜索LNK文件,可丰富Windows资源管理器搜索记录,并通过向用户搜索活动额外时间戳对用户活动进行更详细的分析。
Windows LNK格式
.lnk后缀是Windows中的文件格式。此代码格式文件包含可用于访问Windows Shell中的其他数据对象的信息。
LNK快捷方式文件是Shell Item类型。当用户通过支持的应用程序访问文件时,Windows操作系统将自动创建LNK文件,但用户也可以手动创建它。LNK快捷方式文件通常包含有关所访问文件的元数据,包括文件名,文件大小,原始路径,时间戳,文件,系统信息和网络信息。 幸运的是,有一些工具可以解析这些文件。在本文中,我们将使用Eric Zimmerman的LECmd进行演示。 下图显示了LECmd.exe的命令行选项:
用户搜索LNK文件
最近,Mandiant遇到了我们以前从未研究过的LNK文件格式。该文件来自Windows Server 2012 R2。 文件路径类似于以下内容:
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\passw.lnk
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\gov.lnk
分析人员可以使用LNK快捷方式文件名来了解用户已打开名为passw或gov的文件。接下来,他们可以使用LECmd之类的工具来恢复其他元数据。通过这种方式,可以获得所访问文件的完整文件路径,所访问时间的时间戳以及其他类型的取证数据。
但是,以前的LNK文件没有公开其他元数据。 下面显示了LECmd对passw.lnk文件的分析输出:
LECmd version 1.3.2.1
Author: 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)
我们可以看到“目标ID”数据字段中有一些非常有趣的字符串,例如“ Search Folder \ passw”和“ Search Results in Local Disk (C:)”。为了进行比较,我们在下面的数据中标记了标准的LNK快捷方式文件(测试文件)。请注意,目标文件时间戳,文件大小,完整文件路径和其他元数据。
LECmd version 1.3.2.1
Author: 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.txt
Working 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 key
Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery
LastWrite Time Wed Nov 13 06:51:46 2019 (UTC)
Searches listed in MRUListEx order
14 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文件及其对应的文件创建和修改时间戳。我们发现与WorldWheelQuery注册表项相关的搜索有15条,但是在这里只有4位用户搜索LNK文件。
2019-11-09 08:33:14 Created Modified
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\gov.lnk
2019-11-09 09:29:11 Created
2019-11-09 09:29:37 Modified
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\private.lnk
2019-11-09 08:38:29 Created
2019-11-13 06:47:56 Modified
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\passw.lnk
2019-11-13 06:57:03 Created
2019-11-13 06:57:25 Modified
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\Secret.lnk
此外,我们还发现了同时创建具有相似文件名的LNK文件对。以下两个文件是在UTC 2019-11-09 08:38:29创建的:
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\passw.lnk
C:\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 Created
2019-11-13 06:47:56 Modified
C:\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.1
Author: 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.txt
Working 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文件的用户仅与搜索词相关,而与搜索上下文无关。
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了