Hi All,
Today I checked the version from master. I see a lot of work with
kerberos support.
I have a question - why does the client ask the password? I have a
principal ticket, this should be enough for kerberos authentication.

Client logs:
[DEBUG][com.freerdp.core.nego] - [nego_set_negotiation_enabled]:
Enabling security layer negotiation: TRUE
[DEBUG][com.freerdp.core.nego] -
[nego_set_restricted_admin_mode_required]: Enabling restricted admin
mode: FALSE
[DEBUG][com.freerdp.core.nego] - [nego_enable_rdp]: Enabling RDP security: TRUE
[DEBUG][com.freerdp.core.nego] - [nego_enable_tls]: Enabling TLS security: TRUE
[DEBUG][com.freerdp.core.nego] - [nego_enable_nla]: Enabling NLA security: TRUE
[DEBUG][com.freerdp.core.nego] - [nego_enable_ext]: Enabling NLA
extended security: FALSE
[DEBUG][com.freerdp.core.connection] -
[rdp_client_transition_to_state]: CONNECTION_STATE_INITIAL -->
CONNECTION_STATE_NEGO
[DEBUG][com.freerdp.core.nego] - [nego_connect]: state: NEGO_STATE_NLA
[DEBUG][com.freerdp.core.nego] - [nego_attempt_nla]: Attempting NLA security
[DEBUG][com.freerdp.core] - [freerdp_set_last_error_ex]:
freerdp_tcp_is_hostname_resolvable resetting error state
[DEBUG][com.freerdp.core] - [freerdp_set_last_error_ex]:
freerdp_tcp_default_connect resetting error state
[DEBUG][com.freerdp.core] - [freerdp_tcp_default_connect]: connecting
to peer 192.168.55.110
[DEBUG][com.freerdp.core.nego] - [nego_send_negotiation_request]:
RequestedProtocols: 3
[DEBUG][com.freerdp.core.nego] - [nego_process_negotiation_response]:
RDP_NEG_RSP::flags = { [0x03]
|EXTENDED_CLIENT_DATA_SUPPORTED|DYNVC_GFX_PROTOCOL_SUPPORTED }
[DEBUG][com.freerdp.core.nego] - [nego_recv]: selected_protocol: 2
[DEBUG][com.freerdp.core.nego] - [nego_attempt_nla]: state: NEGO_STATE_FINAL
[DEBUG][com.freerdp.core.nego] - [nego_connect]: Negotiated NLA security
[DEBUG][com.freerdp.core.nego] - [nego_security_connect]:
nego_security_connect with PROTOCOL_HYBRID
[DEBUG][com.freerdp.crypto] - [useKnownHosts]: known_hosts=1
[DEBUG][com.freerdp.core.nla] - [nla_set_state]: -- NLA_STATE_INITIAL
    --> NLA_STATE_INITIAL
[DEBUG][com.winpr.sspi] - [InitSecurityInterfaceExA]: InitSecurityInterfaceExA
[DEBUG][com.freerdp.core.auth] - [credssp_auth_init]: Using package:
Negotiate (cbMaxToken: 12256 bytes)
[DEBUG][com.winpr.utils] - [SamOpen]: Could not open SAM file!

Password:    ????

[DEBUG][com.freerdp.core.auth] - [credssp_auth_setup_client]: Acquired
client credentials
[DEBUG][com.winpr.negotiate] - [negotiate_InitializeSecurityContextW]:
Available mechanism: Kerberos user to user (1.2.840.113554.1.2.2.3)
[DEBUG][com.winpr.negotiate] - [negotiate_InitializeSecurityContextW]:
Available mechanism: Kerberos (1.2.840.113554.1.2.2)
[DEBUG][com.winpr.negotiate] - [negotiate_InitializeSecurityContextW]:
Available mechanism: NTLM (1.3.6.1.4.1.311.2.2.10)
[DEBUG][com.winpr.negotiate] - [negotiate_write_neg_token]: Writing
negTokenInit...
[DEBUG][com.winpr.negotiate] - [negotiate_write_neg_token]:
mechTypes [0] (37 bytes)
[DEBUG][com.winpr.negotiate] - [negotiate_write_neg_token]:
mechToken [2] (71 bytes)
[DEBUG][com.freerdp.core.auth] - [credssp_auth_authenticate]:
Authentication in progress... (output token size: 128)
[DEBUG][com.freerdp.core.nla] - [nla_send]: ----->> sending...
[DEBUG][com.freerdp.core.nla] - [nla_send]:    ----->> protocol version 6
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->> negoToken
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->>
client nonce
[DEBUG][com.freerdp.core.nla] - [nla_send]: [187 bytes]
[DEBUG][com.freerdp.core.nla] - [nla_set_state]: -- NLA_STATE_INITIAL
    --> NLA_STATE_NEGO_TOKEN
