보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

ADCS의 취약한 인증서 템플릿 구성을 통한 ESC1 공격기술(Offensive Technique)

2024.07.03

111

01. 권한 상승과 ADCS의 개요

1) 권한 상승과 공격 라이프 사이클

ADCS의 취약한 인증서 템플릿 구성을 통한 ESC1 공격기술을 설명하기 위해서는 권한상승 취약점의 개념과 ADCS에 대한 이해가 필요하다. 먼저 권한상승을 이해하기 위해서는 접근통제(Access Control)의 개념을 이해할 필요가 있다. 접근통제는 주체에게 부여된 권한에 따라 객체의 접근을 제한하는 것을 의미하는 보안의 가장 기본적인 메커니즘이다. 공격자는 방어요소 중 하나인 접근통제를 우회하여 탈취된 주체의 권한보다 높은 권한을 획득하기 위해서 권한 상승(Privileged Escalation)을 수행하기 때문에 상당수의 공격 라이프 사이클에서는 권한 상승이 주요 공격벡터로 작용한다.

공격 라이프 사이클을 표현하는 방식은 록히드마틴의 사이버 킬체인, 마이터어택(MITRE ATT&CK) 이외에도 [그림 1]과 같이 맨디언트(Mandiant)에서 제시하는 공격 라이프사이클이 있다. 이러한 공격 라이프사이클이 모든 사이버 공격의 공격벡터를 표현하는 것은 아니지만 공격 표면에 대한 전반적인 흐름과 이를 통한 대응방안을 결정하는 데 도움이 된다.

[그림 1] 공격 라이프 사이클 흐름도 (출처: Mandiant)

[그림 1]과 같이 사이버 공격 라이프사이클 상에서 권한 상승은 상승된 권한을 통해서 추가 공격대상 확보를 위한 내부 정찰(Internal Reconnaissance)이나 공격의 지속성유지(Maintain Presence), 측면이동(Move Laterally)등의 공격과 연결될 수 있으며 권한 상승이 발현되지 않는 경우에는 추가적인 공격이 발현되지 않을 가능성이 높아진다.

MITRE ATT&CK은 권한 상승에 대해 “공격자가 시스템의 약점, 잘못된 구성 및 취약성을 활용하여 시스템이나 네트워크에서 더 높은 수준의 권한을 얻는 기술”이라 정의하고 있으며, 높은 수준의 권한에는 SYSTEM/Root 권한, 로컬 관리자, 네트워크 관리자(도메인 admin, 엔터프라이즈 admin), 특정 기능과 시스템에 접근하는 사용자 계정 권한 등이 있다. 이번 호에서는 네트워크 기반의 권한 상승을 통한 네트워크 관리자(도메인 관리자) 권한 획득에 대한 공격방식에 대해서 다루고자 한다.

2) ADCS의 개요

ADCS(Active Directory Certificate Services)는 AD(Active Directory) 환경에서 사용되기 때문에 먼저 AD에 대해서 설명하고자 한다. AD는 Microsoft에서 Windows Server 2000 출시와 함께 복잡한 IT 인프라를 체계화하여 효율적으로 운영하기 위해 도입된 서비스다. 조직 네트워크 내에 존재하는 호스트나 사용자 계정관리 및 권한 관리가 마스터 서버(DC)를 통해 중앙 서버에서 관리할 수 있어서 중앙 집중형 관리에 최적화된 서비스라 할 수 있다.

문제는 AD 개발 당시 개발에 참여했던 AD 전문자들의 은퇴와 AD 구축 및 관리에 대한 교육 부족으로 현재 숙련된 AD 전문가들이 부재하다는 점이다. 이로 인해 조직의 AD 전문가들은  AD 구축이나 운영에 대한 전문 지식을 온라인 포럼이나 일부 교육에만 의존해야 해서 안전한 AD 서버 구축에 한계가 발생되고 있다.

