灌篮少年 发表于 2025-3-3 06:38:10

安全对抗相关技能和概念的总结和分析

流量对抗与行为对抗


[*] 流量对抗

[*]核心目的:规避通过网络流量分析举行的恶意行为检测。
[*]关键点:

[*]流量加密:通过SSL/TLS或自定义加密协议,隐藏网络通信内容。
[*]流量伪装:模拟正当流量模式(如HTTP、HTTPS流量),降低被发现的大概性。
[*]流量随机化:动态改变通信的大小、时间隔断和模式,制止流量特征被检测到。


[*] 行为对抗

[*]核心目的:规避基于行为检测的杀软和EDR(Endpoint Detection and Response)。
[*]关键点:

[*]延迟启动:通过时间延迟绕过行为检测的初期监控。
[*]动态加载模块:规避静态分析和初始行为特征。
[*]最小化行为特征:淘汰显著的恶意活动(如文件写入、内存分配)以制止触发规则。


杀软查杀特点


[*] 流量查杀

[*]特点:分析网络通信流量,通过特征匹配或AI分析检测异常。
[*]对抗方式:

[*]流量加密(如HTTPS、WSS)。
[*]流量伪装成正当的第三方服务(如欣赏器流量)。
[*]利用 CDN 或正当域名肴杂真实目的。


[*] 静态查杀

[*]特点:基于文件特征(如hash值、签名)或代码内容(如字符串、函数调用)检测恶意步伐。
[*]对抗方式:

[*]文件肴杂(如代码加密、动态解密)。
[*]利用动态加载或加壳技能隐藏伤害内容。
[*]在IAT(Import Address Table)中制止直接引用伤害函数。


[*] IAT 签名与静态查杀

[*]核心问题:静态查杀的重点是IAT中是否存在伤害函数(如CreateProcess、VirtualAlloc等)。
[*]隐藏方式:

[*]利用动态调用(如GetProcAddress或LoadLibrary)。
[*]基于PEB(Process Environment Block)与hash技能获取函数地点。

[*]示例:

[*]动态调用示例:FARPROC proc = GetProcAddress(GetModuleHandleA("kernel32.dll"), "CreateProcessA");
proc(...);

[*]PEB+hash动态获取:
利用PEB遍历模块列表,通过函数名称hash计算匹配目的函数。


[*] 签名检查

[*]过期签名:Windows 11会通过时间戳和CRL(证书吊销列表)检查过期签名。

[*]规避方式:

[*]利用正规代码签名的文件作为loader。
[*]制止直接运行未签名或过期签名的可执行文件。


[*]白+黑策略:将白步伐加载器与恶意DLL结合,以分层对抗检测。

[*] 单EXE熵值检测

[*]熵值特点:高熵通常是加密或压缩的标记,被杀软(如360)重点关注。
[*]对抗方式:

[*]合理降低熵值:混入伪代码或正当字符串。
[*]加载外部资源而非直接加密存储。
[*]利用非典型加密算法或分块处理降低团体熵值。


[*] Hash标记

[*]特点:白文件和恶意DLL的组合轻易被标记为黑。
[*]对抗方式:

[*]定期更换白文件与黑DLL的hash值。
[*]利用正当步伐加载动态加密的shellcode以规避直接标记。


国外与国内EDR对比


[*] 国外EDR(如CrowdStrike、Carbon Black)

[*]特点:

[*]更关注行为和流量分析。
[*]静态查杀能力较弱。

[*]对抗重点:

[*]制止显着的恶意行为(如代码注入、DLL劫持)。
[*]流量伪装为正当的业务流量。


[*] 国内杀软(如360、赛门铁克)

[*]特点:

[*]注重静态查杀(签名、熵值、hash等)。
[*]强盛的流量和动态行为分析能力。

[*]对抗重点:

[*]利用动态加载技能隐藏静态伤害特征。
[*]制止高熵文件直接暴露,利用正当步伐作为入口点。


重点分析与建议


[*] 对抗静态查杀

[*]动态调用伤害函数(GetProcAddress/PEB)。
[*]动态解密payload,制止静态分析工具提取。
[*]分层计划,将敏感逻辑从主步伐分离。

[*] 对抗行为与流量分析

[*]模拟正当用户行为,伪装流量特征。
[*]延迟启动与分阶段执行,规避初期监控。
[*]加强加密流量的伪装性,制止简单特征匹配。

[*] 签名与hash管理

[*]利用可信签名的步伐作为入口,制止直接暴露恶意payload。
[*]定期更新组件的hash值,淘汰被标记的大概性。

通过以上策略,可以在肯定水平上规避杀软和EDR的检测,但必要连续更新技能以适应安全产物的升级与特征匹配规则的变革。
3.函数调用链
以下是对您形貌的安全技能相关内容的整理与分析:
以下是对您形貌的安全相关技能和策略的分析、实现思路和防御对策的详细分析:
1. VirtualAlloc + Shellcode执行链分析

操作流程:


[*]申请可执行内存:

[*]利用VirtualAlloc分配内存,设置为可执行权限(PAGE_EXECUTE_READWRITE)。

[*]解密Shellcode:

