Bagikan melalui


Skenario Pertukaran Paket Protokol Microsoft SMB

Topik ini memberikan contoh pertukaran paket Protokol Microsoft SMB antara klien dan server. Langkah-langkah berikut adalah gambaran umum proses:

  1. Klien dan server membuat sesi NetBIOS.
  2. Klien dan server menegosiasikan dialek Protokol Microsoft SMB.
  3. Klien masuk ke server.
  4. Klien terhubung ke berbagi di server.
  5. Klien membuka file pada berbagi.
  6. Klien membaca dari file .

Pertama, koneksi TCP dupleks penuh dibuat oleh klien dengan server. Kemudian klien membangun dan mengirim paket permintaan sesi NetBIOS melalui koneksi TCP. Jika paket diformat dengan benar, server kemudian mengembalikan paket yang berisi pesan yang mengakui bahwa sesi telah dibuat. Setelah ini, klien mengirim paket Protokol Microsoft SMB pertama ke server.

Paket 1: SMB_COM_NEGOTIATE
Arah: Klien ke server
Deskripsi: Klien meminta agar server menegosiasikan dialek Protokol Microsoft SMB. Daftar string yang mengidentifikasi dialek yang dapat digunakan klien disertakan dalam paket.
Paket 2: SMB_COM_NEGOTIATE
Arah: Server ke klien
Deskripsi: Server menanggapi permintaan klien untuk mengidentifikasi dialek Protokol Microsoft SMB yang akan digunakan dalam sesi. Paket yang dikembalikan juga menyertakan string acak 8-byte yang akan digunakan pada langkah berikutnya untuk mengautentikasi klien selama proses masuk.
Paket 3: SMB_COM_SESSION_SETUP_ANDX
Arah: Klien ke server
Deskripsi: Paket ini mencakup informasi tentang kemampuan klien, sehingga paket ini harus dikirim meskipun server hanya menerapkan keamanan tingkat berbagi.
Paket 3: SMB_COM_SESSION_SETUP_ANDX
Arah: Server ke klien
Deskripsi: Jika tantangan/respons diterima oleh server, UID yang valid disertakan dalam paket yang dikembalikan ke klien. Jika tidak diterima, server akan mengembalikan kode kesalahan dalam paket ini dan menolak akses.
Paket 4: SMB_COM_TREE_CONNECT_ANDX
Arah: Klien ke server
Deskripsi: Klien meminta akses ke berbagi. Paket berisi jalur berbagi yang sepenuhnya ditentukan dalam format UNC.
Paket 5: SMB_COM_TREE_CONNECT_ANDX
Arah: Server ke klien
Deskripsi: Jika akses ke berbagi diberikan, maka server mengembalikan ID pohon 16-bit (TID) yang sesuai dengan berbagi dalam paket ini. Jika berbagi tidak ada atau pengguna memiliki kredensial yang tidak memadai untuk mengakses berbagi, server akan mengembalikan kode kesalahan dalam paket ini dan menolak akses ke berbagi.
Paket 6: SMB_COM_OPEN_ANDX
Arah: Klien ke server
Deskripsi: Klien meminta server untuk membuka file pada berbagi yang diakses atas nama klien. Paket ini berisi nama file yang akan dibuka.
Paket 7: SMB_COM_OPEN_ANDX
Arah: Server ke klien
Deskripsi: Jika akses ke file diberikan, maka server mengembalikan ID file dari file yang diminta. Jika file tidak ada atau pengguna tidak memiliki kredensial yang cukup untuk mengakses file, server akan mengembalikan kode kesalahan dalam paket ini dan menolak akses ke file.
Paket 8: SMB_COM_READ_ANDX
Arah: Klien ke server
Deskripsi: Klien meminta server untuk membaca data dari file yang dibuka atas nama klien dan mengembalikan data ini ke klien. ID file yang diperoleh oleh klien ketika file dibuka disertakan dalam paket ini untuk mengidentifikasi file mana yang dibuka tempat server membaca data.
Paket 9: SMB_COM_READ_ANDX
Arah: Server ke klien
Deskripsi: Server mengembalikan data file yang diminta dalam paket ini. Kesalahan di sini tidak mungkin mengingat bahwa akses ke server, berbagi, dan file telah diberikan. Ini dapat terjadi dalam beberapa situasi, namun: misalnya, jika akses ke berbagi diubah antara waktu file dibuka dan waktu file dibaca.

Catatan

Jika Anda menerapkan CIFS yang tidak mendukung pemberitahuan perubahan, Windows tidak dapat menyimpan handel yang luar biasa ke sistem file, dan koneksi SMB dapat hilang tanpa pemberitahuan.