İçeriğe atla
0 XP 0
14 dkderinleşmeyle 15 dk55 XP7 etkinlik

En az yetki ilkesi

Bu derste
  • Yönetici, sudo ve hizmet hesabı yetkilerini envanterle çıkarır, fazlasını LAPS ve süreli yetkiyle daraltır, grup eklemelerini kayıtta yakalarsın.
  • Saldırganın ilk girdiği hesap ne kadar yetkiliyse, olay o kadar büyür.

Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

En az yetki ilkesi tek cümledir: her hesap işini yapmaya yetecek kadar yetki taşır, bir tık fazlası değil. Basit görünür, ama uygulamada zordur. Yetki vermek kolaydır, geri almak zordur.

Saldırgan bu dengesizliği bilir. İçeri girdiği ilk hesap çoğu zaman sıradan bir kullanıcıdır. O hesabın taşıdığı fazla yetki, bir sonraki adımını belirler.

Yetki darsa saldırgan yeni bir açık aramak zorunda kalır ve her denemede iz bırakır. Yetki genişse tek bir parola bütün ağı açar. Altay Kargo'nun güvenlik ekibi bu yüzden işe envanterle başlar.

Kim hangi grupta, hangi hizmet hangi hesapla çalışıyor? Envanter çıkınca fazlalıklar görünür olur. Ardından daraltma, süreli yetki ve değişiklik izleme gelir.

Yetki neden birikir

Yetki birikir, çünkü kimse bir şeyi bozmak istemez. Bir sorun çıkar, birisi hesaba yönetici yetkisi verir, sorun çözülür ve yetki orada kalır. Kimse geri dönüp almaz, çünkü almak yeni bir kesinti riski taşır. İki yıl sonra o hesap on sistemin yöneticisidir.

Hizmet hesapları bu birikimin en sık görüldüğü yerdir. Bir uygulama kurulurken yönetici hesabıyla çalıştırılır, çünkü o an neyin gerektiği bilinmez. Kurulum biter, kimse daraltmaz. Hesabın parolası da yıllarca değişmez.

Üçüncü kaynak işten ayrılan çalışanlardır. Hesap kapatma adımı insan kaynakları akışının içinde durmazsa hesaplar aylarca açık kalır.

Yerel yönetici hesabı aynı sorunun en yaygın örneğidir. Birçok kurumda bütün masaüstlerinde aynı yerel yönetici adı ve aynı parola kullanılır, çünkü her makineye ayrı parola atamak zahmetlidir. Bu rahatlık saldırgana da yarar.

Bir makinede o parolayı ya da özetini ele geçiren kişi, aynı parolayı taşıyan her makineye doğrudan girer. MITRE ATT&CK bu davranışı T1078.003 (geçerli hesaplar: yerel hesaplar) altında izler.

Somut bir zincir düşün. Oltalama e-postası muhasebeden bir kullanıcıyı vurur. O kullanıcı kendi bilgisayarında yerel yöneticidir. Aynı yerel yönetici parolası otuz makinede aynıdır.

Saldırgan bir saat içinde otuz makineye yayılır. Zincirin her halkası ayrı bir yetki fazlasıdır ve her biri tek başına kesilebilirdi.

Etkinlik 1 / 7

Saldırgan yerel yönetici yetkisi olan bir hesabı ele geçirdi. Aynı hesap ağdaki 30 makinede de yerel yönetici. Doğrudan erişebileceği makine sayısı kaçtır?

Tahminini kaydır, sonra gönder.

150

Windows'ta yetki envanteri

Envanter, daraltma konuşmasını somutlaştırır. Liste yoksa tartışma 'bizde fazla yetki yok' cümlesinde takılır. Liste çıkınca fazlalıklar kendiliğinden görünür. Windows alan ortamında ilk bakılacak yer Domain Admins grubudur.

net group komutu grubun doğrudan üyelerini verir, ama iç içe grupları açmaz. Bir kullanıcı yönetici grubunda doğrudan görünmeyebilir. Üyesi olduğu grup ise o gruba bağlıdır ve kullanıcı aynı yetkiyi taşır. Bu yüzden ikinci adımda PowerShell'in Active Directory modülüyle üyeliği özyinelemeli çözersin.

