From 019544cd07b8cdeb66e08018ae8e498744259aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=B1=E8=88=9E=E8=80=85?= Date: Mon, 13 Nov 2023 10:24:07 +0800 Subject: [PATCH] Update NetBIOS.go --- Plugins/NetBIOS.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/Plugins/NetBIOS.go b/Plugins/NetBIOS.go index b1a645b..107dcca 100644 --- a/Plugins/NetBIOS.go +++ b/Plugins/NetBIOS.go @@ -4,19 +4,18 @@ import ( "bytes" "errors" "fmt" + "github.com/shadow1ng/fscan/common" + "gopkg.in/yaml.v3" "net" "strconv" "strings" "time" - - "github.com/shadow1ng/fscan/common" - "gopkg.in/yaml.v3" ) var errNetBIOS = errors.New("netbios error") -func NetBIOS(info common.HostInfo, flags common.Flags) error { - netbios, _ := NetBIOS1(info, flags) +func NetBIOS(info *common.HostInfo) error { + netbios, _ := NetBIOS1(info) output := netbios.String() if len(output) > 0 { result := fmt.Sprintf("[*] NetBios: %-15s %s", info.Host, output) @@ -26,8 +25,8 @@ func NetBIOS(info common.HostInfo, flags common.Flags) error { return errNetBIOS } -func NetBIOS1(info common.HostInfo, flags common.Flags) (netbios NetBiosInfo, err error) { - netbios, err = GetNbnsname(info, flags.Timeout) +func NetBIOS1(info *common.HostInfo) (netbios NetBiosInfo, err error) { + netbios, err = GetNbnsname(info) var payload0 []byte if netbios.ServerService != "" || netbios.WorkstationService != "" { ss := netbios.ServerService @@ -41,7 +40,7 @@ func NetBIOS1(info common.HostInfo, flags common.Flags) (netbios NetBiosInfo, er } realhost := fmt.Sprintf("%s:%v", info.Host, info.Ports) var conn net.Conn - conn, err = common.WrapperTcpWithTimeout("tcp", realhost, common.Socks5{Address: flags.Socks5Proxy}, time.Duration(flags.Timeout)*time.Second) + conn, err = common.WrapperTcpWithTimeout("tcp", realhost, time.Duration(common.Timeout)*time.Second) defer func() { if conn != nil { conn.Close() @@ -50,7 +49,7 @@ func NetBIOS1(info common.HostInfo, flags common.Flags) (netbios NetBiosInfo, er if err != nil { return } - err = conn.SetDeadline(time.Now().Add(time.Duration(flags.Timeout) * time.Second)) + err = conn.SetDeadline(time.Now().Add(time.Duration(common.Timeout) * time.Second)) if err != nil { return } @@ -89,11 +88,11 @@ func NetBIOS1(info common.HostInfo, flags common.Flags) (netbios NetBiosInfo, er return } -func GetNbnsname(info common.HostInfo, timeout int64) (netbios NetBiosInfo, err error) { +func GetNbnsname(info *common.HostInfo) (netbios NetBiosInfo, err error) { senddata1 := []byte{102, 102, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 32, 67, 75, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 33, 0, 1} //senddata1 := []byte("ff\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00 CKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\x00\x00!\x00\x01") realhost := fmt.Sprintf("%s:137", info.Host) - conn, err := net.DialTimeout("udp", realhost, time.Duration(timeout)*time.Second) + conn, err := net.DialTimeout("udp", realhost, time.Duration(common.Timeout)*time.Second) defer func() { if conn != nil { conn.Close() @@ -102,7 +101,7 @@ func GetNbnsname(info common.HostInfo, timeout int64) (netbios NetBiosInfo, err if err != nil { return } - err = conn.SetDeadline(time.Now().Add(time.Duration(timeout) * time.Second)) + err = conn.SetDeadline(time.Now().Add(time.Duration(common.Timeout) * time.Second)) if err != nil { return } @@ -209,7 +208,7 @@ type NetBiosInfo struct { NetComputerName string `yaml:"NetBiosComputerName"` } -func (info NetBiosInfo) String() (output string) { +func (info *NetBiosInfo) String() (output string) { var text string //ComputerName 信息比较全 if info.ComputerName != "" { @@ -329,7 +328,7 @@ func ParseNTLM(ret []byte) (netbios NetBiosInfo, err error) { return } length = num1 + num2*256 - _, err = bytetoint(ret[start+44 : start+45][0]) + num1, err = bytetoint(ret[start+44 : start+45][0]) if err != nil { return }