_ _ _ ____ _ _
___| |_ __ _| |_(_) ___|| |_ _ __(_)_ __ __ _ ___
/ __| __/ _` | __| \___ \| __| '__| | '_ \ / _` / __|
\__ \ || (_| | |_| |___) | |_| | | | | | | (_| \__ \
|___/\__\__,_|\__|_|____/ \__|_| |_|_| |_|\__, |___/
|___/
YARA Rule Strings Statistics Calculator
Shelly Raban (Sh3llyR), February 2021, Version 0.1
statiStrings 是一个用于 YARA 规则的字符串统计计算器。
其目标是辅助恶意软件研究,具体包括:
该工具帮助你基于自定义的恶意文件和干净文件数据库,编写更精确的 YARA 规则,用于恶意软件检测和威胁狩猎。
对于给定的 YARA 规则和一个文件目录,该工具返回规则中每个字符串在匹配到的文件中的出现频率。
要使用此工具,你必须安装 Python。
安装 yara-python
pip install yara
克隆仓库
git clone https://github.com/Sh3llyR/statiStrings.git
usage: statiStrings.py [-h] [-y YARA_RULE] [-d TEST_DIR] [-t OUTPUT_TYPE]
YARA Rule Strings Statistics Generator and Malware Research Helper
optional arguments:
-h, --help show this help message and exit
-y YARA_RULE Path to the YARA Rule
-d TEST_DIR Path to the Directory of Files to be Scanned
-t OUTPUT_TYPE Output Type: s (sum - number of files in which each string
from the YARA rule ocuured) / p (percentage - percent of
files in which each string from the YARA rule ocuured).
Default is s
针对恶意批处理脚本中的常见字符串研究: 首先,我编写了一个 YARA 规则,包含恶意脚本中发现的许多命令。条件设置为"any of them"——非常通用。 然后,我使用该规则对我的恶意脚本目录运行此工具(如下例所示)。 最后,我对一个包含干净脚本的目录运行了它。 在分析了干净和恶意脚本的结果后,我能够:
{'$s_ren': 1, '$n_set': 8, '$s_mem': 1, '$s_reg_add': 8, '$s_taskkill': 4, '$n_exit': 9, '$s_maybe_block_sites_hosts_file': 1, '$s_move': 2, '$s_attrib': 6, '$n_copy': 6, '$n_start': 10, '$n_type': 7, '$n_echo': 26, '$n_reg': 11, '$s_aes': 1, '$s_cscript': 1, '$s_change_mouse_settings': 1, '$n_net': 3, '$n_find': 6, '$s_infinite_loop': 2, '$s_shutdown': 9, '$n_del': 6, '$n_goto': 12, '$s_generic_bat_maybe_copy_itself': 5, '$n_ipconfig': 2, '$n_maybe_time_change': 5, '$n_system': 2, '$s_tskill': 3, '$s_cpu_damage': 1, '$s_erase': 3, '$s_make_random_folders': 1, '$s_sleep': 4, '$n_bat_maybe_copy_itself': 9}
Number of files scanned: 157
{'$s_maybe_block_sites_hosts_file': '0.64%', '$s_sleep': '2.55%', '$s_shutdown': '5.73%', '$s_attrib': '3.82%', '$s_change_mouse_settings': '0.64%', '$n_maybe_time_change': '3.18%', '$s_erase': '1.91%', '$s_move': '1.27%', '$n_net': '1.91%', '$s_aes': '0.64%', '$n_reg': '7.01%', '$n_system': '1.27%', '$n_set': '5.1%', '$s_cscript': '0.64%', '$n_find': '3.82%', '$s_generic_bat_maybe_copy_itself': '3.18%', '$s_cpu_damage': '0.64%', '$n_goto': '7.64%', '$s_tskill': '1.91%', '$s_ren': '0.64%', '$s_mem': '0.64%', '$n_type': '4.46%', '$s_taskkill': '2.55%', '$n_exit': '5.73%', '$n_echo': '16.56%', '$s_infinite_loop': '1.27%', '$n_start': '6.37%', '$s_make_random_folders': '0.64%', '$n_bat_maybe_copy_itself': '5.73%', '$n_ipconfig': '1.27%', '$s_reg_add': '5.1%', '$n_del': '3.82%', '$n_copy': '3.82%'}
Number of files scanned: 157
项目链接:https://github.com/Sh3llyR/statiStrings