원격 유입
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는 다음의 표와 같다.
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?