이러한 AD 생태계의 전문가 부족으로 인한 안전하지 않은 AD 구성은 공격자들에게 권한 상승 공격을 위한 벡터로 사용되고 있다. 우리가 다루고자 하는 ‘ADCS의 취약한 인증서 템플릿 구성을 통한 ESC1 공격기술’ 역시 ADCS의 취약한 환경을 이용한 공격방식이다.

ADCS는 AD에서 Microsoft가 제공하는 보안 통신 및 인증 프로토콜의 PKI인증서  발급을 관리하기 위한 Windows 서비스다. AD에서 사용되는 다수의 인증 서비스 중 하나로 공개키 암호화, 디지털  인증서 발급 및 관리, 사용자 인증 등의 기능을 제공하는데, AD에서는 ADCS 이외에도 NTLM 사용자 인증, Kerberos 인증을 제공한다. [표 1]은 ADCS 인증을 위해서 사용되는 구성요소를 정리한 내용이다.

[표 1] ADCS 인증 관련 용어 설명

ADCS 서비스를 구성할 때는 일반적으로 DC(Domain Controller), CA(Certificate Authority), ADDS(Active Directory Domain Service), 도메인 내 호스트로 구성되어 있으며  CA(Certificate Authority) 서버, ADCS 서비스, 인증서 양식 중에 하나라도 잘못 설정되어 있다면 도메인 내 일반 유저를 통해 도메인 관리자 권한을 획득하여 도메인이 장악될 수 있다.

02. ESC1 Offensive Technique

1) 취약한 인증서 템플릿 속성

‘ADCS의 취약한 인증서 템플릿 구성을 통한 ESC1 공격기술’을 통해 설명하고자 하는 ‘ESC1 공격기술(ESC1 Offensive Technique)’은 SpecterOps의 Will Schroeder와 Lee Christensen이 명명한 기술로

“Certified Pre-Owned: Abusing Active Directory Certificate Services” 백서에 언급되어 있으며 해당 자료는 Blackhat USA 2021에서도 발표된 바 있다.

ESC1은 ADCS 연구진들이 발견한 취약한 ADCS의 환경에서 도메인 권한 상승이 발현되는 기술 중 하나로 연구진들은 취약한 환경 조건에 따라 Offensive Technique ID로 명명한 것으로 ESC1이외에도 ESC2, ESC3, ESC4, ESC5, ESC6, ESC7, ESC8의 8가지로 공격방식을 분류하고 있다. 본문에서는 인증서 템플릿의 특정 조건에 의해 도메인 권한 상승이 가능한 기술인 ESC1을 다루게 된다.

해당 공격은 특정 조건을 충족하는 PKI 인증서 양식을 이용하여 일반 도메인 유저 권한에서 관리자 도메인 유저의 권한으로 권한 상승이 되는 공격 방식이며 여기서 말하는 특정 조건의 인증서 템플릿 속성은 [표 2]와 [그림 2]에서 명시된 조건을 의미한다.

[표 2] ESC1에 취약한 인증서 템플릿 속성
[그림 2] ESC1에 취약한 인증서 템플릿 속성

2) 공격 기술 발현 흐름도

ESC1 공격 기술 발현을 위해 ADCS 서버를 [그림 3]과 같이 구축을 하였다. 도메인 내에 DC와 CA, Client를 구축하였고 공격자(Kali)는 ADCS 서버와 같은 네트워크에 있으며 도메인 내부로 진입하여 도메인 관리자 계정 권한을 원한다는 가정 하에 진행을 하였다.

[그림 3] ADCS 서버 구축환경

일반적으로 실제 AD 환경은 [그림 3]과 같이 도메인 내 클라이언트(사용자)가 1명으로 제한되지 않으며 기업환경에서 사용하기에 다수의 클라이언트(사용자)가 구성되어 있다.  AD 환경에서는  네트워크 내의 개체(Object)들에 대한 접근 허용을 사용자 기반으로 다루며 이러한 사용자 목록을 Database화 시켜 리스트(Directory)로 저장한다.

