Tento článek představuje několik příkladů trasování sítě, které zachycuje různé sekvence handshake a ověřování během procesu vytváření připojení TCP (Transmission Control Protocol) mezi klientskou aplikací a databázovým strojem SQL Serveru (server).
Tento článek popisuje také připojení MARS (Multiple Active Result Sets). MARS je funkce SQL Serveru představená v systému SQL Server 2005 (9.x), která umožňuje spouštění více příkazů na připojení, aniž by bylo nutné před spuštěním druhého příkazu vyčistit výsledky z prvního příkazu. MARS se dosahuje prostřednictvím multiplexování relací (SMUX).
Tento proces popisuje normální proces přihlášení pomocí ověřování SQL, který ukazuje jednotlivé kroky konverzace mezi klientem a serverem prostřednictvím podrobné analýzy trasování sítě. Příklad trasování sítě popisuje následující kroky:
- Třífázové navázání spojení TCP
- Navázání spojení s ovladačem
- Navázání spojení SSL/TLS
- Výměna přihlašovacích paketů
- Potvrzení přihlášení
- Spuštění příkazu a přečtení odpovědi
- Čtyřkrokové ukončení handshake TCP
Příklad trasování sítě
Této výměně je přidělena 1 sekunda bez ohledu na nastavení Login Timeout
v rámci připojovacího řetězce.
- IP adresa klienta je
10.10.10.10
- IP adresa serveru je
10.10.10.120
Krok 1. Tříúrovňové navázání spojení TCP
Všechny konverzace TCP začínají paketem SYN
(sada příznakůS
) odesílaným z klienta na server. V frame 6127
používá klient dočasný port (dynamicky přiřazený operačním systémem) a připojuje se k portu serveru, v tomto případě port 1433
. Server odpoví vlastním paketem SYN
s nastaveným příznakem ACK
. Klient nakonec odpoví paketem ACK
, aby server věděl, že obdržel svůj paket SYN
.
Tento krok vytvoří základní připojení TCP stejným způsobem jako příkaz telnet
. Operační systém zprostředkuje tuto část konverzace. V tuto chvíli klient a server o sobě nic neví.
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=
V tomto kroku jsou upozornění [Bad CheckSum]
neškodná a jsou indikátorem, že kontrolní součet je povolený. To znamená, že jsou přidávány na nižší úroveň v zásobníku sítě, než kde se provádí trasování. V případě absence dalších informací toto upozornění značí, jestli bylo trasování sítě pořízeno na klientovi nebo serveru. V tomto případě se zobrazí na počátečním paketu SYN
, takže trasování bylo pořízeno na straně klienta.
Krok 2. Navázání spojení ovladače
Klientský ovladač i SQL Server musí o sobě něco vědět. V tomto procesu handshake ovladač odešle na server určité informace a požadavky. Tyto informace zahrnují, jestli se mají šifrovat datové pakety, jestli se má použít více aktivních sad výsledků (MARS), číslo verze, jestli se má použít federované ověřování, identifikátor GUID připojení atd.
Server odpoví svými informacemi, například jestli vyžaduje ověření. K této sekvenci dochází před provedením jakéhokoli druhu jednání o bezpečnosti.
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
Krok 3. Protokol SSL/TLS - navázání spojení
Metoda handshake protokolu SSL/TLS začíná paketem Hello klienta a potom paketem Hello serveru a některými dalšími pakety souvisejícími se zabezpečeným kanálem. V tomto kroku je klíč zabezpečení vyjednáván pro šifrování paketů. Za normálních okolností je zašifrovaný jenom přihlašovací paket, ale klient nebo server můžou vyžadovat šifrování datových paketů. Volba verze protokolu TLS probíhá v této fázi přihlášení. Klient nebo server může připojení v této fázi zavřít, pokud se verze TLS nerovnají nebo nemají společné žádné šifrovací sady.
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
Krok 4. Přihlašovací paket
Tento paket je zašifrovaný a může se zobrazovat jako SSL Application Data
nebo TDS:Data
v závislosti na analyzátoru sítě. Pokud se všechny pakety po tomto kroku zobrazí také jako SSL Application Data
, připojení se zašifruje.
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
Krok 5. Potvrzení přihlášení
Jinak se zobrazí paket odpovědi, který buď potvrdí přihlášení (má přihlašovací ACK
token), nebo klientovi vrátí chybovou zprávu Login Failed
.
Tady je příklad, co se může zobrazit v datech paketů v šestnáctkové soustavě pro úspěšné přihlášení:
.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
Krok 6. Spuštění příkazu a přečtení odpovědi
Příkazy se posílají jako TDS:SQLBatch
nebo jako paket TDS:RPCRequest
. První spustí prosté Transact-SQL příkazy a druhý spustí uložené procedury. Pakety pokračování protokolu TCP se můžou zobrazit, pokud je příkaz dlouhý, nebo v paketu Odpovědi, pokud se vrátí více než několik řádků.
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=
Krok 7. Uzavírací handshake TCP se čtyřmi kroky
Ovladače Microsoft používají k zavření připojení čtyřnásobný handshake. Mnoho ovladačů třetích stran resetuje připojení, aby je uzavřelo, což ztěžuje rozlišení mezi normálním a neobvyklým uzavřením.
Čtyřcestný handshake se skládá z toho, že klient odesílá paket FIN
serveru, na který server reaguje paketem ACK
. Server pak odešle vlastní FIN
paket, který klient potvrdí (ACK
).
Pokud server nejprve odešle paket FIN
, jedná se o neobvyklý závěr, který se nejčastěji vyskytuje v metodě handshake protokolu SSL/TLS, pokud klient a server nemohou vyjednat zabezpečený kanál.
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=
Tento proces popisuje proces ověřování, konkrétně porovnávání sekvence ověřování SQL s přidáním paketu SSPI. Příklad trasování sítě popisuje následující kroky:
- Třícestné handshake TCP
- Synchronizace ovladače
- Handshake protokolu SSL/TLS
- Výměna přihlašovacích paketů
- Přenos paketů SSPI
- Potvrzení přihlášení
- Čtyřcestný protokol TCP handshake pro ukončení
Příklad trasování sítě
Tato sekvence přihlášení vypadá podobně jako sekvence ověřování SQL. Přidání paketu SSPI je velký rozdíl, ale je těžké to říci, pokud nerozbalíte jeho vlastnosti. Někdy se může zobrazit více než jeden paket SSPI.
Klient pak odpoví přihlašovacími údaji, které server potvrdí s řadičem domény na své straně.
Této výměně je přidělena 1 sekunda nezávisle na nastavení Login Timeout
v připojovacím řetězci.
- IP adresa klienta je
10.10.10.10
- IP adresa serveru je
10.10.10.20
Krok 1. Třífázové navázání spojení TCP
V tomto kroku se naváže připojení mezi klientem a serverem přes protokol TCP. Zahrnuje SYN
, SYN-ACK
a ACK
pakety pro synchronizaci pořadových čísel a navázání komunikace.
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
V tomto kroku jsou upozornění [Bad CheckSum]
neškodná a jsou indikátorem, že offload kontrolního součtu je povolený. To znamená, že se přidávají na nižší úrovni zásobníku sítě, než se provádí trasování. V případě absence dalších informací toto upozornění značí, jestli bylo trasování sítě pořízeno na klientovi nebo serveru. V tomto případě se zobrazí na počátečním SYN
paketu, takže trasování bylo pořízeno na straně klienta.
Krok 2. Navázání spojení ovladače
Tento krok zahrnuje výměnu paketů TDS (Tabular Data Stream) mezi klientem a serverem za účelem vytvoření parametrů pro komunikaci.
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
Krok 3. Protokol SSL/TLS handshake
V tomto případě se klient a server zapojují do zabezpečeného handshake k navázání šifrovaného připojení. Tento proces zahrnuje více paketů, včetně Client Hello, Server Hello, výměny certifikátů a specifikace změny šifry.
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
Krok 4. Přihlašovací paket
Klient odešle paket TDS obsahující přihlašovací údaje na 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
Krok 5. Přenos paketů SSPI
Tento paket nese token SSPI (Security Support Provider Interface) označující ověřování pomocí protokolu Kerberos. Jeho vlastnosti jsou rozšířeny, aby zobrazily data tokenu.
Následující výstup ukazuje paket SSPI s rozbalenými vlastnostmi paketů.
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:
Krok 6. Potvrzení a uznání přihlášení
Server odpoví paketem TDS potvrzujícím přihlášení a potvrzením přijetí dat.
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
Krok 7. Čtyřcestné ukončovací handshake TCP
Klient a server nakonec připojení elegantně zavře pomocí FIN
a ACK
paketů.
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
Přítomnost paketu SSPI rozlišuje tento proces přihlášení od ověřování SQL. Identifikace však může vyžadovat rozšíření vlastností paketů, zejména při výměně více paketů SSPI.
Tento proces popisuje proces ověřování, konkrétně porovnávání sekvence ověřování SQL s přidáním paketů výzvy NTLM a odpovědí. Příklad trasování sítě popisuje následující kroky:
- TCP handshake se třemi kroky
- Navázání komunikace ovladače
- Handshake protokolu SSL/TLS
- Výměna přihlašovacích paketů
- Protokol NTLM – výzvy a pakety odpovědí
- Potvrzení přihlášení
- Provádění příkazů
Příklad trasování sítě
Rozdíl mezi touto sekvencí přihlášení a sekvencí ověřování SQL je přidání dvou paketů.
Klient poté odpoví přihlašovacími údaji, které server ověří u řadiče domény na své straně.
Této výměně je přidělena 1 sekunda bez ohledu na nastavení Login Timeout
v připojovacím řetězci.
- IP adresa klienta je
10.10.10.120
- IP adresa serveru je
10.10.10.55
Krok 1. Třícestný TCP handshake
V tomto kroku se naváže připojení mezi klientem a serverem přes protokol TCP. Zahrnuje SYN
, SYN-ACK
a ACK
pakety pro synchronizaci pořadových čísel a navázání komunikace.
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=
V tomto kroku jsou upozornění [Bad CheckSum]
neškodná a jsou indikátorem, že kontrolní součet je povolený. To znamená, že se přidávají na nižší úrovni v zásobníku sítě, než bylo provedeno trasování. V případě absence dalších informací toto upozornění značí, jestli bylo trasování sítě pořízeno na klientovi nebo serveru. V tomto případě se zobrazí na počátečním SYN
datovém balíčku, takže trasování bylo pořízeno na straně klienta.
Krok 2. Navázání spojení ovladače
Tento krok zahrnuje výměnu paketů TDS (Tabular Data Stream) mezi klientem a serverem za účelem vytvoření parametrů pro komunikaci.
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
Krok 3. SSL/TLS handshake
V tomto případě se klient a server zapojují do zabezpečeného handshake k navázání šifrovaného připojení. Tento proces zahrnuje více paketů, včetně Client Hello, Server Hello, výměny certifikátů a specifikace změn šifrování.
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
Krok 4. Přihlašovací paket
Klient odešle paket TDS obsahující přihlašovací údaje na 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
Krok 5. Protokol NTLM – výzvy a pakety odpovědí
Paket výzvy NTLM se odešle ze serveru klientovi poté, co klient odešle přihlašovací paket.
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 {
Krok 6. Potvrzení přihlášení
Server odpoví paketem TDS potvrzujícím přihlášení a potvrzením přijetí dat.
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,
Krok 7. Spuštění příkazu
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
Připojení může selhat s vypršením časového limitu z některého z těchto důvodů:
- hladověný SQL Server s vlákny
- několik souběžných žádostí o přihlášení vedoucích k frontovému ověření u řadiče domény
- řadič domény v jiném zeměpisném umístění
- pomalý nebo nereagující řadič domény
Tato část popisuje, jak zjistit připojení MARS z následujících paketů:
-
SMP:SYN
spustí novou relaci.
-
SMP:ACK
bere na vědomí datové pakety
-
SMP:FIN
ukončí relaci.
Následující příklady trasování paketů ukazují různé pakety.
- IP adresa klienta je
10.10.10.10
- IP adresa serveru je
10.10.10.22
Otevření nového připojení MARS
Následující příklad výstupu předpokládá, že následující kroky jsou již dokončeny pomocí ověřování NTLM. MARS lze také použít s ověřováním Kerberos a SQL.
- Třícestný handshake TCP
- Propojení ovladače
- Navázání spojení SSL/TLS
- Výměna přihlašovacích paketů
- Protokol NTLM – výzvy a pakety odpovědí
- Potvrzení přihlášení
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=.
Vytvořte novou relaci MARS
Po vytvoření připojení vytvořte novou relaci 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
Spouštění různých příkazů v relaci
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=...
Příklad paketu 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 =