diff --git a/Plugins/wmiexec.go b/Plugins/wmiexec.go index f60f230..81421b0 100644 --- a/Plugins/wmiexec.go +++ b/Plugins/wmiexec.go @@ -3,12 +3,11 @@ package Plugins import ( "errors" "fmt" + "github.com/shadow1ng/fscan/common" "os" "strings" "time" - "github.com/shadow1ng/fscan/common" - "github.com/C-Sto/goWMIExec/pkg/wmiexec" ) @@ -27,8 +26,8 @@ func init() { flag = true } -func WmiExec(info *common.HostInfo, flags common.Flags) (tmperr error) { - if flags.IsBrute { +func WmiExec(info *common.HostInfo) (tmperr error) { + if common.IsBrute { return nil } starttime := time.Now().Unix() @@ -36,19 +35,19 @@ func WmiExec(info *common.HostInfo, flags common.Flags) (tmperr error) { PASS: for _, pass := range common.Passwords { pass = strings.Replace(pass, "{user}", user, -1) - flag, err := Wmiexec(info, flags, user, pass) - errlog := fmt.Sprintf("[-] WmiExec %v:%v %v %v %v", info.Host, 445, user, pass, err) + flag, err := Wmiexec(info, user, pass, common.Hash) + errlog := fmt.Sprintf("[-] WmiExec %v:%v %v %v %v", info.Host, 445, user, pass, err) errlog = strings.Replace(errlog, "\n", "", -1) common.LogError(errlog) - if flag { + if flag == true { var result string - if flags.Domain != "" { - result = fmt.Sprintf("[+] WmiExec:%v:%v:%v\\%v ", info.Host, info.Ports, flags.Domain, user) + if common.Domain != "" { + result = fmt.Sprintf("[+] WmiExec %v:%v:%v\\%v ", info.Host, info.Ports, common.Domain, user) } else { - result = fmt.Sprintf("[+] WmiExec:%v:%v:%v ", info.Host, info.Ports, user) + result = fmt.Sprintf("[+] WmiExec %v:%v:%v ", info.Host, info.Ports, user) } - if flags.Hash != "" { - result += "hash: " + flags.Hash + if common.Hash != "" { + result += "hash: " + common.Hash } else { result += pass } @@ -59,11 +58,11 @@ func WmiExec(info *common.HostInfo, flags common.Flags) (tmperr error) { if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > (int64(len(common.Userdict["smb"])*len(common.Passwords)) * flags.Timeout) { + if time.Now().Unix()-starttime > (int64(len(common.Userdict["smb"])*len(common.Passwords)) * common.Timeout) { return err } } - if len(flags.Hash) == 32 { + if len(common.Hash) == 32 { break PASS } } @@ -71,10 +70,10 @@ func WmiExec(info *common.HostInfo, flags common.Flags) (tmperr error) { return tmperr } -func Wmiexec(info *common.HostInfo, flags common.Flags, user string, pass string) (flag bool, err error) { +func Wmiexec(info *common.HostInfo, user string, pass string, hash string) (flag bool, err error) { target := fmt.Sprintf("%s:%v", info.Host, info.Ports) - wmiexec.Timeout = int(flags.Timeout) - return WMIExec(target, user, pass, flags.Hash, flags.Domain, flags.Command, ClientHost, "", nil) + wmiexec.Timeout = int(common.Timeout) + return WMIExec(target, user, pass, hash, common.Domain, common.Command, ClientHost, "", nil) } func WMIExec(target, username, password, hash, domain, command, clientHostname, binding string, cfgIn *wmiexec.WmiExecConfig) (flag bool, err error) {