1, Mi entorno de configuración existente es de la siguiente manera: (1), Server_side, Redhat5.5 Enterprise con samba4.0.0 instalado, dirección IP: 5.5.5.149; nombre de dominio: EXAMPLE.COM; (2), Client_side: windows Server 2003, dirección IP: 5.5.5.45, nombre de host: SMB1; He seguido la configuración de enlace , es decir, el lado del servidor está configurado como AD DC. Ahora puedo lograr que el cliente (SMB1) se una al dominio EXAMPLE.COM. En el proceso de SMB1 que se une a EXAMPLE.COM, se está produciendo la autenticación kerberos. Al mismo tiempo, capturé los paquetes AS_REQ, AS_REP, TGS_REQ y TGS_REP a través de la herramienta Wireshark.
2, Mi objetivo es encontrar la interfaz de llamada a función correspondiente de Sevice_key en la fuente Samba desde el lado del servidor de Redhat5.5. Al leer la documentación relacionada con kerberos, supe que la clave Service_key existe en el paquete de solicitud TGS_REP, que se utiliza para acceder al lado del servidor en KRB_AP_REQ.
3 、 Mi progreso actual es que se han encontrado las pilas de llamadas de AS_REQ y TGS_REQ a través de la depuración en un solo paso de la herramienta gdb y el nivel de gdb con 10. Las pilas de llamadas son las siguientes:
La pila de llamadas AS_REP es:
# 0. / source4 / heimdal / kdc / kerberos5.c: 1032 # 1 ../ source4 / heimdal / kdc / process.c: 70 # 2. / source4 / heimdal / kdc / process.c : 242 # 3 ../ source4 / kdc / kdc.c: 161 # 4 ../ source4 / kdc / kdc.c: 519 # 5 ../ lib / tevent / tevent_req.c: 101 ...... ...
La pila de llamadas TGS_REP es:
# 0 ../source4/heimdal/kdc/krb5tgs.c:2355 # 1 ../ source4 / heimdal / kdc / process.c: 97 # 2 ../ source4 / heimdal / kdc / process.c: 242 # 3 ../ source4 / kdc / kdc.c: 161 # 4 ../ source4 / kdc / kdc.c: 519 # 5 ../lib/tevent/tevent_req.c:101 ....... ..
Aun así, el código es enorme y muy difícil de aprender porque está relacionado con el cifrado. Mi objetivo aún no ha alcanzado
4, Mis problemas urgentes se pueden describir: las funciones relacionadas de los paquetes AS_REQ, AS_REP, TGS_REQ y TGS_REP son más difíciles de entender, ¿puede dar una explicación detallada?
En primer lugar, ¿cuáles son la interfaz de función correspondiente con AS_REQ, AS_REP, TGS_REQ y TGS_REP? En particular, las partes relevantes con Service_key de TGS_REP?
En segundo lugar, ¿la relación lógica de llamada de los paquetes anteriores?
En tercer lugar, específicamente, ya que no tengo muy claras varias funciones
1) /source4/heimdal/kdc/kerberos5.c:956 _kdc_as_rep ();
2) /source4/heimdal/kdc/krb5tgs.c:2288 _kdc_tgs_rep ();
3) /source4/heimdal/kdc/process.c:64 decode_AS_REQ () no tiene definición.
Por favor, proporcione algunos materiales como enlaces a mí si es posible. Cualquier ayuda sería apreciada sinceramente.