DC에는 Directory가 저장된 공간 Directory Database가 저장되어 있으며 이 Directory Database에 등록된 사용자 계정을  통해 AD를 관리하기에 본 환경에서 DC는 필수로 구성해야 한다. 또한 공개키 기반의 인증서를 통한 사용자 인증을 진행하기 위해 CA 서버를 구성한다. 그리고 CA나 Client를 구축할 때에는 DC가 관리하는 도메인 내의 컴퓨터 계정으로 Join(Computers 등록)을 해야 한다. Join을 하여 컴퓨터 계정을 등록하게 되면 클라이언트는 DC 내의 Domain user에 접근할 수 있게 되기 때문이다.

[그림 4] AD 논리구조 이해

[그림 4]는 ADCS 환경 구성의 이해를 돕기 위한 AD 논리구조이다. AD에서는 Domain이 관리체계의 최소 단위이며 Object를 관리할 수 있는 그룹인 OU(Organizational Units)와 Object(개체)에 해당하는 Users, Computers, Application 등이 존재한다. 이때 Domain Controller가 서버 내에 존재하는 Directory Database의 사용자 목록을 통해 사용자의 접근을 관리한다.

[그림 5] ESC1 공격 기술 발현 흐름도

[그림 5]는 ESC1 Offensive Technique 발현 과정이다. 공격자(Kali)는 현재의 위치에서 로컬 권한 상승이 불가하다고 판단하여 네트워크 권한 상승 공격을 생각하였고 ADCS 서버의 존재를 확인 후 [그림 5]의 ①,② 과정을 거쳐 CA 서버와 취약한 인증서 템플릿 정보를 수집한다. 그 후 ESC1 Offensive Technique을 이용하여 도메인 일반 계정에서 도메인 관리자 계정으로 권한 상승 후 DC에 원격 접속을 한다.

[그림 6]  ADCS환경에서 권한 상승을 위한 ESC1 Offensive Technique 발현 조건 구성도

[그림 6]은 [그림 5]의 공격자의 인증서 요청과 CA서버의 인증서 발급 과정에서 ESC1이 발현되는 상세 과정이다.  ESC1 발현은 [그림 6]의 공격자가 특정 조건을 충족하는 취약한 인증서 템플릿 구성을 이용하여 관리자 인증서를 요청하는 과정에서 일어난다. [그림 6]의 ②에서 ESC1 Offensive Technique이 발현되며 핵심은 인증서 템플릿 구성에 SAN(Subject Alternative Name)을 통한 인증서 요청(CSR)이 가능할 때, 즉 [표 2]와 같은 취약한 템플릿이 존재할 때 공격자가 SAN을 공격 타겟(도메인 관리자)으로 변조 후 도메인 관리자의 인증서를 요청하여 도메인 관리자의 권한으로 상승이 가능하다는 점이다.

ESC1 공격 기술의 발현을 이해하기 위한 [그림 6]의 자세한 설명은 다음과 같다. 본 환경은 ADCS 환경의 공개키 기반의 인증서를 사용하기에 [그림 6]의 ①에서 요청자(Client)는 개인키와 공개키를 생성한 후 Certipy 도구를 이용하여 ESC1 공격 기술이 발현되는 취약한 인증서 템플릿을 열거하여 확인 후 ②과정과 같이 인증서 요청 시 공개키를 배치하고 SAN을 도메인 관리자로 위조하여 요청을 진행한다.

③인증서 요청을 확인한 CA 서버는 관리하는 인증서 템플릿에 요청한 인증서 템플릿이 존재하는지 우선 확인한 후 요청한 인증서 템플릿의 설정 값(Enrollee Supplies Subject, Require Approval, Authorized Signatures Required, Enrollment Permissions 속성)을 적용하여 ④도메인 관리자의 인증서를 생성한 후 요청자에게 전달한다. ⑤인증서를 전달받은 요청자는 이를 이용하여 도메인 관리자로 사용자 인증을 수행할 수 있다.

3) ESC1 Offensive Technique을 이용한 권한상승 과정

ESC1 공격 실행 과정은 [그림 7]에서 [그림 13]을 통해서 설명하고자 한다.

