원격 유입

1. 개요

원격 데스크톱 프로토콜(RDP, Remote Desktop Protocol)은 Windows 운영 체제에서 원격으로 다른 컴퓨터에 접속하여 해당 컴퓨터를 제어할 수 있도록 해주는 프로토콜이다. 기업의 IT 담당자들이 서버나 컴퓨터를 원격으로 관리할 때 주로 이용한다. 특히, 최근 들어 재택근무 등 원격 근무 비율이 늘어나면서 일반 사용자들의 RDP 활용이 높아졌다. 이렇듯 일반적인 사용자들에게 RDP는 강력하고 편리한 도구지만, 공격자들에게는 네트워크에 침투하거나 데이터를 탈취하는 데 악용할 수 있는 수단이 될 수 있고, RDP로 공격 대상에게 침투 후 정보 유출을 하는 용도로 활용 될 수 있다.

이 문서에서는 RDP가 디지털포렌식과 침해사고 대응에서 어떻게 활용되는지, 그리고 이러한 공격을 탐지하고 분석하기 위해 Windows 이벤트 로그를 어떻게 활용할 수 있는지 설명한다.

다양한 사고에서 확인되는 RDP

무차별 대입 공격

공격자는 무차별 대입(Brute Force) 공격을 통해 약한 패스워드를 가진 계정을 찾으려고 시도한다. 이 과정에서 반복적인 로그인 시도가 발생하게 된다.

자격 증명 도용

공격자는 피싱, 키로깅 등을 통해 사용자 자격 증명을 탈취할 수 있다. 탈취한 자격 증명을 사용하여 RDP를 통해 네트워크에 접근하면 공격 행위를 정당한 사용자의 행위로 위장할 수 있다.

RDP 취약점 악용

RDP 서비스의 취약점을 이용하여 원격 코드를 실행하거나 권한을 상승시키는 공격을 수행할 수 있다. 예를 들어, BlueKeep(CVE-2019-0708)과 같은 취약점은 RDP를 통한 원격 코드 실행을 가능하게 한다.

내부 이동

공격자는 RDP를 사용하여 내부 네트워크의 다른 시스템으로 이동할 수 있다. 이를 통해 민감한 데이터에 접근하거나 추가적인 시스템을 장악할 수 있다.

2. 이벤트로그 확인

주요 이벤트로그

RDP 사용 여부에 대해 확인할 수 있는 이벤트로그 파일과 이벤트 ID는 다음의 표와 같다.

이벤트로그 파일 이름 중 Admin과 Operational의 차이

Admin.evtx:

  • 목적: 관리자 및 운영자가 주로 참조하는 로그이다. 시스템이나 애플리케이션의 전원 종료, RDP 오류 등 중요한 이벤트와 경고를 기록한다.

  • 특징: 이벤트는 보통 명확하고, 문제 해결을 위해 즉각적인 조치가 필요한 경우가 많다. 관리 작업이나 중요한 이벤트, 오류 등을 중점적으로 기록한다.

Operational.evtx:

  • 목적: 시스템 또는 애플리케이션의 정상적인 운영 상태를 모니터링하는 데 사용된다. 더 상세하고 다양한 이벤트를 기록하며, 주로 문제 해결 및 진단에 도움이 된다.

  • 특징: 세부적인 동작 상태를 모니터링하고, 문제가 발생했을 때 더 깊이 있는 분석을 할 수 있다.

예외 - Microsoft-Windows-TerminalServices-RDPClient%4Operational.evtx 파일만 존재하는 이유
해당 이벤트 로그가 RDP 클라이언트의 동작에 대한 운영 정보를 제공하는 데 중점을 두고 있기 때문이다. 즉, RDP 클라이언트 측에서는 세부적인 운영 정보 제공이 주목적이기 때문에 %Admin.evtx 파일 없이 %Operational.evtx 파일만 필요하다.

이벤트로그 파일 명
설명
연결 방향
이벤트 ID
비고

Security.evtx

사용자 로그인 시도, 로그아웃, 권한 상승, 감사 정책 변경 등과 같은 중요한 보안 관련 이벤트를 기록

Inbound

4624: 계정 로그인 4625: 계정 로그인 실패 4634: 계정 로그오프 4647: 사용자가 로그오프를 시작 4688: 새 프로세스가 시작 (측면 이동) 4689: 프로세스가 종료 4778: window station에 세션 다시 연결