[DEBUG][com.freerdp.core.connection] -
[rdp_client_transition_to_state]: CONNECTION_STATE_NEGO -->
CONNECTION_STATE_NLA
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]: <<----- receiving...
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]:    <<-----
protocol version 6
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]:    <<----- nego token
[DEBUG][com.winpr.negotiate] - [negotiate_read_neg_token]: Reading
negTokenResp...
[DEBUG][com.winpr.negotiate] - [negotiate_read_neg_token]:
negState [0] (1)
[DEBUG][com.winpr.negotiate] - [negotiate_read_neg_token]:
supportedMech [1] (Kerberos user to user (1.2.840.113554.1.2.2.3))
[DEBUG][com.winpr.negotiate] - [negotiate_read_neg_token]:
mechToken [2] (391 bytes)
[DEBUG][com.winpr.negotiate] - [negotiate_InitializeSecurityContextW]:
Negotiated mechanism: Kerberos user to user (1.2.840.113554.1.2.2.3)
[DEBUG][com.winpr.negotiate] - [negotiate_write_neg_token]: Writing
negTokenResp...
[DEBUG][com.winpr.negotiate] - [negotiate_write_neg_token]:
mechToken [2] (590 bytes)
[DEBUG][com.freerdp.core.auth] - [credssp_auth_authenticate]:
Authentication in progress... (output token size: 606)
[DEBUG][com.freerdp.core.nla] - [nla_send]: ----->> sending...
[DEBUG][com.freerdp.core.nla] - [nla_send]:    ----->> protocol version 6
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->> negoToken
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->>
client nonce
[DEBUG][com.freerdp.core.nla] - [nla_send]: [671 bytes]
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]: <<----- receiving...
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]:    <<-----
protocol version 6
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]:    <<----- nego token
[DEBUG][com.winpr.negotiate] - [negotiate_read_neg_token]: Reading
negTokenResp...
[DEBUG][com.winpr.negotiate] - [negotiate_read_neg_token]:
negState [0] (0)
[DEBUG][com.winpr.negotiate] - [negotiate_read_neg_token]:
mechToken [2] (157 bytes)
[DEBUG][com.freerdp.core.auth] - [credssp_auth_authenticate]:
Authentication complete (output token size: 0 bytes)
[DEBUG][com.freerdp.core.auth] - [credssp_auth_authenticate]: Context
sizes: cbMaxSignature=28, cbSecurityTrailer=60
[DEBUG][com.freerdp.core.nla] - [nla_send]: ----->> sending...
[DEBUG][com.freerdp.core.nla] - [nla_send]:    ----->> protocol version 6
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->>
public key auth
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->>
client nonce
[DEBUG][com.freerdp.core.nla] - [nla_send]: [140 bytes]
[DEBUG][com.freerdp.core.nla] - [nla_set_state]: --
NLA_STATE_NEGO_TOKEN   --> NLA_STATE_PUB_KEY_AUTH
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]: <<----- receiving...
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]:    <<-----
protocol version 6
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]:    <<----- nego token
[DEBUG][com.freerdp.core.nla] - [nla_decode_ts_request]:    <<-----
public key auth
[DEBUG][com.freerdp.core.nla] - [nla_send]: ----->> sending...
[DEBUG][com.freerdp.core.nla] - [nla_send]:    ----->> protocol version 6
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->> auth info
[DEBUG][com.freerdp.core.nla] - [nla_write_octet_string]:    ----->>
client nonce
[DEBUG][com.freerdp.core.nla] - [nla_send]: [181 bytes]
[DEBUG][com.freerdp.core.nla] - [nla_set_state]: --
NLA_STATE_PUB_KEY_AUTH --> NLA_STATE_AUTH_INFO
[DEBUG][com.freerdp.core.nla] - [nla_set_state]: --
NLA_STATE_AUTH_INFO    --> NLA_STATE_FINAL
[DEBUG][com.freerdp.core.connection] -
[rdp_client_transition_to_state]: CONNECTION_STATE_NLA -->
CONNECTION_STATE_MCS_CREATE_REQUEST


Also, if I use a key "/auth-pkg-list:!ntlm,kerberos", the client crashes.

Thread 2 "xfreerdp" received signal SIGSEGV, Segmentation fault.
(gdb) bt
#0  0x00007ffff5ca9fd6 in __strcmp_sse42 () from /usr/bin/../lib64/libc.so.6
#1  0x00007ffff5ff94e7 in negotiate_AcquireCredentialsHandleA
(pszPrincipal=0x0, pszPackage=0x7fffe0c6b990 "Negotiate",
fCredentialUse=2, pvLogonID=0x0, pAuthData=0x7fffe5405670,
pGetKeyFn=0x0, pvGetKeyArgument=0x0, phCredential=0x7fffe0c70268,
ptsExpiry=0x0)
    at freerdp-3.0.0/winpr/libwinpr/sspi/Negotiate/negotiate.c:1418
#2  0x00007ffff5fff3c9 in winpr_AcquireCredentialsHandleA
(pszPrincipal=0x0, pszPackage=0x7fffe0c6b990 "Negotiate",
fCredentialUse=2, pvLogonID=0x0, pAuthData=0x7fffe5405670,
pGetKeyFn=0x0, pvGetKeyArgument=0x0, phCredential=0x7fffe0c70268,
ptsExpiry=0x0)
    at freerdp-3.0.0/winpr/libwinpr/sspi/sspi_winpr.c:1327


>
> Le 01/02/2023 à 09:44, Andrey Af via FreeRDP-devel a écrit :
> > Hi All!
> >
> > I build a freerdp 2.8.1 with the flag WITH_GSSAPI=ON. And for the
> > freerdp-shadow, I made a keytab with the TERMSRV/hostname@REALM
> > principal. I use the environment variable KRB5_KTNAME. I run
> > freerdp-shadow-cli and I don't see gss_xxx in the logs. I can conclude
> > that the use of kerberos is not implemented for freerdp-shadow?
> >
> Hi Andrey,
>
> server-side kerberos support is only on master (mostly because to accept
> mstsc you need the kerberos user2user extension), and you must provide
> the keytab to freerdp-shadow-cli with the `/keytab:<path>` (on master).
>
> Hint: as long as you see NTLM related messages, you're not taking the
> kerberos path.
>
> Best regards.
>
> --
> David FORT
> website: https://www.hardening-consulting.com/
>
>
>
> _______________________________________________
> FreeRDP-devel mailing list
> FreeRDP-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freerdp-devel


_______________________________________________
FreeRDP-devel mailing list
FreeRDP-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to