feat: RDP使用NLA仅验证模式,避免挤掉已登录用户

- 添加ErrNLAAuthSuccess标志用于NLA验证成功信号
- tpkt层支持nlaAuthOnly模式,验证成功后不建立完整会话
- x224层正确传播NLA验证结果
- rdpCrack改用NlaAuth进行凭据验证
This commit is contained in:
ZacharyZcR
2026-01-15 00:21:25 +08:00
parent e504c22d82
commit 25a9776fb9
4 changed files with 90 additions and 9 deletions
+7
View File
@@ -409,7 +409,14 @@ func (x *X224) recvConnectionConfirm(s []byte) {
err := x.transport.(*tpkt.TPKT).StartNLA()
glog.Debug("nla end, err?:", err)
if err != nil {
// 检查是否是NLA仅验证模式的成功返回
if err == tpkt.ErrNLAAuthSuccess {
glog.Info("NLA auth-only mode: credentials verified successfully")
x.Emit("error", err) // 通过 error 事件传播成功信号
return
}
glog.Error("start NLA failed:", err)
x.Emit("error", err)
return
}
x.Emit("connect", x.selectedProtocol)