[그림 7] CA 서버 정보수집
[그림 8] CA 서버의 인증서 템플릿 구성 정보수집

공격자(Attacker)는 네트워크 관리자 권한을 얻기 위한 공격을 하기 앞서 활용 가능한 정보들을 수집해야 한다.

[그림 7]은 네트워크 및 시스템 해킹 도구인 crackmapexec 도구를 통해 CA 서버의 존재와 정보를 확인하는 과정이다. 응답 값으로 CA 서버의 호스트 이름(ca01.igloo.local), CN(Common Name), PKI 웹 서비스 정보를 확인했다. [그림 8]은 ADCS 서비스 공격 도구인 certipy-ad를 통해서 CA 서버의 인증서 템플릿 설정 정보를 확인하는 과정이다. 저장된 TXT 파일의 템플릿 설정을 확인하여 취약한 템플릿 구성이 있는지 확인해야한다.

[그림 9] 취약한 인증서 템플릿 구성

[그림 8]에서 저장된 TXT 파일 뿐만 아니라 ZIP 파일을 BloodHound GUI에서 확인할 경우 커스텀 쿼리들을 통해 도메인 상승에 관한 Offensive Technique (ESC1~9)들을 확인할 수 있으며 취약한 템플릿 속성 또한 확인 가능하다. [그림 9]에서는 도메인 내(IGLOO.LOCAL)에 존재하는 VULN-ESC01 템플릿에서 ESC1이 존재한다.

[그림 10]은 [그림 2] ESC1에 취약한 인증서 템플릿 속성과 동일한 설정으로 SAN을 지정할 수 있는 Enrollee Supplies Subject 속성 값(True), 관리자 승인 필요 여부를 확인하는 Require Manager Approval 속성 값(False), 인증서 서명 요청(CSR) 시 인증된 서명인지 확인하는 Authorized Signatures Required 속성 값(0), 권한이 낮은 사용자의 인증서 등록 권한을 확인하는 Enrollment Rights 속성 값(Domain Users 또는 전체 사용자)을 확인할 수 있었으며 이러한 취약한 인증서 템플릿 설정은 ESC1에 해당하는 도메인 관리자 권한 상승을 유발하게 된다.

[그림 10] 취약한 인증서 템플릿 구성
[그림 11] 도메인 관리자 인증서 발급

[그림 11]는 도메인 일반 계정(igloohacker)을 통해 도메인 관리자 계정(Administrator)의 인증서를 발급받는 과정이다. Certipy-ad 도구의 upn 옵션을 통해 타겟(도메인 관리자)유저의 이름을 SAN으로 지정하고 도메인 관리자의 인증서(administrator_dc01.pfx)를 CA서버로부터 발급받는다.

[그림 12] 도메인 관리자 인증서를 통한 NT Hash 획득

[그림 12]은 CA서버로부터 발급받은 도메인 관리자 인증서를 통해 TGT 인증 후 NT Hash를 획득하는 과정이다. 개인키와 인증서가 포함된 PFX 파일과 DC서버의 IP를 입력하면 TGT 인증 요청을 통해 TGT 티켓을 발급받은 후 도메인 관리자(Administrator)의 NT Hash 값을 획득한다.  NT Hash는 윈도우의 NLTM 인증 방식 중에 하나인 NTLM 인증 흐름에서 사용된 Hash 값으로 로컬 NTLM뿐만 아니라 AD 기반 NTLM 인증에서 여전히 사용된다.

노출된 NT Hash는 Pass-the-Hash 공격이나 PsExec, CrackMapExec 등의 도구를 통해 권한상승(Escalate Privilege),  측면이동(Move Laterally)에 활용될 수 있으며 또한 NTLM 릴레이 공격을 통해 계정 정보 탈취에도 사용될 수 있다.

[그림 13] 관리자 NT Hash를 이용하여 인증

