Xctdoor와 과거 CRAT 공격 사례의 연관성 분석 (Larva-26005)

Xctdoor와 과거 CRAT 공격 사례의 연관성 분석 (Larva-26005)

1. 개요

AhnLab SEcurity intelligence Center(ASEC)은 최근 Larva-26005 공격자가 국내 사용자들을 대상으로 Xctdoor를 유포 중인 것을 확인하였다. Xctdoor는 2024년 ASEC 블로그를 통해 공개되었으며 [1] 2026년 3월에는 Hauri사에서 통합 보안 프로그램을 위장한 공격 사례를 공개하였다. [2]

 

ASEC은 Larva-26005 공격자의 공격 및 악성코드들을 분석하던 중 Xctdoor가 과거 CRAT 악성코드 유포 사례와 연관성이 존재하는 것을 확인하였다. CRAT은 2020년 최초로 확인되었으며 스피어 피싱 공격이나 국내 커뮤니티 사이트에 업로드되어 유포되는 등 국내 사용자들을 대상으로 한 다양한 공격 사례에서 사용되었다. Cisco Talos의 보고서에 따르면 Hansom 랜섬웨어를 설치해 감염 시스템을 암호화하였는데 국내 ASD 로그에서도 동일한 유형의 공격 사례가 확인되었다. CRAT을 다루었던 보안 업체들은 공격자를 Lazarus 그룹으로 추정하였으며 북한 기반의 다른 공격 사례에서도 연관 정보가 확인되기도 하였다. 즉 Larva-26005 공격자는 적어도 2020년부터 활동해오고 있으며 초기에는 Hansom 랜섬웨어 공격 과정에서 CRAT, Xctdoor를 함께 사용하였지만 최근에는 Xctdoor만을 사용 중인 것으로 보인다.

 

본 보고서에서는 먼저 2026년 확인된 보안 프로그램을 위장한 공격 사례를 정리한다. 최초 유포 사례는 알 수 없지만 보안 프로그램 Veraport와 SoftCamp를 위장한 드로퍼로 설치되었다. 해당 공격 사례에서는 최종적으로 Xctdoor를 설치하였는데 C++로 제작된 유형과 Go 언어로 제작된 유형 두 개가 사용되었다. 최근에는 LNK 악성코드를 통해 유포 중임에 따라 새롭게 확인된 공격 사례도 함께 정리한다. [3] 그리고 국내에서 확인된 CRAT 공격 사례를 다루는데 해당 사례에서는 Hansom 랜섬웨어와 함께 CRAT 그리고 Xctdoor의 초기 버전이 공격에 사용되었다. 두 악성코드는 동일한 시점에 설치되었으며 최근까지도 악용되고 있는 AppX 패키지 경로를 설치 경로로 사용하고 있다. 또한 Xctdoor와 동일하게 난독화된 코드를 실행 중에 복호화한 후 실행하는데 난독화된 코드의 전후에 시작 패턴과 끝 패턴을 검증하는 것도 동일하다. 마지막으로 과거 알려진 공격 사례들을 기반으로 다른 공격자들과의 연관성을 정리한다.

 

2. 2026년 공격 사례

2.1. 보안 프로그램 위장 사례

2026년 3월 Hauri사에서 Xctdoor를 악용한 공격 사례를 다루었다. 해당 보고서에서는 Veraport를 위장한 설치 파일을 다루었지만 동일한 주소에서 SoftCamp를 위장한 유형도 유포되었다.

 

Figure 1. 압축 파일 내의 악성코드 및 정상 프로그램들

 

