fscan/Common/ConfigServiceDict.go
ZacharyZcR 7077590bae 重构: 将Config.go拆分为模块化配置文件
优化目标:
- 解决单文件过大问题(970行 -> 4个模块文件)
- 提升代码可维护性和可读性
- 保持包的一致性和向后兼容性

拆分方案:
- Config.go (48行): 主配置文件,包含版本信息和基础配置
- ConfigServiceDict.go (65行): 服务认证字典和默认密码管理
- ConfigPortMapping.go (850行): 端口与探测器映射关系
- ConfigScanOptions.go (260行): 扫描相关的各种配置选项

技术优势:
- 模块化组织,职责分明
- 同包结构避免导入复杂性
- 完全向后兼容,现有代码无需修改
- 便于后续功能扩展和维护

为v2.0.2版本架构优化奠定基础
2025-08-05 01:06:07 +08:00

73 lines
3.0 KiB
Go

package Common
// ConfigServiceDict.go - 服务认证字典和默认密码配置
// Userdict 定义各种服务的默认用户名字典
var Userdict = map[string][]string{
"ftp": {"ftp", "admin", "www", "web", "root", "db", "wwwroot", "data"},
"mysql": {"root", "mysql"},
"mssql": {"sa", "sql"},
"smb": {"administrator", "admin", "guest"},
"rdp": {"administrator", "admin", "guest"},
"postgresql": {"postgres", "admin"},
"ssh": {"root", "admin"},
"mongodb": {"root", "admin"},
"oracle": {"sys", "system", "admin", "test", "web", "orcl"},
"telnet": {"root", "admin", "test"},
"elastic": {"elastic", "admin", "kibana"},
"rabbitmq": {"guest", "admin", "administrator", "rabbit", "rabbitmq", "root"},
"kafka": {"admin", "kafka", "root", "test"},
"activemq": {"admin", "root", "activemq", "system", "user"},
"ldap": {"admin", "administrator", "root", "cn=admin", "cn=administrator", "cn=manager"},
"smtp": {"admin", "root", "postmaster", "mail", "smtp", "administrator"},
"imap": {"admin", "mail", "postmaster", "root", "user", "test"},
"pop3": {"admin", "root", "mail", "user", "test", "postmaster"},
"zabbix": {"Admin", "admin", "guest", "user"},
"rsync": {"rsync", "root", "admin", "backup"},
"cassandra": {"cassandra", "admin", "root", "system"},
"neo4j": {"neo4j", "admin", "root", "test"},
}
// Passwords 定义默认密码字典
var Passwords = []string{
"123456", "admin", "admin123", "root", "", "pass123", "pass@123",
"password", "Password", "P@ssword123", "123123", "654321", "111111",
"123", "1", "admin@123", "Admin@123", "admin123!@#", "{user}",
"{user}1", "{user}111", "{user}123", "{user}@123", "{user}_123",
"{user}#123", "{user}@111", "{user}@2019", "{user}@123#4",
"P@ssw0rd!", "P@ssw0rd", "Passw0rd", "qwe123", "12345678", "test",
"test123", "123qwe", "123qwe!@#", "123456789", "123321", "666666",
"a123456.", "123456~a", "123456!a", "000000", "1234567890", "8888888",
"!QAZ2wsx", "1qaz2wsx", "abc123", "abc123456", "1qaz@WSX", "a11111",
"a12345", "Aa1234", "Aa1234.", "Aa12345", "a123456", "a123123",
"Aa123123", "Aa123456", "Aa12345.", "sysadmin", "system", "1qaz!QAZ",
"2wsx@WSX", "qwe123!@#", "Aa123456!", "A123456s!", "sa123456",
"1q2w3e", "Charge123", "Aa123456789", "elastic123",
}
// GetUserDict 获取指定服务的用户字典
func GetUserDict(service string) []string {
if users, exists := Userdict[service]; exists {
return users
}
return []string{"admin", "root"} // 默认用户名
}
// GetPasswordDict 获取密码字典
func GetPasswordDict() []string {
return Passwords
}
// AddCustomUsers 添加自定义用户名到指定服务
func AddCustomUsers(service string, users []string) {
if existing, exists := Userdict[service]; exists {
Userdict[service] = append(existing, users...)
} else {
Userdict[service] = users
}
}
// AddCustomPasswords 添加自定义密码到密码字典
func AddCustomPasswords(passwords []string) {
Passwords = append(Passwords, passwords...)
}