Home CVE-2020-1473 권한 상승 취약점
Post
Cancel

CVE-2020-1473 권한 상승 취약점

개요


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 제품군 및 테스트 환경은 아래 표와 같다.

productVersion
Windows Server 2008R2 SP1
Windows Server 2012-
Windows Server 2012R2
Windows Server 2016-
Windows Server 20161903
Windows Server 20161909
Windows Server 20162004
Windows Server 2019-
RoleProduct
공격자(192.168.100.132)Windows 10
피해자(192.168.100.128)Windows Sever 2012 R2 Standard

|이번 테스트에서 사용할 정확한 시스템 버전은 아래와 같다.

  • Windows Server 2012 R2 Standard_6.3.9600 빌드

준비물


공격 대상 및 공격지

피해서버(192.168.100.128)

  • Windows Server 2012 R2 Standard (자세한 빌드 버전은 문서 상위에 작성되어있음)

공격서버(192.168.100.132)

  • Windows 10 (Python 3.11 버전 사용)

도구

  1. wmiexec.py 다운로드
  2. impacket 설치
1
pip install impacket
  1. github 다운로드
    • https://github.com/midpipps/CVE-2020-1472-Easy

스크립트


  1. 도메인 컨트롤러 공격 및 해시 값 획득

    1
    
     $ python cve-2020-1472-easymode.py -n [DC 컴퓨터 이름] -i [DC IP주소] -d [DC 도메인]
    
  2. 해시 값 크랙

    1
    
     $ python wmiexec.py -hashes [해시 ] [DC 도메인]/[DC 계정]@[DC IP주소]
    

로그 및 아티팩트


Security.evtx

중요하다고 생각되는 데이터 위주로 작성

Event ID: 4742

  • 컴퓨터 계정을 변경하였습니다.
상위컬럼하위컬럼내용
주체계정이름ANONYMOUS LOGON
주체계정 도메인NT AUTHORITY
변경된 컴퓨터 계정보안 ID공격당한 계정의 SID
변경된 컴퓨터 계정계정 이름피해 PC 컴퓨터 이름
변경된 컴퓨터 계정계정 도메인피해 도메인 이름

Event ID: 4724

  • 계정 암호를 다시 설정하려고 합니다.
상위컬럼하위컬럼내용
주체계정이름ANONYMOUS LOGON
주체계정 도메인NT AUTHORITY
대상 계정보안 ID공격당한 계정의 SID
대상 계정계정 이름피해 PC 컴퓨터 이름
대상 계정계정 도메인피해 도메인 이름

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
This post is licensed under CC BY 4.0 by the author.

윈도우 원격 데스크톱 이벤트 로그 분석 상세

악성 파일에 사용된 WScript Object