Network Services SMB Write-Up | TryHackMe


   Merhabalar. Bu makalede tryhackme üzerinde Network Services odası için bir yazı hazırlamaya çalıştım. Bu oda içerisinde 3 adet uygulama protokolünü nasıl çalıştığını anlayıp, bu protokoller üzerindeki konfigürasyon hatalarını ve zafiyetlerini kendi çıkarlarımız için nasıl kullanabileceğimizin basitçe pratiğini gerçekleştirebiliriz.

Görev 1: Get Connected

İlk TryHackMe ile bağlı olduğumuzdan emin olalım. OpenVPN profiliniz ile bağlantıyı sağlayarak bu görevi tamamlayabiliriz. 

Görev 2: Understanding SMB ile başlayalım;

SMB Server Message Block anlamına gelmektedir. SMB ağ üzerindeki dosyalar, yazıcılar, seri portlar ve diğer kaynaklara paylaşım erişimi sağlamak için kullanılan bir istemci-sunucu iletişim protokolüdür

Sunucular dosya sistemleri ve diğer kaynakları ağ üzerinde istemciye sağlar. İsmeci bilgisayarları kendi hard disklerine sahip olabilir, ama aynı zamanda paylaşılmış dosya sistemleri ve yazıcılara erişim sağlamak isteyebilirler.

SMB protokolü istemci ve sunucu arasında bir bağlantı yayınlayabilmek için birden çok mesajı ilettiği anlamına gelen cevap-istek protokolü olarak bilinmektedir. SMB protokolü OSI modelinde uygulama katmanı olarak da bilinen 7.katmanda çalışmaktadır ve taşıma için 445 portu içinde TCP/IP üzerinden kullanılabilir. Günümüzde, SMB’yı doğrudan TCP/IP üzerinden desteklemeyen cihazlarla iletişim, TCP/IP gibi bir aktarım protokolü üzerinden NetBIOS kullanımını gerektirir.

SMB Nasıl çalışır?

Bir bağlantı yayınlandıktan sonra, istemciler sunucuya paylaşımlara erişmelerine, dosya açmalarına, dosyaları okuyup yazmalarına ve genellikle bir dosya sistemiyle yapmak istedikleri her şeyi yapmalarına izin veren komutlar gönderebilirler.

Windows işletim sistemleri istemci ve sunucu SMB protokol desteğini sağlamaktadır. SMB’yi destekleyen bir açık kaynak sunucusu olan Samba, Unix sistemleri için yayınlanmıştır.

Bu bilgiler ışığında soruları yanıtlayalım:

Soru 1: SMB ne anlama gelmektedir?

Soru 2: SMB ne tip bir protokoldür?

Soru 3: İstemciler sunuculara ne kullanarak bağlanırlar?

Soru 4: Samba hangi sistemler üzerinde çalışıyor?


Görev 3: Enumerating SMB

Şimdi keşfetmeye başlayabiliriz. Fakat başlamadan önce odayı Deploy ettiğimizden emin olalım ve önyükleme için biraz zaman tanıyalım. Lütfen bunun beş dakika kadar sürebileceğini unutmayın, bu yüzden sabırlı olun! 
 

Enumeration

Enumeration, potansiyel saldırı vektörlerini bulmak ve bunlardan yararlanmak için hedef ağ üzerinde bilgi toplama sürecidir.

Çalışmayan veya sistemi çökertebilecek istismarlarla zaman kaybetmek enerji israfı olabileceğinden, bu süreç bir saldırının başarılı olması için gereklidir. Enumeration kullanıcı isimleri, şifreler, ağ bilgisi, ana makine ismi, uygulama verisi, servisler, ve bir saldırgan için yararlı olabilecek herhangi bilgiyi toplamak için kullanılabilir. 

SMB

