Server Message Block (SMB) network protokolu olup Windows tarafından kullanılmaktadır. SMB, network üzerinden dosya/klasör erişimi, printer ve diğer donanımlara TCP 445 kullanılarak erişilmesini sağlar. Linux dünyasında SAMBA ile eşdeğerdir. Geçmişten günümüze temel olarak üç farklı SMB sürümü bulunmaktadır.

Her bir Windows sürümü farklı SMB versiyonlarını desteklemektedir. SMB protokol versiyonlarını aşağıdaki şekilde görebilirsiniz.

  • CIFS – Windows NT 4.0
  • SMB 1.0 – Windows 2000
  • SMB 2.0 – Windows Server 2008 and Windows Vista SP1 
  • SMB 2.1 – Windows Server 2008 R2 and Windows 7 
  • SMB 3.0 – Windows Server 2012 and Windows 8 
  • SMB 3.02 – Windows Server 2012 R2 and Windows 8.1 
  • SMB 3.1.1 – Windows Server 2016 and Windows 10 

SMB iletişiminin Client ve Server olmak üzere iki farklı bacagı bulunmaktadır. Örneğin, Windows 10 Client makinası, windows Server 2016 üzerinde çalışan File Server’a bağlanırken SMB 3.1.1 protokolunu kullanmaktadır. Benzer senaryonun tam tersinde ise Windows Xp ve Windows Server 2003 network kaynaklarına erişim için SMB 1.0 kullanıyor. Yeni sürümlerde SMB 1.0 kapalı oldugu için, Windows Server 2019 üzerinde ki bir kaynağa erişemeyecektir. 

Kullandıgınız işletim sisteminde ki SMB versiyonunu öğrenmek için aşağıdaki powershell komutunu kullanabilirsiniz.

Bir çok güvenlik açığına sahip SMB 1.0’in tüm işletim sistemlerinde kapatılması tavsiye edilmektedir ki zaten desteklenen işletim sistemleri de end of life olmuş durumdadır. Varsayılan olarak Windows 10 ve Windows Server 2019 üzerinde SMB1.0 kapalı gelmektedir.

SMB1.0 üzerinden yapılan ve bilinen en büyük saldırılar Wannacrypt, Petya ransomware ve Eternal Blue idi.

https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/ms17-010?redirectedfrom=MSDN 

https://www.cisa.gov/uscert/ncas/current-activity/2017/01/16/SMB-Security-Best-Practices

https://www.iad.gov/iad/library/ia-advisories-alerts/iaa-removal-of-server-message-block-1-0.cfm

https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue/

SMB 1.0 powershell veya register üzerinden kapatılabilir. Unutmamız gereken durum ise SMB’nin versiyon farketmeksizin hem Server hem de Client bacagının oldugudur. Benzer şekilde SMB 2.0’da kapatılabilir ve SMB 3.0 kullanımı zorunlu hale getirilmiş olur ancak ilgili versiyonu destekleyen işletim sistemlerinden emin olmak gerekiyor. SMB 3.0 desteklemeyen işletim sistemi network üzerinden hiç bir kaynağa erişemez.

Disable SMBv1 client ve server;

Disable SMBv1 server;

Register üzerinden kapatmak için ise;

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled

SMB’nin durumunu servisler üzerinden de kontrol edebiliriz. SMB 1.0 kapalı oldugu için herhangi bir servis cevap vermeyip, SMB 2.0 için state (State 4) running konumundadır.

Oturumunuz içerisinde açık olan SMB baglantılarını gormek için ise Get-SmbConnection çalıştırabilirsiniz.

https://docs.microsoft.com/en-us/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3

Close