[그림 13]는 [그림 12]에서 획득한 도메인 관리자의 NT Hash를 이용하여 DC(10.0.2.10)에 인증 및 자격증명을 하는 과정이다.  (Pwn3d!)를 통해 관리자 액세스에 성공했음을 알 수 있으며 AD 기반의 NTLM 인증을 사용하므로 모든 유저의 NT Hash가 담긴 NTDS.dit 파일에 관리자의 Hash가 포함되어 있음을 유추할 수 있다.

4) ESC1 Offensive Technique을 이용한 권한 상승 이후 후속 공격

ADCS에서 ESC1 Offensive Technique으로 권한 상승을 수행하였다면 본격적으로 공격 대상의 시스템의 후속 공격(Post Exploitation)을 수행할 수 있다. 앞서 [그림 1]에서 살펴본 공격 라이프 사이클과 같이 권한 상승 이후 측면이동, 내부정찰, 지속성 유지, 계정 정보 탈취 등의 공격을 수행할 수 있게 된다. 본 문서에서는 권한 상승 이후 패스더해시(Pass-the-Hash)기법을 통한 측면이동과 원격코드 실행을 통한 Impacket을 이용한 계정 정보 탈취(Credential Access) 방법에 대해서 살펴보고자 한다.

후속 공격에 활용되는 Pass-the-Hash 기법은 윈도우 NTLM 인증 시 평문 비밀번호가 아닌 NT Hash를 이용하는 NTLM의 인증 기법을 활용한 기법으로, 공격자가 NT Hash 값으로 인증 성공이 가능하기 때문에 측면 이동이나 원격코드 실행 등의 추가적인 공격을 수행할 수 있게 된다.

[그림 14]는 Pass-the-Hash 기법의 이해를 돕기 위한 NTLM 인증 다이어그램이다. [그림 14]의 NTLM 인증을 설명하면 다음과 같다. ①공격자(Client)는 도메인 관리자로서 공격 대상에 사용자 인증을 위해 CA서버로 인증을 요청하고 ②CA서버는 공격자에게 랜덤한 Challenge 값을 전달한다.

③공격자는 전달받은 값에다가 [그림 12]에서 획득한 도메인 관리자의 NT Hash로 암호화하여 최종 Challenge 값을 CA로 전달하고 ④전달받은 서버는 DC에게 전달 후 ⑤, ⑥DC는 DC내의 NTDS.dit에서의 도메인 관리자의 NT Hash 값으로 암호화한 Challenge 값과 공격자에게 전달받은 Challenge 값을 비교하여 ⑦인증성공과 실패를 공격자에게 전달한다. 추가적으로 ⑤과정의 NTDS.dit은 AD의 Domain Database이기 때문에 도메인 내에 모든 유저 자격증명 정보가 저장되어 있어 계정 정보 탈취를 위해서 반드시 필요한 파일이다.

[그림 14] NTLM 인증 다이어그램
[그림 15] impacket-secretsdump 명령어를 이용한 계정 정보 탈취(NTDS Dumping)

[그림 15]는 계정 정보를 탈취하는 과정으로 ‘impacket-secretsdump’ 명령어를 이용해 원격에서 공격대상의 자격정보를 덤프 뜬 결과로, NTDS.dit 뿐만 아니라 SAM Hash, LSA Secret, Kerberos key 정보도 확인할 수 있다. 계정 정보 탈취는 [그림 15]의 NTDS Dumping과 같은 공격 방식 이외에도 LLMNR/NBT-NS 포이즈닝, Password Cracking 등의 공격 기법을 사용할 수 있다.

[그림 16] impacket-wmiexec명령어를 이용한 측면이동 공격 과정

[그림 16]는 원격접속 시 사용되는 WMI를 이용하여 도메인 관리자의 계정(Administrator)으로 DC에 접속한 결과다. 접속 전제 조건은 DC의 관리자 권한을 갖고 있는 계정, NTLM Hash, SMB 포트 접근 가능이다. 이로써 공격자는 타겟에 원격 코드 실행 및 프로세스 실행이 가능하게 되며, 측면 이동에 사용되는 도구에는 WMI 이외에도 PsExec, WinRM, RDP 등이 존재한다.

