diff --git a/Plugins/ftp.go b/Plugins/ftp.go index 3cf7fc5..56def89 100644 --- a/Plugins/ftp.go +++ b/Plugins/ftp.go @@ -35,7 +35,7 @@ func FtpScan(info *common.HostInfo) (tmperr error) { if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > 300 { + if time.Now().Unix()-starttime > (int64(len(common.Userdict["ftp"])*len(common.Passwords)) * info.Timeout) { return err } } diff --git a/Plugins/mssql.go b/Plugins/mssql.go index d9035ca..5cd51a6 100644 --- a/Plugins/mssql.go +++ b/Plugins/mssql.go @@ -24,7 +24,7 @@ func MssqlScan(info *common.HostInfo) (tmperr error) { if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > 300 { + if time.Now().Unix()-starttime > (int64(len(common.Userdict["mssql"])*len(common.Passwords)) * info.Timeout) { return err } } diff --git a/Plugins/mysql.go b/Plugins/mysql.go index f56fdb0..6067044 100644 --- a/Plugins/mysql.go +++ b/Plugins/mysql.go @@ -24,7 +24,7 @@ func MysqlScan(info *common.HostInfo) (tmperr error) { if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > 300 { + if time.Now().Unix()-starttime > (int64(len(common.Userdict["mysql"])*len(common.Passwords)) * info.Timeout) { return err } } diff --git a/Plugins/postgres.go b/Plugins/postgres.go index 224ccc7..c076a74 100644 --- a/Plugins/postgres.go +++ b/Plugins/postgres.go @@ -24,7 +24,7 @@ func PostgresScan(info *common.HostInfo) (tmperr error) { if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > 300 { + if time.Now().Unix()-starttime > (int64(len(common.Userdict["postgresql"])*len(common.Passwords)) * info.Timeout) { return err } } diff --git a/Plugins/redis.go b/Plugins/redis.go index fdb9f46..08c4199 100644 --- a/Plugins/redis.go +++ b/Plugins/redis.go @@ -28,7 +28,7 @@ func RedisScan(info *common.HostInfo) (tmperr error) { if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > 300 { + if time.Now().Unix()-starttime > (int64(len(common.Passwords)) * info.Timeout) { return err } } @@ -128,7 +128,7 @@ func Expoilt(realhost string, conn net.Conn) error { } } } - recoverdb(dbfilename, dir, conn) + err = recoverdb(dbfilename, dir, conn) return err } diff --git a/Plugins/scanner.go b/Plugins/scanner.go index a7ea47b..c623e4f 100644 --- a/Plugins/scanner.go +++ b/Plugins/scanner.go @@ -12,7 +12,7 @@ import ( ) func Scan(info common.HostInfo) { - fmt.Println("scan start") + fmt.Println("start infoscan") Hosts, _ := common.ParseIP(info.Host, common.HostFile) WebScan.Inithttp(common.Pocinfo) var ch = make(chan struct{}, common.Threads) @@ -34,6 +34,7 @@ func Scan(info common.HostInfo) { for _, port := range common.PORTList { severports = append(severports, strconv.Itoa(port)) } + fmt.Println("start vulscan") for _, targetIP := range AlivePorts { info.Host, info.Ports = strings.Split(targetIP, ":")[0], strings.Split(targetIP, ":")[1] if info.Scantype == "all" { @@ -63,7 +64,8 @@ func Scan(info common.HostInfo) { } } wg.Wait() - common.WaitSave() + close(common.Results) + fmt.Println(fmt.Sprintf("已完成 %v/%v", common.End, common.Num)) } var Mutex = &sync.Mutex{} diff --git a/Plugins/smb.go b/Plugins/smb.go index c446ec2..e2b1782 100644 --- a/Plugins/smb.go +++ b/Plugins/smb.go @@ -25,12 +25,13 @@ func SmbScan(info *common.HostInfo) (tmperr error) { return err } else { errlog := fmt.Sprintf("[-] smb %v:%v %v %v %v", info.Host, 445, user, pass, err) + errlog = strings.Replace(errlog, "\n", "", -1) common.LogError(errlog) tmperr = err if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > 300 { + if time.Now().Unix()-starttime > (int64(len(common.Userdict["smb"])*len(common.Passwords)) * info.Timeout) { return err } } diff --git a/Plugins/ssh.go b/Plugins/ssh.go index 0b4639c..471f9a2 100644 --- a/Plugins/ssh.go +++ b/Plugins/ssh.go @@ -24,7 +24,7 @@ func SshScan(info *common.HostInfo) (tmperr error) { if common.CheckErrs(err) { return err } - if time.Now().Unix()-starttime > 300 { + if time.Now().Unix()-starttime > (int64(len(common.Userdict["ssh"])*len(common.Passwords)) * info.Timeout) { return err } } diff --git a/Plugins/webtitle.go b/Plugins/webtitle.go index 3eb57fd..ada590f 100644 --- a/Plugins/webtitle.go +++ b/Plugins/webtitle.go @@ -95,7 +95,7 @@ func geturl(info *common.HostInfo, flag bool, CheckData []WebScan.CheckDatas) (e title = "None" } if flag == true { - result := fmt.Sprintf("WebTitle:%-25v %-3v %v", Url, resp.StatusCode, title) + result := fmt.Sprintf("[*] WebTitle:%-25v %-3v %v", Url, resp.StatusCode, title) common.LogSuccess(result) } diff --git a/common/Parse.go b/common/Parse.go index 39a3d01..cb9eb71 100644 --- a/common/Parse.go +++ b/common/Parse.go @@ -106,7 +106,13 @@ func ParseInput(Info *HostInfo) { flag.Usage() os.Exit(0) } - //LogErr = Info.Debug + + if LogErr { + WaitTime = 10 + } else { + WaitTime = 100 + } + if TmpOutputfile != "" { if !strings.Contains(Outputfile, "/") && !strings.Contains(Outputfile, `\`) { Outputfile = getpath() + TmpOutputfile diff --git a/common/log.go b/common/log.go index ab2bc2d..6d896a9 100644 --- a/common/log.go +++ b/common/log.go @@ -10,14 +10,13 @@ import ( var Num int64 var End int64 var Results = make(chan string) -var Worker = 0 var Start = true var LogSucTime int64 var LogErr bool var LogErrTime int64 +var WaitTime int64 func LogSuccess(result string) { - Worker++ LogSucTime = time.Now().Unix() if Start { go SaveLog() @@ -32,7 +31,6 @@ func SaveLog() { if IsSave { WriteFile(result, Outputfile) } - Worker-- } } @@ -50,22 +48,10 @@ func WriteFile(result string, filename string) { } } -func WaitSave() { - for { - if Worker <= 0 { - close(Results) - return - } - } -} - func LogError(errinfo interface{}) { - if LogErr { - if (time.Now().Unix()-LogSucTime) > 10 && (time.Now().Unix()-LogErrTime) > 10 { - fmt.Println(errinfo) - fmt.Println(fmt.Sprintf("已完成 %v/%v", End, Num)) - LogErrTime = time.Now().Unix() - } + if (time.Now().Unix()-LogSucTime) > WaitTime && (time.Now().Unix()-LogErrTime) > WaitTime { + fmt.Println(fmt.Sprintf("已完成 %v/%v %v", End, Num, errinfo)) + LogErrTime = time.Now().Unix() } }