d1sbb


Home | Message | Rev Shell | About | Links

[分享] 反沙箱 静态免杀 yara规则木马检测


反沙箱

枚举临时文件:沙箱系统一般都会还原环境,临时文件过少,就判断为沙箱

检测虚拟化环境,硬件资源,设备和供应商名称,通过进程名称判断,使用注册表键值判断,检测硬盘中的文件,检测当前环境运行的进程,检测当前环境运行的时间

时间判断:沙箱会对进程加速

判断CPU核心数 dwNumberOfProcessors
判断RAM大小 GlobalMemoryStatus
判断硬盘大小 PhysicalDrive0
判断系统用户名

  • 以前有判断用户名的字典,现在一般都是DESKTOP-XXX随机的数字

判断工作组(域)
判断桌面上文件

  • 大多数沙箱桌面文件数量很少,且有各种office软件,但没有微信QQ之类的软件
  • 我们可以判断怎么文件数量小于某一个范围从而判断是否在沙箱

判断桌面上有没有微信QQ企业微信,等符合国人常规习惯软件
判断临时文件数量

  • 相反,临时文件比一般正常用户多也可以判断为是沙箱

判断系统内有多少doc,xls,ppt类文件

  • 较少的都可能为沙箱

判断自身文件名有没有被修改
判断自身进程是否运行在一个时间范围内(apt常用,hvv常用)
判断系统语言 GetSystemDefaultLangID

  • 俄罗斯APT常用手段,判断为俄语就退出进程

判断自身被附加的dll制作黑名单
判断ip

  • 按照目标来判断
  • 例如我们目标是国内,就判断是否非国内ip,从而反制国外沙箱
  • 或者范围缩小到地级市

判断扬声器是否正常可调用
判断麦克风是否有响应
判断当前前台窗口数量

  • 虚拟机一般都较少

判断鼠标是否移动

  • 之前很火的方法GetCursorPos
  • 获取坐标后延迟两次 获取向量 看结果是否为一个类三角形若真则不是沙箱
  • 因为在ATT&CK框架中被标识 所以列入敏感行为

判断显卡显存大小

  • 一般家用机都为2gb以上,而沙箱不会给这么多

判断系统变量

  • 一般判断是否有虚拟机相关文件的环境变量

判断CPU温度

参考文章1 反沙箱杂谈
参考文章2 沙箱对抗之反沙箱技巧
参考文章3 反沙箱和反调试总结
参考文章4 沙箱的攻与防

静态免杀

加密,数字签名,资源混淆,加壳,分离加载,白加黑

参考文章1 免杀学习1-静态免杀
参考文章2 免杀-绕过静态动态查杀
参考文章3 静态恶意代码免杀

Yara基于规则的恶意样本分析工具

可以帮助安全研究人员和蓝队分析恶意软件,并且可以在应急取证过程中自定义检测规则来检测恶意软件,Yara支持有木马文件落盘和无木马文件落盘(内存马)的检测,由一组字符串和一个确定的布尔表达式组成。

Yara规则语法

1.Yara规则内容支持字符串、正则表达式、十六进制进行匹配。

字符串:定义一个变量 $a = “字符串内容”

正则表达式:定义一个变量 $a = /正则表达式内容/

十六进制:定义一个变量 $a = {十六进制内容}

2.Yara规则条件

and:与 or:或 not:非

all of them:所有条件匹配即告警

any of them:有一个条件匹配即告警

$a and $b and $c:abc同时匹配即告警

($a and $b) or $c:匹配a和b或c即告警

3.Yara规则常用修饰符

nocase:不区分大小写

base64:base64字符串

xor:异或字符串

wide:宽字符

详情查看:

参考文章1 应急响应-Yara规则木马检测
参考文章2 如何通过Yara规则匹配CobaltStrike恶意样本