SMB Enumeration Nedir?

Enumeration, sızma testlerinde bilgi toplama aşamasından sonra gelen, hedef sistem hakkında en fazla bilginin elde edilmeye çalışıldığı aşamadır. Bu aşamada, açık olduğu tespit edilen portları hangi servislerin kullandığı, bu servislerin hangi üreticiye ait servisler olduğu, versiyonları gibi bilgiler “banner grabbing” olarak adlandırılan yöntem ile öğrenilir ve manuel testler ile bu bilgilerin doğruluğundan emin olunduktan sonra bu bilgiler ışığında zafiyet veritabanları taranır ve bilinen zafiyetler sonraki aşamalarda kullanılmak üzere not alınır. Keşif (Reconnaissance) aşamasında elde edilen bilgiler, hedef sistemler hakkında bir bakış açısı oluşturur ve bu aşamada elde edilen bilgiler, enumeration aşamasında önemli bir rol oynar.

SMB (Server Message Block), aynı ağda bulunan sistemlerin dosya paylaşmalarına izin veren ve Windows sistemler tarafından kullanılan bir ağ protokolüdür. SMB, aynı ağa veya aynı domain ortamına bağlı sistemlerin, diğer sistemlerde bulunan dosyalara kendi sabit sürücülerinde bulunuyormuş gibi kolayca erişmelerine olanak sağlar. Ayrıca SMB, aynı ortamdaki sistemlerin yazıcıları ve seri portları paylaşmalarına olanak verir. Başlangıçta Windows için geliştirilen SMB, Samba adı verilen bir servis aracılığıyla, Unix ve Mac OS X sistemler dahil olmak üzere diğer platformlar tarafından da kullanılabilir. SMB protokolü, varsayılan olarak 139 ve 445 numaralı TCP portlarını kullanır.

SMB, sızma testlerinde ilerleme sağlamak için kullanılabilecek en önemli protokollerden biridir. SMB protokolü;

  • Hedef sistemler üzerinde en yüksek haklarda çalışması
  • Bazı versiyonlarında, hedef sisteme anonim olarak en yüksek haklarda erişim izni veren zafiyetler barındırması
  • Hedef sistem üzerinde kimlik doğrulamaya ve hedef sisteme erişim kazanmaya olanak vermesi
  • Paylaşıma açık olan dizinlere, anonim olarak erişim sağlanması sonucunda, hedef sisteme zararlı dosyalar yerleştirilmesine olanak vermesi

gibi durumlardan dolayı, sızma testi uzmanlarının hedeflediği protokollerin başında gelmektedir.

Bu yazıda SMB Enumeration aşamasında yapılan işlemler ve bu işlemler için kullanılabilecek olan araçlara değinilecektir.

SMB Enumeration

SMB protokolünün, dışarıdan erişime açık olduğu durumlarda; paylaşıma açık dizinler, kullanıcı bilgileri, makine bilgileri, hedef sistemi etkileyen zafiyetler gibi bilgilerin elde edilmesi için, SMB protokolüne yönelik enumeration işlemi gerçekleştirilir. Enumeration aşamasında elde edilen bilgiler ile sızma aşamasına yön verilir.

SMB Enumeration işlemleri için, KALI Linux üzerinde aşağıdaki araçlar bulunmaktadır:

  • nmblookup
  • nbtscan
  • smbmap
  • smbclient
  • rpcclient
  • nmap
  • enum4linux

Bu araçlar kullanılarak gerçekleştirilen SMB Enumeration işlemleri aşağıda açıklanmaktadır.

nmblookup

NetBIOS (Network Basic Input/Output System), yerel ağ üzerindeki farklı sistemlerin birbirleriyle iletişim kurmasını sağlayan bir sistemdir. IBM tarafından masaüstü bilgisayarlar için oluşturulan NetBIOS, daha sonra Microsoft tarafından Windows işletim sistemlerine uyarlanmıştır. Nmblookup, NetBIOS adlarını sorgulamak ve bu adları IP adresleri ile eşleştirmek için kullanılır. Nmblookup ile bir IP adresine yönelik sorgulama yapmak aşağıdaki komut kullanılabilir:

nmblookup -A 192.168.35.132

Ayrıca nmblookup, NetBIOS sonekleri aracılığıyla hedef sistemin bağlı olduğu domain ve MAC adresi bilgilerini listeleme özelliği sağlar. NetBIOS soneklerinin ifade ettiği bilgiler aşağıda açıklanmaktadır:

Benzersiz adlar:

  • 00: Domain/Workstation Service (workstation name)
  • 03: Windows Messenger service
  • 06: Remote Access Service
  • 20: File Service
  • 21: Remote Access Service istemcisi
  • 1B: Domain Master Browser – Primary Domain Controller
  • 1D: Master Browser

Grup adları:

  • 00: Workstation Service (workgroup/domain name)
  • 1C: Domain Controllers
  • 1E: Browser Service Elections

Resim 2.1’de, nmblookup aracı kullanılarak gerçekleştirilen listeleme işlemi sonucunda, 192.168.35.132 IP adresli makinenin host adının FILESERVER, bağlı olduğu domain ortamının NetBIOS adının PRIVIASECURITY ve dosya servisi adının FILESERVER olduğu tespit edildi.

