免杀对抗-C2远控篇&C&C++&抗沙箱虚拟机&抗逆向调试&动态密钥抗分析&对抗VT云感知

Ethan医生6小时前系统安全2

对抗杀毒和感知云沙箱

常见沙盒沙箱检测技术

常见调试分析检测技术

https://github.com/a0rtega/pafish/

https://github.com/Arvanaghi/CheckPlease

https://github.com/wanttobeno/AntiDebuggers

https://github.com/LordNoteworthy/al-khaser

https://github.com/ZanderChang/anti-sandbox

https://github.com/nek0YanSu/CheckVM-Sandbox

https://github.com/sunn1day/malware-anti-techniques

https://bbs.kanxue.com/thread-225740.htm

https://anti-debug.checkpoint.com/techniques/debug-flags.html

 

➢C2远控-抗沙盒沙箱-机器特征&真机判断

举例:(唯一性)-原型&APC&XOR等

参考:https://github.com/ZanderChang/anti-sandbox

1、自定义循环延时执行:不使用自带的sleep,循环打印浪费时间

int seep()

{

int i = 0;

int j = 0;

char* strpi = NULL;

strpi = (char*)malloc(10000);

for (i = 0; i < 10000; i++)

{

strpi[i] = 0;

printf("%d,%d\n", strpi[i], i);

}

for (j = 0; j < 300; j++)

{

printf("%d,%d\n", strpi[j], j);

}

free(strpi);

return 0;

}

 

HANDLE hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

WaitForSingleObject(hEvent, 10000);

printf("hello world\n");

CloseHandle(hEvent);

return 0;

 

2、检测目录文件是否正确:判断真机常见软件目录或当前目录自行创建的

bool Is_File_Exist(const std::string& file_path)

{

std::ifstream file(file_path.c_str());

return file.good();

}

BOOL isFileExists(TCHAR* szPath) {

DWORD dwAtrribt = GetFileAttributes(szPath);

return (dwAtrribt != INVALID_FILE_ATTRIBUTES) && !(dwAtrribt &

FILE_ATTRIBUTE_DIRECTORY);

}

BOOL isDirExists(TCHAR* szPath) {

DWORD dwAtrribt = GetFileAttributes(szPath);

return (dwAtrribt != INVALID_FILE_ATTRIBUTES) && (dwAtrribt &

FILE_ATTRIBUTE_DIRECTORY);

}

BOOL isExistsRegkey(HKEY hKey, TCHAR* regkey_s) {

HKEY regkey;

DWORD ret;

ret = RegOpenKeyEx(hKey, regkey_s, 0, KEY_READ, &regkey);

if (ret == ERROR_SUCCESS) {

RegCloseKey(regkey);

return TRUE;

}

else

return FALSE;

}

 

3、检测目标特征是否正确:判断真机目标IP地址或计算机名,用户名等特征

int gensandbox_username() {

char username[200];

size_t i;

DWORD usersize = sizeof(username);

GetUserNameA(username, &usersize);

 

for (i = 0; i < strlen(username); i++) {

username[i] = toupper(username[i]);

//printf(username);

}

if (strstr(username, "ADMIN") != NULL) {

return TRUE;

}

return FALSE;

}

 

 

➢C2远控-抗逆向调试-API&调试器行为功能

举例:(唯一性)-原型&APC&XOR等

参考:https://bbs.kanxue.com/thread-225740.htm

1、使用WindowsAPI

BOOL CheckDebug()

{

return IsDebuggerPresent();

}

 

 

BOOL CheckDebug()

{

BOOL ret;

CheckRemoteDebuggerPresent(GetCurrentProcess(), &ret);

return ret;

}

2、识别调试器行为

3、干扰调试器的功能


标签: C2远控

相关文章

C2远控篇&C&C++&ShellCode定性分析&生成提取&Loader加载模式&编译执行

➢ C2远控-ShellCode-认知&环境➢ C2远控-ShellCode-分析&提取➢ C2远控-ShellCode-Loader加载#常见杀软特点总...

免杀对抗-C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持

免杀对抗-C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持

#C2远控-ShellCode-认知&环境1.创建工程时关闭SDL检查2.属性->C/C++->代码生成->运行库->多线程 (/MT)如果是debug则设置成MTD3...

C2远控篇&C&C++&ShellCode混淆加密&干扰识别&抗沙盒&防调试&组合加载

#C2远控-ShellCode-认知&环境1.创建工程时关闭SDL检查2.属性->C/C++->代码生成->运行库->多线程 (/MT)如果是debug则设置成MTD3...

免杀对抗-C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征

#C2远控-ShellCode-认知&环境1.创建工程时关闭SDL检查2.属性->C/C++->代码生成->运行库->多线程 (/MT)如果是debug则设置成MTD3...

免杀对抗-C2远控篇&C&C++&InlineHook挂钩&动态API调用&突破内存加密&导入表检测

➢ C2远控-Loader加载器-动态API➢ C2远控-Loader加载器-InlineHook➢ C2远控-DF-动态调用&InlineHook&混淆...

C2远控篇&Python&ShellCode分离&File提取&Http协议&Argv参数&Sock管道

#C2远控-ShellCode-认知&环境1.创建工程时关闭SDL检查2.属性->C/C++->代码生成->运行库->多线程 (/MT)如果是debug则设置成MTD3...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。