refactor: 将硬编码常量提取到constants.go统一管理

This commit is contained in:
ZacharyZcR 2025-08-06 06:41:16 +08:00
parent c8038bdc62
commit 619aa632d0
6 changed files with 296 additions and 207 deletions

View File

@ -143,10 +143,10 @@ func (m *Manager) SetDefaults() {
// 设置应用程序默认值 // 设置应用程序默认值
if m.config.Application != nil { if m.config.Application != nil {
m.config.Application.Version = Version{ m.config.Application.Version = Version{
Major: 2, Major: VersionMajor,
Minor: 0, Minor: VersionMinor,
Patch: 2, Patch: VersionPatch,
Full: "2.0.2", Full: VersionFull,
} }
} }

View File

@ -24,154 +24,22 @@ func NewProbeMapping() *ProbeMapping {
// getDefaultProbeMap 获取默认的探测器顺序 // getDefaultProbeMap 获取默认的探测器顺序
func getDefaultProbeMap() []string { func getDefaultProbeMap() []string {
return []string{ // 返回常量的副本
"GenericLines", result := make([]string, len(DefaultProbeMap))
"GetRequest", copy(result, DefaultProbeMap)
"TLSSessionReq", return result
"SSLSessionReq",
"ms-sql-s",
"JavaRMI",
"LDAPSearchReq",
"LDAPBindReq",
"oracle-tns",
"Socks5",
}
} }
// getDefaultPortMap 获取默认的端口映射 // getDefaultPortMap 获取默认的端口映射
func getDefaultPortMap() map[int][]string { func getDefaultPortMap() map[int][]string {
return map[int][]string{ // 返回常量的深拷贝
1: {"GetRequest", "Help"}, result := make(map[int][]string)
7: {"Help"}, for port, probes := range DefaultPortMap {
21: {"GenericLines", "Help"}, probesCopy := make([]string, len(probes))
23: {"GenericLines", "tn3270"}, copy(probesCopy, probes)
25: {"Hello", "Help"}, result[port] = probesCopy
35: {"GenericLines"},
42: {"SMBProgNeg"},
43: {"GenericLines"},
53: {"DNSVersionBindReqTCP", "DNSStatusRequestTCP"},
70: {"GetRequest"},
79: {"GenericLines", "GetRequest", "Help"},
80: {"GetRequest", "HTTPOptions", "RTSPRequest", "X11Probe", "FourOhFourRequest"},
81: {"GetRequest", "HTTPOptions", "RPCCheck", "FourOhFourRequest"},
82: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
83: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
84: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
85: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
88: {"GetRequest", "Kerberos", "SMBProgNeg", "FourOhFourRequest"},
98: {"GenericLines"},
110: {"GenericLines"},
111: {"RPCCheck"},
113: {"GenericLines", "GetRequest", "Help"},
119: {"GenericLines", "Help"},
130: {"NotesRPC"},
135: {"DNSVersionBindReqTCP", "SMBProgNeg"},
139: {"GetRequest", "SMBProgNeg"},
143: {"GetRequest"},
175: {"NJE"},
199: {"GenericLines", "RPCCheck", "Socks5", "Socks4"},
214: {"GenericLines"},
264: {"GenericLines"},
311: {"LDAPSearchReq"},
340: {"GenericLines"},
389: {"LDAPSearchReq", "LDAPBindReq"},
443: {"GetRequest", "HTTPOptions", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
444: {"GetRequest", "HTTPOptions", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
445: {"SMBProgNeg"},
465: {"Hello", "Help", "GetRequest", "HTTPOptions", "SSLSessionReq", "TerminalServerCookie"},
502: {"GenericLines"},
503: {"GenericLines"},
513: {"GenericLines"},
514: {"GenericLines"},
515: {"LPDString"},
544: {"GenericLines"},
548: {"afp"},
554: {"GetRequest"},
563: {"GenericLines"},
587: {"Hello", "Help"},
631: {"GetRequest", "HTTPOptions"},
636: {"LDAPSearchReq", "LDAPBindReq", "SSLSessionReq"},
646: {"LDAPSearchReq", "RPCCheck"},
691: {"GenericLines"},
873: {"GenericLines"},
898: {"GetRequest"},
993: {"GenericLines", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
995: {"GenericLines", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
1080: {"GenericLines", "Socks5", "Socks4"},
1099: {"JavaRMI"},
1234: {"SqueezeCenter_CLI"},
1311: {"GenericLines"},
1352: {"oracle-tns"},
1414: {"ibm-mqseries"},
1433: {"ms-sql-s"},
1521: {"oracle-tns"},
1723: {"GenericLines"},
1883: {"mqtt"},
1911: {"oracle-tns"},
2000: {"GenericLines", "oracle-tns"},
2049: {"RPCCheck"},
2121: {"GenericLines", "Help"},
2181: {"GenericLines"},
2222: {"GetRequest", "GenericLines", "HTTPOptions", "Help", "SSH", "TerminalServerCookie"},
2375: {"docker", "GetRequest", "HTTPOptions"},
2376: {"docker", "GetRequest", "HTTPOptions", "SSLSessionReq"},
2484: {"oracle-tns"},
2628: {"dominoconsole"},
3000: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
3268: {"LDAPSearchReq", "LDAPBindReq"},
3269: {"LDAPSearchReq", "LDAPBindReq", "SSLSessionReq"},
3306: {"GenericLines", "GetRequest", "HTTPOptions"},
3389: {"TerminalServerCookie", "TerminalServer"},
3690: {"GenericLines"},
4000: {"GenericLines"},
4369: {"epmd"},
4444: {"GenericLines"},
4840: {"GenericLines"},
5000: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
5050: {"GenericLines"},
5060: {"SIPOptions"},
5222: {"GenericLines"},
5432: {"GenericLines"},
5555: {"GenericLines"},
5560: {"GenericLines", "oracle-tns"},
5631: {"GenericLines", "PCWorkstation"},
5672: {"GenericLines"},
5984: {"GetRequest", "HTTPOptions"},
6000: {"X11Probe"},
6379: {"redis-server"},
6432: {"GenericLines"},
6667: {"GenericLines"},
7000: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
7001: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
7002: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
7070: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
7443: {"GetRequest", "HTTPOptions", "SSLSessionReq"},
7777: {"GenericLines", "oracle-tns"},
8000: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "iperf3"},
8005: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8008: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8009: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "ajp"},
8080: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8081: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8089: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8090: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8443: {"GetRequest", "HTTPOptions", "SSLSessionReq"},
8888: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
9000: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
9042: {"GenericLines"},
9092: {"GenericLines", "kafka"},
9200: {"GetRequest", "HTTPOptions", "elasticsearch"},
9300: {"GenericLines"},
9999: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "adbConnect"},
10000: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
10051: {"GenericLines"},
11211: {"Memcache"},
15672: {"GetRequest", "HTTPOptions"},
27017: {"mongodb"},
27018: {"mongodb"},
50070: {"GetRequest", "HTTPOptions"},
61616: {"GenericLines"},
} }
return result
} }
// GetProbesForPort 获取指定端口的探测器列表 // GetProbesForPort 获取指定端口的探测器列表

View File

@ -113,53 +113,53 @@ func (som *ScanOptionsManager) SetDefaults() {
// 设置扫描控制默认值 // 设置扫描控制默认值
if som.options.ScanControl.ThreadNum <= 0 { if som.options.ScanControl.ThreadNum <= 0 {
som.options.ScanControl.ThreadNum = 600 som.options.ScanControl.ThreadNum = DefaultThreadNum
} }
if som.options.ScanControl.ModuleThreadNum <= 0 { if som.options.ScanControl.ModuleThreadNum <= 0 {
som.options.ScanControl.ModuleThreadNum = 10 som.options.ScanControl.ModuleThreadNum = DefaultModuleThreadNum
} }
if som.options.ScanControl.Timeout <= 0 { if som.options.ScanControl.Timeout <= 0 {
som.options.ScanControl.Timeout = 3 som.options.ScanControl.Timeout = DefaultTimeout
} }
if som.options.ScanControl.GlobalTimeout <= 0 { if som.options.ScanControl.GlobalTimeout <= 0 {
som.options.ScanControl.GlobalTimeout = 300 // 5分钟 som.options.ScanControl.GlobalTimeout = DefaultGlobalTimeout
} }
// 设置Web扫描默认值 // 设置Web扫描默认值
if som.options.WebScan.WebTimeout <= 0 { if som.options.WebScan.WebTimeout <= 0 {
som.options.WebScan.WebTimeout = 5 som.options.WebScan.WebTimeout = DefaultWebTimeout
} }
// 设置暴力破解默认值 // 设置暴力破解默认值
if som.options.BruteForce.MaxRetries <= 0 { if som.options.BruteForce.MaxRetries <= 0 {
som.options.BruteForce.MaxRetries = 3 som.options.BruteForce.MaxRetries = DefaultMaxRetries
} }
// 设置显示默认值 // 设置显示默认值
if som.options.Display.LogLevel == "" { if som.options.Display.LogLevel == "" {
som.options.Display.LogLevel = "SUCCESS" som.options.Display.LogLevel = DefaultLogLevel
} }
if som.options.Display.Language == "" { if som.options.Display.Language == "" {
som.options.Display.Language = "zh" som.options.Display.Language = DefaultLanguage
} }
// 设置输出默认值 // 设置输出默认值
if som.options.Output.OutputFormat == "" { if som.options.Output.OutputFormat == "" {
som.options.Output.OutputFormat = "txt" som.options.Output.OutputFormat = DefaultOutputFormat
} }
if som.options.Output.Outputfile == "" { if som.options.Output.Outputfile == "" {
som.options.Output.Outputfile = "result.txt" som.options.Output.Outputfile = DefaultOutputFile
} }
// 设置网络默认值 // 设置网络默认值
if som.options.Network.UserAgent == "" { if som.options.Network.UserAgent == "" {
som.options.Network.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" som.options.Network.UserAgent = DefaultUserAgent
} }
if som.options.Network.Accept == "" { if som.options.Network.Accept == "" {
som.options.Network.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" som.options.Network.Accept = DefaultAccept
} }
if som.options.Network.PocNum <= 0 { if som.options.Network.PocNum <= 0 {
som.options.Network.PocNum = 20 som.options.Network.PocNum = DefaultPocNum
} }
som.options.LastUpdated = time.Now() som.options.LastUpdated = time.Now()
@ -173,7 +173,7 @@ func (som *ScanOptionsManager) ValidateConfig() []string {
var warnings []string var warnings []string
// 验证线程数配置 // 验证线程数配置
if som.options.ScanControl.ThreadNum > 1000 { if som.options.ScanControl.ThreadNum > MaxThreadNumWarning {
warnings = append(warnings, "线程数过大,可能影响系统性能") warnings = append(warnings, "线程数过大,可能影响系统性能")
} }
@ -183,16 +183,16 @@ func (som *ScanOptionsManager) ValidateConfig() []string {
} }
// 验证超时配置合理性 // 验证超时配置合理性
if som.options.ScanControl.Timeout < 1 { if som.options.ScanControl.Timeout < MinTimeoutWarning {
warnings = append(warnings, "超时时间过短,可能导致误报") warnings = append(warnings, "超时时间过短,可能导致误报")
} }
if som.options.WebScan.WebTimeout < 1 { if som.options.WebScan.WebTimeout < MinTimeoutWarning {
warnings = append(warnings, "Web超时时间过短可能导致误报") warnings = append(warnings, "Web超时时间过短可能导致误报")
} }
// 验证全局超时 // 验证全局超时
if som.options.ScanControl.GlobalTimeout < 60 { if som.options.ScanControl.GlobalTimeout < MinGlobalTimeout {
warnings = append(warnings, "全局超时时间过短,扫描可能提前终止") warnings = append(warnings, "全局超时时间过短,扫描可能提前终止")
} }

View File

@ -24,49 +24,22 @@ func NewServiceDictionary() *ServiceDictionary {
// getDefaultUserDict 获取默认用户字典 // getDefaultUserDict 获取默认用户字典
func getDefaultUserDict() map[string][]string { func getDefaultUserDict() map[string][]string {
return map[string][]string{ // 返回常量的深拷贝
"ftp": {"ftp", "admin", "www", "web", "root", "db", "wwwroot", "data"}, result := make(map[string][]string)
"mysql": {"root", "mysql"}, for service, users := range DefaultUserDict {
"mssql": {"sa", "sql"}, usersCopy := make([]string, len(users))
"smb": {"administrator", "admin", "guest"}, copy(usersCopy, users)
"rdp": {"administrator", "admin", "guest"}, result[service] = usersCopy
"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"},
} }
return result
} }
// getDefaultPasswords 获取默认密码字典 // getDefaultPasswords 获取默认密码字典
func getDefaultPasswords() []string { func getDefaultPasswords() []string {
return []string{ // 返回常量的副本
"123456", "admin", "admin123", "root", "", "pass123", "pass@123", result := make([]string, len(DefaultPasswords))
"password", "Password", "P@ssword123", "123123", "654321", "111111", copy(result, DefaultPasswords)
"123", "1", "admin@123", "Admin@123", "admin123!@#", "{user}", return result
"{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 获取指定服务的用户字典 // GetUserDict 获取指定服务的用户字典
@ -83,7 +56,9 @@ func (sd *ServiceDictionary) GetUserDict(service string) []string {
} }
// 返回默认的通用用户名 // 返回默认的通用用户名
return []string{"admin", "root", "test", "user"} result := make([]string, len(DefaultGenericUsers))
copy(result, DefaultGenericUsers)
return result
} }
// SetUserDict 设置指定服务的用户字典 // SetUserDict 设置指定服务的用户字典

View File

@ -157,10 +157,10 @@ func NewConfig() *Config {
return &Config{ return &Config{
Application: &ApplicationConfig{ Application: &ApplicationConfig{
Version: Version{ Version: Version{
Major: 2, Major: VersionMajor,
Minor: 0, Minor: VersionMinor,
Patch: 2, Patch: VersionPatch,
Full: "2.0.2", Full: VersionFull,
}, },
}, },
ScanTarget: &ScanTargetConfig{}, ScanTarget: &ScanTargetConfig{},

246
Common/config/constants.go Normal file
View File

@ -0,0 +1,246 @@
package config
// 版本相关常量
const (
// 版本信息
VersionMajor = 2
VersionMinor = 0
VersionPatch = 2
VersionFull = "2.0.2"
)
// 默认扫描参数常量
const (
// 线程数配置
DefaultThreadNum = 600 // 默认扫描线程数
DefaultModuleThreadNum = 10 // 默认模块线程数
// 超时配置
DefaultTimeout = 3 // 默认超时时间(秒)
DefaultGlobalTimeout = 300 // 默认全局超时时间(秒) - 5分钟
DefaultWebTimeout = 5 // 默认Web超时时间(秒)
// 重试配置
DefaultMaxRetries = 3 // 默认最大重试次数
// 其他配置
DefaultPocNum = 20 // 默认POC并发数
)
// 显示相关常量
const (
DefaultLogLevel = "SUCCESS"
DefaultLanguage = "zh"
DefaultOutputFormat = "txt"
DefaultOutputFile = "result.txt"
)
// 网络相关常量
const (
// 默认User-Agent
DefaultUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
// 默认Accept头部
DefaultAccept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
)
// 默认探测器列表
var DefaultProbeMap = []string{
"GenericLines",
"GetRequest",
"TLSSessionReq",
"SSLSessionReq",
"ms-sql-s",
"JavaRMI",
"LDAPSearchReq",
"LDAPBindReq",
"oracle-tns",
"Socks5",
}
// 默认端口映射关系
var DefaultPortMap = map[int][]string{
1: {"GetRequest", "Help"},
7: {"Help"},
21: {"GenericLines", "Help"},
23: {"GenericLines", "tn3270"},
25: {"Hello", "Help"},
35: {"GenericLines"},
42: {"SMBProgNeg"},
43: {"GenericLines"},
53: {"DNSVersionBindReqTCP", "DNSStatusRequestTCP"},
70: {"GetRequest"},
79: {"GenericLines", "GetRequest", "Help"},
80: {"GetRequest", "HTTPOptions", "RTSPRequest", "X11Probe", "FourOhFourRequest"},
81: {"GetRequest", "HTTPOptions", "RPCCheck", "FourOhFourRequest"},
82: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
83: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
84: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
85: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
88: {"GetRequest", "Kerberos", "SMBProgNeg", "FourOhFourRequest"},
98: {"GenericLines"},
110: {"GenericLines"},
111: {"RPCCheck"},
113: {"GenericLines", "GetRequest", "Help"},
119: {"GenericLines", "Help"},
130: {"NotesRPC"},
135: {"DNSVersionBindReqTCP", "SMBProgNeg"},
139: {"GetRequest", "SMBProgNeg"},
143: {"GetRequest"},
175: {"NJE"},
199: {"GenericLines", "RPCCheck", "Socks5", "Socks4"},
214: {"GenericLines"},
264: {"GenericLines"},
311: {"LDAPSearchReq"},
340: {"GenericLines"},
389: {"LDAPSearchReq", "LDAPBindReq"},
443: {"GetRequest", "HTTPOptions", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
444: {"GetRequest", "HTTPOptions", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
445: {"SMBProgNeg"},
465: {"Hello", "Help", "GetRequest", "HTTPOptions", "SSLSessionReq", "TerminalServerCookie"},
502: {"GenericLines"},
503: {"GenericLines"},
513: {"GenericLines"},
514: {"GenericLines"},
515: {"LPDString"},
544: {"GenericLines"},
548: {"afp"},
554: {"GetRequest"},
563: {"GenericLines"},
587: {"Hello", "Help"},
631: {"GetRequest", "HTTPOptions"},
636: {"LDAPSearchReq", "LDAPBindReq", "SSLSessionReq"},
646: {"LDAPSearchReq", "RPCCheck"},
691: {"GenericLines"},
873: {"GenericLines"},
898: {"GetRequest"},
993: {"GenericLines", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
995: {"GenericLines", "SSLSessionReq", "TerminalServerCookie", "TLSSessionReq"},
1080: {"GenericLines", "Socks5", "Socks4"},
1099: {"JavaRMI"},
1234: {"SqueezeCenter_CLI"},
1311: {"GenericLines"},
1352: {"oracle-tns"},
1414: {"ibm-mqseries"},
1433: {"ms-sql-s"},
1521: {"oracle-tns"},
1723: {"GenericLines"},
1883: {"mqtt"},
1911: {"oracle-tns"},
2000: {"GenericLines", "oracle-tns"},
2049: {"RPCCheck"},
2121: {"GenericLines", "Help"},
2181: {"GenericLines"},
2222: {"GetRequest", "GenericLines", "HTTPOptions", "Help", "SSH", "TerminalServerCookie"},
2375: {"docker", "GetRequest", "HTTPOptions"},
2376: {"docker", "GetRequest", "HTTPOptions", "SSLSessionReq"},
2484: {"oracle-tns"},
2628: {"dominoconsole"},
3000: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
3268: {"LDAPSearchReq", "LDAPBindReq"},
3269: {"LDAPSearchReq", "LDAPBindReq", "SSLSessionReq"},
3306: {"GenericLines", "GetRequest", "HTTPOptions"},
3389: {"TerminalServerCookie", "TerminalServer"},
3690: {"GenericLines"},
4000: {"GenericLines"},
4369: {"epmd"},
4444: {"GenericLines"},
4840: {"GenericLines"},
5000: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
5050: {"GenericLines"},
5060: {"SIPOptions"},
5222: {"GenericLines"},
5432: {"GenericLines"},
5555: {"GenericLines"},
5560: {"GenericLines", "oracle-tns"},
5631: {"GenericLines", "PCWorkstation"},
5672: {"GenericLines"},
5984: {"GetRequest", "HTTPOptions"},
6000: {"X11Probe"},
6379: {"redis-server"},
6432: {"GenericLines"},
6667: {"GenericLines"},
7000: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
7001: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
7002: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
7070: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
7443: {"GetRequest", "HTTPOptions", "SSLSessionReq"},
7777: {"GenericLines", "oracle-tns"},
8000: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "iperf3"},
8005: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8008: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8009: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "ajp"},
8080: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8081: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8089: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8090: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
8443: {"GetRequest", "HTTPOptions", "SSLSessionReq"},
8888: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
9000: {"GetRequest", "HTTPOptions", "FourOhFourRequest"},
9042: {"GenericLines"},
9092: {"GenericLines", "kafka"},
9200: {"GetRequest", "HTTPOptions", "elasticsearch"},
9300: {"GenericLines"},
9999: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "adbConnect"},
10000: {"GetRequest", "HTTPOptions", "FourOhFourRequest", "JavaRMI"},
10051: {"GenericLines"},
11211: {"Memcache"},
15672: {"GetRequest", "HTTPOptions"},
27017: {"mongodb"},
27018: {"mongodb"},
50070: {"GetRequest", "HTTPOptions"},
61616: {"GenericLines"},
}
// 默认服务用户字典
var DefaultUserDict = 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"},
}
// 默认密码字典
var DefaultPasswords = []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",
}
// 默认通用用户名(当没有找到特定服务用户名时使用)
var DefaultGenericUsers = []string{"admin", "root", "test", "user"}
// 配置验证相关常量
const (
MaxThreadNumWarning = 1000 // 线程数警告阈值
MinTimeoutWarning = 1 // 最小超时时间警告阈值
MinGlobalTimeout = 60 // 最小全局超时时间
)