Skip to content

Commit

Permalink
add more function
Browse files Browse the repository at this point in the history
add test in real envrionment

Signed-off-by: yylt <[email protected]>
  • Loading branch information
yylt committed Oct 10, 2020
1 parent 8e14dae commit e26f5af
Show file tree
Hide file tree
Showing 17 changed files with 739 additions and 251 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@
*.out

# Dependency directories (remove the comment below to include it)
# vendor/
vendor/
.idea/
19 changes: 0 additions & 19 deletions _example/main.go

This file was deleted.

238 changes: 109 additions & 129 deletions console.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package gomsf

import "fmt"

const (
cslcreate = "console.create"
csllist = "console.list"
Expand All @@ -10,7 +12,7 @@ const (
cslsskill = "console.session_kill"
cslssdetach = "console.session_detach"
)
//

type ConsoleInfo struct {
Id string `msgpack:"id"`
Prompt string `msgpack:"prompt"`
Expand All @@ -22,131 +24,109 @@ type ConsoleDataInfo struct {
Prompt string `msgpack:"prompt"`
Busy bool `msgpack:"busy"`
}
//
//func (m *MsfGo) ConsoleCreate() (*ConsoleInfo, error) {
// var (
// bs []byte
// err error
// token = m.GetToken()
// )
// if token == "" {
// return nil, ErrNotAuth
// }
// bodys := []string{cslcreate, token}
// bs, err = msgpack.Marshal(bodys)
// if err != nil {
// return nil, err
// }
// bs, err = m.send(false, bs)
// if err != nil {
// return nil, err
// }
// var ct ConsoleInfo
// err = msgpack.Unmarshal(bs, &ct)
// if err != nil {
// return nil, err
// }
// return &ct, nil
//}
//
//func (m *MsfGo) ConsoleList() ([]*ConsoleInfo, error) {
// var (
// bs []byte
// err error
// token = m.GetToken()
// infos []*ConsoleInfo
// )
// if token == "" {
// return nil, ErrNotAuth
// }
// bodys := []string{csllist, token}
// bs, err = msgpack.Marshal(bodys)
// if err != nil {
// return nil, err
// }
// bs, err = m.send(false, bs)
// if err != nil {
// return nil, err
// }
// var ct = map[string]*ConsoleInfo{}
// err = msgpack.Unmarshal(bs, &ct)
// if err != nil {
// return nil, err
// }
// for _, v := range ct {
// infos = append(infos, v)
// }
// return infos, nil
//}
//
//func (m *MsfGo) ConsoleDestroy(id string) error {
// var (
// bs []byte
// err error
// token = m.GetToken()
// )
// if token == "" {
// return ErrNotAuth
// }
// bodys := []string{cslrm, token, id}
// bs, err = msgpack.Marshal(bodys)
// if err != nil {
// return err
// }
// _, err = m.send(true, bs)
// return err
//}
//
//func (m *MsfGo) ConsoleWrite(cmd string) error {
// var (
// bs []byte
// err error
// token = m.GetToken()
// )
// if token == "" {
// return ErrNotAuth
// }
// cmd = fmt.Sprintf("%s\n", cmd)
// length := len(cmd)
// bodys := []string{cslwrite, token, cmd}
// bs, err = msgpack.Marshal(bodys)
// if err != nil {
// return err
// }
// var ct = map[string]int{}
// bs, err = m.send(false, bs)
// err = msgpack.Unmarshal(bs, &ct)
// if err != nil {
// return err
// }
// if v, ok := ct["wrote"]; ok {
// if v == length {
// return nil
// }
// return fmt.Errorf("wrong length %d", v)
// }
// return fmt.Errorf("wrong return-type: %v", ct)
//}
//
//func (m *MsfGo) ConsoleRead(id string) (string, error) {
// var (
// bs []byte
// err error
// token = m.GetToken()
// )
// if token == "" {
// return "", ErrNotAuth
// }
// bodys := []string{cslread, token, id}
// bs, err = msgpack.Marshal(bodys)
// if err != nil {
// return "", err
// }
// var ct ConsoleDataInfo
// bs, err = m.send(false, bs)
// err = msgpack.Unmarshal(bs, &ct)
// if err != nil {
// return "", err
// }
// return strings.TrimSpace(ct.Data), nil
//}

type ConsoleTabInfo struct {
Tabs []string `msgpack:"tabs"`
}

func ConsoleCreate(cli MsfCli, token string) (*ConsoleInfo, error) {
var (
retv *ConsoleInfo
sts = []string{cslcreate, token}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}

func ConsoleDestory(cli MsfCli, token, consoleId string) (*Generic, error) {
var (
retv *Generic
sts = []string{cslrm, token, consoleId}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}

func ConsoleList(cli MsfCli, token string) ([]*ConsoleInfo, error) {
var (
retv []*ConsoleInfo
sts = []string{csllist, token}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}

func ConsoleWrite(cli MsfCli, token, consoleId string, data []byte) error {
var (
sts = []string{cslwrite, token, consoleId, string(data)}
)
var ret struct {
Wrote int `msgpack:"wrote"`
}
var r = &ret
err := cli.Send(sts, &r)
if err != nil {
return err
}
if ret.Wrote != len(data) {
return fmt.Errorf("write %d, but expect %d", ret.Wrote, len(data))
}
return nil
}

func ConsoleRead(cli MsfCli, token, consoleId string) (*ConsoleDataInfo, error) {
var (
retv *ConsoleDataInfo
sts = []string{cslread, token, consoleId}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}

func ConsoleSessDetach(cli MsfCli, token, consoleId string) (*Generic, error) {
var (
retv *Generic
sts = []string{cslssdetach, token, consoleId}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}

func ConsoleSessKill(cli MsfCli, token, consoleId string) (*Generic, error) {
var (
retv *Generic
sts = []string{cslsskill, token, consoleId}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}

func ConsoleTabs(cli MsfCli, token, consoleId, input string) (*ConsoleTabInfo, error) {
var (
retv *ConsoleTabInfo
sts = []string{csltabs, token, consoleId, input}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}
62 changes: 46 additions & 16 deletions core.go
Original file line number Diff line number Diff line change
@@ -1,33 +1,63 @@
package gomsf

//TODO

const (
coreAddModePath = "core.add_module_path"
coreModeStat = "core.module_stats"
coreReloadMode = "core.reload_modules"
coreSave = "core.save"
coreVersion = "core.version"
coreStop = "core.stop"
coreModeStat = "core.module_stats"
coreReloadMode = "core.reload_modules"
coreSave = "core.save"
coreVersion = "core.version"
coreStop = "core.stop"
)


type ModuleInfo struct {
Exploits string `msgpack:"exploits"`
Auxs string `msgpack:"auxiliary"`
Posts string `msgpack:"post"`
Encoders string `msgpack:"encoders"`
Nops string `msgpack:"nops"`
Payloads string `msgpack:"payloads"`
Exploits string `msgpack:"exploits"`
Auxs string `msgpack:"auxiliary"`
Posts string `msgpack:"post"`
Encoders string `msgpack:"encoders"`
Nops string `msgpack:"nops"`
Payloads string `msgpack:"payloads"`
}

type VersionInfo struct {
Version string `msgpack:"version"`
Ruby string `msgpack:"ruby"`
Api string `msgpack:"api"`
}

func AddModulePath(cli MsfCli, user, pass string) (*ModuleInfo, error) {
var (
retv *ModuleInfo
sts = []string{coreAddModePath, user, pass}
sts = []string{coreAddModePath, user, pass}
)
err := cli.Send(sts,&retv)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv,nil
}
return retv, nil
}

func Version(cli MsfCli, token string) (*VersionInfo, error) {
var (
retv *VersionInfo
sts = []string{coreVersion, token}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}

func Stop(cli MsfCli, token string) (*Generic, error) {
var (
retv *Generic
sts = []string{coreStop, token}
)
err := cli.Send(sts, &retv)
if err != nil {
return nil, err
}
return retv, nil
}
Loading

0 comments on commit e26f5af

Please sign in to comment.