Goby
Goby copied to clipboard
ssh爆破问题
如图,goby爆ssh显示成功,但实际上账户密码是错误的,我想goby和很多ssh爆破工具、脚本都是通过建立Session来判断是否爆破成功。但实际上某些设备你使用错误账号密码登录时好像也会建立session,导致误报。以65.187.136.4为例,ssh.Dial()和client.NewSession()结果err都是nil,但实际上这个session是让你继续输入正确账户密码而不是登录成功的session。因此我觉得可以在建立session后发送一个指令来判断ssh是否爆破成功,如下:
client, err := ssh.Dial("tcp", host, config)
if err == nil {
defer client.Close()
session, err := client.NewSession()
if err == nil {
defer session.Close()
combo, _ := session.CombinedOutput("whoami")
if find := strings.Contains(string(combo), "login"); !find {
result := fmt.Sprintf("SSH:%-20v %v:%-10v", host, user, pass)
return result
}
}
}
已收到您的反馈,我们尽快优化,优化后会向您致谢,您可以联系微信号:gobyteam,感谢您对Goby喜爱与支持~
确实存在该问题,问题成因是SSH Server端没有使用SSH协议自带的鉴权能力来进行身份鉴别,而是与Telnet类似的方式来进行身份鉴别,资产较少,且要完美解决较为复杂,低优先级处理。
已在Goby最新版本V2.8.1版本解决此问题~