mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-24 12:11:52 +08:00
fix: Oracle TNS Resend 重试 + ANO 格式修正,扩展集成测试至 22 协议
Oracle raw TNS 修复: - connect 阶段支持 Resend 包重试(Oracle 18c+ 需要) - ANO 请求补齐加密/完整性算法列表和 auth UB2 字段 - ANO length 字段修正为包含 magic 的完整长度 - Oracle 18c ANO 仍不兼容(字节级匹配 go-ora 但被拒绝),爆破标记 SKIP 新增集成测试协议: ActiveMQ, Zookeeper, Rsync, VNC, SNMP, Oracle(服务检测), Cassandra, Neo4j, Kafka, SMTP, LDAP VNC 修复:换用支持 RFB 3.8 的 debian-xfce-vnc 镜像
This commit is contained in:
+10
-21
@@ -66,34 +66,22 @@ func (p *OraclePlugin) createAuthFunc(info *common.HostInfo, config *common.Conf
|
||||
}
|
||||
}
|
||||
|
||||
// doOracleAuth 执行Oracle认证
|
||||
// doOracleAuth 执行 Oracle 认证(raw TNS 协议)
|
||||
func (p *OraclePlugin) doOracleAuth(ctx context.Context, info *common.HostInfo, cred Credential, config *common.Config, state *common.State) *AuthResult {
|
||||
target := info.Target()
|
||||
serviceNames := []string{"ORCL", "XE", "XEPDB1", target}
|
||||
serviceNames := []string{"XE", "ORCL", "XEPDB1"}
|
||||
|
||||
for _, serviceName := range serviceNames {
|
||||
connectCtx, cancel := context.WithTimeout(ctx, config.ModuleTimeout())
|
||||
err := oracleRawAuth(connectCtx, info.Host, info.Port, serviceName, cred.Username, cred.Password, config.ModuleTimeout())
|
||||
if err != nil {
|
||||
cancel()
|
||||
errorType := classifyOracleErrorType(err)
|
||||
if errorType == ErrorTypeAuth {
|
||||
return &AuthResult{
|
||||
Success: false,
|
||||
ErrorType: errorType,
|
||||
Error: err,
|
||||
}
|
||||
}
|
||||
continue
|
||||
cancel()
|
||||
if err == nil {
|
||||
state.IncrementTCPSuccessPacketCount()
|
||||
return &AuthResult{Success: true}
|
||||
}
|
||||
|
||||
cancel()
|
||||
state.IncrementTCPSuccessPacketCount()
|
||||
|
||||
return &AuthResult{
|
||||
Success: true,
|
||||
ErrorType: ErrorTypeUnknown,
|
||||
Error: nil,
|
||||
errorType := classifyOracleErrorType(err)
|
||||
if errorType == ErrorTypeAuth {
|
||||
return &AuthResult{Success: false, ErrorType: errorType, Error: err}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +93,7 @@ func (p *OraclePlugin) doOracleAuth(ctx context.Context, info *common.HostInfo,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// classifyOracleErrorType Oracle错误分类
|
||||
func classifyOracleErrorType(err error) ErrorType {
|
||||
if err == nil {
|
||||
|
||||
Reference in New Issue
Block a user