YARA Templates
Selection of YARA rules for use as guides or templates
File system only examples:
Find by Name
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_by_name
{
meta:
description = "Find files by name."
condition:
file_name == "some-name.exe"
}
Find by Extension
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_by_extension
{
meta:
description = "Find files by extension."
condition:
file_extension == "xyz"
}
Find by Content
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_by_content
{
meta:
description = "Find files containing specific strings."
strings:
$a = "password" wide ascii nocase
condition:
$a
}
Find by Hash
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
import "hash"
rule find_by_hash
{
meta:
description = "Find files by hash."
condition:
hash.sha256(0, filesize) == "b6800c2ca4bfec26c8b8553beee774f4ebab741b1a48adcccce79f07062977be"
}
Find by Size
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_by_size
{
meta:
description = "Find files by size."
condition:
filesize < 1MB
}
Find by Size range
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_by_size_range
{
meta:
description = "Find files in size range."
condition:
filesize > 100KB and filesize < 500KB
}
Find by Location
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_by_location
{
meta:
description = "Find files in specific location."
condition:
file_path contains "Downloads" // when file path contains a certain string
or
file_path == "C:\\Windows\\Temp\\svchost.exe" // for exact file location
}
Find PE (portable executable) files only
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule IsPE
{
meta:
description = "Identifies PE files only based on the header."
condition:
// MZ signature at offset 0 and ...
uint16(0) == 0x5A4D and
// ... PE signature at offset stored in MZ header at 0x3C
uint32(uint32(0x3C)) == 0x00004550
}
Find PKZIP files only
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule IsZIP
{
meta:
description = "Identifies ZIP files only based on the header."
condition:
uint32(0) == 0x04034B50
}
Find by Hash with Size filter
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
// In order to make yara scan faster, it is always a good practice to use filters.
// In this case let's say we know that sample is smaller than 1MB and we want to search the hash.
import "hash"
rule find_by_hash
{
meta:
description = "Find files by hash."
condition:
filesize < 1MB and
hash.sha256(0, filesize) == "b6800c2ca4bfec26c8b8553beee774f4ebab741b1a48adcccce79f07062977be"
}
Memory/process scan examples:
Find Process by Name
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_process_by_name
{
meta:
description = "Find process by name."
condition:
process_name == "audiodg.exe"
}
Find String in Memory
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_string_in_memory
{
meta:
description = "Find process executables containing string."
strings :
$a = "keylogger started" wide ascii nocase
condition :
$a
}
Find Process by Command line
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_process_by_cmdline
{
meta:
description = "Find string in process command lines."
condition :
process_command_line icontains "powershell.exe" // icontains is for case insensitive
}
Find Malware domain
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_malware_domain
{
meta:
description = "Search malware domain in process memory."
strings:
$a = "http://malware-domain.com" wide ascii
condition:
$a
}
Find Byte pattern
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_byte_pattern
{
meta:
description = "Search byte pattern process memory."
strings:
$a = { AA BB CC DD EE FF }
condition:
$a
}
Filesystem and memory scan:
Find String
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_string
{
meta:
description = "Find containing string."
strings :
$a = "keylogger started" wide ascii nocase
condition :
$a
}
Find Malware domain
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_malware_domain
{
meta:
description = "Search malware domain."
strings:
$a = "http://malware-domain.com" wide ascii
condition:
$a
}
Find Byte pattern
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_byte_pattern
{
meta:
description = "Search byte pattern process memory."
strings:
$a = { AA BB CC DD EE FF }
condition:
$a
}
Find XOR pattern
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_xor_string
{
meta:
description = "Search xor string pattern."
strings:
$xor_string = "This program cannot" xor
condition:
$xor_string
}
Find Base64 pattern
// Auto-Complete Support:
// Type modulename. followed by a CTRL + SPACE
// Yara documentation: https://yara.readthedocs.io/en/stable/writingrules.html
rule find_base64_string
{
meta:
description = "Search Base64 encoded string pattern."
strings:
$mimi = "Mimikatz" ascii wide base64 base64wide
condition:
$mimi
}
Last updated