Cet article présente plusieurs exemples de trace réseau qui capture différentes liaisons et séquences d’authentification pendant le processus d’établissement de connexion TCP (Transmission Control Protocol) entre une application cliente et sql Server Moteur de base de données (le serveur).
Cet article décrit également plusieurs connexions MARS (Active Result Sets). MARS est une fonctionnalité de SQL Server, introduite avec SQL Server 2005 (9.x), qui permet l’exécution de plusieurs commandes sur une connexion sans avoir à nettoyer les résultats de la première commande, avant d’exécuter la deuxième commande. MARS est obtenu via le multiplexage de session (SMUX).
Ce processus décrit un processus de connexion normal à l’aide de l’authentification SQL, montrant chaque étape de la conversation entre le client et le serveur via une analyse détaillée des traces réseau. L’exemple de trace réseau délimite les étapes suivantes :
- Liaison tcp tridirectionnel
- Établissement d’une liaison de pilote
- Liaison SSL/TLS
- Échange de paquets de connexion
- Confirmation de connexion
- Exécuter une commande et lire la réponse
- Négociation fermante TCP à quatre voies
Exemple de trace réseau
Cet échange est alloué 1 seconde, quel que soit le Login Timeout
paramètre de la chaîne de connexion.
- L’adresse IP du client est
10.10.10.10
- L’adresse IP du serveur est
10.10.10.120
Étape 1. Liaison tcp tridirectionnel
Toutes les conversations TCP commencent par un paquet (S
jeu d’indicateursSYN
) envoyé du client au serveur. Dans Frame 6127
, le client utilise un port éphémère (affecté dynamiquement par le système d’exploitation) et se connecte au port du serveur, dans ce cas le port 1433
. Le serveur répond avec son propre SYN
paquet avec l’indicateur ACK
également défini. Enfin, le client répond avec un ACK
paquet pour informer le serveur qu’il a reçu son SYN
paquet.
Cette étape établit une connexion TCP de base, de la même façon qu’une telnet
commande. Le système d’exploitation médiate cette partie de la conversation. À ce stade, le client et le serveur ne connaissent rien les uns des autres.
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=
Dans cette étape, les [Bad CheckSum]
avertissements sont bénins et sont un indicateur indiquant que le déchargement de somme de contrôle est activé. Autrement dit, ils sont ajoutés à un niveau inférieur dans la pile réseau que la trace est effectuée. En l’absence d’autres informations, cet avertissement indique si la trace réseau a été effectuée sur le client ou le serveur. Dans ce cas, il apparaît sur le paquet initial SYN
, de sorte que la trace a été effectuée sur le client.
Étape 2. Établissement d’une liaison de pilote
Le pilote client et SQL Server doivent connaître un peu les uns les autres. Dans cette négociation, le pilote envoie des informations et des exigences au serveur. Ces informations incluent s’il faut chiffrer les paquets de données, s’il faut utiliser plusieurs jeux de résultats actifs (MARS), son numéro de version, s’il faut utiliser l’authentification fédérée, le GUID de connexion, et ainsi de suite.
Le serveur répond avec ses informations, par exemple s’il nécessite une authentification. Cette séquence se produit avant toute négociation de sécurité effectuée.
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
Étape 3. Liaison SSL/TLS
L’établissement d’une liaison SSL/TLS commence par le paquet Client Hello, puis le paquet Server Hello, ainsi que certains paquets supplémentaires liés au canal sécurisé. Cette étape consiste à négocier la clé de sécurité pour le chiffrement des paquets. Normalement, seul le paquet de connexion est chiffré, mais le client ou le serveur peut également nécessiter le chiffrement des paquets de données. Le choix de la version de TLS se produit à ce stade de la connexion. Le client ou le serveur peut fermer la connexion à ce stade si les versions TLS ne s’alignent pas ou n’ont pas de suites de chiffrement en commun.
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
Étape 4. Paquet de connexion
Ce paquet est chiffré et peut s’afficher en fonction SSL Application Data
de TDS:Data
l’analyseur réseau. Si tous les paquets après cette étape s’affichent également comme SSL Application Data
, la connexion est chiffrée.
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
Étape 5. Confirmation de connexion
Sinon, vous voyez un paquet de réponse, qui confirme la connexion (a le jeton de connexion ACK
) ou retourne un Login Failed
message d’erreur au client.
Voici un exemple de ce que vous pouvez voir dans les données hexadécimales de paquets pour une connexion réussie :
.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
Étape 6. Exécuter une commande et lire la réponse
Les commandes sont envoyées sous la forme d’un TDS:SQLBatch
ou d’un TDS:RPCRequest
paquet. L’ancien exécute des instructions Transact-SQL simples, et celui-ci exécute des procédures stockées. Vous pouvez voir des paquets de continuation TCP si la commande est longue ou dans le paquet réponse si plusieurs lignes sont retournées.
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=
Étape 7. Négociation fermante TCP à quatre voies
Les pilotes Microsoft utilisent l’établissement d’une liaison bidirectionnel pour fermer les connexions. De nombreux pilotes tiers réinitialisent simplement la connexion pour la fermer, ce qui rend plus difficile la distinction entre une fermeture normale et anormale.
La négociation bidirectionnel se compose du client qui envoie un FIN
paquet au serveur, auquel le serveur répond avec un ACK
. Le serveur envoie ensuite son propre FIN
paquet, que le client reconnaît (ACK
).
Si le serveur envoie d’abord un FIN
paquet, il s’agit d’une fermeture anormale, le plus souvent observée dans l’établissement d’une liaison SSL/TLS si le client et le serveur ne peuvent pas négocier le canal sécurisé.
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=
Ce processus décrit le processus d’authentification, en comparant spécifiquement la séquence d’authentification SQL à l’ajout d’un paquet SSPI. L’exemple de trace réseau délimite les étapes suivantes :
- Liaison tcp tridirectionnel
- Établissement d’une liaison de pilote
- Liaison SSL/TLS
- Échange de paquets de connexion
- Transmission de paquets SSPI
- Confirmation de connexion
- Négociation fermante TCP à quatre voies
Exemple de trace réseau
Cette séquence de connexion ressemble à la séquence d’authentification SQL. L’ajout du paquet SSPI est la grande différence, mais est difficile à dire, sauf si vous développez ses propriétés. À l’occasion, vous pouvez voir plusieurs paquets SSPI.
Le client répond ensuite avec les informations d’identification, que le serveur confirme avec le contrôleur de domaine à sa fin.
Cet échange est alloué 1 seconde, quel que soit le Login Timeout
paramètre de la chaîne de connexion.
- L’adresse IP du client est
10.10.10.10
- L’adresse IP du serveur est
10.10.10.20
Étape 1. Liaison tcp tridirectionnel
Cette étape est l’emplacement où une connexion est établie entre le client et le serveur via TCP. Il implique SYN
, SYN-ACK
et ACK
des paquets pour synchroniser les numéros de séquence et établir la communication.
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
Dans cette étape, les [Bad CheckSum]
avertissements sont bénins et sont un indicateur indiquant que le déchargement de somme de contrôle est activé. Autrement dit, ils sont ajoutés à un niveau inférieur dans la pile réseau que la trace est effectuée. En l’absence d’autres informations, cet avertissement indique si la trace réseau a été effectuée sur le client ou le serveur. Dans ce cas, il apparaît sur le paquet initial SYN
, de sorte que la trace a été effectuée sur le client.
Étape 2. Établissement d’une liaison de pilote
Cette étape implique l’échange de paquets TDS (flux de données tabulaires) entre le client et le serveur pour établir des paramètres de communication.
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
Étape 3. Liaison SSL/TLS
Ici, le client et le serveur s’engagent dans une négociation sécurisée pour établir une connexion chiffrée. Ce processus implique plusieurs paquets, notamment client Hello, Server Hello, échange de certificats et spécifications de modification de chiffrement.
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
Étape 4. Paquet de connexion
Le client envoie un paquet TDS contenant des informations de connexion au serveur.
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
Étape 5. Transmission de paquets SSPI
Ce paquet porte le jeton SSPI (Security Support Provider Interface), indiquant l’authentification à l’aide de Kerberos. Ses propriétés sont développées pour révéler les données de jeton.
La sortie suivante montre le paquet SSPI, avec les propriétés de paquet développées.
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:
Étape 6. Confirmation de connexion et accusé de réception
Le serveur répond avec un paquet TDS confirmant la connexion et en reconnaissant la réception des données.
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
Étape 7. Négociation fermante TCP à quatre voies
Enfin, le client et le serveur ferment correctement la connexion à l’aide FIN
et ACK
aux paquets.
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 présence du paquet SSPI distingue ce processus de connexion de l’authentification SQL. Toutefois, l’identification peut nécessiter l’expansion des propriétés de paquets, en particulier lorsque plusieurs paquets SSPI sont échangés.
Ce processus décrit le processus d’authentification, en comparant spécifiquement la séquence d’authentification SQL avec l’ajout de paquets de défi et de réponse NTLM. L’exemple de trace réseau délimite les étapes suivantes :
- Liaison tcp tridirectionnel
- Établissement d’une liaison de pilote
- Liaison SSL/TLS
- Échange de paquets de connexion
- Paquets de défi et de réponse NTLM
- Confirmation de connexion
- Exécution de commande
Exemple de trace réseau
La différence entre cette séquence de connexion et la séquence d’authentification SQL est l’ajout de deux paquets.
Le client répond ensuite avec les informations d’identification, que le serveur confirme avec le contrôleur de domaine à sa fin.
Cet échange est alloué 1 seconde, quel que soit le Login Timeout
paramètre de la chaîne de connexion.
- L’adresse IP du client est
10.10.10.120
- L’adresse IP du serveur est
10.10.10.55
Étape 1. Liaison tcp tridirectionnel
Cette étape est l’emplacement où une connexion est établie entre le client et le serveur via TCP. Il implique SYN
, SYN-ACK
et ACK
des paquets pour synchroniser les numéros de séquence et établir la communication.
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=
Dans cette étape, les [Bad CheckSum]
avertissements sont bénins et sont un indicateur indiquant que le déchargement de somme de contrôle est activé. Autrement dit, ils sont ajoutés à un niveau inférieur dans la pile réseau que la trace est effectuée. En l’absence d’autres informations, cet avertissement indique si la trace réseau a été effectuée sur le client ou le serveur. Dans ce cas, il apparaît sur le paquet initial SYN
, de sorte que la trace a été effectuée sur le client.
Étape 2. Établissement d’une liaison de pilote
Cette étape implique l’échange de paquets TDS (flux de données tabulaires) entre le client et le serveur pour établir des paramètres de communication.
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
Étape 3. Liaison SSL/TLS
Ici, le client et le serveur s’engagent dans une négociation sécurisée pour établir une connexion chiffrée. Ce processus implique plusieurs paquets, notamment client Hello, Server Hello, échange de certificats et spécifications de modification de chiffrement.
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
Étape 4. Paquet de connexion
Le client envoie un paquet TDS contenant des informations de connexion au serveur.
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
Étape 5. Paquets de défi et de réponse NTLM
Le paquet de défi NTLM est envoyé du serveur au client une fois que le client a envoyé le paquet de connexion.
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 {
Étape 6. Confirmation de connexion
Le serveur répond avec un paquet TDS confirmant la connexion et en reconnaissant la réception des données.
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,
Étape 7. Exécuter une commande
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 connexion peut échouer avec un délai d’expiration, résultant de l’une des raisons suivantes :
- un serveur SQL Server meurent de faim de thread
- plusieurs demandes de connexion simultanées entraînant l’authentification en file d’attente avec le contrôleur de domaine
- un contrôleur de domaine dans un autre emplacement géographique
- un contrôleur de domaine lent ou non répond
Cette section décrit comment déterminer une connexion MARS à partir des paquets suivants :
SMP:SYN
démarre une nouvelle session
SMP:ACK
reconnaît les paquets de données
SMP:FIN
met fin à une session
Les exemples de trace suivants montrent les différents paquets.
- L’adresse IP du client est
10.10.10.10
- L’adresse IP du serveur est
10.10.10.22
Ouvrir une nouvelle connexion MARS
L’exemple de sortie suivant suppose que les étapes suivantes sont déjà effectuées à l’aide de l’authentification NTLM. MARS peut également être utilisé avec l’authentification Kerberos et SQL.
- Liaison tcp tridirectionnel
- Établissement d’une liaison de pilote
- Liaison SSL/TLS
- Échange de paquets de connexion
- Paquets de défi et de réponse NTLM
- Confirmation de connexion
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=.
Créer une session MARS
Une fois la connexion établie, créez une session 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
Exécuter différentes commandes sur la session
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=...
Exemple de paquet 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 =