You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: artifacts/definitions/Windows/Forensics/Lnk.yaml
+181-74
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,9 @@ description: |
21
21
- SusArgRegex: Regex for suspicious strings in Arguments.
22
22
- SusHostnameRegex: Regex for suspicious TrackerData Hostname.
23
23
- CheckHostnameMismatch: Compare TrackerData.MachineID with Hostname (noisy in many networks)
24
+
- VmPrefixMAC: Regex to match known Virtual Machine MacAddress prefix in TrackerData.
25
+
- RiskyExe: Regex target exe to flag as risky.
26
+
24
27
25
28
List of fields targeted by filter regex:
26
29
@@ -40,19 +43,38 @@ description: |
40
43
41
44
Windows.Forensics.Lnk also will highlight suspicious lnk attributes in a Suspicious field.
42
45
43
-
* Large Size - default over 20000 bytes
44
-
* Startup Path - path with \Startup\
46
+
* Large Size - Check for large size, default over 20000 bytes
47
+
* Startup Path - Path with \Startup\
48
+
* Zeroed Headers - Check for ShellHeader items zeroed.
49
+
* Hidden window - Check for ShellLinkHeader.ShowCommand as SHOWMINNOACTIVE
50
+
* Target Changed path - Check LNK TargetPath different to PropertyStore path.
51
+
* Target Changed size - Check LNK ShellLinkHeader.FileSize different to PropertyStore size.
52
+
* Risky target - Checks several LNK target paths to the RiskyExe regex.
53
+
* WebDAV - Checks for NetworkProviderType = WNNC_NET_DAV
54
+
* Line break in StringData.Name
55
+
* Suspicious argument size - large sized arguments over 250 characters as default
45
56
* Environment variable script - environment vatiable with a common script configured (bat|cmd|ps1|js|vbs|vbe|py)
57
+
* Environment variable script
46
58
* No Target with environmant variable - environment variable only execution
47
-
* Suspicious argument size - large sized arguments over 250 characters as default
48
-
* Arguments have ticks - ticks are common in malicious LNK files
49
-
* Arguments have environment variables - environment variables (%|\$env:) are common in malicious LNKs
50
-
* Arguments have rare characters - looks for specific rare characters that may indicate obfuscation (\?|\!|\~|\@)
51
-
* Arguments have leading space malicious LNK files may have a many leading spaces to obfuscate some tools
59
+
* Suspicious hostname - some common malicious hostnames
60
+
* Hostname mismatch - if selected will compare trackerdata hostname to machine name (lots of FPs)
61
+
* Created in VM - Check TrackerData MacAddress for known VM prefix
62
+
* Local Admin- check PropertyStore for indications LNK created by local admin UID 500
63
+
* Cyrillic Language - check PropertyStore for Cyrillic strings
64
+
* Chinese Language - check PropertyStore for Chinese strings
65
+
* Korean Language - check PropertyStore for Korean strings
66
+
* Persian Language - check PropertyStore for Persian strings
67
+
* Vietnamese Language - check PropertyStore for Vietnamese strings
68
+
* CodePage - checks for existance of a ExtraData code page setting. Rare enough to report on - 936:Simplified Chinese, 949:Korean, 950:Traditional Chinese
69
+
* Has Overlay - check for overlay and extra data attached to LNK
70
+
* Long Base64 - check for a long base64 blog over 20 decoded characters
71
+
* Arguments have ticks - ticks are common in malicious LNK files
72
+
* Arguments have environment variables - environment variables (%|\$env:) are common in malicious LNKs
73
+
* Arguments have rare characters - looks for specific rare characters that may indicate obfuscation (\?|\!|\~|\@)
74
+
* Arguments have leading space - malicious LNK files may have a many leading spaces to obfuscate some tools
52
75
* Arguments have http strings - LNKs are reguarly used as a download cradle - https?://
76
+
* Arguments have UNC strings
53
77
* Suspicious arguments - some common malicious arguments observed in field (with mind to False positive)
54
-
* Suspicious hostname - some common malicious hostnames
55
-
* Hostname mismatch - if selected will compare trackerdata hostname to machine name (lots of FPs)
56
78
57
79
58
80
reference:
@@ -83,13 +105,24 @@ parameters:
83
105
type: int
84
106
- name: SusArgRegex
85
107
description: Regex for suspicious strings in Argumetns.
`No Target with environmant variable` = ExtraData.EnvironmentVariable AND StringData.Arguments AND NOT (StringData.TargetPath OR StringData.RelativePath),
1474
+
`Zeroed Headers` = ( ShellLinkHeader.FileSize=0 or ShellLinkHeader.CreationTime=0),
`No Target with environment variable` = ExtraData.EnvironmentVariable AND StringData.Arguments AND NOT (StringData.TargetPath OR StringData.RelativePath),
1403
1484
`Suspicious hostname` = ExtraData.TrackerData.MachineID AND SusHostnameRegex AND ExtraData.TrackerData.MachineID=~SusHostnameRegex AND NOT lowcase(string=ExtraData.TrackerData.MachineID)=~lowcase(string=hostname[0].Hostname),
1404
-
`Hostname mismatch` = CheckHostnameMismatch AND ExtraData.TrackerData.MachineID AND NOT lowcase(string=ExtraData.TrackerData.MachineID)=~lowcase(string=hostname[0].Hostname)
1405
-
) as Suspicious
1485
+
`Hostname mismatch` = CheckHostnameMismatch AND ExtraData.TrackerData.MachineID AND NOT lowcase(string=ExtraData.TrackerData.MachineID)=~lowcase(string=hostname[0].Hostname),
1486
+
`Created in VM` = ExtraData.TrackerData.MacAddress =~ VmPrefixMAC,
0 commit comments