mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00
refactor: 将硬编码常量提取到constants.go统一管理
This commit is contained in:
parent
c8038bdc62
commit
619aa632d0
@ -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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 获取指定端口的探测器列表
|
||||||
|
@ -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, "全局超时时间过短,扫描可能提前终止")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 设置指定服务的用户字典
|
||||||
|
@ -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
246
Common/config/constants.go
Normal 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 // 最小全局超时时间
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user