diff --git a/Plugins/ftp.go b/Plugins/ftp.go index 9118275..36a34a3 100644 --- a/Plugins/ftp.go +++ b/Plugins/ftp.go @@ -9,6 +9,9 @@ import ( ) func FtpScan(info *common.HostInfo) (tmperr error) { + if common.IsBrute { + return + } starttime := time.Now().Unix() flag, err := FtpConn(info, "anonymous", "") if flag == true && err == nil { diff --git a/Plugins/mssql.go b/Plugins/mssql.go index c0df695..84dea6a 100644 --- a/Plugins/mssql.go +++ b/Plugins/mssql.go @@ -10,6 +10,9 @@ import ( ) func MssqlScan(info *common.HostInfo) (tmperr error) { + if common.IsBrute { + return + } starttime := time.Now().Unix() for _, user := range common.Userdict["mssql"] { for _, pass := range common.Passwords { diff --git a/Plugins/mysql.go b/Plugins/mysql.go index e545da1..b06211a 100644 --- a/Plugins/mysql.go +++ b/Plugins/mysql.go @@ -10,6 +10,9 @@ import ( ) func MysqlScan(info *common.HostInfo) (tmperr error) { + if common.IsBrute { + return + } starttime := time.Now().Unix() for _, user := range common.Userdict["mysql"] { for _, pass := range common.Passwords { diff --git a/Plugins/postgres.go b/Plugins/postgres.go index 1554c88..f8fe626 100644 --- a/Plugins/postgres.go +++ b/Plugins/postgres.go @@ -10,6 +10,9 @@ import ( ) func PostgresScan(info *common.HostInfo) (tmperr error) { + if common.IsBrute { + return + } starttime := time.Now().Unix() for _, user := range common.Userdict["postgresql"] { for _, pass := range common.Passwords { diff --git a/Plugins/redis.go b/Plugins/redis.go index 0223620..08d786e 100644 --- a/Plugins/redis.go +++ b/Plugins/redis.go @@ -21,6 +21,9 @@ func RedisScan(info *common.HostInfo) (tmperr error) { if flag == true && err == nil { return err } + if common.IsBrute { + return + } for _, pass := range common.Passwords { pass = strings.Replace(pass, "{user}", "redis", -1) flag, err := RedisConn(info, pass) @@ -46,14 +49,14 @@ func RedisConn(info *common.HostInfo, pass string) (flag bool, err error) { realhost := fmt.Sprintf("%s:%v", info.Host, info.Ports) conn, err := net.DialTimeout("tcp", realhost, time.Duration(info.Timeout)*time.Second) defer func() { - if conn != nil{ + if conn != nil { conn.Close() } }() if err != nil { return flag, err } - err = conn.SetReadDeadline(time.Now().Add(time.Duration(info.Timeout)*time.Second)) + err = conn.SetReadDeadline(time.Now().Add(time.Duration(info.Timeout) * time.Second)) if err != nil { return flag, err } @@ -71,8 +74,8 @@ func RedisConn(info *common.HostInfo, pass string) (flag bool, err error) { if err != nil { result := fmt.Sprintf("[+] Redis:%s %s", realhost, pass) common.LogSuccess(result) - return flag,err - }else { + return flag, err + } else { result := fmt.Sprintf("[+] Redis:%s %s file:%s/%s", realhost, pass, dir, dbfilename) common.LogSuccess(result) } @@ -86,14 +89,14 @@ func RedisUnauth(info *common.HostInfo) (flag bool, err error) { realhost := fmt.Sprintf("%s:%v", info.Host, info.Ports) conn, err := net.DialTimeout("tcp", realhost, time.Duration(info.Timeout)*time.Second) defer func() { - if conn != nil{ + if conn != nil { conn.Close() } }() if err != nil { return flag, err } - err = conn.SetReadDeadline(time.Now().Add(time.Duration(info.Timeout)*time.Second)) + err = conn.SetReadDeadline(time.Now().Add(time.Duration(info.Timeout) * time.Second)) if err != nil { return flag, err } @@ -111,9 +114,9 @@ func RedisUnauth(info *common.HostInfo) (flag bool, err error) { if err != nil { result := fmt.Sprintf("[+] Redis:%s unauthorized", realhost) common.LogSuccess(result) - return flag,err - }else { - result := fmt.Sprintf("[+] Redis:%s unauthorized file:%s/%s", realhost,dir,dbfilename) + return flag, err + } else { + result := fmt.Sprintf("[+] Redis:%s unauthorized file:%s/%s", realhost, dir, dbfilename) common.LogSuccess(result) } err = Expoilt(realhost, conn) diff --git a/Plugins/ssh.go b/Plugins/ssh.go index 3913ad9..fe31222 100644 --- a/Plugins/ssh.go +++ b/Plugins/ssh.go @@ -12,6 +12,9 @@ import ( ) func SshScan(info *common.HostInfo) (tmperr error) { + if common.IsBrute { + return + } starttime := time.Now().Unix() for _, user := range common.Userdict["ssh"] { for _, pass := range common.Passwords { diff --git a/common/config.go b/common/config.go index a21e0d3..c9164fc 100644 --- a/common/config.go +++ b/common/config.go @@ -80,6 +80,7 @@ var ( Ping bool Pocinfo PocInfo IsWebCan bool + IsBrute bool RedisFile string RedisShell string Userfile string diff --git a/common/flag.go b/common/flag.go index 2387e71..881e622 100644 --- a/common/flag.go +++ b/common/flag.go @@ -37,6 +37,7 @@ func Flag(Info *HostInfo) { flag.StringVar(&RedisFile, "rf", "", "redis file to write sshkey file (as: -rf id_rsa.pub) ") flag.StringVar(&RedisShell, "rs", "", "redis shell to write cron file (as: -rs 192.168.1.1:6666) ") flag.BoolVar(&IsWebCan, "nopoc", false, "not to scan web vul") + flag.BoolVar(&IsBrute, "nobr", false, "not to Brute password") flag.BoolVar(&IsPing, "np", false, "not to ping") flag.BoolVar(&Ping, "ping", false, "using ping replace icmp") flag.StringVar(&TmpOutputfile, "o", "result.txt", "Outputfile")