refactor: 调整逻辑,修复SMB2的一个跳出问题

This commit is contained in:
ZacharyZcR
2025-01-04 17:00:03 +08:00
parent af06345aa5
commit 235e2aee60
6 changed files with 56 additions and 43 deletions

View File

@@ -68,6 +68,9 @@ func SmblConn(info *Common.HostInfo, user string, pass string, signal chan struc
return false, fmt.Errorf("认证失败")
}
// 添加 debug 输出原始错误信息
Common.LogDebug(fmt.Sprintf("SMB original error: %v", err))
// 清理错误信息中的换行符和多余空格
errMsg := strings.TrimSpace(strings.ReplaceAll(err.Error(), "\n", " "))
if strings.Contains(errMsg, "NT Status Error") {

View File

@@ -35,8 +35,14 @@ func smbPasswordScan(info *Common.HostInfo) error {
// 遍历每个用户
for _, user := range Common.Userdict["smb"] {
accountLocked := false // 添加账户锁定标志
// 遍历该用户的所有密码
for _, pass := range Common.Passwords {
if accountLocked { // 如果账户被锁定,跳过剩余密码
break
}
pass = strings.ReplaceAll(pass, "{user}", user)
// 重试循环
@@ -56,8 +62,9 @@ func smbPasswordScan(info *Common.HostInfo) error {
logFailedAuth(info, user, pass, []byte{}, err)
// 检查是否账户锁定
if strings.Contains(err.Error(), "user account has been automatically locked") {
// 账户锁定,跳过该用户的剩余密码
if strings.Contains(err.Error(), "account has been automatically locked") ||
strings.Contains(err.Error(), "account has been locked") {
accountLocked = true // 设置锁定标志
break
}