Resim 2.1 – NMBLOOKUP

nbtscan

Nbtscan, NetBIOS adlarını bulmak için IP adreslerini taramak amacıyla kullanılan bir programdır. Nbtscan, verilen aralıktaki her adrese bir NetBIOS durum sorgusu gönderir ve alınan yanıtlara göre, her sistem için; IP adresi, NetBIOS adı, oturum açmış kullanıcı adı ve MAC adresi bilgilerini listeler.

Resim 2.2 – NBTSCAN

SMBMAP

SMBMap, paylaşıma açık olan dizinleri ve disk sürücülerini, paylaşılan dosyaları, paylaşıma açık olan dizin ve disk sürücüleri üzerindeki izinleri listeleyen bir araçtır. Ayrıca SMBMap aracı kullanılarak; hedef sisteme dosya yüklenebilir, hedef sistemden dosya indirilebilir ve hedef sistem üzerinde uzaktan komut çalıştırılabilir. Bu araç, sızma testlerinde çok sayıda hedef sistem olması durumunda, hassas verilerin aranmasını kolaylaştırmayı amaçlar.

SMBMap aracı, sadece hedef sistemin adresi belirtilerek anonim olarak kullanılabilir.

Resim 2.3 – SMBMAP Anonim Listeleme

Anonim listeleme işlemi sonucunda herhangi bir bilgi alınamadı. Eğer hedef sistem için elde edilmiş kimlik bilgileri mevcutsa, bu bilgiler kullanılarak listeleme yapılabilir.

SMB Enumeration Nedir?
Resim 2.4 – SMBMAP Kimlik Doğrulayarak Listeleme

SMBCLIENT

Smbclient, hedef SMB sunucusu ile konuşabilen bir SMB istemcisidir. Smbclient aracı kullanılarak; hedef sunucudan dosya indirilebilir, hedef sunucuya dosya yüklenebilir veya dizin ve dosya bilgileri elde edilebilir.

SMBClient aracı kullanılarak, hedef sistem üzerinde paylaşıma açık olan dizinler hakkında bilgi alınabilir. Kimlik bilgisi belirtilmediği durumda, listeleme işlemi anonim olarak gerçekleşir.

Resim 2.5 – SMBClient Anonim Listeleme
Resim 2.6 – SMBClient ile Anonim Dizin Erişimi

SMBClient aracı bir kullanıcı hesabına ait olan kimlik bilgileri belirtilerek, kullanılabilir. Böylece, o hesabın yetkilerine göre, anonim olarak erişilemeyen dizinlere erişim sağlanabilir.

Resim 2.7 – SMBClient ile Yetkili Dizin Erişimi

RPCCLIENT

Rpcclient, başlangıçta Samba’nın MS-RPC işlevselliğini test etmek amacıyla geliştirilmiş bir araçtır. Hedef sistem üzerinde SMB oturumu açarak listeleme işlemleri yapmak için rpcclient kullanılabilir.

SMB Enumeration Nedir?
Resim 2.8 – RPCCLIENT

“queryuser” komutu ile kullanıcılar hakkında bilgi alınabilir.

SMB Enumeration Nedir?
Resim 2.9 – RPCCLIENT Kullanıcı Bilgileri

NMAP

Nmap, ağ tarama ve zafiyet tespiti için kullanılan açık kaynaklı bir araçtır. Nmap aracı kullanılarak, hedef sistemin 139 ve 445 numaralı TCP portlarına yönelik script taraması gerçekleştirilerek, SMB üzerinden listeleme işlemi yapılabilir.

SMB Enumeration Nedir?
Resim 2.10 – NMAP ile SMB Enumeration

Hedef sistemlerde SMBv1 versiyonunun aktif olması durumunda, bu sistemler MS17-010 güvenlik zafiyetine karşı savunmasız olabilir. MS17-010, saldırganların hedef sisteme anonim olarak SYSTEM haklarıyla erişmelerini sağlayan kritik bir güvenlik açığıdır. Nmap aracı kullanılarak, hedef sistemlere MS17-010 güvenlik zafiyeti için tarama yapılabilir.

Resim 2.11 – MS17-010

ENUM4LINUX

Enum4linux, Windows ve Samba sistemlere ait bilgileri listelemek amacıyla kullanılan bir araçtır. Bu araç; smbclient, rpclient, net ve nmblookup araçlarının işlevlerine sahiptir. Bu aracın ana özellikleri aşağıda yer almaktadır:

  • RID cycling
  • Kullanıcı hesaplarının listelenmesi
  • Kullanıcıların dahil oldukları grupların listelenmesi
  • Paylaşıma açık olan dizinlerin listelenmesi
  • Hedef sistemin bir WORKGROUP ya da bir domain ortamına bağlı olup olmadığının tespit edilmesi
  • Hedef sistemin işletim sisteminin tespit edilmesi
  • Parola politikası

Resim 2.12’de enum4linux aracıyla, hedef sistem üzerinde anonim olarak SMB enumeration işlemi gerçekleştirildi.

SMB Enumeration Nedir?
Resim 2.12 – Enum4Linux Anonim Listeleme