From 619aa632d08b73c1232b1ce45da6799c93afb552 Mon Sep 17 00:00:00 2001 From: ZacharyZcR Date: Wed, 6 Aug 2025 06:41:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=86=E7=A1=AC=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E5=B8=B8=E9=87=8F=E6=8F=90=E5=8F=96=E5=88=B0constants?= =?UTF-8?q?.go=E7=BB=9F=E4=B8=80=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Common/config/Manager.go | 8 +- Common/config/PortMapping.go | 154 ++-------------------- Common/config/ScanOptions.go | 34 ++--- Common/config/ServiceDict.go | 53 ++------ Common/config/Types.go | 8 +- Common/config/constants.go | 246 +++++++++++++++++++++++++++++++++++ 6 files changed, 296 insertions(+), 207 deletions(-) create mode 100644 Common/config/constants.go diff --git a/Common/config/Manager.go b/Common/config/Manager.go index 2ef0780..0c83c79 100644 --- a/Common/config/Manager.go +++ b/Common/config/Manager.go @@ -143,10 +143,10 @@ func (m *Manager) SetDefaults() { // 设置应用程序默认值 if m.config.Application != nil { m.config.Application.Version = Version{ - Major: 2, - Minor: 0, - Patch: 2, - Full: "2.0.2", + Major: VersionMajor, + Minor: VersionMinor, + Patch: VersionPatch, + Full: VersionFull, } } diff --git a/Common/config/PortMapping.go b/Common/config/PortMapping.go index a347075..6e59b40 100644 --- a/Common/config/PortMapping.go +++ b/Common/config/PortMapping.go @@ -24,154 +24,22 @@ func NewProbeMapping() *ProbeMapping { // getDefaultProbeMap 获取默认的探测器顺序 func getDefaultProbeMap() []string { - return []string{ - "GenericLines", - "GetRequest", - "TLSSessionReq", - "SSLSessionReq", - "ms-sql-s", - "JavaRMI", - "LDAPSearchReq", - "LDAPBindReq", - "oracle-tns", - "Socks5", - } + // 返回常量的副本 + result := make([]string, len(DefaultProbeMap)) + copy(result, DefaultProbeMap) + return result } // getDefaultPortMap 获取默认的端口映射 func getDefaultPortMap() map[int][]string { - return 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"}, + // 返回常量的深拷贝 + result := make(map[int][]string) + for port, probes := range DefaultPortMap { + probesCopy := make([]string, len(probes)) + copy(probesCopy, probes) + result[port] = probesCopy } + return result } // GetProbesForPort 获取指定端口的探测器列表 diff --git a/Common/config/ScanOptions.go b/Common/config/ScanOptions.go index b7c17ad..a535285 100644 --- a/Common/config/ScanOptions.go +++ b/Common/config/ScanOptions.go @@ -113,53 +113,53 @@ func (som *ScanOptionsManager) SetDefaults() { // 设置扫描控制默认值 if som.options.ScanControl.ThreadNum <= 0 { - som.options.ScanControl.ThreadNum = 600 + som.options.ScanControl.ThreadNum = DefaultThreadNum } if som.options.ScanControl.ModuleThreadNum <= 0 { - som.options.ScanControl.ModuleThreadNum = 10 + som.options.ScanControl.ModuleThreadNum = DefaultModuleThreadNum } if som.options.ScanControl.Timeout <= 0 { - som.options.ScanControl.Timeout = 3 + som.options.ScanControl.Timeout = DefaultTimeout } if som.options.ScanControl.GlobalTimeout <= 0 { - som.options.ScanControl.GlobalTimeout = 300 // 5分钟 + som.options.ScanControl.GlobalTimeout = DefaultGlobalTimeout } // 设置Web扫描默认值 if som.options.WebScan.WebTimeout <= 0 { - som.options.WebScan.WebTimeout = 5 + som.options.WebScan.WebTimeout = DefaultWebTimeout } // 设置暴力破解默认值 if som.options.BruteForce.MaxRetries <= 0 { - som.options.BruteForce.MaxRetries = 3 + som.options.BruteForce.MaxRetries = DefaultMaxRetries } // 设置显示默认值 if som.options.Display.LogLevel == "" { - som.options.Display.LogLevel = "SUCCESS" + som.options.Display.LogLevel = DefaultLogLevel } if som.options.Display.Language == "" { - som.options.Display.Language = "zh" + som.options.Display.Language = DefaultLanguage } // 设置输出默认值 if som.options.Output.OutputFormat == "" { - som.options.Output.OutputFormat = "txt" + som.options.Output.OutputFormat = DefaultOutputFormat } if som.options.Output.Outputfile == "" { - som.options.Output.Outputfile = "result.txt" + som.options.Output.Outputfile = DefaultOutputFile } // 设置网络默认值 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 == "" { - 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 { - som.options.Network.PocNum = 20 + som.options.Network.PocNum = DefaultPocNum } som.options.LastUpdated = time.Now() @@ -173,7 +173,7 @@ func (som *ScanOptionsManager) ValidateConfig() []string { var warnings []string // 验证线程数配置 - if som.options.ScanControl.ThreadNum > 1000 { + if som.options.ScanControl.ThreadNum > MaxThreadNumWarning { 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, "超时时间过短,可能导致误报") } - if som.options.WebScan.WebTimeout < 1 { + if som.options.WebScan.WebTimeout < MinTimeoutWarning { warnings = append(warnings, "Web超时时间过短,可能导致误报") } // 验证全局超时 - if som.options.ScanControl.GlobalTimeout < 60 { + if som.options.ScanControl.GlobalTimeout < MinGlobalTimeout { warnings = append(warnings, "全局超时时间过短,扫描可能提前终止") } diff --git a/Common/config/ServiceDict.go b/Common/config/ServiceDict.go index 807acb7..ea70fad 100644 --- a/Common/config/ServiceDict.go +++ b/Common/config/ServiceDict.go @@ -24,49 +24,22 @@ func NewServiceDictionary() *ServiceDictionary { // getDefaultUserDict 获取默认用户字典 func getDefaultUserDict() map[string][]string { - return 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"}, + // 返回常量的深拷贝 + result := make(map[string][]string) + for service, users := range DefaultUserDict { + usersCopy := make([]string, len(users)) + copy(usersCopy, users) + result[service] = usersCopy } + return result } // getDefaultPasswords 获取默认密码字典 func getDefaultPasswords() []string { - return []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", - } + // 返回常量的副本 + result := make([]string, len(DefaultPasswords)) + copy(result, DefaultPasswords) + return result } // 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 设置指定服务的用户字典 diff --git a/Common/config/Types.go b/Common/config/Types.go index 1f6c7d7..74bac9f 100644 --- a/Common/config/Types.go +++ b/Common/config/Types.go @@ -157,10 +157,10 @@ func NewConfig() *Config { return &Config{ Application: &ApplicationConfig{ Version: Version{ - Major: 2, - Minor: 0, - Patch: 2, - Full: "2.0.2", + Major: VersionMajor, + Minor: VersionMinor, + Patch: VersionPatch, + Full: VersionFull, }, }, ScanTarget: &ScanTargetConfig{}, diff --git a/Common/config/constants.go b/Common/config/constants.go new file mode 100644 index 0000000..f57139f --- /dev/null +++ b/Common/config/constants.go @@ -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 // 最小全局超时时间 +) \ No newline at end of file