免杀对抗-C2远控篇&C&C++&SC转换格式&UUID标识&MAC物理&IPV4地址&减少熵值
shellcode 部份
分离,混淆
不改变shellcode类型
uuid mac ipv4 v6 改变类型格式
-----------------------------------
loader 部份
内联汇编 指针 进程 dll注入等
-----------------------------------
其他(干扰)
ASMI ETW
抗调试分析
白加黑
➢ C2远控-UUID地址-ShellCode转换
➢ C2远控-MAC地址-ShellCode转换
➢ C2远控-IPV4地址-ShellCode转换
文章参考:
https://www.anquanke.com/post/id/262666
#C/C++内存加载-UUID方式-ShellCode转换
通用唯一识别码(UUID),是用于计算机体系中以识别信息数目的一个128位标识符,根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性。
#C/C++内存加载-MAC方式-ShellCode转换
MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡的EPROM一种闪存芯片,通常可以通过程序擦写。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位(6个字节)的。
#C/C++内存加载-IPV4方式-ShellCode转换
IPv4是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。IPv4使用32位(4字节)地址。
#熵和恶意软件
恶意软件会采取许多策略和技巧来从 AV 引擎的扫描中隐藏恶意软件。像shellcode加密,函数调用混淆之类的东西,像这种技术本质上是在加密和压缩数据,因此提高了数据的不可预测性/无序性,也就是提高了熵。所以我们可以根据熵值捕获文件,熵越大,数据就越有可能被混淆或加密,文件也就越有可能是恶意的,熵是一种简单有效的检测技术,但并不能完全识别所有恶意代码。因此,杀毒软件通常使用熵作为其他技术的补充,以更好地识别潜在的威胁。
1、识别项目:
https://github.com/langsasec/File-Entropy-Calculator
-如何降低熵值:
Restorator-添加常用软件光标
#自签名、详细信息
详细信息:Restorator添加版本
自签名项目:
https://github.com/secretsquirrel/SigThief
https://github.com/thelostworldFree/Sign-Sacker
#特征码定位
找到杀毒软件判断恶意的地方,代码修改或汇编修改进行突破
#动态API回调
typedef BOOL(WINAPI* ESL)(
LOCALE_ENUMPROCW lpLocaleEnumProc,
DWORD dwFlags
);
ESL eslw = (ESL)GetProcAddress(
GetModuleHandleA("Kernel32.dll"),
"EnumSystemLocalesW"
);
HMODULE hModule = LoadLibraryA("rpcrt4.dll");
typedef RPC_STATUS(WINAPI* UFS)(
RPC_CSTR StringUuid,
UUID *Uuid
);
UFS ufsa = (UFS)GetProcAddress(
GetModuleHandleA("rpcrt4.dll"),
"UuidFromStringA"
);