공격자는 계정 정보 탈취, 측면이동 이외에도 장악한 타겟에 계속적으로 접근하기 위한 단계 필요하다. 이를 지속성 유지 단계라고 하며 공격자 입장에서 공격 라이프 사이클 단계를 거쳐 타겟을 장악했는데 타겟 호스트 쪽의 재부팅, 설정 변화 등을 통해 접근 및 컨트롤이 안된다면 그동안의 노력이 물거품이 되는 것이다. 이러한 변수를 막기 위해 공격자는 작업 스케줄러 및 Cronjob 생성, Startup 폴더, 유저 정보 조작, 골든 티켓 등의 공격을 통해 지속적인 접근이 가능하도록 한다.

[그림 17] 리버스 쉘 제작

[그림 17]은 공격자(kali)에서 msfvenom으로 리버스 쉘을 생성하는 과정이다. 로컬호스트(lhost)는 공격자로 설정하고 로컬포트는 임의로 지정하여 실행파일을 생성한다. 생성한 악성파일(igloo.exe)을 타겟 호스트(DC)로 옮긴 후 희생자가 컴퓨터에 로그인할 때 마다 리버스 쉘 실행 파일이 실행되도록 레지스트리 값을 [그림 18] 을 통해 [그림 19]처럼 추가할 것이다.

[그림 18] 레지스트리 키 값 추가

[그림 18]은 psexec 도구로 타겟호스트(DC)에 접속 후 사용자 로그온 시 자동적으로 실행되는 실행파일을 등록하기 위해 해당 기능과 연관된 레지스트리 키 값을 추가하는 과정이다. /v, /t, /d 옵션은 각각 키 이름, 키 종류, 실행파일 경로를 의미한다.  [그림 18] 과정 이후에 타겟의 레지스트리 키 값이 추가되었으며 컴퓨터 로그인 시마다 리버스 쉘 실행 파일이 동작할 것이다.

[그림 19] 레지스트리 키 값 추가
[그림 20] Metasploitable의 handler 사용

[그림 20]은 희생자(DC:10.0.2.10)가 리버스 쉘 실행파일(igloo.exe)을 동작 시켰을 때 공격자(KALI:10.0.2.15)가 공격대상 접속 세션을 잡기 위해 핸들러를 생성했으며 리스너 포트(8443)를 열어놓고 대기 중이다. 

[그림 21] 리버스 쉘 연결 확인

공격자가 리스너 포트를 오픈한 상태에서 희생자가 로그인 시 리버스 쉘 연결을 확인할 수 있으며 이로써 공격자는 타겟과의 지속성을 수립했으며 능동적으로 공격을 수행할 수 있게 된다.

사용자 로그인 시 등록된 프로그램 실행을 위한 레지스트리 실행 키 경로
(HKCU\Software\Microsoft\Windows\CurrentVersion\Run)에는 언급된 [그림19] 외에도
[표 3] 과 같은 경로도 추가적으로 존재한다.

[표 3] 사용자 로그인 시 자동실행을 위한 레지스트리 키 경로

03. 대응방안

대다수의 단체 및 기업들이 구축해 놓은 AD 서비스는 공격자에게 있어 로컬 권한 상승이나 환경에 따라 네트워크 권한 상승의 위험에 빠질 수 있다. AD 권한 상승 공격 기술 중에 ADCS의 취약한 인증서 템플릿 구성을 통한 ESC Offensive Technique이 존재하며 공격자의 공격 라이프 사이클 단계의 마지막 단계인 목표 달성에 활용되어 고객 및 회사의 자산을 위협한다. ADCS 인증 서비스를 사용하는 단체 및 기업들은 이러한 위험성을 인지하고 사전에 올바른 인증서 템플릿 구성이나 적절한 탐지가 필요하다.

1) 올바른 인증서 템플릿 구성 (Harden Certificate Template Settings)

첫 번째 올바른 인증서 템플릿 구성은 취약한 인증서 템플릿에 “Supply in Request” 설정을 해제하는 것이다. 이 설정은 [그림 3]에 있는 Enrollee Supplies Subject 속성과 연관이 되며 설정 해제 시 CSR(인증서 서명 요청) 과정에서 SAN(Subject Alternative Name) 변조를 통한 도메인 관리자 권한 상승을 예방할 수 있다. [그림 22]은 CA 서버의 Certificate Template Console에서 “Supply in Request” 설정을 확인하는 과정이다.

[그림 22] “Supply in the request” 설정 해제

두 번째 올바른 인증서 템플릿 구성은 취약한 인증서 템플릿에 “CA certificate manager approval” 설정을 해제하는 것이다. 이 설정은 [그림 3]에 있는 Requires Manager Approval 속성과 연관이 있으며 설정 체크 시 속성 값이 True로 변환되어 공격자의 인증서 발급 요청 시 관리자 승인 필요 여부를 확인하고 도메인 관리자의 인증서 발급이 실패된다.

[그림 23] CA certificate manager approval 설정 체크

세 번째 올바른 인증서 템플릿 구성은 취약한 인증서 템플릿에 Domain Users의 Enroll 권한에 “Deny” 설정을 체크하는 것이다. 해당 그룹(Domain Users)의 등록 권한을 Deny로 설정할 경우 도메인 내의 유저들은 해당 인증서 템플릿을 통해 인증서 등록이 불가하다. CA에게 인증서 등록이 불가한 것은 CSR요청이 안된다고 보면 된다.

[그림 24] 인증서 등록 권한 거부로 부여

2) 엄격한 사용자 매핑 적용 (Harden Certificate Template Settings)

공격자가 요청한 인증서 인증 과정에서 AD는 인증서를 AD 계정에 매핑한다. 인증 과정에 사용되는 Kerberos와 Schannel은 일반적으로 인증서의 SAN(Subject Alternative Name)에 지정된 UPN을 사용하여 인증서를 AD 계정에 매핑하게 되는데 이때 DC의 레지스트리 키 경로인 HKLM\SYSTEM\CurrentControlSet\Services\Kdc에서 UseSubjectAltName의 DWORD 값을 0으로 설정하면 SAN에 의한 매핑이 제한된다. 하지만 Kerberos 인증이 아닌 다른 인증 방식을 적용할 경우 매핑이 강제되지는 않아 효과적인 대응방안은 아니다.

3) 인증서 인증 이벤트 감시(Monitor Certificate Authentication Events)

윈도우 환경의 경우 Event Viewer를 통해 보안 관련 이벤트를 탐지할 수 있으며 인증서 등록에 관한 이벤트를 탐지할 수 있는 이벤트 ID가 존재한다. 존재하는 이벤트 ID는 [표 4]와 같으며 관리자는 이러한 Event를 모니터링하여 비정상적인 행동을 탐지하고 악의적이거나 의심스러운 인증서를 차단해야 한다.

[표 4] 인증서 인증 관련 Event ID

04. 마무리

Will Schroeder, Lee Christensen의 Certified Pre-Owned 백서에서 언급한 ESC1 Offensive Technique 기술에 대해 알아보았으며 해당 기술로 인한 도메인 관리자 권한 상승과 공격 라이프 사이클에서의 정보수집 및 후속공격 그리고 그에 대한 대응방안도 확인하였다.

기업이나 기타 단체의 보안을 담당하는 보안 담당자들은 AD환경의 DC를 통한 중앙 집중형 관리로 인해 얻는 단순 편리성 뿐만 아니라 그로 인한 보안 관점에서의 위험성을 인식해야 하며 이러한 AD 환경의 ADCS 서비스의 취약한 인증서 템플릿 구성으로 이어지는 공격 숙지 및 대응방안을 숙지할 필요가 있다.
더 나아가 “지피지기 백전불태’라는 말이 있듯이 권한 상승이 공격자에게 어떤 중요성을 갖고 공격자들이 어떤 일련의 단계(공격 라이프 사이클)를 거쳐 자산 및 서비스에 침투하는지 공격자의 전략과 계획을 생각할 줄 알아야 효과적으로 자사의 자산을 보호할 수 있다.