[*]动态解密Shellcode以制止静态分析检测。

[*]Memcpy拷贝:

[*]利用memcpy将解密后的代码写入分配的内存。

[*]指针执行:

[*]通过函数指针调用内存中的Shellcode完成执行。

示例代码:
void* exec_mem = VirtualAlloc(NULL, payload_size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(exec_mem, encrypted_shellcode, payload_size);
decrypt_shellcode(exec_mem, payload_size);
((void(*)())exec_mem)();
风险点:


[*]VirtualAlloc的显著特征轻易被检测。
[*]Shellcode动态执行是常见的恶意行为特征。
规避技能:


[*] 间接调用VirtualAlloc:

[*]利用动态剖析函数地点(GetProcAddress)。
[*]模糊调用链,例如通过ntdll的NT函数间接完成内存分配。

[*] 堆栈欺骗(Spoof Call):

[*]修改调用栈伪装函数链,欺骗分析工具。
[*]示例:伪装调用链为正当模块触发。

[*] 替代分配方式:

[*]通过HeapAlloc分配不可执行内存,后续利用VirtualProtect修改内存属性。
void* mem = HeapAlloc(GetProcessHeap(), 0, payload_size);
VirtualProtect(mem, payload_size, PAGE_EXECUTE_READWRITE, &oldProtect);

2. 伤害操作及对抗措施

伤害操作:


[*] Shell下令执行:

[*]创建cmd.exe或powershell.exe子历程,执行伤害下令。
[*]典型检测特征:通过CreateProcess启动外部历程。

[*] 注入操作:

[*]获取目的历程句柄(OpenProcess)。
[*]利用WriteProcessMemory写入代码,CreateRemoteThread注入执行。

[*] 修改目的历程内容(CFG掩护绕过):

[*]CFG(Control Flow Guard)会检测对目的历程内容的非预期修改。
[*]修改后大概触发目的历程自动销毁。

规避技能:


[*] 下令执行伪装:

[*]利用正当的子历程作为桥接点执行下令(如msbuild.exe)。
[*]隐藏下令行参数或利用.Net加载脚本:Process.Start("powershell.exe", "-nop -enc <base64_payload>");


[*] 注入技能优化:

[*]利用无句柄方法注入,如APC(Asynchronous Procedure Call)或Reflective DLL Injection。
[*]规避直接调用OpenProcess,通过提升权限的子历程完成注入。

[*] 绕过CFG掩护:

[*]利用历程镜像加载,先加载目的历程的副本,在副本中完成修改后切换到原历程运行。

[*] 操作注册表与计划任务:

[*]动态加载advapi32.dll,利用RegSetValueEx设置注册表键值。
[*]创建计划任务时,伪装触发步伐路径为可信文件路径。

3. Hook与反Hook技能

Bitdefender Hook对抗:


[*] R3 Hook(用户态钩子):

[*]检测方法:

[*]查看DLL导入表中是否存在异常钩子指向。
[*]检查内存区域是否存在被修改的代码。

[*]解除方法(Unhook):

[*]重写内存区域为原始字节。
[*]动态加载未被钩子的体系DLL替换被钩的函数。


[*] 关键函数钩子(如VirtualAlloc):

[*]通过反向分析,查找杀软对VirtualAlloc调用的处理逻辑。
[*]动态替换钩子:

[*]利用jmp汇编替换钩子地点,恢复原始指令:jmp



汇编级操作示例:



[*]VirtualAlloc Hook绕过:mov eax,
call eax

4. BOF(Beacon Object File)与AMS掩护绕过

BOF执行链:


[*] 概念:

[*]BOF是Cobalt Strike中用于扩展功能的模块,基于C语言实现。
[*]利用WinAPI完成低级操作。

[*] AMS掩护绕过:

[*]AMSI(Antimalware Scan Interface)是Windows的反恶意软件接口,会拦截和检测PowerShell、脚本等执行。

绕过技能:


[*] AMSI内存补丁:

[*]修改AMSI.dll中关键函数的返回值为成功:char patch[] = { 0x31, 0xC0, 0xC3 }; // xor eax, eax; ret
WriteProcessMemory(hProc, amsiScanBufferAddress, patch, sizeof(patch), NULL);


[*] 动态加载绕过:

[*]制止直接调用AMSI,利用动态加载并替换检测函数。

5. 计划任务与注册表操作


[*] 计划任务创建:

[*]利用schtasks.exe创建计划任务。
[*]伪装触发器为体系事件或特定时间。

[*] 注册表操作:

[*]设置Run键值实现开机启动。
[*]创建隐藏的注册表项存储恶意配置。

总结

通过结合动态加载、堆栈欺骗、反Hook和行为伪装等技能,可以有效绕过大部分静态和动态检测机制,但必要注意以下几点:

[*]动态加载:隐藏关键API调用,淘汰暴露特征。
[*]堆栈与调用链伪装:肴杂行为路径,欺骗分析工具。
[*]绕过AMS与CFG:修改内存结构以制止关键功能被阻止。
[*]防御对抗策略更新:需针对差异杀软和EDR连续优化对抗策略。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 安全对抗相关技能和概念的总结和分析