Üçüncü adım uç noktalardır. Her makinenin yerel Administrators grubunda kim var? Bir alan grubu oraya eklenmişse, o grubun her üyesi o makinede yöneticidir.

PS> Get-ADGroupMember 'Domain Admins' | Select Name,objectClass

Name                objectClass
----                -----------
Administrator       user
asilcan.y           user
yedek-servis        user
Sunucu-Operatorleri group

PS> Get-ADGroupMember 'Domain Admins' -Recursive | Select Name,objectClass

Name                objectClass
----                -----------
Administrator       user
asilcan.y           user
yedek-servis        user
d.ozkan             user
stajyer01           user

PS> Get-LocalGroupMember Administrators      # MUH-PC07 uzerinde

ObjectClass Name                       PrincipalSource
----------- ----                       ---------------
User        MUH-PC07\Administrator     Local
Group       ALTAYKARGO\Domain Admins   ActiveDirectory
User        ALTAYKARGO\e.demir         ActiveDirectory
Aynı grup iki kez sorgulandı. İç içe üyelik çözülünce yönetici listesi uzar.

Çıktıyı satır satır oku. İlk sorgu üç kullanıcı ve bir grup döndürür. objectClass sütunu group diyorsa o satır tek bir kişi değil, bir kapıdır.

İkinci sorgu -Recursive anahtarıyla aynı grubu açar. Grupları değil, en alttaki hesapları listeler. Sunucu-Operatorleri grubunun içinden iki hesap çıkar: d.ozkan ve stajyer01. İkisi de alan yöneticisidir, ama ilk listede görünmezler.

Bir stajyer hesabının bu yetkiye ihtiyacı olması pek olası değildir. yedek-servis bir hizmet hesabıdır ve yedekleme için alan yöneticisi olmasına gerek yoktur. Üçüncü sorgu MUH-PC07 adlı muhasebe makinesine bakar.

Domain Admins'in yerel yönetici grubunda durması olağandır. e.demir ise sıradan bir muhasebe kullanıcısıdır ve kendi makinesinde yöneticidir. Oltalamanın ilk vurduğu hesap tam olarak budur. Aynı listeyi komut isteminde net localgroup administrators ile de alırsın.

Etkinlik 2 / 7

Windows alan ortamında Domain Admins grubunun üyelerini listeleyen komutu yaz.

ogrenci@lab

Linux'ta sudo ve SUID envanteri

Linux tarafında yönetici yetkisi iki kapıdan gelir: sudo kuralları ve SUID biti. Önce sudo grubunun üyelerini çıkarırsın.

Debian ve Ubuntu ailesinde bu grup sudo, Red Hat ailesinde wheel adını taşır. Ardından hesaplara tek tek bakarsın. sudo -l -U komutu, bir kullanıcının hangi komutları kimin adına çalıştırabileceğini listeler.

Kurallar /etc/sudoers dosyasında ve /etc/sudoers.d dizininde durur. Bu dizindeki her dosya ana dosya kadar etkilidir ve çoğu zaman gözden kaçar. Kurulum betikleri oraya kendi kuralını bırakır, kimse fark etmez. Envanteri bir kez çıkarıp bırakma, çünkü her yeni kurulum bu dizine yeni bir dosya ekleyebilir.

$ getent group sudo wheel
sudo:x:27:ayilmaz,mkaya,yedekci

