ACLs - DACLs/SACLs/ACEs
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2815339644-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKXYG6TIGtXXE4WZnfup9%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=8a40ecbe&sv=1)
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın:
HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Erişim Kontrol Listesi (ACL)
Erişim Kontrol Listesi (ACL), bir nesne ve özellikleri için korumaları belirleyen sıralı bir Erişim Kontrol Girişi (ACE) setinden oluşur. Temelde, bir ACL, belirli bir nesne üzerinde hangi güvenlik ilkelerinin (kullanıcılar veya gruplar) hangi eylemlere izin verildiğini veya reddedildiğini tanımlar.
İki tür ACL vardır:
İhtiyari Erişim Kontrol Listesi (DACL): Hangi kullanıcıların ve grupların bir nesneye erişimi olup olmadığını belirtir.
Sistem Erişim Kontrol Listesi (SACL): Bir nesneye erişim girişimlerinin denetimini yönetir.
Bir dosyaya erişim süreci, sistemin nesnenin güvenlik tanımını kullanıcının erişim belirteci ile karşılaştırarak erişimin verilmesi gerekip gerekmediğini ve bu erişimin kapsamını belirlemesini içerir.
Ana Bileşenler
DACL: Kullanıcılara ve gruplara bir nesne için erişim izinleri veren veya reddeden ACE'leri içerir. Temelde, erişim haklarını belirleyen ana ACL'dir.
SACL: Erişim denetimi için kullanılır; burada ACE'ler, Güvenlik Olay Günlüğü'nde kaydedilecek erişim türlerini tanımlar. Bu, yetkisiz erişim girişimlerini tespit etmek veya erişim sorunlarını gidermek için çok değerli olabilir.
Sistem ile ACL'ler Arasındaki Etkileşim
Her kullanıcı oturumu, o oturumla ilgili güvenlik bilgilerini içeren bir erişim belirteci ile ilişkilidir; bu bilgiler arasında kullanıcı, grup kimlikleri ve ayrıcalıklar bulunur. Bu belirteç ayrıca oturumu benzersiz bir şekilde tanımlayan bir oturum SID'si içerir.
Yerel Güvenlik Otoritesi (LSASS), erişim isteklerini nesnelere işleyerek, erişim talep eden güvenlik ilkesine uyan ACE'leri DACL'de inceleyerek gerçekleştirir. İlgili ACE'ler bulunmazsa erişim hemen verilir. Aksi takdirde, LSASS, erişim belirtecindeki güvenlik ilkesinin SID'si ile ACE'leri karşılaştırarak erişim uygunluğunu belirler.
Özetlenmiş Süreç
ACL'ler: DACL'ler aracılığıyla erişim izinlerini ve SACL'ler aracılığıyla denetim kurallarını tanımlar.
Erişim Belirteci: Bir oturum için kullanıcı, grup ve ayrıcalık bilgilerini içerir.
Erişim Kararı: DACL ACE'leri ile erişim belirtecini karşılaştırarak verilir; SACL'ler denetim için kullanılır.
ACE'ler
Üç ana Erişim Kontrol Girişi (ACE) türü vardır:
Erişim Reddedildi ACE: Bu ACE, belirli kullanıcılar veya gruplar için bir nesneye erişimi açıkça reddeder (bir DACL'de).
Erişim İzin Verildi ACE: Bu ACE, belirli kullanıcılar veya gruplar için bir nesneye erişimi açıkça verir (bir DACL'de).
Sistem Denetim ACE: Bir Sistem Erişim Kontrol Listesi (SACL) içinde yer alır; bu ACE, kullanıcılar veya gruplar tarafından bir nesneye erişim girişimlerinde denetim günlükleri oluşturmakla sorumludur. Erişimin izin verilip verilmediğini ve erişimin niteliğini belgeler.
Her ACE'nin dört kritik bileşeni vardır:
Kullanıcının veya grubun Güvenlik Tanımlayıcısı (SID) (veya grafiksel bir temsil içindeki ilke adı).
ACE türünü tanımlayan bir bayrak (erişim reddedildi, izin verildi veya sistem denetimi).
Çocuk nesnelerin ACE'yi ebeveynlerinden miras alıp almayacağını belirleyen miras bayrakları.
Bir erişim maskesi, nesnenin verilen haklarını belirten 32 bitlik bir değer.
Erişim belirlemesi, her ACE'yi sırasıyla inceleyerek gerçekleştirilir:
Bir Erişim-Reddedildi ACE erişim belirtecinde tanımlanan bir güvenilir kişiye istenen hakları açıkça reddeder.
Erişim-İzin Verildi ACE'leri erişim belirtecindeki bir güvenilir kişiye tüm istenen hakları açıkça verir.
Tüm ACE'ler kontrol edildikten sonra, istenen haklardan herhangi biri açıkça izin verilmemişse, erişim dolaylı olarak reddedilir.
ACE'lerin Sırası
ACE'lerin (bir şeye kimin erişip erişemeyeceğini söyleyen kurallar) bir DACL içinde nasıl sıralandığı çok önemlidir. Çünkü sistem, bu kurallara dayanarak erişim verip reddettikten sonra geri kalanına bakmayı durdurur.
Bu ACE'leri düzenlemenin en iyi yolu "kanonik sıra" olarak adlandırılır. Bu yöntem, her şeyin düzgün ve adil bir şekilde çalışmasını sağlamaya yardımcı olur. İşte Windows 2000 ve Windows Server 2003 gibi sistemler için nasıl gittiği:
Öncelikle, bu nesne için özel olarak oluşturulmuş tüm kuralları, başka bir yerden gelen kurallardan (örneğin, bir üst klasörden) önce yerleştirin.
Bu özel kurallar içinde, "hayır" (reddet) diyenleri, "evet" (izin ver) diyenlerden önce yerleştirin.
Başka bir yerden gelen kurallar için, en yakın kaynaktan gelenlerle başlayın, ardından geriye doğru gidin. Yine, "hayır" önce "evet" olmalıdır.
Bu düzenleme iki büyük şekilde yardımcı olur:
Eğer belirli bir "hayır" varsa, bu saygı gösterilir; diğer "evet" kuralları ne olursa olsun.
Bir nesnenin sahibi, herhangi bir üst klasörden veya daha geriden gelen kurallardan önce kimin gireceği konusunda son sözü söyleyebilir.
Bu şekilde, bir dosya veya klasörün sahibi, kimin erişim alacağı konusunda çok hassas olabilir, doğru kişilerin girmesini sağlarken yanlış olanların girmesini engelleyebilir.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fwww.ntfs.com%2Fimages%2Fscreenshots%2FACEs.gif&width=768&dpr=4&quality=100&sign=7b958cad&sv=1)
Bu nedenle, bu "kanonik sıra", erişim kurallarının net ve iyi çalışmasını sağlamak, özel kuralları öncelikli hale getirmek ve her şeyi akıllıca düzenlemekle ilgilidir.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2815339644-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKXYG6TIGtXXE4WZnfup9%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=8a40ecbe&sv=1)
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:
GUI Örneği
Bu, ACL, DACL ve ACE'leri gösteren bir klasörün klasik güvenlik sekmesidir:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2815339644-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKXYG6TIGtXXE4WZnfup9%252Fuploads%252Fgit-blob-2fbc178d70483f43f342bb107df16b3bf9b0c7cb%252Fclassicsectab.jpg%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=55097e7b&sv=1)
Gelişmiş butona tıkladığımızda miras gibi daha fazla seçenek alırız:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2815339644-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKXYG6TIGtXXE4WZnfup9%252Fuploads%252Fgit-blob-6cf439dc1c168bceb635170f0f9a576d6abd1107%252Faceinheritance.jpg%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=160dd400&sv=1)
Ve bir Güvenlik İlkesi eklediğinizde veya düzenlediğinizde:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2815339644-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKXYG6TIGtXXE4WZnfup9%252Fuploads%252Fgit-blob-d4a366bde367ca5b3d6254e3870d259f75ed8250%252Feditseprincipalpointers1.jpg%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=cf89b92a&sv=1)
Ve son olarak, Denetim sekmesinde SACL'yi alırız:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2815339644-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKXYG6TIGtXXE4WZnfup9%252Fuploads%252Fgit-blob-44da0e04faa93bbc00457bf204318a34a3e4bc14%252Faudit-tab.jpg%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=a998c65d&sv=1)
Erişim Kontrolünü Basit Bir Şekilde Açıklamak
Kaynaklara, örneğin bir klasöre erişimi yönetirken, Erişim Kontrol Listeleri (ACL'ler) ve Erişim Kontrol Girişleri (ACE'ler) olarak bilinen listeleri ve kuralları kullanırız. Bu kurallar, kimin belirli verilere erişip erişemeyeceğini tanımlar.
Belirli Bir Gruba Erişimi Reddetmek
Diyelim ki, Cost adında bir klasörünüz var ve herkesin erişmesini istiyorsunuz, ancak pazarlama ekibinin erişmesini istemiyorsunuz. Kuralları doğru bir şekilde ayarlayarak, pazarlama ekibinin erişiminin açıkça reddedildiğinden emin olabiliriz; bu, pazarlama ekibine erişimi reddeden kuralı, diğer herkesin erişimine izin veren kuraldan önce yerleştirerek yapılır.
Reddedilen Bir Grubun Belirli Bir Üyesine Erişime İzin Vermek
Diyelim ki, pazarlama direktörü Bob'un Cost klasörüne erişime ihtiyacı var, oysa pazarlama ekibinin genel olarak erişimi olmamalı. Bob için erişim izni veren belirli bir kural (ACE) ekleyebiliriz ve bunu pazarlama ekibine erişimi reddeden kuraldan önce yerleştirebiliriz. Bu şekilde, Bob, ekibinin genel kısıtlamasına rağmen erişim alır.
Erişim Kontrol Girişlerini Anlamak
ACE'ler, bir ACL'deki bireysel kurallardır. Kullanıcıları veya grupları tanımlar, hangi erişimin izin verildiğini veya reddedildiğini belirtir ve bu kuralların alt öğelere (miras) nasıl uygulanacağını belirler. İki ana ACE türü vardır:
Genel ACE'ler: Bunlar geniş bir şekilde uygulanır, ya tüm nesne türlerini etkiler ya da yalnızca konteynerler (klasörler gibi) ve konteyner olmayanlar (dosyalar gibi) arasında ayrım yapar. Örneğin, kullanıcıların bir klasörün içeriğini görmesine izin veren ancak içindeki dosyalara erişmesine izin vermeyen bir kural.
Nesne-Özel ACE'ler: Bunlar daha hassas kontrol sağlar, belirli nesne türleri veya bir nesne içindeki bireysel özellikler için kuralların ayarlanmasına izin verir. Örneğin, bir kullanıcılar dizininde, bir kullanıcının telefon numarasını güncellemesine izin veren ancak giriş saatlerini güncellemesine izin vermeyen bir kural olabilir.
Her ACE, kuralın kime uygulandığı (bir Güvenlik Tanımlayıcısı veya SID kullanarak), kuralın neyi izin verdiği veya reddettiği (bir erişim maskesi kullanarak) ve diğer nesneler tarafından nasıl miras alındığı gibi önemli bilgileri içerir.
ACE Türleri Arasındaki Temel Farklar
Genel ACE'ler, nesnenin tüm yönlerine veya bir konteyner içindeki tüm nesnelere aynı kuralın uygulandığı basit erişim kontrol senaryoları için uygundur.
Nesne-Özel ACE'ler, özellikle Active Directory gibi ortamlarda, bir nesnenin belirli özelliklerine erişimi farklı bir şekilde kontrol etmeniz gerektiğinde daha karmaşık senaryolar için kullanılır.
Özetle, ACL'ler ve ACE'ler, yalnızca doğru bireylerin veya grupların hassas bilgilere veya kaynaklara erişimini sağlamak için kesin erişim kontrolleri tanımlamaya yardımcı olur ve erişim haklarını bireysel özellikler veya nesne türleri seviyesine kadar özelleştirme yeteneği sunar.
Erişim Kontrol Girişi Düzeni
ACE Alanı | Açıklama |
---|---|
Tür | ACE türünü gösteren bayrak. Windows 2000 ve Windows Server 2003, tüm güvenli nesnelere eklenen üç genel ACE türü ve Active Directory nesneleri için meydana gelebilecek üç nesne-özel ACE türü destekler. |
Bayraklar | Miras ve denetimi kontrol eden bit bayrakları seti. |
Boyut | ACE için tahsis edilen bellek bayt sayısı. |
Erişim maskesi | Nesne için erişim haklarına karşılık gelen bitleri içeren 32 bitlik bir değer. Bitler ya açık ya da kapalı olarak ayarlanabilir, ancak ayarın anlamı ACE türüne bağlıdır. Örneğin, izinleri okuma hakkına karşılık gelen bit açıldığında ve ACE türü Reddet ise, ACE nesnenin izinlerini okuma hakkını reddeder. Aynı bit açıldığında ancak ACE türü İzin Ver ise, ACE nesnenin izinlerini okuma hakkını verir. Erişim maskesinin daha fazla ayrıntısı bir sonraki tabloda görünmektedir. |
SID | Bu ACE tarafından kontrol edilen veya izlenen bir kullanıcı veya grubu tanımlar. |
Erişim Maskesi Düzeni
Bit (Aralık) | Anlamı | Açıklama/Örnek |
---|---|---|
0 - 15 | Nesne Özel Erişim Hakları | Verileri oku, Çalıştır, Verileri ekle |
16 - 22 | Standart Erişim Hakları | Sil, ACL yaz, Sahibi yaz |
23 | Güvenlik ACL'sine erişebilir | |
24 - 27 | Ayrılmış | |
28 | Genel Tüm (Oku, Yaz, Çalıştır) | Her şey aşağıda |
29 | Genel Çalıştır | Bir programı çalıştırmak için gerekli tüm şeyler |
30 | Genel Yaz | Bir dosyaya yazmak için gerekli tüm şeyler |
31 | Genel Oku | Bir dosyayı okumak için gerekli tüm şeyler |
Referanslar
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın:
HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2815339644-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FKXYG6TIGtXXE4WZnfup9%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=8a40ecbe&sv=1)
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:
Last updated