압축 파일의 압축을 해제하면 “setup” 폴더 내에 정상 실행 파일과 악성 DLL이 존재한다. Veraport 위장 압축 파일에는 Sysinternals의 ShellRunAs가 Veraport를 위장한 이름 “veraport-q3.exe”로 존재하며 실행 시 DLL Side-Loading 방식으로 동일 경로에 위치한 “credui.dll”이라는 악성 드로퍼가 로드되어 실행된다. 실행 중 실제 Veraport 설치 파일을 “%TEMP%\veraport-q3.exe” 경로에 생성하고 실행하여 정상적인 설치 프로그램으로 위장한다. SoftCamp 위장 압축 파일에는 MS 프로그램인 “wkspbroker.exe”가 SoftCamp 설치 파일을 위장해 “SCWSSPSetup.exe”라는 이름으로 존재하며 실행 시 로더 악성코드 “RADCUI.dll”를 로드한다. 참고로 로더 악성코드는 동일 경로에 위치한 “Setup.dat”을 복호화하는데 이것이 실제 SoftCamp 정상 설치 프로그램이다.

 

Figure 2. Veraport 설치 프로그램

 

Figure 3. SoftCamp 설치 프로그램

 

DLL Side-Loading 방식으로 드로퍼가 실행되면 3개의 파일을 생성하는데 먼저 VBS 런처 악성코드인 “%PUBLIC%\videos\s{random}.vbs”가 실행된다. “s{random}.vbs”는 동일 경로에 위치한 BAT 다운로더 악성코드 “%PUBLIC%\videos\{random}.bat”를 실행한다. “{random}.bat”은 다운로더 기능을 수행함과 동시에 동일 경로에 위치한 VBS 다운로더 악성코드 “%PUBLIC%\videos\p{random}.vbs”를 작업 스케줄러에 등록한다.

 

Type 경로 생성 방식
VBS Launcher %PUBLIC%\videos\s{random}.vbs 드로퍼
VBS Downloader %PUBLIC%\videos\{random}.bat 드로퍼
VBS Downloader %PUBLIC%\videos\p{random}.vbs 드로퍼
PS Launcher %PUBLIC%\videos\2.ps1 다운로드

Table 1. 생성되는 스크립트 파일들

 

“{random}.bat”은 XcLoader와 Xctdoor를 다운로드하며 “p{random}.vbs”는 파워쉘 스크립트 “%PUBLIC%\videos\2.ps1″를 다운로드한다.

 

Type 다운로드 주소 다운로드 파일 다운로드 경로
BAT Downloader hxxps://hesenorm[.]info/download/xtps 암호화된 Xctdoor %PUBLIC%\videos\x{random}
hxxps://hesenorm[.]info/download/lcpy 암호화된 XcLoader %PUBLIC%\videos\x{random}
VBS Downloader hxxps://hesenorm[.]info/download/pxt2 파워쉘 런처 %PUBLIC%\videos\2.ps1

Table 2. 다운로드 대상

 

파워쉘 스크립트 “%PUBLIC%\videos\2.ps1″는  다운로드한 x{랜덤명} 파일 즉 암호화된 Xctdoor를 아래 경로로 이동시킨다.

 

  • 원본 : C:\Users\Public\Pictures\x{random}
  • 대상 : %LOCALAPPDATA%\Packages\Microsoft.MicrosoftOffice365Hub_8wekyb3d8bbwe\Settings\roaming.dat

 

또한 “l{random}” 파일 즉 XcLoader를 XOR 디코딩한 뒤 아래 경로로 이동시킨다.

 

  • 원본 : C:\Users\Public\Pictures\l{random}
  • 대상 : %LOCALAPPDATA%\Packages\Microsoft.MicrosoftOffice365Hub_8wekyb3d8bbwe\Settings\settings.lock

 

