Bu makalede, bir istemci uygulaması ile SQL Server Veritabanı Altyapısı (sunucu) arasında İletim Denetimi Protokolü (TCP) bağlantısı kurma işlemi sırasında çeşitli el sıkışmalarını ve kimlik doğrulama dizilerini yakalayan bir ağ izlemesinin çeşitli örnekleri verilmiştir.
Bağlantıları kapatma hakkında bilgi için, Veritabanı Altyapısında ağ bağlantısı kapatma sırasını takip etme konusuna bakın .
Bu makalede, Birden Çok Etkin Sonuç Kümesi (MARS) bağlantısı da açıklanmaktadır. MARS, SQL Server 2005 (9.x) ile sunulan ve ikinci komutu çalıştırmadan önce ilk komuttan sonuçları temizlemek zorunda kalmadan bir bağlantıda birden çok komutun yürütülmesine olanak tanıyan bir SQL Server özelliğidir. MARS, oturum çoğullama (SMUX: Session Multiplexing) aracılığıyla elde edilir.
Bu işlem, ayrıntılı bir ağ izleme analizi aracılığıyla istemci ve sunucu arasındaki konuşmanın her adımını gösteren SQL kimlik doğrulaması kullanılarak normal bir oturum açma işlemini açıklar. Örnek ağ izlemesi aşağıdaki adımların çizgisini çizer:
- TCP üç yönlü el sıkışması
- Sürücü el sıkışması
- SSL/TLS el sıkışması
- Oturum açma paketi değişimi
- Oturum açma onayı
- Komut yürütme ve yanıtı okuma
- TCP dört yönlü kapatma el sıkışması
Örnek ağ izi
Bu değişim, bağlantı dizesindeki Login Timeout ayarından bağımsız olarak 1 saniye olarak ayrılır.
- İstemci IP adresi
10.10.10.10
- Sunucu IP adresi
10.10.10.120
Adım 1. TCP üç yönlü el sıkışması
Tüm TCP konuşmaları, istemciden sunucuya gönderilen bir SYN paketiyle (S bayrak kümesi) başlar. Çerçeve 6127'nde istemci kısa ömürlü bir bağlantı noktası kullanır (işletim sistemi tarafından dinamik olarak atanır) ve sunucu bağlantı noktasına bağlanır, bu durumda bağlantı noktası 1433. Sunucu, SYN bayrağının da ayarlandığı kendi ACK paketini kullanarak yanıt verir. Son olarak istemci, sunucuya ACK paketini aldığını bildirmek için bir SYN paketiyle yanıt verir.
Bu adım, telnet komutuyla aynı şekilde temel bir TCP bağlantısı kurar. İşletim sistemi konuşmanın bu bölümüne aracılık eder. Bu noktada, istemci ve sunucu birbirleriyle ilgili hiçbir şey bilmez.
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=
Bu adımda, [Bad CheckSum] uyarıları zararsızdır ve sağlama toplamı boşaltma’nin etkin olduğunu gösterir. Başka bir ifadeyle, izleme yapıldığından daha düşük bir düzeyde ağ katmanına ekleniyorlar. Diğer bilgilerin olmaması halinde bu uyarı, ağ izlemesinin istemcide mi yoksa sunucuda mı alındığını gösterir. Bu durumda, ilk SYN paketinde görünür, bu nedenle izleme istemcide alınmıştır.
Adım 2. Sürücü el sıkışması
Hem istemci sürücüsünün hem de SQL Server'ın birbiriyle ilgili biraz bilgi sahibi olması gerekir. Bu el sıkışmasında, sürücü sunucuya bazı bilgiler ve gereksinimler gönderir. Bu bilgiler veri paketlerinin şifrelenip şifrelemeyeceğini, Birden Çok Etkin Sonuç Kümesinin (MARS) kullanılıp kullanılmayacağını, sürüm numarasının, federasyon kimlik doğrulamasının, bağlantı GUID'sinin vb. kullanılıp kullanılmayacağını içerir.
Sunucu, kimlik doğrulaması gerekip gerektirmediği gibi bilgileriyle yanıt verir. Bu dizi, herhangi bir tür güvenlik anlaşması gerçekleştirilmeden önce gerçekleşir.
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
Adım 3. SSL/TLS el sıkışması
SSL/TLS el sıkışması, İstemci Hello paketi ve ardından Sunucu Hello paketiyle başlar ve Güvenli Kanal ile ilgili bazı ek paketler içerir. Bu adım, paketleri şifrelemek için güvenlik anahtarının anlaşıldığı yerdir. Normalde yalnızca oturum açma paketi şifrelenir, ancak istemci veya sunucu da veri paketlerinin şifrelenmesini gerektirebilir. TLS sürümünün seçilmesi, oturum açma işleminin bu aşamasında gerçekleşir. TLS sürümleri hizalı değilse veya ortak şifreleme paketleri yoksa istemci veya sunucu bu aşamada bağlantıyı kapatabilir.
SSL/TLS el sıkışma diyagramı
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
Adım 4. Oturum açma paketi
Bu paket şifrelenir ve ağ ayrıştırıcınıza bağlı olarak SSL Application Data veya TDS:Dataolarak görünebilir. Bu adımdan sonraki tüm paketler SSL Application Dataolarak da gösteriliyorsa, bağlantı şifrelenir.
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
Adım 5. Oturum açma onayı
Aksi takdirde, oturum açmayı onaylayan (oturum açma ACK belirteci olan) veya istemciye Login Failed bir hata iletisi döndüren bir yanıt paketi görürsünüz.
Başarılı bir oturum açma işlemi için paket onaltılık verilerinde neler görebileceğinize ilişkin bir örnek aşağıda verilmiştir:
.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'
SQL oturum açma onayı diyagramı
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
Adım 6. Komut yürütme ve yanıtı okuma
Komutlar bir TDS:SQLBatch veya TDS:RPCRequest paketi olarak gönderilir. İlki basit Transact-SQL ifadelerini çalıştırır ve ikincisi saklı yordamları yürütür. Komut uzun ise TCP devam paketlerini veya birkaç satırdan fazla bir sonuç döndürülüyorsa Yanıt paketinde görebilirsiniz.
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=
Adım 7. TCP dört yönlü kapatma el sıkışması
Microsoft sürücüleri, bağlantıları kapatmak için dört yönlü el sıkışmayı kullanır. Birçok üçüncü parti sürücü, bağlantıyı kapatmak için bağlantıyı sıfırlayarak normal ve anormal bir kapanış arasında ayrım yapmayı daha zor hale getirir.
Dört yönlü el sıkışması, istemcinin sunucuya bir FIN paketi göndermesiyle başlar ve sunucu bu pakete ACKile yanıt verir. Ardından sunucu, istemcinin kabul ettiği (FIN) kendi ACK paketini gönderir.
Sunucu ilk olarak bir FIN paketi gönderirse, istemci ve sunucu güvenli kanalda anlaşma yapamazsa en yaygın olarak SSL/TLS el sıkışmasında görülen anormal bir kapatmadır.
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=
Bu işlem, özellikle SQL kimlik doğrulama sırasını bir SSPI paketinin eklenmesiyle karşılaştırarak kimlik doğrulama işlemini açıklar. Örnek ağ izlemesi aşağıdaki adımların çizgisini çizer:
- TCP üç yönlü el sıkışması
- Sürücü el sıkışması
- SSL/TLS el sıkışması
- Oturum açma paketi değişimi
- SSPI paket iletimi
- Oturum açma onayı
- TCP dört yönlü kapatma el sıkışması
Örnek ağ izi
Bu oturum açma dizisi, SQL kimlik doğrulama dizisine benzer. SSPI paketinin eklenmesi büyük farktır, ancak özelliklerini genişletmediğiniz sürece bunu söylemek zordur. Bazen birden fazla SSPI paketi görebilirsiniz.
İstemci daha sonra kimlik bilgileriyle yanıt verir ve sunucu, etki alanı denetleyicisi aracılığıyla bu bilgileri doğrular.
Bu değişim, bağlantı dizesindeki Login Timeout ayarından bağımsız olarak 1 saniye olarak ayrılır.
- İstemci IP adresi
10.10.10.10
- Sunucu IP adresi
10.10.10.20
Adım 1. TCP üç yönlü el sıkışması
Bu adım, istemci ile sunucu arasında TCP aracılığıyla bir bağlantı kurulduğu yerdir. Sıra numaralarını eşitlemek ve iletişim kurmak için SYN, SYN-ACKve ACK paketleri içerir.
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
Bu adımda, [Bad CheckSum] uyarıları zararsızdır ve sağlama toplamı boşaltma’nin etkin olduğunu gösterir. Başka bir ifadeyle, izleme yapıldığından daha düşük bir düzeyde ağ katmanına ekleniyorlar. Diğer bilgilerin olmaması halinde bu uyarı, ağ izlemesinin istemcide mi yoksa sunucuda mı alındığını gösterir. Bu durumda, ilk SYN paketinde görünür, bu nedenle izleme istemcide alınmıştır.
Adım 2. Sürücü el sıkışması
Bu adım, iletişim parametreleri oluşturmak için istemci ve sunucu arasında TDS (Tablosal Veri Akışı) paketlerinin değişimini içerir.
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
Adım 3. SSL/TLS el sıkışması
Burada istemci ve sunucu, şifreli bir bağlantı kurmak için güvenli bir el sıkışma işlemine girer. Bu işlem İstemci Hello, Sunucu Hello, sertifika değişimi ve şifre değişikliği belirtimleri dahil olmak üzere birden çok paket içerir.
SSL/TLS el sıkışma diyagramı
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
Adım 4. Oturum açma paketi
İstemci, sunucuya oturum açma bilgilerini içeren bir TDS paketi gönderir.
Kerberos paketinin oturum açma diyagramı
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
Adım 5. SSPI paket iletimi
Bu paket, Kerberos kullanarak kimlik doğrulamasını gösteren Güvenlik Desteği Sağlayıcısı Arabirimi (SSPI) belirtecini taşır. Özellikleri, belirteç verilerini ortaya çıkarmak için genişletilir.
Aşağıdaki çıkışta paket özellikleri genişletilmiş SSPI paketi gösterilmektedir.
Kerberos SSPI paketinin diyagramını
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:
Adım 6. Oturum açma doğrulaması ve kabulü
Sunucu, oturum açmayı onaylayan ve verilerin alınıp alınılmamış olduğunu onaylayan bir TDS paketiyle yanıt verir.
Kerberos oturum açma ve onaylama diyagramı
.
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
Adım 7. TCP dört yönlü kapatma el sıkışması
Son olarak, istemci ve sunucu FIN ve ACK paketlerini kullanarak bağlantıyı düzgün bir şekilde kapatır.
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
SSPI paketinin varlığı, bu oturum açma işlemini SQL kimlik doğrulamasından ayırır. Ancak tanımlama, özellikle birden çok SSPI paketi değiştirildiğinde paket özelliklerinin genişletilmesi gerektirebilir.
Bu işlem, özellikle SQL kimlik doğrulama sırasını NTLM sınaması ve yanıt paketlerinin eklenmesiyle karşılaştıran kimlik doğrulama işlemini açıklar. Örnek ağ izlemesi aşağıdaki adımların çizgisini çizer:
- TCP üç yönlü el sıkışması
- Sürücü el sıkışması
- SSL/TLS el sıkışması
- Oturum açma paketi değişimi
- NTLM sınaması ve yanıt paketleri
- Oturum açma onayı
- Komut yürütme
Örnek ağ izi
Bu oturum açma dizisi ile SQL kimlik doğrulama dizisi arasındaki fark, iki paketin eklenmesidir.
İstemci daha sonra kimlik bilgileriyle yanıt verir ve sunucu, etki alanı denetleyicisi aracılığıyla bu bilgileri doğrular.
Bu değişim, bağlantı dizesindeki Login Timeout ayarından bağımsız olarak 1 saniye olarak ayrılır.
- İstemci IP adresi
10.10.10.120
- Sunucu IP adresi
10.10.10.55
Adım 1. TCP üç yönlü el sıkışması
Bu adım, istemci ile sunucu arasında TCP aracılığıyla bir bağlantı kurulduğu yerdir. Sıra numaralarını eşitlemek ve iletişim kurmak için SYN, SYN-ACKve ACK paketleri içerir.
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=
Bu adımda, [Bad CheckSum] uyarıları zararsızdır ve sağlama toplamı boşaltma’nin etkin olduğunu gösterir. Başka bir ifadeyle, izleme yapıldığından daha düşük bir düzeyde ağ katmanına ekleniyorlar. Diğer bilgilerin olmaması halinde bu uyarı, ağ izlemesinin istemcide mi yoksa sunucuda mı alındığını gösterir. Bu durumda, ilk SYN paketinde görünür, bu nedenle izleme istemcide alınmıştır.
Adım 2. Sürücü el sıkışması
Bu adım, iletişim parametreleri oluşturmak için istemci ve sunucu arasında TDS (Tablosal Veri Akışı) paketlerinin değişimini içerir.
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
Adım 3. SSL/TLS el sıkışması
Burada istemci ve sunucu, şifreli bir bağlantı kurmak için güvenli bir el sıkışma işlemine girer. Bu işlem İstemci Hello, Sunucu Hello, sertifika değişimi ve şifre değişikliği belirtimleri dahil olmak üzere birden çok paket içerir.
SSL/TLS el sıkışma diyagramı
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
Adım 4. Oturum açma paketi
İstemci, sunucuya oturum açma bilgilerini içeren bir TDS paketi gönderir.
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
Adım 5. NTLM sınaması ve yanıt paketleri
NTLM sınama paketi, istemci oturum açma paketini gönderdikten sonra sunucudan istemciye gönderilir.
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 {
Adım 6. Oturum açma onayı
Sunucu, oturum açmayı onaylayan ve verilerin alınıp alınılmamış olduğunu onaylayan bir TDS paketiyle yanıt verir.
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,
Adım 7. Komut yürütme
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
Bağlantı, aşağıdaki nedenlerden herhangi birinden kaynaklanan bir zaman aşımıyla başarısız olabilir:
- iş parçacığı kıtlığı yaşayan bir SQL Server
- etki alanı denetleyicisinde kuyruğa alınan kimlik doğrulamasına yol açan birkaç eşzamanlı oturum açma isteği
- farklı bir coğrafi konumdaki etki alanı denetleyicisi
- yavaş veya yanıt vermeyen bir etki alanı denetleyicisi
Bu bölümde, aşağıdaki paketlerden mars bağlantısını nasıl belirleyebileceğiniz açıklanmaktadır:
-
SMP:SYN yeni bir oturum başlatır
-
SMP:ACK veri paketlerini onaylar
-
SMP:FIN oturumu sonlandırır
Aşağıdaki izleme örneklerde çeşitli paketler gösterilmektedir.
- İstemci IP adresi
10.10.10.10
- Sunucu IP adresi
10.10.10.22
Yeni bir MARS bağlantısı açma
Aşağıdaki örnek çıktı, NTLM kimlik doğrulaması kullanılarak aşağıdaki adımların zaten tamamlandığını varsayar. MARS, Kerberos ve SQL kimlik doğrulaması ile de kullanılabilir.
- TCP üç yönlü el sıkışması
- Sürücü el sıkışması
- SSL/TLS el sıkışması
- Oturum açma paketi değişimi
- NTLM sınaması ve yanıt paketleri
- Oturum açma onayı
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=.
Yeni bir MARS oturumu oluştur
Bağlantı kurulduktan sonra yeni bir MARS oturumu (Sid = 0) oluşturun.
Yeni MARS oturumunun diyagramı
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
Oturumda çeşitli komutları yürütme
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=...
SMP:ACK paketi örneği
MARS SMP:ACK paketinin
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 =