En este artículo se presentan varios ejemplos de un seguimiento de red que captura varios protocolos de enlace y secuencias de autenticación durante el proceso de establecimiento de conexiones del Protocolo de control de transmisión (TCP) entre una aplicación cliente y la Motor de base de datos de SQL Server (el servidor).
En este artículo también se describen varias conexiones de conjuntos de resultados activos (MARS). MARS es una característica de SQL Server, introducida con SQL Server 2005 (9.x), que permite ejecutar varios comandos en una conexión sin tener que limpiar los resultados del primer comando, antes de ejecutar el segundo comando. MARS se logra mediante multiplexación de sesión (SMUX).
Este proceso describe un proceso de inicio de sesión normal mediante la autenticación de SQL, que muestra cada paso de la conversación entre el cliente y el servidor a través de un análisis detallado de seguimiento de red. El seguimiento de red de ejemplo delimita los pasos siguientes:
- Protocolo de enlace de tres vías TCP
- Protocolo de enlace del controlador
- Protocolo de enlace SSL/TLS
- Intercambio de paquetes de inicio de sesión
- Confirmación de inicio de sesión
- Ejecutar un comando y leer la respuesta
- Protocolo de enlace de cierre bidireccional tcp
Ejemplo de seguimiento de red
Este intercambio se asigna a 1 segundo independientemente de la Login Timeout
configuración del cadena de conexión.
- La dirección IP del cliente es
10.10.10.10
- La dirección IP del servidor es
10.10.10.120
Paso 1. Protocolo de enlace de tres vías TCP
Todas las conversaciones TCP comienzan con un SYN
paquete (S
conjunto de marcas) enviado desde el cliente al servidor. En Frame 6127
, el cliente usa un puerto efímero (asignado dinámicamente por el sistema operativo) y se conecta al puerto del servidor, en este caso puerto 1433
. El servidor responde con su propio SYN
paquete con la ACK
marca también establecida. Por último, el cliente responde con un ACK
paquete para informar al servidor de que recibió su SYN
paquete.
Este paso establece una conexión TCP básica, de la misma manera que lo haría un telnet
comando. El sistema operativo media esta parte de la conversación. En este momento, el cliente y el servidor no saben nada sobre sí.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6127 116.5776698 10.10.10.10 10.10.10.120 TCP:Flags=......S., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702293, Ack=0, Win=8192 ( Ne
6128 116.5776698 10.10.10.120 10.10.10.10 TCP:Flags=...A..S., SrcPort=1433, DstPort=60123, PayloadLen=0, Seq=4095166896, Ack=4050702294, Win=
6129 116.5786458 10.10.10.10 10.10.10.120 TCP:Flags=...A...., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702294, Ack=4095166897, Win=
En este paso, las [Bad CheckSum]
advertencias son benignas y son un indicador de que la descarga de suma de comprobación está habilitada. Es decir, se agregan en un nivel inferior en la pila de red que se toma el seguimiento. En ausencia de otra información, esta advertencia indica si el seguimiento de red se realizó en el cliente o en el servidor. En este caso, aparece en el paquete inicial SYN
, por lo que el seguimiento se realizó en el cliente.
Paso 2. Protocolo de enlace del controlador
Tanto el controlador de cliente como SQL Server deben conocer un poco entre sí. En este protocolo de enlace, el controlador envía información y requisitos al servidor. Esta información incluye si se van a cifrar paquetes de datos, si se deben usar varios conjuntos de resultados activos (MARS), su número de versión, si se va a usar la autenticación federada, el GUID de conexión, etc.
El servidor responde con su información, como si requiere autenticación. Esta secuencia se produce antes de realizar cualquier tipo de negociación de seguridad.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6130 116.5786458 10.10.10.10 10.10.10.120 TDS:Prelogin, Version = 7.1 (0x71000001), SPID = 0, PacketID = 0, Flags=...AP..., SrcPort=60123, Ds
6131 116.5805998 10.10.10.120 10.10.10.10 TDS:Response, Version = 7.1 (0x71000001), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=1433, Dst
Paso 3. Protocolo de enlace SSL/TLS
El protocolo de enlace SSL/TLS comienza con el paquete Hello de cliente y, a continuación, el paquete Hello del servidor, además de algunos paquetes adicionales relacionados con el canal seguro. Este paso es donde se negocia la clave de seguridad para cifrar paquetes. Normalmente, solo se cifra el paquete de inicio de sesión, pero el cliente o el servidor podrían requerir que también se cifren los paquetes de datos. La elección de la versión de TLS se produce en esta fase del inicio de sesión. El cliente o el servidor pueden cerrar la conexión en esta fase si las versiones de TLS no se alinean o no tienen ningún conjunto de cifrado en común.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6132 116.5835288 10.10.10.10 10.10.10.120 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:328, SSLVersionSelector:327, TDS:326, TCP:325, IP
6133 116.5845058 10.10.10.120 10.10.10.10 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Hello Done. {TLS:328, SSLVersionSe
6134 116.5864588 10.10.10.10 10.10.10.120 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec La
6135 116.5923178 10.10.10.120 10.10.10.10 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. {TL
Paso 4. Paquete de inicio de sesión
Este paquete está cifrado y puede mostrarse como SSL Application Data
o TDS:Data
, en función del analizador de red. Si todos los paquetes después de este paso también se muestran como SSL Application Data
, la conexión se cifra.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6136 116.5932948 10.10.10.10 10.10.10.120 TLS:TLS Rec Layer-1 SSL Application Data {TLS:328, SSLVersionSelector:327, TDS:326, TCP:325, IPv4:3
Paso 5. Confirmación de inicio de sesión
De lo contrario, verá un paquete de respuesta, que confirma el inicio de sesión (tiene el token de inicio ACK
de sesión) o devuelve un Login Failed
mensaje de error al cliente.
Este es un ejemplo de lo que puede ver en los datos hexadecimales del paquete para un inicio de sesión correcto:
.C.h.a.n.g.e.d. .d.a.t.a.b.a.s.e. .c.o.n.t.e.x.t. .t.o. .'.A.d.v.e.n.t.u.r.e.W.o.r.ks'
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6137 116.5962248 10.10.10.120 10.10.10.10 TDS:Response, Version = 7.1 (0x71000001), SPID = 96, PacketID = 1, Flags=...AP..., SrcPort=1433, Ds
Paso 6. Ejecutar un comando y leer la respuesta
Los comandos se envían como un TDS:SQLBatch
TDS:RPCRequest
paquete o . El primero ejecuta instrucciones Transact-SQL sin formato y esta última ejecuta procedimientos almacenados. Es posible que vea paquetes de continuación TCP si el comando es largo o en el paquete de respuesta si se devuelven más de unas pocas filas.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6138 116.5991538 10.10.10.10 10.10.10.120 TDS:SQLBatch, Version = 7.1 (0x71000001), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=60123, Ds
6139 116.5991538 10.10.10.120 10.10.10.10 TDS:Response, Version = 7.1 (0x71000001), SPID = 96, PacketID = 1, Flags=...AP..., SrcPort=1433, Ds
6266 116.8032558 10.10.10.10 10.10.10.120 TCP:Flags=...A...., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702956, Ack=4095168204, Win=
Paso 7. Protocolo de enlace de cierre bidireccional tcp
Los controladores de Microsoft usan el protocolo de enlace bidireccional para cerrar las conexiones. Muchos controladores de terceros simplemente restablecen la conexión para cerrarla, lo que dificulta la distinción entre un cierre normal y anómalo.
El protocolo de enlace de cuatro vías consta del cliente que envía un FIN
paquete al servidor, al que responde el servidor con un ACK
. A continuación, el servidor envía su propio FIN
paquete, que el cliente reconoce (ACK
).
Si el servidor envía primero un FIN
paquete, se trata de un cierre anómalo, que se suele ver en el protocolo de enlace SSL/TLS si el cliente y el servidor no pueden negociar el canal seguro.
Frame Time Offset Source IP Dest IP Description
----- ----------- ------------ ------------ ---------------------------------------------------------------------------------------------------
6362 116.9097008 10.10.10.10 10.10.10.120 TCP:Flags=...A...F, SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702956, Ack=4095168204, Win=
6363 116.9097008 10.10.10.120 10.10.10.10 TCP:Flags=...A...., SrcPort=1433, DstPort=60123, PayloadLen=0, Seq=4095168204, Ack=4050702957, Win=
6364 116.9097008 10.10.10.120 10.10.10.10 TCP:Flags=...A...F, SrcPort=1433, DstPort=60123, PayloadLen=0, Seq=4095168204, Ack=4050702957, Win=
6366 116.9106778 10.10.10.10 10.10.10.120 TCP:Flags=...A...., SrcPort=60123, DstPort=1433, PayloadLen=0, Seq=4050702957, Ack=4095168205, Win=
Este proceso describe el proceso de autenticación, en concreto comparando la secuencia de autenticación de SQL con la adición de un paquete SSPI. El seguimiento de red de ejemplo delimita los pasos siguientes:
- Protocolo de enlace de tres vías TCP
- Protocolo de enlace del controlador
- Protocolo de enlace SSL/TLS
- Intercambio de paquetes de inicio de sesión
- Transmisión de paquetes SSPI
- Confirmación de inicio de sesión
- Protocolo de enlace de cierre bidireccional tcp
Ejemplo de seguimiento de red
Esta secuencia de inicio de sesión es similar a la secuencia de autenticación de SQL. La adición del paquete SSPI es la gran diferencia, pero es difícil de saber a menos que expanda sus propiedades. En ocasiones, es posible que vea más de un paquete SSPI.
A continuación, el cliente responde con las credenciales, que el servidor confirma con el controlador de dominio al final.
Este intercambio se asigna a 1 segundo independientemente de la Login Timeout
configuración del cadena de conexión.
- La dirección IP del cliente es
10.10.10.10
- La dirección IP del servidor es
10.10.10.20
Paso 1. Protocolo de enlace de tres vías TCP
Este paso es donde se establece una conexión entre el cliente y el servidor a través de TCP. Implica SYN
los paquetes , SYN-ACK
y ACK
para sincronizar los números de secuencia y establecer la comunicación.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
216 16.9554967 10.10.10.10 10.10.10.20 TCP:Flags=......S., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243174743, Ack=0, Win=64240 ( N
217 16.9561482 10.10.10.20 10.10.10.10 TCP:Flags=...A..S., SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329197620, Ack=2243174744, Win=8
218 16.9562004 10.10.10.10 10.10.10.20 TCP:Flags=...A...., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243174744, Ack=329197621, Win=8
En este paso, las [Bad CheckSum]
advertencias son benignas y son un indicador de que la descarga de suma de comprobación está habilitada. Es decir, se agregan en un nivel inferior en la pila de red que se toma el seguimiento. En ausencia de otra información, esta advertencia indica si el seguimiento de red se realizó en el cliente o en el servidor. En este caso, aparece en el paquete inicial SYN
, por lo que el seguimiento se realizó en el cliente.
Paso 2. Protocolo de enlace del controlador
Este paso implica el intercambio de paquetes TDS (flujo de datos tabulares) entre el cliente y el servidor para establecer parámetros para la comunicación.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
219 16.9567950 10.10.10.10 10.10.10.20 TDS:Prelogin, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=49299, Ds
220 17.0035332 10.10.10.20 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=1433, Dst
Paso 3. Protocolo de enlace SSL/TLS
Aquí, el cliente y el servidor participan en un protocolo de enlace seguro para establecer una conexión cifrada. Este proceso implica varios paquetes, como client Hello, Server Hello, certificate exchange y especificaciones de cambio de cifrado.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
221 17.0041297 10.10.10.10 10.10.10.20 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:37, SSLVersionSelector:36, TDS:35, TCP:34, IPv4:3
222 17.0081618 10.10.10.20 10.10.10.10 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Key Exchange. Server Hello Done. {
223 17.0102991 10.10.10.10 10.10.10.20 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec La
224 17.0120222 10.10.10.20 10.10.10.10 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. {TL
Paso 4. Paquete de inicio de sesión
El cliente envía un paquete TDS que contiene información de inicio de sesión al servidor.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
236 17.0264540 10.10.10.10 10.10.10.20 TDS:Data, Version = 7.4 (0x74000004), Reassembled Packet {TDS:35, TCP:34, IPv4:33}
237 17.0268945 10.10.10.20 10.10.10.10 TCP:Flags=...A...., SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329198912, Ack=2243178543, Win=8
Paso 5. Transmisión de paquetes SSPI
Este paquete contiene el token de interfaz del proveedor de soporte técnico de seguridad (SSPI), que indica la autenticación mediante Kerberos. Sus propiedades se expanden para mostrar los datos del token.
En la salida siguiente se muestra el paquete SSPI, con propiedades de paquete expandidas.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
238 17.0280923 10.10.10.20 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 0, Flags=...AP..., SrcPort=1433, Dst
Frame: Number = 238, Captured Frame Length = 250, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-03-F6-03],SourceAddress:[00-15-5D-03-F6-00]
+ Ipv4: Src = 10.10.10.20, Dest = 10.10.10.10, Next Protocol = TCP, Packet ID = 26363, Total IP Length = 236
+ Tcp: Flags=...AP..., SrcPort=1433, DstPort=49299, PayloadLen=196, Seq=329198912 - 329199108, Ack=2243178543, Win=8212 (scale factor 0x8) =
- Tds: Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 0, Flags=...AP..., SrcPort=1433, DstPort=49299, PayloadLen=196, Seq=3291989
+ PacketHeader: SPID = 0, Size = 196, PacketID = 0, Window = 0
- TDSServerResponseData:
TokenType: SSPI <---- SSPI Token
+ TokenData:
Paso 6. Confirmación y confirmación de inicio de sesión
El servidor responde con un paquete TDS que confirma el inicio de sesión y confirma la recepción de datos.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
239 17.0294294 10.10.10.20 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 57, PacketID = 1, Flags=...AP..., SrcPort=1433, Ds
240 17.0294472 10.10.10.10 10.10.10.20 TCP:Flags=...A...., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243178543, Ack=329199489, Win=8
Paso 7. Protocolo de enlace de cierre bidireccional tcp
Por último, el cliente y el servidor cierran la conexión correctamente mediante FIN
paquetes y ACK
.
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------------------------------
242 18.5494518 10.10.10.10 10.10.10.20 TCP:Flags=...A...F, SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243178543, Ack=329199489, Win=8
243 18.5501180 10.10.10.20 10.10.10.10 TCP:Flags=...A...., SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329199489, Ack=2243178544, Win=8
244 18.5502723 10.10.10.20 10.10.10.10 TCP:Flags=...A...F, SrcPort=1433, DstPort=49299, PayloadLen=0, Seq=329199489, Ack=2243178544, Win=8
245 18.5502896 10.10.10.10 10.10.10.20 TCP:Flags=...A...., SrcPort=49299, DstPort=1433, PayloadLen=0, Seq=2243178544, Ack=329199490, Win=8
La presencia del paquete SSPI distingue este proceso de inicio de sesión de la autenticación de SQL. Sin embargo, la identificación puede requerir la expansión de las propiedades del paquete, especialmente cuando se intercambian varios paquetes SSPI.
Este proceso describe el proceso de autenticación, en concreto comparando la secuencia de autenticación de SQL con la adición de paquetes de desafío y respuesta NTLM. El seguimiento de red de ejemplo delimita los pasos siguientes:
- Protocolo de enlace de tres vías TCP
- Protocolo de enlace del controlador
- Protocolo de enlace SSL/TLS
- Intercambio de paquetes de inicio de sesión
- Paquetes de desafío y respuesta NTLM
- Confirmación de inicio de sesión
- Ejecución del comando
Ejemplo de seguimiento de red
La diferencia entre esta secuencia de inicio de sesión y la secuencia de autenticación de SQL es la adición de dos paquetes.
A continuación, el cliente responde con las credenciales, que el servidor confirma con el controlador de dominio al final.
Este intercambio se asigna a 1 segundo independientemente de la Login Timeout
configuración del cadena de conexión.
- La dirección IP del cliente es
10.10.10.120
- La dirección IP del servidor es
10.10.10.55
Paso 1. Protocolo de enlace de tres vías TCP
Este paso es donde se establece una conexión entre el cliente y el servidor a través de TCP. Implica SYN
los paquetes , SYN-ACK
y ACK
para sincronizar los números de secuencia y establecer la comunicación.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76078 1181.9915832 10.10.10.120 10.10.10.55 TCP: [Bad CheckSum]Flags=......S., SrcPort=64444, DstPort=57139, PayloadLen=0, Seq=2766542083, Ack=
76079 1181.9922255 10.10.10.55 10.10.10.120 TCP:Flags=...A..S., SrcPort=57139, DstPort=64444, PayloadLen=0, Seq=3862866646, Ack=2766542084, Win
76080 1181.9924272 10.10.10.120 10.10.10.55 TCP: [Bad CheckSum]Flags=...A...., SrcPort=64444, DstPort=57139, PayloadLen=0, Seq=2766542084, Ack=
En este paso, las [Bad CheckSum]
advertencias son benignas y son un indicador de que la descarga de suma de comprobación está habilitada. Es decir, se agregan en un nivel inferior en la pila de red que se toma el seguimiento. En ausencia de otra información, esta advertencia indica si el seguimiento de red se realizó en el cliente o en el servidor. En este caso, aparece en el paquete inicial SYN
, por lo que el seguimiento se realizó en el cliente.
Paso 2. Protocolo de enlace del controlador
Este paso implica el intercambio de paquetes TDS (flujo de datos tabulares) entre el cliente y el servidor para establecer parámetros para la comunicación.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76081 1181.9936195 10.10.10.120 10.10.10.55 TDS:Prelogin, Version = 7.3 (0x730a0003), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=64444, Ds
76082 1181.9945238 10.10.10.55 10.10.10.120 TDS:Response, Version = 7.3 (0x730a0003), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=57139, Ds
Paso 3. Protocolo de enlace SSL/TLS
Aquí, el cliente y el servidor participan en un protocolo de enlace seguro para establecer una conexión cifrada. Este proceso implica varios paquetes, como client Hello, Server Hello, certificate exchange y especificaciones de cambio de cifrado.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76083 1181.9953108 10.10.10.120 10.10.10.55 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:3192, SSLVersionSelector:3191, TDS:3190, TCP:3189
76084 1181.9967001 10.10.10.55 10.10.10.120 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Hello Done. {TLS:3192, SSLVersionS
76085 1181.9978947 10.10.10.120 10.10.10.55 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec La
76086 1182.0010146 10.10.10.55 10.10.10.120 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. {TL
Paso 4. Paquete de inicio de sesión
El cliente envía un paquete TDS que contiene información de inicio de sesión al servidor.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76096 1182.0069763 10.10.10.120 10.10.10.55 TLS:TLS Rec Layer-1 SSL Application Data {TLS:3192, SSLVersionSelector:3191, TDS:3190, TCP:3189, IP
Paso 5. Paquetes de desafío y respuesta NTLM
El paquete de desafío NTLM se envía desde el servidor al cliente después de que el cliente envíe el paquete de inicio de sesión.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76097 1182.0093903 10.10.10.55 10.10.10.120 NLMP:NTLM CHALLENGE MESSAGE {TDS:3190, TCP:3189, IPv4:3187}
76098 1182.0102507 10.10.10.120 10.10.10.55 NLMP:NTLM AUTHENTICATE MESSAGEVersion:v2, Domain: CONTOSO, User: joe33, Workstation: 10.10.10.120 {
Paso 6. Confirmación de inicio de sesión
El servidor responde con un paquete TDS que confirma el inicio de sesión y confirma la recepción de datos.
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76100 1182.0274716 10.10.10.55 10.10.10.120 TDS:Response, Version = 7.3 (0x730a0003), SPID = 315, PacketID = 1, Flags=...AP..., SrcPort=57139,
Paso 7. Ejecutar un comando
Frame Time Offset Source IP Dest IP Description
----- ------------ ------------ ------------ ---------------------------------------------------------------------------------------------------
76102 1182.0324639 10.10.10.120 10.10.10.55 TDS:SQLBatch, Version = 7.3 (0x730a0003), SPID = 0, PacketID = 1, Flags=...AP..., SrcPort=64444, Ds
La conexión puede producir un error con un tiempo de espera, lo que resulta de cualquiera de los siguientes motivos:
- un subproceso desabrido de SQL Server
- varias solicitudes de inicio de sesión simultáneas que dan lugar a la autenticación en cola con el controlador de dominio
- un controlador de dominio en una ubicación geográfica diferente
- un controlador de dominio lento o no responde
En esta sección se describe cómo puede determinar una conexión de MARS desde los siguientes paquetes:
SMP:SYN
inicia una nueva sesión
SMP:ACK
confirma paquetes de datos
SMP:FIN
finaliza una sesión
En los ejemplos de seguimiento siguientes se muestran los distintos paquetes.
- La dirección IP del cliente es
10.10.10.10
- La dirección IP del servidor es
10.10.10.22
Apertura de una nueva conexión de MARS
En la salida de ejemplo siguiente se da por supuesto que los pasos siguientes ya están completos mediante la autenticación NTLM. MARS también se puede usar con la autenticación Kerberos y SQL.
- Protocolo de enlace de tres vías TCP
- Protocolo de enlace del controlador
- Protocolo de enlace SSL/TLS
- Intercambio de paquetes de inicio de sesión
- Paquetes de desafío y respuesta NTLM
- Confirmación de inicio de sesión
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
6704 568.0608108 10.10.10.10 10.10.10.22 TCP:Flags=CE....S., SrcPort=52965, DstPort=1433, PayloadLen=0, Seq=66183290
6713 568.0608483 10.10.10.22 10.10.10.10 TCP: [Bad CheckSum]Flags=.E.A..S., SrcPort=1433, DstPort=52965, PayloadLen=
6754 568.0613015 10.10.10.10 10.10.10.22 TCP:Flags=...A...., SrcPort=52965, DstPort=1433, PayloadLen=0, Seq=66183290
6777 568.0615479 10.10.10.10 10.10.10.22 TDS:Prelogin, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
6786 568.0616817 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
6833 568.0622426 10.10.10.10 10.10.10.22 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:165, SSLVersionSelector:1
6873 568.0627953 10.10.10.22 10.10.10.10 TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Key Exchan
6900 568.0632639 10.10.10.10 10.10.10.22 TCP:Flags=...A...., SrcPort=52965, DstPort=1433, PayloadLen=0, Seq=66183319
6977 568.0643795 10.10.10.10 10.10.10.22 TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher
7045 568.0655160 10.10.10.22 10.10.10.10 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypte
7233 568.0679639 10.10.10.10 10.10.10.22 TDS:Data, Version = 7.4 (0x74000004), Reassembled Packet {TDS:162, TCP:160,
7275 568.0684467 10.10.10.22 10.10.10.10 NLMP:NTLM CHALLENGE MESSAGE {TDS:162, TCP:160, IPv4:1}
7331 568.0692389 10.10.10.10 10.10.10.22 NLMP:NTLM AUTHENTICATE MESSAGE Version:NTLM v2, Domain: CONTOSO, User: joe1
11791 568.1295675 10.10.10.22 10.10.10.10 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=52965, PayloadLen=
17978 568.2162145 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 255, PacketID = 1, Flags=.
Creación de una nueva sesión de MARS
Una vez establecida la conexión, cree una nueva sesión de MARS (Sid = 0
).
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
18024 568.2170301 10.10.10.10 10.10.10.22 SMP:SYN, Sid = 0, Length = 16, SeqNum = 0, Wndw = 4 {SMP:190, TCP:160, IPv4
Ejecutar varios comandos en la sesión
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
18028 568.2170301 10.10.10.10 10.10.10.22 TDS:SQLBatch, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
18031 568.2170676 10.10.10.22 10.10.10.10 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=52965, PayloadLen=
18038 568.2173641 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 255, PacketID = 1, Flags=.
18079 568.2178650 10.10.10.10 10.10.10.22 TDS:SQLBatch, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...
Ejemplo del paquete SMP:ACK
Frame Time Offset Source IP Dest IP Description
----- ----------- ----------- ----------- ---------------------------------------------------------------------------
40874 568.5121135 10.10.10.22 10.10.10.10 TDS:Response, Version = 7.4 (0x74000004), SPID = 255, PacketID = 1, Flags=.
40876 568.5121237 10.10.10.22 10.10.10.10 TDS:Continuous Response, Version = 7.4 (0x74000004), SPID = 255, PacketID =
40911 568.5124644 10.10.10.10 10.10.10.22 SMP:ACK, Sid = 0, Length = 16, SeqNum = 34, Wndw = 40 {SMP:190, TCP:160, IP
40950 568.5128422 10.10.10.22 10.10.10.10 TDS:Continuous Response, Version = 7.4 (0x74000004), SPID = 255, PacketID =