Artikel ini menyajikan beberapa contoh jejak jaringan yang menangkap berbagai jabat tangan dan urutan autentikasi selama proses pembentukan koneksi Protokol Kontrol Transmisi (TCP) antara aplikasi klien dan Mesin Database SQL Server (server).
Artikel ini juga menjelaskan beberapa koneksi Active Result Sets (MARS). MARS adalah fitur SQL Server, diperkenalkan dengan SQL Server 2005 (9.x), yang memungkinkan beberapa perintah dijalankan pada koneksi tanpa harus membersihkan hasil dari perintah pertama, sebelum menjalankan perintah kedua. MARS dicapai melalui multipleks sesi (SMUX).
Proses ini menjelaskan proses masuk normal menggunakan autentikasi SQL, memperlihatkan setiap langkah percakapan antara klien dan server melalui analisis pelacakan jaringan terperinci. Contoh jejak jaringan menguraikan langkah-langkah berikut:
- Jabat tangan tiga arah TCP
- Jabat tangan pengemudi
- Jabat tangan SSL/TLS
- Pertukaran paket log masuk
- Konfirmasi masuk
- Menjalankan perintah dan membaca respons
- Jabat tangan penutup empat arah TCP
Contoh jejak jaringan
Pertukaran ini dialokasikan 1 detik, terlepas dari pengaturan Login Timeout dalam connection string.
- Alamat IP klien adalah
10.10.10.10
- Alamat IP server adalah
10.10.10.120
Langkah 1. Jabat tangan tiga arah TCP
Semua percakapan TCP dimulai dengan SYN paket (bendera S diatur) yang dikirim dari klien ke server. Dalam Bingkai 6127, klien menggunakan port ephemeral (ditetapkan secara dinamis oleh sistem operasi) dan terhubung ke port server, dalam hal ini port 1433. Server membalas dengan paketnya sendiri SYN dengan flag ACK yang juga diaktifkan. Akhirnya, klien merespons dengan ACK paket untuk memberi tahu server bahwa ia menerima paketnya SYN .
Langkah ini menetapkan koneksi TCP dasar, dengan cara yang sama seperti telnet perintah. Sistem operasi menengahi bagian percakapan ini. Pada titik ini, klien dan server tidak tahu apa-apa tentang satu sama lain.
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=
Dalam langkah ini, [Bad CheckSum] peringatan ini tidak membahayakan dan merupakan indikator bahwa pengalihmuatan checksum diaktifkan. Artinya, mereka ditambahkan pada lapisan yang lebih rendah di tumpukan jaringan dibandingkan tempat pelacakan diambil. Dengan tidak adanya informasi lain, peringatan ini menunjukkan apakah jejak jaringan diambil pada klien atau server. Dalam hal ini, muncul pada paket awal SYN, karena itu perekaman jejak dilakukan pada klien.
Langkah 2. Jabat tangan pengemudi
Baik driver klien maupun SQL Server perlu mengetahui sedikit tentang satu sama lain. Dalam jabat tangan ini, driver mengirimkan beberapa informasi dan persyaratan ke server. Informasi ini mencakup apakah akan mengenkripsi paket data, apakah akan menggunakan Beberapa Set Hasil Aktif (MARS), nomor versinya, apakah akan menggunakan autentikasi gabungan, GUID koneksi, dan sebagainya.
Server merespons dengan informasinya, seperti apakah memerlukan autentikasi. Urutan ini terjadi sebelum negosiasi keamanan dilakukan.
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
Langkah 3. Jabat tangan SSL/TLS
Jabat tangan SSL/TLS dimulai dengan paket Hello Klien dan kemudian paket Hello Server, ditambah beberapa paket tambahan yang terkait dengan Saluran Aman. Langkah ini adalah tempat kunci keamanan dinegosiasikan untuk mengenkripsi paket. Biasanya, hanya paket masuk yang dienkripsi, tetapi klien atau server juga dapat memerlukan paket data untuk dienkripsi. Memilih versi TLS terjadi pada tahap login ini. Klien atau server dapat menutup koneksi pada tahap ini jika versi TLS tidak berbaris, atau mereka tidak memiliki cipher suite yang sama.
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
Langkah 4. Paket masuk
Paket ini dienkripsi dan mungkin ditampilkan sebagai SSL Application Data atau TDS:Data, tergantung pada pengurai jaringan Anda. Jika semua paket setelah langkah ini juga ditampilkan sebagai SSL Application Data, koneksi dienkripsi.
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
Langkah 5. Konfirmasi masuk
Jika tidak, Anda akan melihat paket respons, yang mengonfirmasi login (memiliki token masuk ACK ), atau mengembalikan Login Failed pesan kesalahan kepada klien.
Berikut adalah contoh yang mungkin Anda lihat dalam data heksadesimal paket untuk login yang berhasil:
.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
Langkah 6. Menjalankan perintah dan membaca respons
Perintah dikirim sebagai TDS:SQLBatch paket atau TDS:RPCRequest . Yang pertama menjalankan pernyataan Transact-SQL biasa, dan yang terakhir menjalankan prosedur tersimpan. Anda mungkin melihat paket kelanjutan TCP jika perintahnya panjang, atau dalam paket Respons jika lebih dari beberapa baris dikembalikan.
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=
Langkah 7. Jabat tangan penutup empat arah TCP
Driver Microsoft menggunakan jabat tangan empat arah untuk menutup koneksi. Banyak driver pihak ketiga hanya mengatur ulang koneksi untuk menutupnya, sehingga lebih sulit untuk membedakan antara penutupan normal dan abnormal.
Jabat tangan empat arah terdiri dari FIN klien yang mengirim paket ke server, yang kemudian ditanggapi oleh server dengan ACK. Server kemudian mengirim paketnya sendiri FIN , yang diakui klien (ACK).
Jika server mengirim FIN paket terlebih dahulu, itu adalah penutupan abnormal, paling sering terlihat di jabat tangan SSL/TLS jika klien dan server tidak dapat menegosiasikan saluran aman.
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=
Proses ini menjelaskan proses autentikasi, khususnya membandingkan urutan autentikasi SQL dengan penambahan paket SSPI. Contoh jejak jaringan menguraikan langkah-langkah berikut:
- Jabat tangan tiga arah TCP
- Jabat tangan pengemudi
- Jabat tangan SSL/TLS
- Pertukaran paket log masuk
- Transmisi paket SSPI
- Konfirmasi masuk
- Jabat tangan penutup empat arah TCP
Contoh jejak jaringan
Urutan masuk ini terlihat mirip dengan urutan autentikasi SQL. Penambahan paket SSPI adalah perbedaan besar, tetapi sulit untuk membedakan kecuali Anda melihat propertinya lebih rinci. Terkadang, Anda mungkin melihat lebih dari satu paket SSPI.
Klien kemudian merespons dengan kredensial, yang dikonfirmasi server dengan pengendali domain di ujungnya.
Pertukaran ini dialokasikan 1 detik, terlepas dari pengaturan Login Timeout dalam connection string.
- Alamat IP klien adalah
10.10.10.10
- Alamat IP server adalah
10.10.10.20
Langkah 1. Jabat tangan tiga arah TCP
Langkah ini adalah tempat koneksi dibuat antara klien dan server melalui TCP. Ini melibatkan SYNpaket , SYN-ACK, dan ACK untuk menyinkronkan nomor urutan dan membangun komunikasi.
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
Dalam langkah ini, [Bad CheckSum] peringatan ini tidak membahayakan dan merupakan indikator bahwa pengalihmuatan checksum diaktifkan. Artinya, mereka ditambahkan pada lapisan yang lebih rendah di tumpukan jaringan dibandingkan tempat pelacakan diambil. Dengan tidak adanya informasi lain, peringatan ini menunjukkan apakah jejak jaringan diambil pada klien atau server. Dalam hal ini, muncul pada paket awal SYN, karena itu perekaman jejak dilakukan pada klien.
Langkah 2. Jabat tangan pengemudi
Langkah ini melibatkan pertukaran paket TDS (Aliran Data Tabular) antara klien dan server untuk membuat parameter untuk komunikasi.
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
Langkah 3. Jabat tangan SSL/TLS
Di sini, klien dan server terlibat dalam jabat tangan yang aman untuk membuat koneksi terenkripsi. Proses ini melibatkan beberapa paket termasuk Hello Klien, Halo Server, pertukaran sertifikat, dan spesifikasi perubahan sandi.
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
Langkah 4. Paket masuk
Klien mengirim paket TDS yang berisi informasi masuk ke 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
Langkah 5. Transmisi paket SSPI
Paket ini membawa token Antarmuka Penyedia Dukungan Keamanan (SSPI), menunjukkan autentikasi menggunakan Kerberos. Propertinya diperluas untuk mengungkapkan data token.
Output berikut menunjukkan paket SSPI, dengan properti paket diperluas.
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:
Langkah 6. Konfirmasi dan pengesahan login
Server merespons dengan paket TDS yang mengonfirmasi login dan mengakui penerimaan data.
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
Langkah 7. Jabat tangan penutup empat arah TCP
Akhirnya, klien dan server menutup koneksi secara sistematis menggunakan paket FIN dan 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
Kehadiran paket SSPI membedakan proses masuk ini dari autentikasi SQL. Namun, identifikasi mungkin memerlukan perluasan properti paket, terutama ketika beberapa paket SSPI ditukar.
Proses ini menjelaskan proses autentikasi, khususnya membandingkan urutan autentikasi SQL dengan penambahan paket tantangan dan respons NTLM. Contoh jejak jaringan menguraikan langkah-langkah berikut:
- Jabat tangan tiga arah TCP
- Jabat tangan pengemudi
- Jabat tangan SSL/TLS
- Pertukaran paket log masuk
- Paket tantangan dan respons NTLM
- Konfirmasi masuk
- Eksekusi perintah
Contoh jejak jaringan
Perbedaan antara urutan login ini dan urutan autentikasi SQL adalah penambahan dua paket.
Klien kemudian merespons dengan kredensial, yang dikonfirmasi server dengan pengendali domain di ujungnya.
Pertukaran ini dialokasikan 1 detik, terlepas dari pengaturan Login Timeout dalam connection string.
- Alamat IP klien adalah
10.10.10.120
- Alamat IP server adalah
10.10.10.55
Langkah 1. Jabat tangan tiga arah TCP
Langkah ini adalah tempat koneksi dibuat antara klien dan server melalui TCP. Ini melibatkan SYNpaket , SYN-ACK, dan ACK untuk menyinkronkan nomor urutan dan membangun komunikasi.
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=
Dalam langkah ini, [Bad CheckSum] peringatan ini tidak membahayakan dan merupakan indikator bahwa pengalihmuatan checksum diaktifkan. Artinya, mereka ditambahkan pada lapisan yang lebih rendah di tumpukan jaringan dibandingkan tempat pelacakan diambil. Dengan tidak adanya informasi lain, peringatan ini menunjukkan apakah jejak jaringan diambil pada klien atau server. Dalam hal ini, muncul pada paket awal SYN, karena itu perekaman jejak dilakukan pada klien.
Langkah 2. Jabat tangan pengemudi
Langkah ini melibatkan pertukaran paket TDS (Aliran Data Tabular) antara klien dan server untuk membuat parameter untuk komunikasi.
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
Langkah 3. Jabat tangan SSL/TLS
Di sini, klien dan server terlibat dalam jabat tangan yang aman untuk membuat koneksi terenkripsi. Proses ini melibatkan beberapa paket termasuk Hello Klien, Halo Server, pertukaran sertifikat, dan spesifikasi perubahan sandi.
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
Langkah 4. Paket masuk
Klien mengirim paket TDS yang berisi informasi masuk ke 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
Langkah 5. Paket tantangan dan respons NTLM
Paket tantangan NTLM dikirim dari server ke klien setelah klien mengirim paket masuk.
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 {
Langkah 6. Konfirmasi masuk
Server merespons dengan paket TDS yang mengonfirmasi login dan mengakui penerimaan data.
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,
Langkah 7. Menjalankan perintah
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
Koneksi dapat gagal karena kelebihan batas waktu, yang disebabkan oleh salah satu alasan berikut:
- SQL Server yang kekurangan thread
- beberapa permintaan masuk simultan yang menghasilkan autentikasi antrean dengan pengendali domain
- pengendali domain di lokasi geografis yang berbeda
- pengontrol domain yang lambat atau tidak responsif
Bagian ini menjelaskan bagaimana Anda dapat menentukan koneksi MARS dari paket berikut:
-
SMP:SYN memulai sesi baru
-
SMP:ACK mengakui paket data
-
SMP:FIN mengakhiri sesi
Berikut adalah contoh jejak paket yang menunjukkan berbagai variannya.
- Alamat IP klien adalah
10.10.10.10
- Alamat IP server adalah
10.10.10.22
Buka koneksi MARS baru
Contoh output berikut mengasumsikan bahwa langkah-langkah berikut sudah selesai, menggunakan autentikasi NTLM. MARS juga dapat digunakan dengan autentikasi Kerberos dan SQL.
- Jabat tangan tiga arah TCP
- Jabat tangan pengemudi
- Jabat tangan SSL/TLS
- Pertukaran paket log masuk
- Paket tantangan dan respons NTLM
- Konfirmasi masuk
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=.
Membuat sesi MARS baru
Setelah koneksi dibuat, buat sesi MARS baru (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
Jalankan berbagai perintah pada sesi
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=...
Contoh paket 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 =