Dieser Artikel enthält mehrere Beispiele für eine Netzwerkablaufverfolgung, die verschiedene Handshakes und Authentifizierungssequenzen während des TCP-Verbindungsaufbauprozesses (Transmission Control Protocol) zwischen einer Clientanwendung und dem SQL Server-Datenbank-Engine (dem Server) erfasst.
Sie können eine Verbindung mit der Datenbank-Engine mit der Windows-Authentifizierung (mit Kerberos- oder NTLM-Authentifizierung) oder sql-Authentifizierung herstellen.
In diesem Artikel werden auch mehrere Active Result Sets (MARS)-Verbindungen beschrieben. MARS ist ein Feature von SQL Server, das mit SQL Server 2005 (9.x) eingeführt wurde, mit dem mehrere Befehle auf einer Verbindung ausgeführt werden können, ohne die Ergebnisse des ersten Befehls bereinigen zu müssen, bevor der zweite Befehl ausgeführt wird. MARS wird durch Session Multiplexing (SMUX) erreicht.
Dieser Prozess beschreibt einen normalen Anmeldevorgang mithilfe der SQL-Authentifizierung und zeigt jeden Schritt der Unterhaltung zwischen Client und Server über eine detaillierte Netzwerkablaufverfolgungsanalyse an. Im Beispiel für die Netzwerkablaufverfolgung werden die folgenden Schritte beschrieben:
- TCP-Drei-Wege-Handshake
- Fahrer-Handshake
- SSL/TLS Handshake
- Anmelden des Paketaustauschs
- Anmeldebestätigung
- Ausführen eines Befehls und Lesen der Antwort
- TCP-Vier-Wege-Schließen von Handshake
Beispiel für die Netzwerkablaufverfolgung
Dieser Austausch wird unabhängig von der Login Timeout
Einstellung im Verbindungszeichenfolge 1 Sekunde zugewiesen.
- Die Client-IP-Adresse ist
10.10.10.10
- Die Server-IP-Adresse ist
10.10.10.120
Schritt 1. TCP-Drei-Wege-Handshake
Alle TCP-Unterhaltungen beginnen mit einem SYN
Paket (S
Flagsatz), das vom Client an den Server gesendet wird. In Frame 6127
verwendet der Client einen kurzlebigen Port (dynamisch vom Betriebssystem zugewiesen) und stellt in diesem Fall eine Verbindung 1433
mit dem Serverport sicher. Der Server antwortet mit seinem eigenen SYN
Paket, bei dem auch das ACK
Flag festgelegt ist. Schließlich antwortet der Client mit einem ACK
Paket, um dem Server mitzuteilen, dass es sein SYN
Paket empfangen hat.
In diesem Schritt wird eine grundlegende TCP-Verbindung hergestellt, und zwar auf die gleiche Weise wie ein telnet
Befehl. Das Betriebssystem vermittelt diesen Teil der Unterhaltung. An dieser Stelle wissen der Client und der Server nichts übereinander.
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=
In diesem Schritt sind die [Bad CheckSum]
Warnungen gutartig und ein Indikator, dass die Prüfsummenabladung aktiviert ist. Das heißt, sie werden auf einer niedrigeren Ebene im Netzwerkstapel hinzugefügt, als die Ablaufverfolgung übernommen wird. Wenn keine anderen Informationen vorhanden sind, gibt diese Warnung an, ob die Netzwerkablaufverfolgung auf dem Client oder auf dem Server ausgeführt wurde. In diesem Fall wird sie im ursprünglichen SYN
Paket angezeigt, sodass die Ablaufverfolgung auf dem Client übernommen wurde.
Schritt 2. Fahrer-Handshake
Sowohl der Clienttreiber als auch sql Server müssen sich ein wenig übereinander informieren. In diesem Handshake sendet der Treiber einige Informationen und Anforderungen an den Server. Diese Informationen umfassen, ob Datenpakete verschlüsselt werden sollen, ob mehrere aktive Resultsets (MARS), dessen Versionsnummer verwendet werden sollen, ob Verbundauthentifizierung, Verbindungs-GUID usw. verwendet werden soll.
Der Server antwortet mit seinen Informationen, z. B. ob er eine Authentifizierung erfordert. Diese Sequenz geschieht, bevor eine Art von Sicherheitsverhandlung ausgeführt wird.
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
Schritt 3. SSL/TLS Handshake
Der SSL/TLS-Handshake beginnt mit dem Client Hello-Paket und dann mit dem Server Hello-Paket sowie einigen zusätzlichen Paketen im Zusammenhang mit Secure Channel. In diesem Schritt wird der Sicherheitsschlüssel für die Verschlüsselung von Paketen ausgehandelt. Normalerweise ist nur das Anmeldepaket verschlüsselt, aber der Client oder der Server kann auch Datenpakete verschlüsselt werden. Die Auswahl der TLS-Version erfolgt in dieser Phase der Anmeldung. Der Client oder Server kann die Verbindung in dieser Phase schließen, wenn die TLS-Versionen nicht aneinander ausgerichtet sind oder keine Verschlüsselungssammlungen gemeinsam haben.
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
Schritt 4. Anmeldepaket
Dieses Paket ist verschlüsselt und kann je nach Netzwerkparser als SSL Application Data
oder TDS:Data
, je nach Netzwerkparser, angezeigt werden. Wenn alle Pakete nach diesem Schritt auch als SSL Application Data
angezeigt werden, wird die Verbindung verschlüsselt.
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
Schritt 5. Anmeldebestätigung
Andernfalls wird ein Antwortpaket angezeigt, das entweder die Anmeldung bestätigt (das Anmeldetoken ACK
hat) oder eine Login Failed
Fehlermeldung an den Client zurückgibt.
Nachfolgend finden Sie ein Beispiel dafür, was Sie in den Paket hexadezimalen Daten für eine erfolgreiche Anmeldung sehen können:
.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
Schritt 6. Ausführen eines Befehls und Lesen der Antwort
Befehle werden entweder als Paket TDS:SQLBatch
oder als TDS:RPCRequest
Paket gesendet. Der frühere Führt einfache Transact-SQL-Anweisungen aus, und letztere führt gespeicherte Prozeduren aus. Möglicherweise werden TCP-Fortsetzungspakete angezeigt, wenn der Befehl lang ist, oder im Antwortpaket, wenn mehr als einige Zeilen zurückgegeben werden.
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=
Schritt 7. TCP-Vier-Wege-Schließen von Handshake
Microsoft-Treiber verwenden den vierwegigen Handshake zum Schließen von Verbindungen. Viele Drittanbietertreiber setzen die Verbindung einfach zurück, um sie zu schließen, wodurch es schwieriger ist, zwischen einer normalen und einer ungewöhnlichen Schließung zu unterscheiden.
Der vierwegige Handshake besteht aus dem Client, der ein FIN
Paket an den Server sendet, auf den der Server mit einem ACK
antwortet. Der Server sendet dann sein eigenes FIN
Paket, das der Client bestätigt (ACK
).
Wenn der Server zuerst ein Paket sendet, handelt es sich um ein FIN
abnormales Schließen, das am häufigsten im SSL/TLS-Handshake zu sehen ist, wenn der Client und der Server den sicheren Kanal nicht aushandeln können.
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=
Dieser Prozess beschreibt den Authentifizierungsprozess, insbesondere den Vergleich der SQL-Authentifizierungssequenz mit dem Hinzufügen eines SSPI-Pakets. Im Beispiel für die Netzwerkablaufverfolgung werden die folgenden Schritte beschrieben:
- TCP-Drei-Wege-Handshake
- Fahrer-Handshake
- SSL/TLS Handshake
- Anmelden des Paketaustauschs
- SSPI-Paketübertragung
- Anmeldebestätigung
- TCP-Vier-Wege-Schließen von Handshake
Beispiel für die Netzwerkablaufverfolgung
Diese Anmeldesequenz ähnelt der SQL-Authentifizierungssequenz. Das Hinzufügen des SSPI-Pakets ist der große Unterschied, ist jedoch schwer zu erkennen, es sei denn, Sie erweitern seine Eigenschaften. Gelegentlich sehen Sie möglicherweise mehr als ein SSPI-Paket.
Der Client antwortet dann mit Anmeldeinformationen, die der Server am Ende mit dem Domänencontroller bestätigt.
Dieser Austausch wird unabhängig von der Login Timeout
Einstellung im Verbindungszeichenfolge 1 Sekunde zugewiesen.
- Die Client-IP-Adresse ist
10.10.10.10
- Die Server-IP-Adresse ist
10.10.10.20
Schritt 1. TCP-Drei-Wege-Handshake
In diesem Schritt wird eine Verbindung zwischen dem Client und dem Server über TCP hergestellt. Es umfasst SYN
, SYN-ACK
und ACK
Pakete, um Sequenznummern zu synchronisieren und Kommunikation herzustellen.
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
In diesem Schritt sind die [Bad CheckSum]
Warnungen gutartig und ein Indikator, dass die Prüfsummenabladung aktiviert ist. Das heißt, sie werden auf einer niedrigeren Ebene im Netzwerkstapel hinzugefügt, als die Ablaufverfolgung übernommen wird. Wenn keine anderen Informationen vorhanden sind, gibt diese Warnung an, ob die Netzwerkablaufverfolgung auf dem Client oder auf dem Server ausgeführt wurde. In diesem Fall wird sie im ursprünglichen SYN
Paket angezeigt, sodass die Ablaufverfolgung auf dem Client übernommen wurde.
Schritt 2. Fahrer-Handshake
Dieser Schritt umfasst den Austausch von TDS-Paketen (Tabellarische Datenstrom) zwischen Client und Server, um Parameter für die Kommunikation festzulegen.
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
Schritt 3. SSL/TLS Handshake
Hier setzen der Client und der Server einen sicheren Handshake ein, um eine verschlüsselte Verbindung herzustellen. Dieser Vorgang umfasst mehrere Pakete, einschließlich Client Hello, Server Hello, Zertifikataustausch und Verschlüsselungsänderungsspezifikationen.
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
Schritt 4. Anmeldepaket
Der Client sendet ein TDS-Paket mit Anmeldeinformationen an den Server.
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
Schritt 5. SSPI-Paketübertragung
Dieses Paket enthält SSPI-Token (Security Support Provider Interface), das die Authentifizierung mithilfe von Kerberos angibt. Die Eigenschaften werden erweitert, um Tokendaten anzuzeigen.
Die folgende Ausgabe zeigt das SSPI-Paket mit erweiterten Paketeigenschaften.
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:
Schritt 6. Anmeldebestätigung und Bestätigung
Der Server antwortet mit einem TDS-Paket, das die Anmeldung bestätigt und den Empfang der Daten bestätigt.
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
Schritt 7. TCP-Vier-Wege-Schließen von Handshake
Schließlich schließt der Client und der Server die Verbindung ordnungsgemäß mithilfe FIN
und ACK
Pakete.
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
Das Vorhandensein des SSPI-Pakets unterscheidet diesen Anmeldevorgang von der SQL-Authentifizierung. Die Identifizierung kann jedoch eine Erweiterung der Paketeigenschaften erfordern, insbesondere, wenn mehrere SSPI-Pakete ausgetauscht werden.
Dieser Prozess beschreibt den Authentifizierungsprozess, insbesondere den Vergleich der SQL-Authentifizierungssequenz mit dem Hinzufügen von NTLM-Abfrage- und Antwortpaketen. Im Beispiel für die Netzwerkablaufverfolgung werden die folgenden Schritte beschrieben:
- TCP-Drei-Wege-Handshake
- Fahrer-Handshake
- SSL/TLS Handshake
- Anmelden des Paketaustauschs
- NTLM-Abfrage- und Antwortpakete
- Anmeldebestätigung
- Command execution
Beispiel für die Netzwerkablaufverfolgung
Der Unterschied zwischen dieser Anmeldesequenz und der SQL-Authentifizierungssequenz ist das Hinzufügen von zwei Paketen.
Der Client antwortet dann mit Anmeldeinformationen, die der Server am Ende mit dem Domänencontroller bestätigt.
Dieser Austausch wird unabhängig von der Login Timeout
Einstellung im Verbindungszeichenfolge 1 Sekunde zugewiesen.
- Die Client-IP-Adresse ist
10.10.10.120
- Die Server-IP-Adresse ist
10.10.10.55
Schritt 1. TCP-Drei-Wege-Handshake
In diesem Schritt wird eine Verbindung zwischen dem Client und dem Server über TCP hergestellt. Es umfasst SYN
, SYN-ACK
und ACK
Pakete, um Sequenznummern zu synchronisieren und Kommunikation herzustellen.
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=
In diesem Schritt sind die [Bad CheckSum]
Warnungen gutartig und ein Indikator, dass die Prüfsummenabladung aktiviert ist. Das heißt, sie werden auf einer niedrigeren Ebene im Netzwerkstapel hinzugefügt, als die Ablaufverfolgung übernommen wird. Wenn keine anderen Informationen vorhanden sind, gibt diese Warnung an, ob die Netzwerkablaufverfolgung auf dem Client oder auf dem Server ausgeführt wurde. In diesem Fall wird sie im ursprünglichen SYN
Paket angezeigt, sodass die Ablaufverfolgung auf dem Client übernommen wurde.
Schritt 2. Fahrer-Handshake
Dieser Schritt umfasst den Austausch von TDS-Paketen (Tabellarische Datenstrom) zwischen Client und Server, um Parameter für die Kommunikation festzulegen.
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
Schritt 3. SSL/TLS Handshake
Hier setzen der Client und der Server einen sicheren Handshake ein, um eine verschlüsselte Verbindung herzustellen. Dieser Vorgang umfasst mehrere Pakete, einschließlich Client Hello, Server Hello, Zertifikataustausch und Verschlüsselungsänderungsspezifikationen.
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
Schritt 4. Anmeldepaket
Der Client sendet ein TDS-Paket mit Anmeldeinformationen an den Server.
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
Schritt 5. NTLM-Abfrage- und Antwortpakete
Das NTLM-Abfragepaket wird vom Server an den Client gesendet, nachdem der Client das Anmeldepaket gesendet hat.
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 {
Schritt 6. Anmeldebestätigung
Der Server antwortet mit einem TDS-Paket, das die Anmeldung bestätigt und den Empfang der Daten bestätigt.
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,
Schritt 7. Ausführen von Befehlen
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
Die Verbindung kann mit einem Timeout fehlschlagen, was aus einem der folgenden Gründe resultiert:
- ein threadgehungrter SQL Server
- mehrere gleichzeitige Anmeldeanforderungen, die zur Authentifizierung in der Warteschlange mit dem Domänencontroller führen
- ein Domänencontroller an einem anderen geografischen Standort
- ein langsamer oder nicht reagierender Domänencontroller
In diesem Abschnitt wird beschrieben, wie Sie eine MARS-Verbindung aus den folgenden Paketen ermitteln können:
SMP:SYN
startet eine neue Sitzung
SMP:ACK
erkennt Datenpakete an
SMP:FIN
beendet eine Sitzung
Die folgenden Ablaufverfolgungsbeispiele zeigen die verschiedenen Pakete.
- Die Client-IP-Adresse ist
10.10.10.10
- Die Server-IP-Adresse ist
10.10.10.22
Öffnen einer neuen MARS-Verbindung
In der folgenden Beispielausgabe wird davon ausgegangen, dass die folgenden Schritte bereits abgeschlossen sind, wobei die NTLM-Authentifizierung verwendet wird. MARS kann auch mit Kerberos- und SQL-Authentifizierung verwendet werden.
- TCP-Drei-Wege-Handshake
- Fahrer-Handshake
- SSL/TLS Handshake
- Anmelden des Paketaustauschs
- NTLM-Abfrage- und Antwortpakete
- Anmeldebestätigung
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=.
Erstellen einer neuen MARS-Sitzung
Erstellen Sie nach dem Herstellen der Verbindung eine neue MARS-Sitzung (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
Ausführen verschiedener Befehle in der Sitzung
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=...
Beispiel für das SMP:ACK-Paket
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 =