-
-
[原创][翻译]规避技术:通用操作系统查询
-
发表于: 2021-5-18 16:41 7738
-
备注
原文地址:https://evasions.checkpoint.com/techniques/generic-os-queries.html
原文标题:Evasions: Generic OS queries
更新日期:2021年5月18日
此文后期:根据自身所学进行内容扩充
因自身技术有限,只能尽自身所能翻译国外技术文章,供大家学习,若有不当或可完善的地方,希望可以指出,用于共同完善这篇文章。
目录
常规操作系统查询
1. 检查用户名是否是特定的
2. 检查计算机名称是否是特定的
3. 检查主机名称是否是特定的
4. 检查总内存是否过低
5.检查主机操作系统的屏幕分辨率是否不正常
6.检查处理器数量是否过少
7. 检查显示器的数量是否很少
8.检查硬盘大小和可用空间是否较小
9. 检查系统的正常运行时间是否很小
10. 检查操作系统是否从虚拟硬盘启动(Win8+)
反制措施
归功于
识别标志是通用的
识别标志对每种技术都是通用的:钩住使用的函数,并跟踪它是否被调用。例如,很难说出应用程序为什么要获取用户名。这并不一定意味着应用规避技术。所以在这种情况下,最好的办法就是拦截目标函数并跟踪其调用。
通过常规的操作系统检查进行检测
通常的主机具有有意义的非标准用户名/计算机名。特定的虚拟环境将一些预定义的名称分配给默认用户以及计算机名称。主机操作系统和虚拟机之间的其他区别包括RAM大小、HDD大小、监视器数量等等。虽然这些可能不是检测虚拟环境最可靠的方法,但它们仍然常用于恶意软件样本。
1. 检查用户名是否是特定的
请注意,检查是不区分大小写的。
使用的函数:
代码样本
代码样本取自InviZzzible tool
反制措施
将用户名改为不可疑的用户名。
检测表
检查用户名是否为以下其中之一:
检测
字符串
[general]
admin
andy
honey
john
john doe
malnetvm
maltest
malware
roo
sandbox
snort
tequilaboomboom
test
virus
virusclone
wilbert
Nepenthes
nepenthes
Norman
currentuser
ThreatExpert
username
Sandboxie
user
VMware
vmware
2. 检查计算机名称是否是特定的
请注意,检查是不区分大小写的。
使用的函数:
代码样本
代码样本取自InviZzzible tool
反制措施
将计算机名称改为不可疑的名称。
检测表
检查计算机名是否为以下其中之一:
检测
字符串
[generic]
klone_x64-pc
tequilaboomboom
Anubis
TU-4NH09SMCG1HC
InsideTm
3. 检查主机名称是否是特定的
请注意,检查是不区分大小写的。
使用的函数:
代码样本
代码样本取自InviZzzible tool
反制措施
将主机名称改为不可疑的名称。
检测表
检查主机名是否为以下其中之一:
Detect
String
[generic]
SystemIT
4. 检查总内存是否过低
用来获取可执行路径的函数:
代码样本
该代码样本的作者:al-khaser project
反制措施
修补/拦截NtQuerySystemInformation以在SystemBasicInformation中返回新数量的PhysicalPages。
提示:在本例中,它的第一个参数等于2-SystemPerformanceInformation枚举值。
或者,修补KUSER_SHARED_DATA中的NumberOfPhysicalPages。
5.检查主机操作系统的屏幕分辨率是否不正常
或者:
代码样本
看看这个StackOverflow主题
反制措施
改变屏幕分辨率,使之与常规主机的分辨率相匹配(例如1600x900)。
6.检查处理器数量是否过少
使用的函数:
除此之外,处理器的数量可以通过asm内联函数或内在函数从PEB获得,请参见下面的代码示例。
代码样本(variant 1, al-khaser project)
该代码样本的作者:al-khaser project
代码样本(variant 2, al-khaser project, asm inline)
该代码样本的作者:al-khaser project
代码样本(variant 3, pafish project)
该代码样本的作者:pafish project
反制措施
为虚拟机分配两个或多个内核。
作为一个替代方案,打补丁/拦截NtCreateThread,为每个新线程分配特定的内核。
7. 检查显示器的数量是否很少
使用的函数:
代码样本
该代码样本归功于:StackOverflow forum
反制措施
在虚拟环境中至少添加一个显示器。
8.检查硬盘大小和可用空间是否较小
使用的函数:
代码样本(checking drive total size)
该代码样本的作者:al-khaser project
代码样本(checking drive free space)
该代码样本的作者:al-khaser project
反制措施
针对检查磁盘大小:使用特定CTL代码筛选到\\device\\HarddiskN的IRP设备控制请求:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
- [原创]物联网安全:基础篇 4124
- 威胁情报小课堂:阻止活跃勒索软件的感染 2177
- [翻译]发现利用 Facebook 和 MS 管理控制台实施的 Kimsuky APT 攻击 7061
- 威胁情报小课堂:LockBit Black 2053
- 威胁情报小课堂:Nitrogen 2079