Tipik olarak, SMB bir sunucu üzerinde bağlı olabilen ve dosyaları görüntülemek veya aktarmak için kullanılabilen SMB paylaşım sürücüleri vardır. SMB, hassas bilgileri keşfetmek isteyen bir saldırgan için genellikle harika bir başlangıç noktası olabilir – bu paylaşımlar içinde nelerin dahil olduğuna şaşıracaksınız. 

Port Scanning

Enumaration’ın hedef makinenin servisleri, uygulamaları, yapısı ve işletim sistemi hakkında olabildiğince çok bilgi bulabilmek için ilk adım bir port taraması gerçekleştirmektir. Bu konuda istediğiniz kadar derinlemesine gidebilirsiniz, ancak -A ve -p- etiketleriyle Nmap kullanmanızı öneririm. TryHackMe’de Nmap odasına aşina iseniz bu adımı nasıl tamamlanacağını zaten biliyorsunuz demektir. Fakat henüz tamamlamadıysanız siber güvenlik domaininde oldukça önemli bir aracı tanımak için vaktinizi kesinlikle ayırmalısınız demektir.

-A: İşletim sistemi algılama, versiyon algılama, script tarama ve traceroute’u bir arada etkinleştirir.

-p-: Yalnızca ilk 1000'de değil, tüm bağlantı noktalarında taramayı etkinleştirir. 
 

Enum4Linux

Enum4Linux hem Linux hemde Windows sistemleri üzerindeki SMB paylaşımlarını enumerate etmek için kullanılan bir araçtır. Temelde Samba paketindeki araçların etrafındaki bir paketleyicidir ve SMB ile ilgili hedeften hızlı bir şekilde bilgi almayı kolaylaştırır.

Enum4Linux’un syntax’ı oldukça güzel ve basittir:

enum4linux [options] ip

SEÇENEK                         FONKSİYON

-U                                        Kullanıcı listesini alır

-M                                       Makine listesi alır

-N                                        Namelist dökümü alır. (-U ve -M’den farklı)

-S                                         Paylaşım listesi alır

-P                                         Şifre politikası bilgilerini alır

-G                                        Grup ve üye listesi alır

-A                                        Yukarıdaki seçeneklerin tümünü yazdırır.


Şimdi bu enumeration araçları kullanarak soruları yanıtlayalım:

Soru 1: Seçtiğiniz bir nmap taraması yapın, kaç port açık?


Burada nmap -sT -p- 10.10.167.93 komutu ile TCP taraması yaparak tüm portları taradık. Görüldüğü gibi 3 adet port açık dolayısıyla sorumuzun cevabı da belli oldu.

Soru 2: SMB hangi bağlantı portlarında çalışıyor? 

Görüldüğü gibi Microsoft-ds adı verilen 445 bağlantı noktasında ve 139 bağlantı noktasında çalışmaktadır?


Soru 3: Enum4Linux ile başlayalım, tam bir enumeration yapalım. Yeni başlayanlar için çalışma grubu adı nedir?


Cevabı bulduk😊


Soru 4: Makinenin ismi olarak ne ortaya çıkıyor? 

Bundan sonraki sorular için aşağıdaki komutu çalıştıralım ve çıkan çıktıyı inceleyelim:
enum4linux -A 10.10.167.93



Soru 5: Hangi işletim sistemi sürümü çalışıyor?

Yukarıdaki ekran çıktısında OS version’unu görebiliriz.


Soru 6: Araştırmak isteyebileceğimiz bir şey olarak hangi pay öne çıkıyor?


Bu ekran çıktısında profiles dosyasında kullanıcı profilleri ile ilgili bilgiler olduğu gözükmektedir. Ayrıcalık yükseltmek için bu dosyadaki bilgileri kullanabiliriz. 😊

O halde sorumuzun cevabı belli oldu.


Görev 4: Exploiting SMB

SMB Exploit Tipleri

