* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
_**Ağ Temel Giriş/Çıkış Sistemi**_** (NetBIOS)**, yerel ağdaki (LAN) uygulamaların, PC'lerin ve Masaüstülerin ağ donanımıyla etkileşimde bulunmasını ve **veri iletimini kolaylaştırmasını amaçlayan bir yazılım protokolüdür**. NetBIOS ağında çalışan yazılım uygulamalarının tanımlanması ve konumu, genellikle bilgisayar adından farklı olan ve en fazla 16 karakter uzunluğunda olabilen NetBIOS adları aracılığıyla gerçekleştirilir. İki uygulama arasında bir NetBIOS oturumu, bir uygulamanın (istemci olarak hareket eden) **TCP Port 139** kullanarak başka bir uygulamayı (sunucu olarak hareket eden) "çağırmak" için bir komut verdiğinde başlatılır.
Teknik olarak, Port 139 'NBT üzerinden IP' olarak adlandırılırken, Port 445 'IP üzerinden SMB' olarak tanımlanmaktadır. **SMB** kısaltması, aynı zamanda **Ortak İnternet Dosya Sistemi (CIFS)** olarak da bilinen '**Sunucu İleti Blokları**' anlamına gelir. Uygulama katmanı ağ protokolü olarak, SMB/CIFS genellikle dosyalara, yazıcılara, seri portlara paylaşılan erişimi sağlamak ve ağdaki düğümler arasında çeşitli iletişim biçimlerini kolaylaştırmak için kullanılır.
Örneğin, Windows bağlamında, SMB'nin doğrudan TCP/IP üzerinden çalışabileceği ve NetBIOS üzerinden TCP/IP'nin gerekli olmadığı, port 445'in kullanımıyla vurgulanmaktadır. Bunun aksine, farklı sistemlerde, port 139'un kullanımı gözlemlenir ve bu durum, SMB'nin NetBIOS üzerinden TCP/IP ile birlikte yürütüldüğünü gösterir.
**Sunucu İleti Bloğu (SMB)** protokolü, bir **istemci-sunucu** modelinde çalışarak **dosyalara**, dizinlere ve yazıcılar ile yönlendiriciler gibi diğer ağ kaynaklarına erişimi düzenlemek üzere tasarlanmıştır. Başlıca olarak **Windows** işletim sistemi serisi içinde kullanılan SMB, geriye dönük uyumluluğu sağlayarak, Microsoft'un daha yeni sürümlerine sahip cihazların eski sürümleri çalıştıranlarla sorunsuz etkileşimde bulunmasını sağlar. Ayrıca, **Samba** projesi ücretsiz bir yazılım çözümü sunarak, SMB'nin **Linux** ve Unix sistemlerinde uygulanmasını sağlar ve böylece SMB aracılığıyla çapraz platform iletişimini kolaylaştırır.
SMB sunucusu tarafından sağlanabilen **yerel dosya sisteminin keyfi parçalarını** temsil eden paylaşımlar, hiyerarşiyi sunucunun gerçek yapısından kısmen **bağımsız** olarak istemciye görünür kılar. **Erişim Kontrol Listeleri (ACL'ler)**, **erişim haklarını** tanımlayarak, **`yürütme`**, **`okuma`** ve **`tam erişim`** gibi özellikler de dahil olmak üzere kullanıcı izinleri üzerinde **detaylı kontrol** sağlar. Bu izinler paylaşımlara dayalı olarak bireysel kullanıcılara veya gruplara atanabilir ve sunucudaki yerel izinlerden farklıdır.
IPC$ paylaşımına anonim bir boş oturum aracılığıyla erişim sağlanabilir, bu da adlandırılmış borular aracılığıyla sunulan hizmetlerle etkileşime olanak tanır. Bu amaçla `enum4linux` aracı kullanışlıdır. Doğru bir şekilde kullanıldığında, şunları elde etmeyi sağlar:
Bu işlevsellik, ağ yöneticileri ve güvenlik uzmanlarının bir ağdaki SMB (Sunucu İleti Bloğu) hizmetlerinin güvenlik durumunu değerlendirmesi için kritiktir. `enum4linux`, hedef sistemin SMB ortamının kapsamlı bir görünümünü sağlar ve potansiyel zayıf noktaları belirlemek ve SMB hizmetlerinin uygun şekilde güvence altına alındığından emin olmak için esastır.
Yukarıdaki komut, `enum4linux`'un `target_ip` tarafından belirtilen bir hedefe karşı tam bir numaralandırma gerçekleştirmek için nasıl kullanılabileceğinin bir örneğidir.
NTLM'nin ne olduğunu bilmiyorsanız veya nasıl çalıştığını ve nasıl kötüye kullanılabileceğini öğrenmek istiyorsanız, **NTLM** hakkında çok ilginç bulacağınız bu sayfada **bu protokolün nasıl çalıştığı ve nasıl bundan faydalanabileceğiniz açıklanmaktadır:**
SMB sürümüne yönelik olası güvenlik açıklarını aramak için kullanılan sürümün bilinmesi önemlidir. Bu bilgi diğer kullanılan araçlarda görünmüyorsa, aşağıdaki adımları izleyebilirsiniz:
Her zaman erişebileceğiniz bir şey olup olmadığını kontrol etmeniz önerilir, kimlik bilgileriniz yoksa **null****kimlik bilgileri/misafir kullanıcısı** kullanmayı deneyin.
```bash
smbclient --no-pass -L //<IP> # Null user
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] //<IP>#If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
Makine ana bilgisayarının paylaşımlarını görüntülemek için kısıtlı olabileceğiniz ve onları listelemeye çalıştığınızda bağlanılacak paylaşımların olmadığı gibi görünebileceği olasıdır. Bu nedenle, bir paylaşıma manuel olarak bağlanmayı denemek faydalı olabilir. Paylaşımları manuel olarak sıralamak için geçerli bir oturum (örneğin, boş oturum veya geçerli kimlik bilgileri) kullanırken NT\_STATUS\_ACCESS\_DENIED ve NT\_STATUS\_BAD\_NETWORK\_NAME gibi yanıtları aramak isteyebilirsiniz. Bu yanıtlar, paylaşımın var olduğunu ve erişiminizin olmadığını veya paylaşımın hiç var olmadığını gösterebilir.
Paylaşımlardan özellikle ilginç olanlar, Grup İlkesi aracılığıyla oturum açma yapılandırılmış kullanıcıların **şifrelerini içerebilecek** olan **`Registry.xml`** adlı dosyalardır. Ya da kimlik bilgilerini içerdiği için **`web.config`** dosyaları.
**SYSVOL paylaşımı**, etki alanındaki tüm kimlik doğrulama yapılmış kullanıcılar tarafından **okunabilir**. Orada birçok farklı toplu iş, VBScript ve PowerShell **betiği bulabilirsiniz**.\
Bir **Samba** sunucusunun varsayılan yapılandırması genellikle `/etc/samba/smb.conf` konumunda bulunur ve bazı**tehlikeli yapılandırmalara** sahip olabilir:
Her iki seçenek de kurban makinede _\pipe\svcctl_ üzerinden SMB aracılığıyla **yeni bir hizmet oluşturacak** ve onu kullanarak **bir şeyi yürütecek** (**psexec** yürütülebilir bir dosyayı ADMIN$ paylaşımına **yükleyecek** ve **smbexec****cmd.exe/powershell.exe'ye** işaret edecek ve argümanlara yük --**dosyasız teknik--**-- ekleyecek).\
Daha fazla bilgi [**psexec** ](../../windows-hardening/lateral-movement/psexec-and-winexec.md)ve [**smbexec**](../../windows-hardening/lateral-movement/smbexec.md) hakkında.\
**Kali** üzerinde /usr/share/doc/python3-impacket/examples/ konumunda bulunmaktadır.
Bu saldırı, iç ağda SMB kimlik doğrulama oturumlarını**yakalamak** için Responder araç setini kullanır ve bunları bir **hedef makineye iletir**. Kimlik doğrulama **oturumu başarılı** ise sizi otomatik olarak bir **sistem kabuğuna** bırakacaktır.\
[**Bu saldırı hakkında daha fazla bilgi burada.**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
Windows kütüphanesi URLMon.dll, bir sayfa SMB aracılığıyla bazı içeriğe erişmeye çalıştığında ana bilgisayara otomatik olarak kimlik doğrulamaya çalışır, örneğin: `img src="\\10.10.10.10\path\image.jpg"`
Bu işlevlerle gerçekleşir:
* URLDownloadToFile
* URLDownloadToCache
* URLOpenStream
* URLOpenBlockingStream
Bazı tarayıcılar ve araçlar (örneğin Skype) tarafından kullanılır
SMB Tuzaklama ile benzer şekilde, hedef sisteme kötü amaçlı dosyalar yerleştirme (örneğin SMB aracılığıyla) bir SMB kimlik doğrulama denemesine neden olabilir, böylece NetNTLMv2 hash'i Responder gibi bir araçla ele geçirilebilir. Hash daha sonra çevrimdışı kırılabilir veya bir [SMB iletme saldırısında](./#smb-relay-attack) kullanılabilir.
Protocol_Name: SMB #Protocol Abbreviation if there is one.
Port_Number: 137,138,139 #Comma separated if there is more than one.
Protocol_Description: Server Message Block #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for SMB
Note: |
While Port 139 is known technically as ‘NBT over IP’, Port 445 is ‘SMB over IP’. SMB stands for ‘Server Message Blocks’. Server Message Block in modern language is also known as Common Internet File System. The system operates as an application-layer network protocol primarily used for offering shared access to files, printers, serial ports, and other sorts of communications between nodes on a network.
#These are the commands I run in order every time I see an open SMB port
With No Creds
nbtscan {IP}
smbmap -H {IP}
smbmap -H {IP} -u null -p null
smbmap -H {IP} -u guest
smbclient -N -L //{IP}
smbclient -N //{IP}/ --option="client min protocol"=LANMAN1
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**