Cobalt Strike shellcode 和加载器的免杀
2021-10-11陈智峰
陈智峰
(南京东南司法鉴定中心,江苏 南京 210008)
引言
Cobalt Strike 可以简单认为是一款远控程序,相当于木马,但它却又不仅仅是常规的木马远控。它是一款基于Java 编写的全平台多方协同后渗透攻击框架,也称为CS。由于该框架具备团队协作攻击、流量防检测、防安全软件查杀等优势,因而也被大量黑客组织用于真实的高危害性的攻击。
一、shellcode 简介
shellcode 是一段用于利用软件漏洞而执行的代码,为16 进制的机器码,因为经常让攻击者获得shell 而得名。shellcode 常常使用机器语言编写。shellcode 只是一段字符,无法执行的,需要一个加载器来运行加载。打个比喻,shellcode 就相当于毒药本身,为了给目标服用,我们还需要容器比如瓶子来装载它。毒药的免杀是欺骗目标让其服下,木马的免杀是欺骗、躲过杀毒软件的检测。免杀的手段分两大类,一种是针对shellcode(毒药本身),一种是针对加载器(容器),都是要想办法伪装成正常物品。大部分时候需要搭配使用,效果更佳。如图1 为cs 生成的64 位shellcode。
二、shellcode 免杀技术
Shellcode 的免杀,主要分为编码和加密,就是把shellcode 进行加密存储,然后在执行的时候再解密出来执行,这样杀软静态识别时候就不认识我们的shellcode。我们可以对全部shellcode 使用同一种加密,也可以对shellcode 进行分段使用不同的加密手段加密再分段解密,当然也可以进行多次加密等。其中编码有base64 编码,字符串编码,uuid 硬编码。加密的话有AES,XOR,ROT,RSA,RC4 等等。
下面以UUID 硬编码为例,全称为通用唯一识别码(Universally Unique Identifier,缩写:UUID),是用于计算机体系中以识别信息数目的一个128 位标识符,根据标准方法生成,不依赖中央机构的注册和分配,UUID 具有唯一性。……
