tenta passar server challenge como argumento

This commit is contained in:
Luiz Costa 2023-10-23 00:09:18 +01:00
parent 8736b8b2d2
commit 60281e7e52

View File

@ -221,7 +221,7 @@ func authLdap(username, password string) (bool, error) {
return true, nil return true, nil
} }
func (n *V2ServerSession) ProcessAuthenticateMessage(am *AuthenticateMessage) (err error) { func (n *V2ServerSession) ProcessAuthenticateMessage(am *AuthenticateMessage, sChallenge string) (err error) {
n.authenticateMessage = am n.authenticateMessage = am
n.NegotiateFlags = am.NegotiateFlags n.NegotiateFlags = am.NegotiateFlags
n.clientChallenge = am.ClientChallenge() n.clientChallenge = am.ClientChallenge()
@ -246,18 +246,15 @@ func (n *V2ServerSession) ProcessAuthenticateMessage(am *AuthenticateMessage) (e
return err return err
} }
log.Printf("DEBUG: Estrutura da session: %v\n", am)
hexServerChallenge := string(n.GetSessionData().challengeMessage.ServerChallenge)
hexNTLMClienteChallenge := hex.EncodeToString(am.NtlmV2Response.Response) hexNTLMClienteChallenge := hex.EncodeToString(am.NtlmV2Response.Response)
hexClientChallenge := hex.EncodeToString(n.clientChallenge) hexClientChallenge := hex.EncodeToString(n.clientChallenge)
log.Printf("DEBUG: challenge Server: %s\n", hexServerChallenge) log.Printf("DEBUG: challenge Server: %s\n", sChallenge)
log.Printf("DEBUG: ntChallengeResponse: %s\n", hexNTLMClienteChallenge) log.Printf("DEBUG: ntChallengeResponse: %s\n", hexNTLMClienteChallenge)
log.Printf("DEBUG: ClientChallenge: %s\n", hexClientChallenge) log.Printf("DEBUG: ClientChallenge: %s\n", hexClientChallenge)
// Execute ntlm_auth to check user auth // Execute ntlm_auth to check user auth
cmd := exec.Command("/usr/local/bin/ntlm_auth", "--domain="+n.userDomain, "--username="+n.user, "--challenge="+hexServerChallenge, "--nt-response="+(hexNTLMClienteChallenge+hexClientChallenge)) cmd := exec.Command("/usr/local/bin/ntlm_auth", "--domain="+n.userDomain, "--username="+n.user, "--challenge="+sChallenge, "--nt-response="+(hexNTLMClienteChallenge+hexClientChallenge))
output, err := cmd.CombinedOutput() output, err := cmd.CombinedOutput()
if err != nil { if err != nil {
fmt.Printf("Failed to execute command: %s\n", err) fmt.Printf("Failed to execute command: %s\n", err)