DEV Community

Se-ok Jeon
Se-ok Jeon

Posted on • Edited on

ZeroLogon

ZeroLogon

Microsoft Netlogon 프로세스의 암호에서 발생한 취약점으로 Active Directory 도메인 컨트롤러를 공격하여 계정을 탈취할 수 있습니다.

용어

Netlogon?

Netlogon은 Windows 운영 체제에서 사용되는 네트워크 로그온 프로세스로, 사용자가 도메인에 로그온할 때 인증 과정을 담당합니다.

Active Directory?

Active Directory는 Microsoft의 디렉터리 서비스 기술로, 조직 내 사용자, 컴퓨터, 리소스 등을 중앙에서 관리할 수 있게 해줍니다.

Domain Controller?

도메인 컨트롤러는 Active Directory 환경에서 사용자 인증, 권한 관리 등의 핵심 기능을 수행하는 서버입니다. 도메인 컨트롤러는 Active Directory 데이터베이스를 관리하며, 도메인 내 클라이언트 컴퓨터와 사용자의 인증을 담당합니다.

왜 이름이 ZeroLogon인가?

사용자가 도메인에 있는 컴퓨터에 로그인할 때, 세션 키를 활용합니다. 이 세션 키 생성 암호화 알고리즘은 IV(Initial Vector)를 사용하는데, IV의 범위가 16바이트로 제한되어 있어 0000000000000000이 될 가능성이 큽니다. 문제는 IV가 0000000000000000인 경우, 암호문도 0000000000000000이 되며, 이로 인해 정상적으로 생성된 암호문(세션키)를 사용하여 로그인할 수 있게 됩니다.

취약점 공격 과정

  1. 클라이언트가 챌린지 값을 서버에 전송합니다.
  2. 서버는 챌린지 값을 키로 암호화하여 클라이언트에게 보냅니다. 이때 IV가 0000000000000000이 되면, 암호문도 0000000000000000이 됩니다.
  3. 클라이언트는 IV가 0000000000000000이라고 가정하고, 키 값(0000000000000000)을 사용해 서버에 로그인을 시도합니다.
  4. 1~3의 과정이 성공할 때까지 반복합니다.

챌린지

챌린지(Challenge)는 네트워크 통신에서 인증 과정의 일환으로 사용되는 임의의 값입니다. 클라이언트가 서버에 로그인을 시도할 때, 서버는 클라이언트에게 챌린지 값을 보내고, 클라이언트는 이 값을 바탕으로 자신의 인증 정보를 생성하여 서버에 다시 전송합니다. 이를 통해 서버는 클라이언트가 실제로 권한을 가진 사용자임을 확인할 수 있습니다. 챌린지-응답 방식은 중간자 공격(Man-in-the-Middle Attack)을 방지하는 데에도 중요한 역할을 합니다.

실습

Bruteforcing IV for session

Top comments (0)