mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 20:51:52 +08:00
fix: 修复-user/-pwd凭据参数不生效的问题
问题原因: - Parse()解析凭据后更新globalConfig - 但BuildConfigFromFlags()创建新Config时使用默认字典 - 导致解析的UserPassPairs等凭据信息被丢弃 修复内容: 1. initialize.go: 将Parse解析的凭据结果应用到新Config 2. credential.go: 单用户密码对时创建UserPassPairs 3. rdp.go: 单凭据测试时跳过指纹识别,减少连接次数
This commit is contained in:
+22
-1
@@ -24,15 +24,36 @@ func Initialize(info *HostInfo) (*InitResult, error) {
|
||||
// 初始化日志系统
|
||||
InitLogger()
|
||||
|
||||
// 解析和验证参数
|
||||
// 解析和验证参数(会更新 globalConfig 的凭据信息)
|
||||
if err := Parse(info); err != nil {
|
||||
return nil, fmt.Errorf("参数解析失败: %w", err)
|
||||
}
|
||||
|
||||
// 获取 Parse 更新过的凭据信息
|
||||
parsedCreds := GetGlobalConfig().Credentials
|
||||
|
||||
// 从 FlagVars 构建 Config(新架构)
|
||||
cfg := BuildConfigFromFlags(flagVars)
|
||||
state := NewState()
|
||||
|
||||
// 关键修复:应用 Parse 解析的凭据结果到新 Config
|
||||
// Parse 会根据 -user/-pwd/-usera/-pwda 等参数更新凭据
|
||||
if len(parsedCreds.UserPassPairs) > 0 {
|
||||
cfg.Credentials.UserPassPairs = parsedCreds.UserPassPairs
|
||||
}
|
||||
if len(parsedCreds.Userdict) > 0 {
|
||||
cfg.Credentials.Userdict = parsedCreds.Userdict
|
||||
}
|
||||
if len(parsedCreds.Passwords) > 0 {
|
||||
cfg.Credentials.Passwords = parsedCreds.Passwords
|
||||
}
|
||||
if len(parsedCreds.HashValues) > 0 {
|
||||
cfg.Credentials.HashValues = parsedCreds.HashValues
|
||||
}
|
||||
if len(parsedCreds.HashBytes) > 0 {
|
||||
cfg.Credentials.HashBytes = parsedCreds.HashBytes
|
||||
}
|
||||
|
||||
// 设置全局实例
|
||||
SetGlobalConfig(cfg)
|
||||
SetGlobalState(state)
|
||||
|
||||
Reference in New Issue
Block a user