Golang based RPC client to communicate with Metasploit
https://docs.rapid7.com/metasploit/rpc-api
msfrpcd -U user -P pass
client, err := gomsf.New("0.0.0.0:55553")
if err != nil {
panic(err)
}
if err := client.Login("user", "pass"); err != nil {
panic(err)
}
defer client.Logout()
encoded, err := client.Module.Encode("AAAA", "x86/shikata_ga_nai", &gomsf.EncodeOptions{
Format: "c",
})
if err != nil {
panic(err)
}
fmt.Printf("%s\n", encoded)
This will encode 'AAAA' with shikata_ga_nai, and prints the following c code:
unsigned char buf[] =
"\xbb\xc6\xee\x4d\x66\xd9\xee\xd9\x74\x24\xf4\x58\x33\xc9\xb1"
"\x02\x31\x58\x12\x83\xe8\xfc\x03\x9e\xe0\xaf\x93\x5f\xbc\x6e"
"\x1d";
info, err := client.Module.Info(gomsf.ExploitType, "windows/smb/ms08_067_netapi")
if err != nil {
panic(err)
}
fmt.Printf("Name: %s\n", info.Name)
fmt.Printf("Rank: %s\n", info.Rank)
This gives us the metadata of ms08_067_netapi
Name: MS08-067 Microsoft Server Service Relative Path Stack Corruption
Rank: great