1. AD (Active Directory)

- 계정 정보와 컴퓨터에 대한 정보, 회사에서 강제하고자 하는 정책들(비밀번호 정책, 화면 보호기 설정 등)에 대한 정보를 저장하고 있는 일종의 데이터베이스

- 중앙에서 서버, 사용자 등 시스템 전반에 접근이 가능하므로, 공격자들의 주요 공격 목표가 되며, AD 계정과 접근권한 탈취 시 전체 내부망이 장악당할 수 있음

 

2. 공격유형

2.1 DCSync [2][3]

- 일반적으로 AD 환경에는 여러 DC가 포함되며, 각각의 DC는 사용자 자격 증명 업데이트와 같은 변경 사항의 상호 업데이트를 통해 동기화 유지

- 도메인 복제 권한을 보유한 특정 계정의 액세스 권한을 획득한 공격자가 DC를 가장해 정상적인 DC와 동기화를 수행

- Mimikatz의 기능 중 하나

- 정상적인 AD 통신을 악용한 공격으로 탐지 및 조치가 쉽지 않으며, 엄격한 계정 관리가 필요

 

2.2 DCShadow [4][5]

- 공격자가 탈취한 계정을 이용해 AD에 악성 도메인 컨트롤러를 등록하는 공격

- Mimikatz의 기능 중 하나

- 정상적인 AD 통신을 악용한 공격으로 탐지 및 조치가 쉽지 않으며, 엄격한 계정 관리가 필요

 

2.3 Password spray [6][7]

- AD 내 계정을 대상으로 계정당 하나의 암호를 대입하는 공격

- 계정당 암호를 한 번만 대입하기에, 무차별 대입 공격과 차이를 가지며 계정 잠금을 유발하지 않음

- 계정 설정 시 강력한 암호 정책 적용 및 비밀번호 재사용 금지 등의 정책 적용

 

2.4 Pass-the-Hash [8][9]

- Hash 된 비밀번호를 이용하는 방법으로, 공격자는 비밀번호 자체를 몰라도 접속 인증을 통과할 수 있음

- 특정 계정의 비밀번호 Hash를 획득한 후 새로운 세션을 만들어 획득한 Hash를 이용해 접속

- 공격자 시스템의 메모리 영역(ex. LSASS_사용자 인증을 위해 사용하는 프로세스)에 Hash를 미리 로드한 후, 서버에 접속

- 관리자 권한의 사용자 수 제한, 권한 분리, 최소 권한 부여 등의 정책 적용

 

2.5 Pass-the-Ticket  [10]

- 최근 AD 환경은 티켓 기반 인증 프로토콜인 Kerberos 인증을 사용

- 공격자는 Mimikatz 등으로 탈취한 Kerberos Ticket을 사용해 AD인증 시도

- 관리자 및 서비스 계정에 강력한 암호 적용, 유출된 암호 제거 등 적용

 

2.6 Golden ticket [11]

- 공격자가 TGT(Ticket Granting Ticket)를 KDC를 통하지 않고 만들어내는 액티브 디렉토리 지속성 공격

- 도메인 어드민이나 KRBTGT(KDC 서비스 계정) 유저를 장악한 뒤 진행

- AD의 기본 인증 프로토콜인 커버로스 인증은 ‘KRBTGT 암호 해시로 암호화된 모든 TGT는 정상적인 TGT’라는 전제로 구축

- KRBTGT 비밀번호 주기적 변경 등 적용

 

2.7 Service Principal Name (SPN) [12]

- SPN(Service Principal Name)은 Active Directory의 서비스 인스턴스에 대한 특수 식별자

- 커버로스는 기본적으로 어떤 도메인 유저던 간에 SPN 특성이 존재하는 서비스 유저를 상대로 한 Service Ticket을 TGS(Ticket Granting Service)를 통해 요청하고 받음

- 해당 티켓은 서비스 유저의 NTLM 해시로 암호화되어 있음

- KRB_TGS_REPTGS를 받아 서비스 티켓을 추출한 뒤, 이를 메모리상에서 빼내서 오프라인 브루트 포스 공격을 감행해 TGS가 복호화가 된다면 서비스 유저의 비밀번호를 찾아내는 공격

- 불필요한 커버로스 티켓 요청 등 모니터링, 사용자 비밀번호 변경 등 적용

 

2.8 AdminCount [13]

- AdminCount는 Active Directory 속성 중 하나로 <NOT SET>을 기본값으로 가지나 Domain Admins와 같은 보호된 그룹에 사용자가 추가될 경우 값이 1로 업데이트

- 공격자는 해당 값을 모니터링하여 관리 권한이 있는 개체를 식별

- 강력한 암호 사용, AdminCount 1 설정된 계정 모니터링 등 적용

 

2.9 AdminSDHolder [14][15]

- AdminSDHolder 개체에는 고유의 ACL이 있으며, 이 ACL은 보호된 그룹의 권한을 제어하는데 사용

- SDProp(Security Descriptor Propagation) 프로세스를 악용

- SDProp이란 60분마다 실행되어 AdminSDHolder 개체의 ACL을 AdminCount 특성이 "1"로 설정된 모든 사용자 및 그룹에 복사

- 공격자는 취약한 관리자 계정을 탈취해 일반 계정의 AdminCount를 1로 설정한 후 SDProp를 사용해 ACL을 덮어씀

- 강력한 암호 사용, AdminCount 1 설정된 계정 모니터링 등 적용

 

3. 참고

[1] https://www.bleepingcomputer.com/news/security/the-attacks-that-can-target-your-windows-active-directory/
[2] https://www.xn--hy1b43d247a.com/credential-access/dcsync
[3] https://blog.netwrix.com/2021/11/30/what-is-dcsync-an-introduction/
[4] https://www.dcshadow.com/
[5] https://blog.netwrix.com/2022/09/28/dcshadow_attack/
[6] https://m.blog.naver.com/quest_kor/221653929403
[7] https://www.xn--hy1b43d247a.com/credential-access/password-spraying
[8] https://blog.naver.com/aepkoreanet/221443237165
[9] https://www.beyondtrust.com/resources/glossary/pass-the-hash-pth-attack
[10] https://www.netwrix.com/pass_the_ticket.html
[11] https://toad.co.kr/it/?idx=13330621&bmode=view
[12] https://www.xn--hy1b43d247a.com/credential-access/kerberos/kerberoasting
[13] https://blog.netwrix.com/2022/09/30/admincount_attribute/
[14] https://www.netwrix.com/adminsdholder_modification_ad_persistence.html
[15] https://www.itgeared.com/ad-permissions-resetting-review-of/

+ Recent posts