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

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs