Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hupe1980/gomsf
Golang based RPC client to communicate with Metasploit
https://github.com/hupe1980/gomsf
exploit golang metasploit meterpreter msf redteam rpc shell
Last synced: about 1 month ago
JSON representation
Golang based RPC client to communicate with Metasploit
- Host: GitHub
- URL: https://github.com/hupe1980/gomsf
- Owner: hupe1980
- License: mit
- Created: 2021-11-29T08:11:34.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-02T23:36:36.000Z (almost 3 years ago)
- Last Synced: 2024-10-05T17:48:21.637Z (about 1 month ago)
- Topics: exploit, golang, metasploit, meterpreter, msf, redteam, rpc, shell
- Language: Go
- Homepage:
- Size: 80.1 KB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gomsf
![Build Status](https://github.com/hupe1980/gomsf/workflows/build/badge.svg)
[![Go Reference](https://pkg.go.dev/badge/github.com/hupe1980/gomsf.svg)](https://pkg.go.dev/github.com/hupe1980/gomsf)
> Golang based RPC client to communicate with Metasploithttps://docs.rapid7.com/metasploit/rpc-api
:warning: This is experimental and subject to breaking changes.
## Starting the RPC Server for Metasploit
```bash
msfrpcd -U user -P pass
```## Connecting to the RPC Server
```golang
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()
```
## Encode data with an encoder
```golang
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:
```bash
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";
```
## Get infos about a module
```golang
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
```bash
Name: MS08-067 Microsoft Server Service Relative Path Stack Corruption
Rank: great
```## License
[MIT](LICENCE)