ExploitDB, NVD ve CVE Mitre gibi sitelerden SMB exploit tiplerini araştırılabiliriz. CVE-2017-7494 gibi SMB'yi kullanarak uzaktan kod yürütülmesine izin verebilecek güvenlik açıkları olsa da, bir sisteme girmenin en iyi yolunun sistemdeki yanlış yapılandırmalardan kaynaklandığı bir durumla karşılaşma olasılığınız daha yüksektir. Bu durumda, anonim SMB paylaşım erişiminden yararlanacağız- bir kabuğa yol açarak bilgileri elde etmemize izin veren yaygın bir yanlış yapılandırmadır.

Bir SMB paylaşımına erişmeye çalıştığımız için, sunuculardaki kaynaklara erişmek için ihtiyacımız var. Varsayılan samba paketinin bir parçası olduğundan smbclient kullanacağız.

SMB paylaşımına aşağıdaki syntax’ı kullanarak uzaktan erişim sağlayabiliriz:

smbclient //[IP]/[SHARE]

Bir önceki görevde elde ettiğimiz bilgileri kullanarak bu aşamayı tamamlayalım. Hazırsak başlayalım!

Soru 1: Varsayılan bağlantı noktasında IP 10.10.10.2 olan bir makinede kullanıcı "suit" olarak "secret" olarak adlandırılan bir SMB paylaşımına erişmek için doğru sözdizimi nedir?

Soru 2’de herhangi bir cevap tanımlamadan butona devam edelim.

Soru 3: İlginç paylaşımımızın anonim erişime izin verecek şekilde yapılandırılıp yapılandırılmadığını görelim, yani dosyaları görüntülemek için kimlik doğrulaması gerektirmez. Bunu şu şekilde kolayca yapabiliriz:

- "Anonim" kullanıcı adını kullanarak

- numaralandırma aşamasında bulduğumuz paylaşıma bağlanmak

- ve bir parola sağlamamak.

Paylaşım anonim erişime izin veriyor mu? E / H?


Anonim olarak paylaşım klasörünü erişim sağlayabildik. O halde cevabımız “Y” olacak.

Soru 4: Mükemmel! Harika! Değerli bilgiler içerebilecek ilginç belgeler için etrafa bir göz atın. Bu profil klasörünün kime ait olduğunu varsayabiliriz?

ls veya l komutu ile bulunduğumuz klasörde hangi dosyalar var bakalım.


Burada “Working From Home Information.txt” isimli bir dosya bulunduğunu görüyoruz. Bu dosyayı get komutu ile ana makinemize indirelim.


Şimdi ana makinemizde bu dosyanın içeriğini görüntüleyelim. Bakalım hassas bir bilgimiz mevcut mu?


Evet, cevabımız belli oldu😊


Soru 5: Evden çalışmasına izin vermek için hangi hizmet yapılandırıldı?

Working Frome Home Information.txt dosyası içeriğine baktığımız zaman ssh servisi ile ana sunucuya erişim sağlandığı görülmektedir.


Soru 6: Tamam! Şimdi bunu biliyoruz, paylaşımdaki hangi dizine bakmalıyız? 

ls komutu ile ekrandaki çıktıya baktığımızda .ssh dosyası bulunmaktadır. Bakacağımız dizin .ssh olmalıdır.


Soru 7: Bu dizin, bir kullanıcının bir sunucuda kendi kimliğini doğrulamasına ve ardından bir sunucuya erişmesine olanak tanıyan kimlik doğrulama anahtarlarını içerir. Bu anahtarlardan hangisi bizim için en yararlıdır?


Burada gizli şifreyi içeren id_rsa bizim için yararlı olacaktır. Bu dosyayı get komutu ile ana makinemize indirelim. chmod 600 komutu ile izinlerini değiştirelim.

Soru 8: Şimdi, hesabın kullanıcı adını bulmak için topladığınız bilgileri kullanın. Ardından, sunucuda oturum açmak için hizmeti ve anahtarını kullanın. Smb.txt bayrağı nedir?

Artık ssh komutunu çalıştırıp flag’i yakalayabiliriz.



Yorum Gönder

0 Yorumlar