XOR 복호화 방식은 다음과 같다.

 

  • Xor 복호화 방식 : Decrypted_Data = (Encrypted_Data ^ 0x11 ^ ((i * i) mod 0xFF)

 

Figure 4. 파워쉘 스크립트의 복호화 루틴

 

여기까지의 과정이 끝나면 지속성 유지를 위해 시작 프로그램 경로에 바로가기를 생성하고 실행하는 데 XcLoader를 RegSvr32를 통해 실행시키는 명령이다.

 

  • 실행 명령 : C:\WINDOWS\system32\regsvr32.exe /s %LOCALAPPDATA%\Packages\Microsoft.MicrosoftOffice365Hub_8wekyb3d8bbwe\Settings\settings.lock

 

2.2. LNK 공격 사례

Larva-26005 공격자의 공격 사례는 지속적으로 확인되고 있으며 자사 ASD 로그에서 확인되는 공격들은 대부분 스피어 피싱으로 추정된다. 최초 침투 과정에서 LNK가 사용되는데 LNK 악성코드는 드로퍼로서 위의 보안 프로그램 위장 사례처럼 미끼 문서 파일을 보여주고 동시에 3개의 스크립트 파일을 생성하고 실행한다. 다음은 2026년 4월 공격 사례에서 확인된 “***_종합현황_(대외비)_26.4.4.lnk” 악성코드가 생성하는 미끼 문서 파일이다.

 

Figure 5. 미끼 문서 파일

 

LNK 악성코드는 다음과 같은 명령을 실행해 VBS Launcher, BAT Downloader, VBS Downloader를 생성하며 이후의 행위는 위의 사례와 동일하다.

 

Figure 6. LNK가 실행하는 파워쉘 명령

 

공격은 2026년 6월과 7월에도 지속되었으며 공격 사례들에서는 다음과 같은 LNK 파일 실행이 확인된다. 유포된 LNK의 이름들을 보면 일반 사용자들 외에도 기업 사용자들이 그 대상으로 보인다.

 

  • ** 잔고내역서.lnk
  • 2.전세금 투자.lnk
  • 전세계약특약정리.lnk
  • 환불신청서 1.lnk
  • 이의정악행.lnk
  • 상품등록.lnk
  • (RESUME)_***** Cloud&CDN 영업_***.LNK
  • 피싱 사이트 증가에 따른 *** 이용 보안 유의사항 안내.lnk
  • ** 스토리보드_v1.0_260604.lnk
  • PREE-12월1차 **** TT.lnk
  • 정책 유선 (4).lnk
  • µTorrent.lnk
  • 디스크 정리.lnk
  • 입력자료.lnk

 

2.3. 2024년 공격 사례

ASEC은 2024년에도 Larva-26005 공격자의 국내 대상 공격 사례들을 확인하였는데 먼저 관리되지 않은 윈도우 IIS 웹 서버를 공격해 웹쉘을 설치한 후 XcLoader와 Xctdoor를 설치한 사례가 있었다. 공격자는 백도어 설치 외에도 Ngrok라는 터널링 프로그램을 설치해 외부에서 NAT 환경 내부에 존재하는 시스템에 접속할 수 있게 노출시키기도 하였다. [4]

 

Figure 7. 웹 서버를 공격하여 XcLoader를 설치하는 로그

 

또 다른 사례에서는 외부에 노출되어 있던 그룹웨어 시스템의 업로드 페이지를 통해 초기 침투를 시도한 것으로 추정된다. 취약한 파일 업로드 페이지를 이용해 공격자는 웹셸을 업로드했으며 그룹웨어 시스템에 대한 초기 제어권을 확보하였다. 해당 공격 사례의 특징 중 하나는 오픈 소스 메신저인 BeeBEEP의 설치 파일을 변조하여 Xctdoor를 생성 및 실행하는 루틴을 삽입하였으며 그룹웨어에 존재하는 기존의 설치 파일을 악성 설치 파일로 교체하여 내부 전파하였다는 점이다. [5]

 

공격자는 이외에도 국내 ERP 솔루션을 악용하기도 하였는데 업데이트 기능을 담당하는 모듈에 Regsvr32.exe 프로세스를 이용해 악성 DLL을 실행하는 루틴을 삽입하였다. 해당 프로그램에 의해 실행된 DLL은 Go 언어로 개발된 Xctdoor였다.

 

3. 악성코드 분석

3.2. XcLoader

3.2.1. XcLoader 분석

LNK에 의해 RegSvr32 프로세스에 로드되어 실행되는 “settings.lock”은 인젝터 악성코드이다. 공격자는 2024년 사례에서도 XcLoader를 이용해 Xctdoor를 정상 프로세스에 인젝션하였다. 과거에는 Go 언어로 제작된 유형과 C++로 제작된 유형 두 가지가 사용되었다. XcLoader는 동일 경로에 존재하는 Xctdoor 악성코드 “roaming.dat” 파일을 읽어 이전 파워쉘 스크립트와 동일한 XOR 알고리즘으로 복호화한다.

 

  • Xor 복호화 방식 : Decrypted_Data = (Encrypted_Data ^ 0x11 ^ ((i * i) mod 0xFF)

 

이후 같은 경로의 settings.ini 파일의 존재 여부를 확인한다. 이번 사례에서는 settings.ini이 확보되지 않았으나, 과거 유사 사례에서 확인된 파일은 아래와 같다.

 

  • ApplicationFrameHost.exe
  • Runtimebroker.exe
  • sihost.exe
  • taskhostw.exe
  • explorer.exe

 

“settings.ini” 파일이 존재하는 경우, 해당 파일에 문자열로 저장된 프로세스 이름을 가져온 뒤, 해당 프로세스에 앞서 디코딩한 roaming.dat PE 파일을 인젝션한다. 만약 settings.ini 파일이 존재하지 않는 경우에는 “explorer.exe” 프로세스에 인젝션한다. 인젝션 과정에서는 roaming.dat PE 파일을 메모리에 2회 복사한다. 이후 Xctdoor의 Export 함수인 RsdserviceMain()을 실행하기 위한 쉘코드를 삽입하고, 해당 쉘코드를 실행한다. 결과적으로 RsdServiceMain() 함수에는 아래 5개의 파라미터가 전달된다.

 

  • 파라미터 1 : 0
  • 파라미터 2 : 프로세스 인젝션에 사용할 Xctdoor(roaming.dat) 주소
  • 파라미터 3 : Xctdoor 메인 함수명(OfficeServiceMain())의 해시 값 (0x46903DF2)
  • 파라미터 4 : 파일로 저장할 Xctdoor(roaming.dat) 주소 (코드 난독화 XOR키 변경 대상) 
  • 파라미터 5 : Xctdoor(roaming.dat) 파일 크기

 

참고로 파라미터 3번은 백도어의 메인 함수명인 OfficeServiceMain() 함수를 찾기 위해 사용되는 해시값이다. 

 

3.2.2. 코드 난독화

DLL Side-Loading 방식으로 동작하는 드로퍼부터 XcLoader 그리고 Xctdoor는 모두 코드 영역이 난독화되어 있으며 실행 도중에 코드 영역을 복호화하여 실행한다. 이러한 방식은 과거 사례부터 지속적으로 사용되고 있다.

 

난독화 루틴은 두 가지 유형으로 구분되며, 두 유형 모두 동일한 난독화 해제 루틴을 사용한다. 다만 난독화된 코드 영역을 찾는 방식은 유형별로 차이가 있다. 또한 샘플마다 난독화 코드 영역을 식별하기 위한 시그니처 값과 난독화 키 값이 서로 다르게 설정되어 있다. 난독화가 적용된 함수는 실행 초기에 난독화 해제 루틴을 호출하여 코드 영역을 복원한 뒤 본래 기능을 수행한다. 이후 함수 종료 직전에 다시 난독화 루틴을 호출하여 복원된 코드 영역을 난독화 상태로 되돌린다.

 

첫 번째 유형은 난독화된 코드 영역을 탐색할 때 10바이트 길이의 시그니처를 사용한다.

 

  • 암호화된 코드 영역 구조 : {시작 시그니처:10} {임의 데이터:7} {난독화 코드} {끝 시그니처:10}

 

Figure 8. 첫 번째 유형의 난독화 해제 루틴

 

두 번째 유형의 경우 난독화된 코드 영역을 찾을 때 시작 시그니처와 끝 시그니처가 각각 2개로 분리되어 있는 것이 특징이다. 시작 시그니처는 14바이트 범위 내 앞쪽 4바이트와 뒤쪽 4바이트를 기준으로 확인하며, 끝 시그니처 역시 동일한 방식으로 확인한다. 전체 구조는 아래와 같다.

 

  • 암호화된 코드 영역 구조 : {시작 시그니처_1:4} {중간 데이터:6} {시작 시그니처_2:4} {임의 데이터:5} {난독화 코드} {임의 데이터:1} {끝 시그니처_1:4} {중간 데이터:6} {끝 시그니처_2:4}

 

Figure 9. 두 번째 유형의 난독화 해제 루틴

 

3.3. Xctdoor 분석

3.3.1. Xctdoor (C++)

현재 인젝션 된 “roaming.dat” 즉 Xctdoor는 RAW 형태로 메모리에 적재되어 그대로 실행할 수 없으므로 RsdServiceMain() 함수를 통해 추가로 메모리를 할당한 뒤 해당 파일을 PE 이미지 형태로 다시 적재한다. 메모리 적재가 완료되면 DLL 메뉴얼 매핑 과정을 거쳐, DllEntryPoint() 함수를 호출한다. 이후 인자로 받았던 “OfficeServiceMain” 문자열 해쉬 값을 Export 함수들과 비교하면서 OfficeServiceMain() 함수의 주소를 찾고 실행한다.

 

OfficeServiceMain() 함수는 본격적인 백도어 기능을 수행하는 함수이다. 해당 함수는 백도어 기능을 수행하기 전, 4번째 파라미터로 전달받은 백도어 PE 파일 내부의 난독화 시그니처 값과 키 값을 변경한 뒤 재암호화하여 “roaming.dat” 파일로 저장한다. 이러한 동작은 파일 내용을 지속적으로 변경함으로써, 백신 프로그램의 정적 시그니처 기반 탐지를 우회하기 위한 목적으로 추정된다.

 

Xctdoor가 실행되면 아래 3가지 조건을 이용하여 사용자 부재 상태를 확인한다. 사용자 부재 상태가 변경될 때마다 변경된 상태 정보를 C&C 서버로 전송한다.

 

  • 사용자 부재 상태 조건 (OR 조건)
  • 스크린세이버 On
  • 모니터 디스플레이 Off
  • 세션 잠금 상태 On

 

이후 C&C 서버에 접속하여 공격자로부터 명령을 수신한다. 해당 백도어가 C2 서버로부터 수신하는 명령은 아래와 같다.

 

명령 번호 설명 완료 후 송신 번호
0x10001 쉘 세션 객체 생성  
0x10002 쉘 세션 종료 시 종료 방법 선택
– 1이면 쉘 세션 프로세스만 종료
– 0이면 쉘 세션 및 자식 프로세스까지 종료
 
0x10003 쉘 명령 수신 3
0x10004 전체 드라이브 정보 가져오기 4
0x10005 특정 폴더 내부 파일 목록 가져오기
(파일 이름, 파일 속성, 파일 크기, 마지막으로 쓴 시간)
5
0x10006 파일(or 메모리) 다운로드 준비 성공: 6
실패: 7
0x10007 파일(or 메모리) 다운로드 진행 성공: 6
실패: 7
0x10008

파일(or 메모리) 다운로드 완료
– 파일의 경우 원하는 파일 시간, 파일 속성 적용

– 메모리의 경우 특정 프로세스에 인젝션

파일: 송신 안함
메모리: 성공 20
0x1000A 특정 파일/폴더 하위 포함 삭제 5
0x1000B 특정 경로의 폴더 생성 및 상위 폴더 내부 파일 목록 가져오기 5
0x1000C 파일(or 메모리) 다운로드 취소  
0x1000D 파일 업로드 준비 (파일 크기 전송) 성공: 8
실패: 7
0x1000E 파일 업로드 진행 업로드 중: 9
완료: 10
실패: 7
0x10010 시스템 정보 가져오기 12
0x10011 창 표시 상태로 명령 실행 (ShellExecute 이용)  
0x10012 창 숨김 상태로 명령 실행 (CreateProcess 이용)  
0x10015 백도어 종료 (정리까지)  
0x10016 프로세스 목록 가져오기
(PID, PPID, 스레드 개수, 프로세스 경로)
16
0x10017 특정 프로세스 종료 16
0x10018 키로깅 시작  
0x10019 키로깅 종료  
0x1001A 행위 없음  
0x1001B 현재 통신 세션 종료  
0x1001F 백도어 강제 종료 (0 전송 시 / Exeption 발생)  
0x10021 명령 다중 실행 (cmd /c 이용) 22
0x10022 설정 변경
(통신 주기, 포트 번호, 주기적으로 키로깅/스크린샷 여부, 스크린샷 주기, 드라이브 모니터링 여부 등)
 
0x10024 스크린샷 즉시 찍기 24
0x10025 %ALLUSERSPROFILE%\msci.cng 파일 재설정 (통신 패킷 헤더에서 사용하는 데이터) 12
0x10026

공유 메모리 생성 후 데이터 저장

공유 메모리 명 : SM3:2300:402:WilStaging_01

 
0x10027 공유 메모리 해제  
0x10028 현재 실행되는 프로세스 이름 가져오기 26
0x10029 파일/폴더 이동 5

Table 3. Xctdoor가 지원하는 명령

 

데이터를 송신할 때는 아래 송신 번호를 기준으로 데이터를 구분하여 C2 서버에 전달한다.

 

송신 번호 설명
3 쉘 명령 결과 전달
4 전체 드라이브 결과 전달
5 특정 폴더 내부 파일 목록 전달
6 다운로드 준비 완료
7 다운로드/업로드 실패
8 파일 업로드 준비 완료
9 파일 업로드 진행
10 파일 업로드 완료
12 시스템 정보 전달
15 사용자 부재 알림
16 프로세스 목록 전달
17 키 입력할 때마다 키로그 데이터 전달
18 클립보드 내용이 변경될 때 마다 데이터 전달
19 활성 창 변경할 때마다 키로그 데이터 전달
20 다운로드 및 인젝션 완료
22 명령 다중 실행 결과 전달
23 변경된 드라이브 정보 전달
24 스크린샷 전달
25 새로운 드라이브 장착 시 알림
26 인젝션 된 프로세스 이름 전달

Table 4. 백도어가 C2 서버로 송신 시 사용하는 번호

 

3.3.2. Xctdoor (Go)

2024년 사례와 마찬가지로 Go 언어로 제작된 Xctdoor도 함께 확인된다. C++로 제작된 유형과 비교했을 때 사용자 부재 상태 모니터링 조건, 명령어 번호, 송신 번호 모두 실질적으로 동일한 악성코드이다.

 

Figure 10. Go 언어로 제작된 Xctdoor

 

4. CRAT 공격 사례

4.1. CRAT

CRAT은 2020년 4월부터 확인된 백도어 악성코드로서 주로 국내 사용자들을 대상으로 다양한 방식으로 유포되었다. 최초 발견된 CRAT은 CVE-2017-8291 취약점을 사용하는 “코로나바이러스 대응 긴급조회.hwp” 파일명의 한글 문서를 이용한 스피어 피싱 공격으로 유포되었다. [6] 그 후 국내 커뮤니티 사이트에 업로드된 변조된 프로그램에서 CRAT을 드롭하거나 [7] 다운로드하는 방식으로 공격 벡터를 확장하였고, 국내 학술 관련 사이트에서는 한글 문서 형태의 악성코드를 “공지사항”에 관련된 문서로 위장한 상태로 업로드되기도 하였다.

 

Figure 11. 2020년 4월 코로나 관련 주제로 유포된 한글 문서 스피어 피싱 공격 사례

 

Figure 12. 2020년 7월 국내 커뮤니티에 업로드되어 유포된 사례

 

초기 유포된 CRAT은 PDB 경로에 “crat”이라는 키워드가 존재함에 따라 CRAT으로 분류되었으며 상세한 분석 정보는 TI보고서에 존재한다. [8] CRAT은 HTTP 프로토콜을 이용해 C&C 서버와 통신하는 백도어 악성코드로서 시스템 정보 수집, 파일 작업, 명령 실행, 추가 페이로드 다운로드, 사용자 파일 압축 후 탈취와 같은 기능을 지원한다. 실행 시 정상 프로세스에 인젝션하여 동작하며 자신을 “%LOCALAPPDATA%\Microsoft\WindowsApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\<랜덤8>.<랜덤3>”와 같은 경로에 생성한 후 RegSvr32로 이를 실행하는 LNK 파일을 Run 키에 등록한다.

 

CRAT은 추가 모듈과 함께 사용되기도 한다. “\\.\pipe\ChromeUpdatePipe”라는 이름의 Named Pipe에 연결을 시도하고 성공 시 페이로드를 전송하는데 함께 설치된 인젝터 모듈이 해당 Named Pipe를 읽어 전달받은 페이로드를 정상 프로세스에 인젝션 할 수 있다.

 

Figure 13. CRAT의 뮤텍스 이름

 

4.2. Xctdoor와 함께 유포된 국내 공격 사례

CRAT은 Hansom 랜섬웨어를 포함한 다양한 플러그인들을 사용하는 것으로 알려져 있으며 대표적으로 키로거, 스크린 캡쳐, 클립보드 모니터링 등이 있다. 2020년 Cisco Talos의 보고서처럼 CRAT이 Hansom 랜섬웨어와 함께 설치된 사례가 국내 대상 공격 사례에서 확인되었다. 각각의 공격 사례들에서는 CRAT, Hansom 랜섬웨어 외에도 Named Pipe를 통해 전달받은 페이로드를 인젝션하는 인젝터 그리고 다수의 웹 브라우저 대상 자격 증명 추출 도구들이 함께 수집되었다.

 

Figure 14. Hansom 랜섬웨어의 랜섬노트

 

  • 공격자 이메일 주소 – 1 : hansom2008@protonmail[.]com
  • 공격자 이메일 주소 – 2 : hansompay2008@yandex[.]com

 

Hansom 랜섬웨어 공격 사례의 가장 큰 특징은 Xctdoor의 초기 버전이 Hansom 랜섬웨어와 함께 사용되었다는 점이다. 동일한 시점에 함께 사용되었다는 점 외에도 악성코드 설치 경로도 동일하다. “%LOCALAPPDATA%\microsoft\windowsapps\microsoft.microsoftedge_8wekyb3d8bbwe\” 같은 AppX 패키지 경로는 과거 CRAT부터 2026년 사례의 Xctdoor까지 지속적으로 사용되고 있다. 이외에도 공격에 사용된 CRAT 또한 Xctdoor처럼 코드를 난독화한다는 점이 있다. 암호화된 부분의 시작을 나타내는 패턴이 다음과 같이 명령으로 존재하며 끝을 나타내는 패턴까지 복호화를 진행하는 점은 두 악성코드 모두 동일하다. 

 

  • 시작 명령 1: C7 05 … 0xE840C764
  • 시작 명령 2: C7 05 … 0xB988C344
  • 시작 명령 3: C7 05 … 0xFFE8CC02
  • 시작 명령 4: C7 05 … 0x80D43F05
  • 끝 명령 1 : C7 05 … 0x81C6D232
  • 끝 명령 2 : C7 05 … 0xC902D654
  • 끝 명령 3 : C7 05 … 0xC8E404F0
  • 끝 명령 4 : C7 05 … 0x7C01F922

 

Figure 15. 난독화 해제 루틴과 난독화된 시작 패턴

 

4.3. 공격자 정보

2020년 국내 사용자들을 대상으로 CRAT을 유포한 스피어 피싱 공격 사례들에 대해 이스트 시큐리티에서는 Lazarus 그룹이 C&C 서버를 구축할 때 워드프레스 기반의 웹 사이트를 활용한다는 점을 이유로 Lazarus 그룹을 공격자로 분류하였다. [9] [10] Cisco Talos 또한 공격자 정보를 특정하는데 어려움이 있지만 Lazarus가 사용하는 기법과 유사한 측면이 있다는 점을 들며 Lazarus 그룹과의 연관성을 언급하였다. 유사한 점으로는 Lazarus 그룹이 사용하는 다른 악성코드와 동일한 HTTP Wrapper 라이브러리를 사용한다는 점이나 RAT 기능이 중복된다는 점 그리고 랜섬웨어를 유포하고 있으며 워드프레스 기반 웹 사이트를 C&C 서버로 사용한다는 점이 있다. 이외에도 CRAT의 디코이 문서 파일을 기반으로 한국어 사용자들을 대상으로 한다는 점도 언급된 사항들 중 하나였다. 

 

2020년 9월에는 QiAnXin사에서 Lazarus 공격자의 스피어 피싱 공격 사례를 다루었다. [11] [12] 해당 공격 사례에서 사용된 다운로더 악성코드의 C&C 서버 주소로 “www.fabioluciani[.]com”가 있다. 이 주소는 Kaspersky사의 보고서 중 ThreatNeedle을 이용한 Lazarus 공격자의 방위 산업 대상 공격 사례와 [13] 보안 연구원을 대상으로 한 북한 추정 공격자의 공격 캠페인을 다룬 구글 TAG의 보고서에서도 포함된 주소이다. [14] 

 

공격자는 2024년 공격 사례에서 지속성 유지를 목적으로 국내 ERP 솔루션인을 패치해 악성코드를 실행하는 데 사용하였다. 이러한 점은 Andariel 공격자의 공격 방식과도 유사한데 Andariel 공격자는 2017년뿐만 아니라 2025년에도 국내 ERP 솔루션을 공격해 악성코드를 유포한 사례가 확인되었다. [15] ASEC은 해당 공격자를 Larva-26005로 분류하며 북한과의 연계성이 존재할 것으로 보고 있다. 최근 확인된 공격에서는 XcLoader, Xctdoor를 설치 중이며 최근에는 랜섬웨어 공격 사례는 확인되지 않으나 감염 시스템의 정보를 수집하는 행위는 지속되고 있다.

 

5. 결론

Larva-26005 공격자는 투자, 부동산 거래, 영업 및 보안 문서 등의 키워드를 이용한 피싱 메일을 통해 유포되고 있으며 보안 프로그램 설치 파일을 위장해 유포된 사례도 존재한다. 사용자는 문서 파일 또는 정상 프로그램으로 생각해 파일을 다운로드해 실행할 수 있으며 이 경우 XcLoader 및 Xctdoor 백도어가 설치되어 제어가 탈취당할 수 있다. 공격자는 백도어 외에도 정보 탈취 도구를 설치하기 때문에 자격 증명 정보, 사용자 파일들 등 민감한 정보가 탈취될 수 있다.

 

사용자들은 메일 첨부 파일뿐만 아니라 출처가 불분명한 실행 파일을 각별히 주의해야 한다. 또한 V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.

 

MD5

01b58f2ff2c14feed46a0768ea46686d
07766e6e9d9f86775ad564a65af292c1
08e19a0d516d14e564359ee111ed2586
0d2e61c8a5e6280e065b61e75b848c68
12391f66ee33d379108fd649a999e1a0
URL

http[:]//casinolegit[.]info/ms/beeLogo[.]webp
http[:]//casinosec[.]info/ms/beeLogo[.]webp
http[:]//cristiantirira[.]com/wp-content/uploads/2018/11/03-499×300[.]png
http[:]//desk-azureft[.]info/wp-include/wpmain[.]php
http[:]//grace2019[.]teamernst[.]net/wp-content/uploads/2011/08/student_2141-800×200[.]jpg
FQDN

casinolegit[.]fun
hesenorm[.]info
koramate[.]fun
ntsgo-corp[.]com
ntsgo[.]name

AhnLab TIP를 구독하시면 연관 IOC 및 상세 분석 정보를 추가적으로 확인하실 수 있습니다. 자세한 내용은 아래 배너를 클릭하여 확인해보세요.