Questo articolo presenta diversi esempi di traccia di rete che acquisisce varie sequenze di handshake e di autenticazione durante il processo di definizione della connessione TCP (Transmission Control Protocol) tra un'applicazione client e sql Server motore di database (il server).
Questo articolo descrive anche le connessioni MARS (Multiple Active Result Sets). MARS è una funzionalità di SQL Server, introdotta con SQL Server 2005 (9.x), che consente l'esecuzione di più comandi in una connessione senza dover pulire i risultati dal primo comando, prima di eseguire il secondo comando. MARS viene ottenuto tramite multiplexing di sessione (SMUX).
Questo processo descrive un normale processo di accesso tramite l'autenticazione SQL, che mostra ogni passaggio della conversazione tra il client e il server tramite un'analisi dettagliata della traccia di rete. La traccia di rete di esempio delinea i passaggi seguenti:
- Handshake a tre vie TCP
- Handshake driver
- Handshake SSL/TLS
- Scambio di pacchetti di accesso
- Conferma dell'accesso
- Eseguire un comando e leggere la risposta
- Handshake di chiusura a quattro vie TCP
Traccia di rete di esempio
Questo scambio viene allocato 1 secondo indipendentemente dall'impostazione Login Timeout
nel stringa di connessione.
- L'indirizzo IP del client è
10.10.10.10
- L'indirizzo IP del server è
10.10.10.120
Passaggio 1: Handshake a tre vie TCP
Tutte le conversazioni TCP iniziano con un SYN
pacchetto (S
set di flag) inviato dal client al server. In Frame 6127
il client usa una porta temporanea (assegnata dinamicamente dal sistema operativo) e si connette alla porta del server, in questo caso la porta 1433
. Anche il server risponde con il proprio SYN
pacchetto con il ACK
flag impostato. Infine, il client risponde con un ACK
pacchetto per comunicare al server che ha ricevuto il pacchetto SYN
.
Questo passaggio stabilisce una connessione TCP di base, allo stesso modo di un telnet
comando. Il sistema operativo media questa parte della conversazione. A questo punto, il client e il server non sanno nulla tra loro.
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 questo passaggio, gli avvisi sono benigni e sono un indicatore che l'offload [Bad CheckSum]
checksum è abilitato. Ovvero, vengono aggiunti a un livello inferiore nello stack di rete rispetto all'analisi eseguita. In assenza di altre informazioni, questo avviso indica se la traccia di rete è stata eseguita sul client o sul server. In questo caso, viene visualizzato nel pacchetto iniziale SYN
, quindi la traccia è stata eseguita sul client.
Passaggio 2. Handshake driver
Sia il driver client che SQL Server devono conoscere un po' l'uno sull'altro. In questo handshake, il driver invia alcune informazioni e requisiti al server. Queste informazioni includono se crittografare i pacchetti di dati, se usare mars (Multiple Active Result Sets), il relativo numero di versione, se usare l'autenticazione federata, il GUID di connessione e così via.
Il server risponde con le relative informazioni, ad esempio se richiede l'autenticazione. Questa sequenza si verifica prima dell'esecuzione di qualsiasi tipo di negoziazione di sicurezza.
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
Passaggio 3. Handshake SSL/TLS
L'handshake SSL/TLS inizia con il pacchetto Client Hello e quindi il pacchetto Server Hello, oltre ad alcuni pacchetti aggiuntivi correlati a Secure Channel. Questo passaggio consente di negoziare la chiave di sicurezza per crittografare i pacchetti. In genere, solo il pacchetto di accesso è crittografato, ma anche il client o il server potrebbe richiedere la crittografia dei pacchetti di dati. La scelta della versione di TLS avviene in questa fase dell'account di accesso. Il client o il server può chiudere la connessione in questa fase se le versioni TLS non sono in linea o non hanno pacchetti di crittografia in comune.
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
Passaggio 4. Pacchetto di accesso
Questo pacchetto è crittografato e può essere visualizzato come SSL Application Data
o TDS:Data
, a seconda del parser di rete. Se anche tutti i pacchetti dopo questo passaggio vengono visualizzati come SSL Application Data
, la connessione viene crittografata.
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
Passaggio 5. Conferma dell'accesso
In caso contrario, viene visualizzato un pacchetto di risposta che conferma l'accesso (con il token di accesso ACK
) o restituisce un Login Failed
messaggio di errore al client.
Di seguito è riportato un esempio di ciò che è possibile visualizzare nei dati esadecimali dei pacchetti per un account di accesso riuscito:
.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
Passaggio 6. Eseguire un comando e leggere la risposta
I comandi vengono inviati come pacchetto TDS:SQLBatch
o TDS:RPCRequest
. Il primo esegue istruzioni Transact-SQL semplici e quest'ultimo esegue stored procedure. È possibile che vengano visualizzati pacchetti di continuazione TCP se il comando è lungo o nel pacchetto Response se vengono restituite più righe.
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=
Passaggio 7. Handshake di chiusura a quattro vie TCP
I driver Microsoft usano l'handshake a quattro vie per chiudere le connessioni. Molti driver di terze parti reimpostano semplicemente la connessione per chiuderla, rendendo più difficile distinguere tra una chiusura normale e anomala.
L'handshake a quattro vie consiste nell'inviare un FIN
pacchetto al server, a cui il server risponde con un oggetto ACK
. Il server invia quindi il proprio FIN
pacchetto, che il client riconosce (ACK
).
Se il server invia prima un pacchetto, si tratta di una FIN
chiusura anomala, più comunemente visualizzata nell'handshake SSL/TLS se il client e il server non possono negoziare il canale sicuro.
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=
Questo processo descrive il processo di autenticazione, confrontando in particolare la sequenza di autenticazione SQL con l'aggiunta di un pacchetto SSPI. La traccia di rete di esempio delinea i passaggi seguenti:
- Handshake a tre vie TCP
- Handshake driver
- Handshake SSL/TLS
- Scambio di pacchetti di accesso
- Trasmissione di pacchetti SSPI
- Conferma dell'accesso
- Handshake di chiusura a quattro vie TCP
Traccia di rete di esempio
Questa sequenza di accesso è simile alla sequenza di autenticazione SQL. L'aggiunta del pacchetto SSPI è la grande differenza, ma è difficile da capire a meno che non si espandono le relative proprietà. In alcuni casi, è possibile che vengano visualizzati più pacchetti SSPI.
Il client risponde quindi con le credenziali, che il server conferma con il controller di dominio alla fine.
Questo scambio viene allocato 1 secondo indipendentemente dall'impostazione Login Timeout
nel stringa di connessione.
- L'indirizzo IP del client è
10.10.10.10
- L'indirizzo IP del server è
10.10.10.20
Passaggio 1: Handshake a tre vie TCP
Questo passaggio consente di stabilire una connessione tra il client e il server tramite TCP. Include SYN
pacchetti , SYN-ACK
e ACK
per sincronizzare i numeri di sequenza e stabilire la comunicazione.
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 questo passaggio, gli avvisi sono benigni e sono un indicatore che l'offload [Bad CheckSum]
checksum è abilitato. Ovvero, vengono aggiunti a un livello inferiore nello stack di rete rispetto all'analisi eseguita. In assenza di altre informazioni, questo avviso indica se la traccia di rete è stata eseguita sul client o sul server. In questo caso, viene visualizzato nel pacchetto iniziale SYN
, quindi la traccia è stata eseguita sul client.
Passaggio 2. Handshake driver
Questo passaggio implica lo scambio di pacchetti TDS (Flusso di dati tabulari) tra il client e il server per stabilire parametri per la comunicazione.
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
Passaggio 3. Handshake SSL/TLS
In questo caso, il client e il server interagiscono con un handshake sicuro per stabilire una connessione crittografata. Questo processo include più pacchetti, tra cui Le specifiche di modifica client Hello, Server Hello, scambio di certificati e crittografia.
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
Passaggio 4. Pacchetto di accesso
Il client invia un pacchetto TDS contenente informazioni di accesso al 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
Passaggio 5. Trasmissione di pacchetti SSPI
Questo pacchetto contiene il token SSPI (Security Support Provider Interface), che indica l'autenticazione tramite Kerberos. Le relative proprietà vengono espanse per visualizzare i dati del token.
L'output seguente mostra il pacchetto SSPI, con proprietà del pacchetto espanse.
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:
Passaggio 6. Conferma e conferma dell'accesso
Il server risponde con un pacchetto TDS che conferma l'accesso e conferma la ricezione dei dati.
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
Passaggio 7. Handshake di chiusura a quattro vie TCP
Infine, il client e il server chiudono normalmente la connessione usando FIN
pacchetti e 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 presenza del pacchetto SSPI distingue questo processo di accesso dall'autenticazione SQL. Tuttavia, l'identificazione potrebbe richiedere l'espansione delle proprietà dei pacchetti, in particolare quando vengono scambiati più pacchetti SSPI.
Questo processo descrive il processo di autenticazione, confrontando in particolare la sequenza di autenticazione SQL con l'aggiunta di pacchetti di richiesta e risposta NTLM. La traccia di rete di esempio delinea i passaggi seguenti:
- Handshake a tre vie TCP
- Handshake driver
- Handshake SSL/TLS
- Scambio di pacchetti di accesso
- Pacchetti di richiesta e risposta NTLM
- Conferma dell'accesso
- Esecuzione di comandi
Traccia di rete di esempio
La differenza tra questa sequenza di accesso e la sequenza di autenticazione SQL è l'aggiunta di due pacchetti.
Il client risponde quindi con le credenziali, che il server conferma con il controller di dominio alla fine.
Questo scambio viene allocato 1 secondo indipendentemente dall'impostazione Login Timeout
nel stringa di connessione.
- L'indirizzo IP del client è
10.10.10.120
- L'indirizzo IP del server è
10.10.10.55
Passaggio 1: Handshake a tre vie TCP
Questo passaggio consente di stabilire una connessione tra il client e il server tramite TCP. Include SYN
pacchetti , SYN-ACK
e ACK
per sincronizzare i numeri di sequenza e stabilire la comunicazione.
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 questo passaggio, gli avvisi sono benigni e sono un indicatore che l'offload [Bad CheckSum]
checksum è abilitato. Ovvero, vengono aggiunti a un livello inferiore nello stack di rete rispetto all'analisi eseguita. In assenza di altre informazioni, questo avviso indica se la traccia di rete è stata eseguita sul client o sul server. In questo caso, viene visualizzato nel pacchetto iniziale SYN
, quindi la traccia è stata eseguita sul client.
Passaggio 2. Handshake driver
Questo passaggio implica lo scambio di pacchetti TDS (Flusso di dati tabulari) tra il client e il server per stabilire parametri per la comunicazione.
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
Passaggio 3. Handshake SSL/TLS
In questo caso, il client e il server interagiscono con un handshake sicuro per stabilire una connessione crittografata. Questo processo include più pacchetti, tra cui Le specifiche di modifica client Hello, Server Hello, scambio di certificati e crittografia.
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
Passaggio 4. Pacchetto di accesso
Il client invia un pacchetto TDS contenente informazioni di accesso al 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
Passaggio 5. Pacchetti di richiesta e risposta NTLM
Il pacchetto di verifica NTLM viene inviato dal server al client dopo che il client invia il pacchetto di accesso.
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 {
Passaggio 6. Conferma dell'accesso
Il server risponde con un pacchetto TDS che conferma l'accesso e conferma la ricezione dei dati.
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,
Passaggio 7. Eseguire 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 connessione può avere esito negativo con un timeout, risultante da uno dei motivi seguenti:
- SQL Server a entità di thread
- diverse richieste di accesso simultanee che comportano l'autenticazione in coda con il controller di dominio
- un controller di dominio in una posizione geografica diversa
- un controller di dominio lento o non risponde
Questa sezione descrive come determinare una connessione MARS dai pacchetti seguenti:
SMP:SYN
avvia una nuova sessione
SMP:ACK
riconosce i pacchetti di dati
SMP:FIN
termina una sessione
Negli esempi di traccia seguenti vengono illustrati i vari pacchetti.
- L'indirizzo IP del client è
10.10.10.10
- L'indirizzo IP del server è
10.10.10.22
Aprire una nuova connessione MARS
Nell'output di esempio seguente si presuppone che i passaggi seguenti siano già stati completati usando l'autenticazione NTLM. MARS può essere usato anche con Kerberos e l'autenticazione SQL.
- Handshake a tre vie TCP
- Handshake driver
- Handshake SSL/TLS
- Scambio di pacchetti di accesso
- Pacchetti di richiesta e risposta NTLM
- Conferma dell'accesso
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=.
Creare una nuova sessione MARS
Dopo aver stabilito la connessione, creare una nuova sessione 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
Eseguire vari comandi nella sessione
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=...
Esempio del pacchetto 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 =