$ sudo -l -U mkaya
User mkaya may run the following commands on kargo-app01:
    (ALL : ALL) ALL
    (root) NOPASSWD: /usr/bin/systemctl restart kargo-api
    (root) NOPASSWD: /usr/bin/vim /etc/kargo/*.conf

$ find / -perm -4000 -type f 2>/dev/null
/usr/bin/passwd
/usr/bin/su
/usr/bin/sudo
/usr/bin/mount
/usr/local/bin/yedekal
Üç komut: sudo grubunun üyeleri, tek hesabın sudo kuralları ve SUID bitli dosyalar.

getent satırı grubun adını, kimliğini ve üyelerini verir. wheel satırı çıkmadıysa o grup bu makinede yoktur. sudo grubunda üç hesap var ve yedekci adının bir hizmet hesabı olması ilk soru işaretidir. sudo -l çıktısındaki (ALL : ALL) ALL satırı, mkaya'nın grup üyeliği üzerinden her komutu root olarak çalıştırabildiğini söyler.

Asıl tuzak NOPASSWD satırlarıdır. Parola sorulmaz, yani hesabı ele geçiren kişiye de sorulmaz. vim satırı iki yönden sorunludur.

vim kendi içinden kabuk komutu çalıştırabilir, bu yüzden root olarak açılan editör root kabuğu demektir. Yıldız da beklenenden fazlasını eşler, çünkü sudo argümanları tek bir dize olarak karşılaştırır ve joker boşlukları da kapsar. Güvenli seçenek, joker içermeyen tam dosya yollarıyla yazılmış bir sudoedit kuralıdır. Kullanıcı dosyanın kopyasını kendi yetkisiyle düzenler.

SUID biti, dosyayı çalıştıranın değil, dosya sahibinin yetkisiyle çalıştırır. Sahibi root olan SUID dosya, her kullanıcıya küçük bir root kapısı açar. passwd, su, sudo ve mount gibi dosyalar bu biti işleri gereği taşır.

Listede dikkat çeken satır /usr/local/bin/yedekal dosyasıdır. Standart bir sistem aracı değildir. dpkg -S ya da rpm -qf ile hangi pakete ait olduğunu sorarsın.

Cevap boş dönüyorsa dosyayı biri elle koymuştur. GTFOBins, sudo ya da SUID ile çalıştığında yetki yükseltmeye yarayan meşru ikilileri listeler. Mavi takım bu listeyi kendi envanteriyle karşılaştırır. Saha bölümündeki 'Geniş Yetki' ve 'Gizli İkili' görevlerinde aynı iki denetimi bir sunucuda yaparsın.

Etkinlik 3 / 7

Aşağıdaki sudoers dosyasında, hesabı ele geçiren kişiye parola sormadan root kabuğu veren satırı bul.

Zafiyetli satıra tıkla.

Hizmet hesapları ve yönetici ayrımı

Daraltmayı kademeli yap. Bir hizmet hesabının yetkisini bir gecede kesersen uygulama durur ve ertesi sabah yetki geri verilir. Önce izleme moduna al.

Hesabın hangi sunuculara bağlandığını, hangi paylaşımlara yazdığını ve hangi sorguları çalıştırdığını birkaç hafta ölç. Sonra yetki listesini o ölçüme göre yaz. Ölçmeden yapılan daraltma geri alınır ve ekip bir daha denemez. Her değişikliği de delil gibi belgele.

Hangi hesabın hangi yetkisi, ne zaman ve kimin onayıyla kaldırıldı? Sonradan çıkan bir sorunun nedenini bu kayıt dakikalar içinde gösterir.

Yöneticiler için kural daha serttir. Microsoft'un kurumsal erişim modeli yetkiyi üç düzleme ayırır. Kontrol düzlemi kimliği yöneten sistemlerdir, örneğin etki alanı denetleyicileri ve Entra ID. Eski katman modelindeki Tier 0 bu düzleme genişledi.

Yönetim düzlemi kurum genelindeki BT yönetimidir. Veri ve iş yükü düzlemi ise uygulamaların ve verinin durduğu yerdir. Model, alt düzlemden üst düzlemin ele geçirilmesini engellemek ister.

Pratik sonucu basittir. Alan yöneticisi hesabı yalnız etki alanı denetleyicilerinde ve ayrıcalıklı erişim iş istasyonunda (PAW) oturum açar. Kullanıcı bilgisayarına bu hesapla girmek, kimlik bilgisini o makinenin belleğinde bırakır. O makine ele geçerse alan da gider.

Yönetici hesaplarını Protected Users grubuna almak bir koruma katmanı daha ekler. Bu grubun üyeleri NTLM ile kimlik doğrulayamaz ve Kerberos ön doğrulamasında DES ya da RC4 kullanamaz. Kimlik bilgileri yetki devrine açılmaz.

Kerberos bileti (TGT) ilk dört saatlik ömrünün ötesine yenilenmez. Makine, çevrim dışı oturum için kimlik doğrulayıcısını da önbelleğe yazmaz. Çalınan bir oturumdan kalıcı kimlik bilgisi çıkarmak böylece zorlaşır.

İki uyarı var. Hizmet ve bilgisayar hesaplarını bu gruba ekleme. Parola ve sertifika zaten makinede durduğu için grup onları korumaz, yalnız işlerini bozar. Alan yöneticilerini de toplu eklemeden önce dene, yoksa kendi hesabını kilitleyebilirsin.

Etkinlik 4 / 7

Hesapları yetki durumuna göre ayır.

Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.

0/6 seçenek yerleşti.

Sınıflamanın ortak dersi şudur: yetki, hesabın işine göre ölçülür, unvanına göre değil. Yedekleme hizmeti önemli bir iş yapar, ama önemli iş geniş yetki demek değildir. Aynı ölçü kişiler için de geçerlidir.

Kıdemli bir mühendisin günlük hesabı da standart kalır, yönetici yetkisi ayrı hesapta ve gerektiği kadar durur. Ayrılan çalışanın etkin hesabı ise hiçbir işe bağlı değildir. Onu kapatmak listedeki en ucuz kazançtır.

Etkinlik 5 / 7

Her hesabın yalnız işini yapacak kadar yetki taşıması ilkesine en az ____ ilkesi denir.

LAPS, süreli yetki ve değişiklik izleme

Ortak yerel yönetici parolasının doğrudan çözümü Windows LAPS'tir. LAPS, her cihazın yerel yönetici parolasını düzenli aralıkla değiştirir ve yedeğini Active Directory'ye ya da Entra ID'ye yazar. Yetkili yönetici gerektiğinde parolayı oradan okur. Otuz makinede otuz ayrı parola olur ve bir makineden çalınan parola başka hiçbir makineyi açmaz.

Windows LAPS, 11 Nisan 2023 güncellemesiyle Windows'un içine yerleşik geldi ve ayrı kurulum istemez. Active Directory'ye yedeklerken parolayı şifreleyebilir ve parola geçmişini saklayabilir. 2016'da çıkan eski Microsoft LAPS ürünü ise Windows 11 23H2 ve sonrasında kullanımdan kalktı. Yeni sürümler eski kurulum paketini engeller.

İkinci adım, yönetici yetkisini kalıcı olmaktan çıkarmaktır. Yetki gün boyu açık durmak yerine gerektiğinde ve süreli verilir. Microsoft Entra Privileged Identity Management (PIM) bu modeli bulut rolleri için uygular.

Kullanıcı role uygun (eligible) olarak atanır, ama rolü kullanmak için etkinleştirmesi gerekir. Etkinleştirmede çok adımlı doğrulama, iş gerekçesi ve gerekirse bir onaylayan istenir. Süre dolunca rol kendiliğinden kapanır.

Çalınan kimliğin yönetici olduğu zaman aralığı böylece birkaç saate iner. Çok adımlı doğrulama zaten bütün yetkili hesaplarda zorunlu olmalıdır. Bu adım kapalıysa en az yetki çalışmasının kazancı büyük ölçüde boşa gider.

Daraltılan yetki sessizce geri gelebilir. Saldırgan kalıcılık için kendi hesabını yönetici grubuna ekler. ATT&CK bunu T1098.007 (ek yerel ya da alan gruplarına ekleme) altında izler.

Windows her eklemeyi kayda yazar. 4728 genel (global) güvenlik grubuna, 4732 yerel güvenlik grubuna, 4756 evrensel güvenlik grubuna üye eklendiğini söyler. Domain Admins genel bir gruptur, bu yüzden ona yapılan ekleme 4728 olarak düşer.

4729, 4733 ve 4757 ise aynı grup türlerinden üye çıkarıldığını gösterir. 4672 ayrı bir sinyaldir: ayrıcalıklı haklar taşıyan bir hesabın oturum açtığını söyler. Bir hizmet hesabı beklenmedik bir makinede 4672 üretiyorsa incelemeye değer.

title: Ayricalikli gruba uye eklendi
status: experimental
logsource:
    product: windows
    service: security
detection:
    grup_ekleme:
        EventID:
            - 4728   # genel (global) grup
            - 4732   # yerel grup
            - 4756   # evrensel grup
    ayricalikli:
        - TargetSid|endswith:
            - '-512'   # Domain Admins
            - '-519'   # Enterprise Admins
        - TargetSid: 'S-1-5-32-544'   # yerel Administrators
    condition: grup_ekleme and ayricalikli
falsepositives:
    - Onayli degisiklik talebiyle yapilan uyelik
level: high
Sigma kuralı: ayrıcalıklı gruplara yapılan her ekleme alarm üretir.

Kuralı satır satır oku. logsource bölümü Windows güvenlik günlüğünü seçer. grup_ekleme seçimi üç ekleme olayını toplar. ayricalikli seçimi grubu adıyla değil, güvenlik kimliğiyle (SID) yakalar.

Domain Admins'in SID'i -512, Enterprise Admins'inki -519 ile biter. Yerel Administrators grubu ise her makinede S-1-5-32-544 kimliğini taşır. Ad yerine SID kullanmak, yerelleştirilmiş ya da yeniden adlandırılmış gruplarda kuralın kör kalmasını önler. condition iki seçimi birlikte ister.

Alarm geldiğinde ilk soru şudur: bu değişikliğin onaylı bir talebi var mı? Meşru değişiklik bir talebe dayanır. Onay kaydı olmayan yetki artışı doğrudan incelenecek bir bulgudur.

Derinleş:Yetki yollarını grafikle görmek

BloodHound, SpecterOps'un geliştirdiği bir yetki yolu analiz aracıdır. Active Directory ve Entra ID'deki ilişkileri bir grafiğe döker: kim hangi grubun üyesi, kim hangi makinede oturum açmış, kim hangi nesnenin izinlerini değiştirebilir. Sonra sıradan bir kullanıcıdan alan yöneticisine giden en kısa yolu çizer.

Saldırganlar aracı hedef seçmek için kullanır. Mavi takım aynı grafiği kendi ortamındaki yetki fazlasını bulmak için okur. Sık çıkan bulgular tanıdıktır: iç içe gruplarla yöneticiye bağlanan destek ekibi, bir alan yöneticisinin oturum açtığı sıradan bir sunucu, nesne izinlerinde unutulmuş geniş bir yazma hakkı.

Yolu kesmek için çoğu zaman tek bir kenarı kaldırmak yeter. Grup üyeliğini düzeltirsin, yöneticinin o sunucuda oturum açmasını engellersin ya da gereksiz izni silersin. Aracı yalnız kendi ortamında ve yazılı izinle çalıştır. Toplayıcı çok sayıda dizin sorgusu üretir; habersiz çalışırsa kendi SOC ekibin onu saldırı sanar.

Etkinlik 6 / 7

Değişiklik takviminde bugün tek bir onaylı talep var: d.ozkan, BT-Destek grubuna eklenecek. Hangi satırlar incelenmeli?

Şüpheli satırlara tıkla. Birden fazla olabilir.

Sık hataların çoğu küçük alışkanlıklardır. Hizmet hesabını Domain Admins'e koymak, bir kurulum gecesinin kalıcı mirasıdır. Yönetici hesabıyla e-posta okumak, oltalamaya alan yöneticisinin kimliğini sunar.

Üç aylık gözden geçirmeyi ertelemek de en sessiz hatadır. Gözden geçirmeyi takvime bağla. Üç ayda bir yetkili hesap listesini çıkar, sahiplerine sor, gerekçesi olmayanı kes.

Etkiyi üç sayıyla ölç: alan yöneticisi sayısı, yerel yönetici sayısı ve ayrıcalıklı hizmet hesabı sayısı. Sayılar düşüyorsa iş ilerliyordur. Sabit duruyorsa çalışma kâğıt üstünde kalmıştır.

Etkinlik 7 / 7

Ağdaki bütün makinelerde aynı yerel yönetici parolasını kullanmanın temel riski nedir?

Bu derste bir hata mı gördün? Bildir