备注
原文地址:https://evasions.checkpoint.com/techniques/filesystem.html
原文标题:Evasions: Filesystem
更新日期:2021年5月17日
此文后期:根据自身所学进行内容扩充
因自身技术有限,只能尽自身所能翻译国外技术文章,供大家学习,若有不当或可完善的地方,希望可以指出,用于共同完善这篇文章。
目录
文件系统探测方法
1. 检查特定文件是否存在
2. 检查特定的目录是否存在
3. 检查可执行文件的完整路径是否包含某个特定字符串
4. 检查可执行文件是否从特定的目录中运行
5. 检查具有特定名称的可执行文件是否存在于物理磁盘驱动器根目录中。
反制措施
归功于
文件系统探测方法
所有文件系统检测方法的原则如下:在通常的主机中没有这样的文件和目录;但它们存在于特定的虚拟环境和沙盒中。如果存在这样的工件,虚拟环境就可以被检测出来。
1. 检查特定文件是否存在
这种方法利用了普通主机系统和虚拟环境中存在的文件差异。在虚拟环境中,有许多文件是专门为这类系统而存在的。这些文件在没有安装虚拟环境的普通主机系统中是不存在的。
使用的函数:
GetFileAttributes // 如果属性无效则不存在文件
代码样本:
该代码样本的作者:al-khaser project
识别标志:如果以下函数包含其唯一的参数来自表列`路径`。
GetFileAttributes(路径)
则表明应用程序试图使用规避技术。
检测表
2. 检查是否存在特定的目录
这种方法利用了通常主机系统和虚拟环境中存在的目录差异。在虚拟环境中存在许多目录工件,它们是为这类系统所特有的。这些目录在没有安装虚拟环境的普通主机系统中是不存在的。
使用的函数:
GetFileAttributes // 如果属性无效则不存在文件。
代码样本:
该代码样本的作者:al-khaser project
识别标志:
如果以下函数包含其唯一的参数来自于表列`路径`
GetFileAttributes(路径)
那么这就表明应用程序试图使用规避技术。
检测表
检查是否存在以下文件:
检测
路径
CWSandbox
c:\analysis
VirtualBox
%PROGRAMFILES%\oracle\virtualbox guest additions\
VMware
%PROGRAMFILES%\VMware\
3.检查可执行文件的完整路径是否包含某个特定字符串
这种方法依赖于在虚拟环境中启动可执行文件的特殊性。一些环境从特定的路径启动可执行文件 - 恶意软件样本检查这些路径。
用于获取可执行文件路径的函数:
GetModuleFileName
GetProcessImageFileNameA/W
QueryFullProcessImageName
代码样本:(函数GetModuleFileName)
该代码样本的作者:pafish project
代码样本:(函数QueryFullProcessImageName)
无明显特征:
没有提供明显特征,因为很难说究竟为什么应用程序要获得它的完整路径。函数调用可能会被拦截--仅此而已,只是一个常规特征。
检测表
检查可执行文件的完整路径是否包含以下任意一个字符串:
检测
字符
[general]
\sample
\virus
sandbox
4. 检查可执行文件是否从特定目录中运行
这种方法依赖于在虚拟环境中启动可执行文件的特殊性。一些环境从特定的目录启动可执行文件 - 恶意软件样本检查这些目录。
这只是检查整个应用程序路径中特定字符串存在的一个特殊情况,请参考上面的代码样本和签名建议部分。
由于这种方法非常古老,而且不常用,所以提供了外部来源的链接,以参考这种方法:
VB code sample
python code sample
anti-emulation tricks
stub for C code
检测表
检查可执行文件是否从以下目录运行:
检测
路径
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2021-5-20 09:26
被梦幻的彼岸编辑
,原因: