개요
2020-08-17 Windows Netlogon 서비스에서 권한상승 취약점이 발견되었다. Netlogon은 도메인 내 사용자를 인증하는 Windows Server의 서비스 중 하나로 컴퓨터와 도메인 컨트롤러 간 보안채널을 생성한다. Netlogon은 Netlogon Remote Protocol 이하 MS-NRPC라고도 칭한다. 해당 취약점을 이용해 도메인 컨트롤러(Domain Controller)에 별도의 권한 없이 네트워크 연결만으로도 취약점을 악용할 수 있어 위험도가 매우 높다. CVE 점수 또한 10점 만점중에 10점을 배정받았다.
본 글에서는 피해 서버를 선택할 때, 침해사고 비율이 높은 Windows Server 2012 R2를 선택하였다. 공격을 진행할 서버로는 Windows 10을 사용하고자 했다.
영향 받는 Windows Server 제품군 및 테스트 환경은 아래 사진과 같다.
준비물
이번 실습에서 구성된 환경은 아래와 같다.
피해서버(192.168.100.128)
- Windows Server 2012 R2 Standard (자세한 빌드 버전은 문서 상위에 작성되어있음)
공격서버(192.168.100.132)
- Windows 10 (Python 3.11 버전 사용)
도구 준비
- wmiexec.py 다운로드
- impacket 설치
- pip install impacket
- github 다운로드
스크립트
- 도메인 컨트롤러 공격 및 해시 값 획득
$ python cve-2020-1472-easymode.py -n [DC 컴퓨터 이름] -i [DC IP주소] -d [DC 도메인]
- 해시 값 크랙
python wmiexec.py -hashes [해시 값] [DC 도메인]/[DC 계정]@[DC IP주소]
로그 및 아티팩트
Security.evtx
중요하다고 생각되는 데이터 위주로 작성
Event ID: 4742, 컴퓨터 계정을 변경하였습니다.
Event ID: 4724, 계정 암호를 다시 설정하려고 합니다.
CVE-2020-1472
Zerologon은 Microsoft Active Directory 도메인 컨트롤러를 공격하는 MS사의 Netlogon 프로세스 암호화 취약점이다. Zerologon을 사용하면 공격자는 도메인 컨트롤러를 손상시키며 서버를 장악할 수 있다.
이 취약점은 마이크로소프트의 MS-NRPC(Microsoft Active Directory Netlogon Remote Protocol)의 암호화 결함을 공격한다. 때문에, 공격자는 사용자가 NTLM (NT LAN Manager)을 사용하는 서버에 로그온 할 수 있다.
이 취약점의 가장 큰 문제는 MS-NRPC가 컴퓨터 계정 암호 변경 사항을 전송하는데도 사용한다는 점이다. 때문에, 위 실습에서도 Security.evtx에서 계정 변경에 대한 로그가 나타난 것이다.
원래 Windows NT에서 로그온 프로세스를 암호화하는데 사용된 알고리즘은 2DES였으며 2DES는 문제가 있는 암호화 알고리즘으로 알려져있다. 현재 MS-NRPC는 암호화의 벤치마크로 간주되는 AES (Advanced Encryption Standard)를 사용한다.
강력한 알고리즘을 선택하는 것 외에도 적절한 강도를 보장하기 위해 추가 설정을 선택해야 하는데, MS-NRPC는 AES-CFB8(Advanced Encryption Standard – Cipher Feed Back 8bit)이라는 모호한 설정을 사용한다. AES-CFB8은 잘 알려지지 않고 테스트 되지 않았기 때문이다.
MS-NRPC 내에서 AES-CFB8을 사용하면 초기화 벡터(IV, Inital Vector).이 벡터는 임의의 수여야 하지만 MS-NRPC는 16바이트의 0값으로 고정했다. 때문에, 공격자들은 추측 가능했으며, 해당 취약점에 사용되어 도메인 컨트롤러가 손상되며 서버가 장악되는 결과까지 초래될 수 있다.
Reference
- https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nrpc/ff8f970f-3e37-40f7-bd4b-af7336e4792f
- https://www.trendmicro.com/ko_kr/what-is/zerologon.html
- https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=skinfosec2000&logNo=222145380981&categoryNo=40&proxyReferer=
- https://riccardoancarani.github.io/2020-05-10-hunting-for-impacket/#final-words
'DFIR > DFIR' 카테고리의 다른 글
[파일 업로드] 취약점 기록 (0) | 2023.11.25 |
---|---|
악성 파일에 사용된 WScript Object (0) | 2023.11.25 |
생성시간 및 수정시간 (0) | 2021.11.12 |
[파일 시스템]NTFS - 5편(Index) (0) | 2021.11.12 |
[파일 시스템]NTFS - 4편(Resident, Cluster Run) (0) | 2021.11.12 |