4779: window station에 세션 연결 끊김

Logon Type: 10, 3+7

Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx

로컬 세션과 관련된 세부 정보를 제공

Inbound

21: 원격 데스크톱 서비스: 세션 로그온 성공

22: 원격 데스크톱 로그인과 셸의 개시 성공

24: 원격 데스크톱 서비싀: 세션 연결 끊김

25: 원격 데스크톱 서비스: 세션 다시 연결 성공 39: X 세션에서 X 세션의 연결 끊김

40: X 세션의 연결 끊김

Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx

운영과 관련된 상세한 이벤트를 제공하며, 문제 해결을 위한 세부 정보를 포함

Inbound

261: Lisner X Recceived a connection

1149: 사용자 인증 성공

1158: 원격 데스크톱 서비스가 IP 주소 연결 수락

Microsoft-Windows-RemoteDesktopServices-RdpCoreTS%4Operational.evtx

RDP 서비스의 세부적인 운영 정보와 관련된 이벤트를 포함

Inbound

Microsoft-Windows-TerminalServices-RDPClient%4Operational.evtx

원격 데스크탑 프로토콜 (RDP) 클라이언트의 동작에 대한 정보를 제공

Outbound

1024: 연결 시도 (새션 연결 여부 상관없이)

1025: 연결 성공

1026: ~이유로 연결이 끊김

그 외 아티팩트

RDP Bitmap Cache

RDP 캐시는 원격 데스크탑 연결 시 성능을 향상시키기 위해 사용된다. 캐시는 원격 데스크탑 세션에서 자주 사용되는 그래픽 데이터(이미지, 아이콘 등)를 저장하여, 동일한 데이터를 반복적으로 다운로드하지 않고 로컬에서 빠르게 로드할 수 있게 한다. 네트워크 대역폭을 절약하고, 사용자 경험을 개선목적으로 존재한다. 이는 분석하는 PC에서 어디로 원격을 붙었는지 확인할 수 있으며, 접근한 원격에서 어떤 행위를 추론할 수 있다.

RDP 연결 시 ‘지속적인 비트맵 캐싱’ 설정이 활성화되어있다면 저장경로에 bache*.bmc 또는 Cachexxxx.bin 파일이 존재하는 것을 확인할 수 있다. bcache로 파일 명이 시작되는 경우에, 끝에는 이미지 품질을 나타내는 2, 22 또는 24라는 숫자가 함께 오며 숫자가 높을 수록 생성된 비트맵 이미지의 품질이 높다는 것을 의미한다.

저장 경로: %USERPROFILE%\AppData\Local\Microsoft\Terminal Server Client\Cache

파일명
연결 방향

bache*.bmc or Cachexxxx.bin

Outbound

이렇게 확인된 bmc와 bin 파일은 상용도구와 오픈소스를 통해 비트맵으로 변환할 수 있다. 아래의 그림은 오픈소스들 중에 Github에 올라와 있는 ‘bmc-tools’를 사용하여 비트맵 이미지를 추출한 내용이다.

3. Case Study

BruteForce공격을 통한 RDP 계정 탈취 사례 - 최초 침투 판단

아래의 그림은 Security.evtx 파일을 분석한 내용으로, 초 단위로 다수의 로그온 실패가 있었음을 이벤트 ID 4625로 확인할 수 있다. 또한, 로그온 실패 시간대 직후 로그온 성공이 이루어졌음을 확인할 수있다.

이를 정리해보면 사용자가 로그인 시 초 간격으로 로그인을 다수 시도하지 않을 것으로 판단되며, 공격자는 계정 탈취를 위해 공격 도구를 사용하여 Brute Force 공격을 시도하였고, 결국 성공하였음을 로그에서 확인할 수 있다.

RDP 연결을 통한 2차 피해 사례

공격자가 확보한 PC(분석 대상)를 인프라 삼아서 다른 피해지 IP들을 원격으로 연결했다고 가정했을 시, Microsoft-Windows-TerminalServices-RDPClient%4Operational.evtx 이벤트로그에서 이벤트 ID 1024, 1025의상세내용을 통해 연결된 IP를 확인할 수 있다.

이렇게 분석한 내용을 기반으로 공격자가 접근한 추가 피해지 (접근한 IP들) 정보를 확보할 수 있다.

Last updated

Was this helpful?