본문 바로가기
분석 정보/악성코드 분석 정보

태국을 대상으로 유포되는 Yokai 백도어

by TACHYON & ISARC 2025. 12. 24.

Yokai 백도어는 2024 12월 처음 등장했으며 태국을 대상으로 미국 법무부 및 협력 요청 등의 문서로 위장한 LNK 파일 형태로 유포됐다. 해당 LNK 파일의 ADS(Alternate Data Stream) 영역에 Yokai 백도어가 포함돼 있었으며 LNK 파일 실행 시 ADS 영역에서 악성 파일을 추출한 후 DLL 사이드로딩을 이용해 실행하는 방식이 사용됐다. 2025 8월에는 Yokai 백도어 유포에 SnakeDisk라는 USB 웜 악성코드가 사용되기도 했다. ADS를 이용한 방식과 SnakeDisk로 유포되는 두 가지 방식 모두 정상적인 EXE 파일에 DLL 형태의 Yokai 백도어를 DLL 사이드로딩을 이용해 실행하는 공통점을 가지고 있으며 해당 EXE 파일과 DLL 파일을 전달하는 과정에서 차이가 존재한다.

 

 

실행 유형

1.   ADS(Alternate Data Stream)

ADS는 윈도우의 파일 시스템인 NTFS에서 제공하는 기능으로 기본 스트림 외 다른 데이터 스트림을 추가로 저장할 수 있도록 한다. 2024 12월 유포된 Yokai 백도어는 LNK 파일이 포함된 RAR 아카이브 형태로 전달됐으며 LNK 파일의 ADS 영역에 악성 파일이 저장돼 있었다. LNK 파일의 크기는 2KB 4KB로 매우 작지만 dir /r 명령어를 사용하면 ADS 영역에 다른 데이터 스트림이 저장된 것을 확인할 수 있다. LNK 파일을 실행하면 esentutl.exe라는 윈도우 기본 유틸리티를 이용해 ADS 영역의 데이터 스트림에서 정상 문서와 EXE 파일을 추출하고 파일 형태로 저장한다. EXE 파일은 NSIS 인스톨러로 ProgramData 폴더에 정상 EXE 파일과 DLL 형태의 Yokai 백도어를 드롭한 후 DLL 사이드로딩으로 백도어를 실행한다.

-  ADS 데이터 스트림 추출 명령어

  -  esentutl.exe /y "%cd%\[파일명].docx.lnk:file.ext" /d C:\Users\Public\file.exe /o

-  파일 드롭 경로

  -   LNK 파일 : %SamplePath%\[파일명].docx

                         C:\Public\file.exe (NSIS 인스톨러)

   -  file.exe : C:\ProgramData\police\IdrInit.exe (iTop 데이터 복구 프로그램)

                     C:\ProgramData\police\ProductStatistics3.dll (Yokai 백도어)

 

[ 그림  1] ADS  영역에 저장된 데이터 스트림

 

2.   SnakeDisk

SnakeDisk USB 웜 악성코드로 실행 시 파라미터로 -Embedding이 입력되면 USB 장치 및 Yokai 백도어 배포 동작을 수행하며 -hope가 입력되면 감염 동작 없이 바로 Yokai 백도어를 드롭 및 실행한다. ADS 방식과 마찬가지로 SnakeDiskPublic 폴더에 정상 EXE 파일과 DLL 형태의 Yokai 백도어를 드롭한 후 -project-mod라는 파라미터와 함께 DLL 사이드로딩 방식으로 실행한다.

 

[ 그림  2] EXE  파일 실행 및 파라미터

 

 Yokai 백도어가 실행되면 IsUserAdmin API를 사용해 현재 프로세스의 실행 권한을 확인하고 관리자 권한일 경우 자기 자신을 계속해서 다시 실행해 시스템에 부하를 건다. 관리자 권한이 아닐 경우에 작업 스케줄러를 등록해 자동 실행을 설정하고 다음 동작을 수행한다.

 

[그림 3] 실행 권한 확인

 

[ 그림 4] 백도어 재실행

 

[ 그림 5] 작업 스케줄러 등록

 

자동 실행 등록이 완료되면 백도어는 기본적인 시스템 정보를 수집한 후 0x9C 크기의 구조체를 생성하고 Extensionswindow라는 문자열을 Key로 사용해 XOR 암호화한다. 암호화된 데이터는 WinHttp 세션을 이용해 공격자의 C&C 서버로 전송된다.

 

[ 그림 6] 데이터 수집 및 암호화

 

[ 그림 7] C&C 서버 연결 코드

 

이후 서버로부터 명령어를 수신해 명령 코드에 따른 동작을 수행한다. , 분석 시점에서 서버가 응답하지 않아 일부 명령 코드에 의한 동작은 해석되지 않는다.

 

[ 표 1] 명령 코드 및 동작

  

명령 코드 0x03을 수신하면 CreatePipe를 이용해 자식 프로세스와 통신을 위한 Pipe를 생성하고 입출력 버퍼에 대한 핸들을 STARTUPINFOA 구조체의 hStdOutput으로 지정해 자식 프로세스의 입출력으로 연결한다. STARTUPINFOA 구조체의 wShowWindow 값을 SW_HIDE(0)으로 설정해 창을 숨기고 CreateProcessA를 이용해 STARTUPINFOA로 지정한 설정으로 cmd.exe를 실행한다. 이후 PeekNamePipe를 이용해 Pipe 읽기 핸들(hStdOutRead) cmd 명령어의 실행 결과를 수신한 후 ReadFile로 데이터를 읽는 스레드를 생성한다. 명령 코드 0x04를 수신하면 패킷에 포함된 cmd 명령어를 WriteFile로 파이프에 작성해 해당 명령어를 실행한다.

 

[ 그림 8] cmd 입출력 파이프 연결

 

[ 그림 9] cmd 명령어 실행

 

[ 그림 10] cmd 명령어 실행 결과 수신 및 읽기

 

Yokai 백도어는 정상 문서 파일로 위장한 LNK 파일에서 내부 ADS 영역으로 실행되거나 USB 웜인 SnakeDisk에서 실행되는 백도어로 사용자가 감염 여부를 식별하기 어려워 주의가 필요하다. 따라서 출처가 의심스러운 메일의 열람에 주의해야 하며 운영체제와 보안 프로그램을 항상 최신 버전으로 유지할 것을 권고한다.

 

상기 악성코드는 잉카인터넷 안티바이러스 제품 TACHYON Internet Security 6.0에서 진단 및 치료가 가능하다.

 

[ 그림 11]  TACHYON Internet Security 6.0  진단 및 치료 화면