diff --git a/Plugins/icmp.go b/Plugins/icmp.go index 75a4cf7..89b67c0 100644 --- a/Plugins/icmp.go +++ b/Plugins/icmp.go @@ -63,12 +63,11 @@ func isping(ip string) bool { return false } - recvBuf := make([]byte, 32) - num, err := conn.Read(recvBuf) + recvBuf := make([]byte, 40) + num, err := conn.Read(recvBuf[0:40]) if err != nil { return false } - if err := conn.SetReadDeadline(time.Time{}); err != nil { return false } diff --git a/Plugins/smb.go b/Plugins/smb.go index ba38e7a..0ac569c 100644 --- a/Plugins/smb.go +++ b/Plugins/smb.go @@ -27,7 +27,7 @@ Loop: } -func SmblConn(info *common.HostInfo, user string, pass string) (flag bool, err error) { +func SmblConn(info *common.HostInfo, user string, pass string, Domain string) (flag bool, err error) { flag = false Host, Port, Username, Password := info.Host, common.PORTList["smb"], user, pass options := smb.Options{ @@ -35,7 +35,7 @@ func SmblConn(info *common.HostInfo, user string, pass string) (flag bool, err e Port: 445, User: Username, Password: Password, - Domain: "", + Domain: Domain, Workstation: "", } @@ -43,7 +43,13 @@ func SmblConn(info *common.HostInfo, user string, pass string) (flag bool, err e if err == nil { defer session.Close() if session.IsAuthenticated { - result := fmt.Sprintf("SMB:%v:%v:%v %v", Host, Port, Username, Password) + var result string + if Domain != "" { + result = fmt.Sprintf("SMB:%v:%v:%v\\%v %v", Host, Port, Domain, Username, Password) + } else { + result = fmt.Sprintf("SMB:%v:%v:%v %v", Host, Port, Username, Password) + } + common.LogSuccess(result) flag = true } @@ -56,7 +62,7 @@ func doWithTimeOut(info *common.HostInfo, user string, pass string) (flag bool, defer cancel() signal := make(chan int, 1) go func() { - flag, err = SmblConn(info, user, pass) + flag, err = SmblConn(info, user, pass, info.Domain) signal <- 1 }() diff --git a/common/config.go b/common/config.go index 84fefd3..b546a50 100644 --- a/common/config.go +++ b/common/config.go @@ -59,6 +59,7 @@ type HostInfo struct { Host string HostFile string Ports string + Domain string Url string Timeout int64 WebTimeout int64 diff --git a/common/flag.go b/common/flag.go index 8c58c5f..f5921bb 100644 --- a/common/flag.go +++ b/common/flag.go @@ -27,6 +27,7 @@ func Flag(Info *HostInfo) { flag.BoolVar(&Info.Isping, "np", false, "not to ping") flag.BoolVar(&Info.Ping, "ping", false, "using ping replace icmp") flag.BoolVar(&Info.IsSave, "no", false, "not to save output log") + flag.StringVar(&Info.Domain, "domain", "", "smb domain") flag.StringVar(&Info.Username, "user", "", "username") flag.StringVar(&Info.Userfile, "userf", "", "username file") flag.StringVar(&Info.Password, "pwd", "", "password")