분석 정보/악성코드 분석 정보

윈도우 서비스로 위장한 Sagerunex 백도어

TACHYON & ISARC 2025. 5. 20. 17:42

최근 동남아시아 지역의 공공 및 국방 기관을 대상으로 Sagerunex 백도어를 유포하는 캠페인이 발견됐다. 해당 백도어는 2012년부터 유포되던 Elise 백도어를 시작으로 기능을 개선 및 추가하는 등 지속적으로 업그레이드해 Evora, Sagerunex 순으로 발전돼 왔다. 또한 여러 공격 사례에서 Sagerunex 백도어의 C&C 서버 연결 방식에 따른 다양한 변종이 발견되고 있다.

 

 

캠페인에서 공격자는 정상 서비스인 swprv DLL 파일로 위장한 로더 악성코드를 윈도우 폴더에 저장하고 서비스 DLL의 경로가 저장된 레지스트리를 로더의 저장 위치로 수정한다. 이후 공격자가 swprv 서비스를 재시작하거나 시스템을 재부팅해 해당 서비스가 로더의 ServiceMain 함수를 호출하도록 유도하며 로더는 .data 섹션에 저장된 Sagerunex 페이로드를 복호화하고 익스포트 함수를 호출해 실행한다. 최종적으로 Sagerunex는 공격자의 C&C 서버와 통신해 추가 명령을 수행한다.

 

[그림 1] 동작 흐름도

 

최초 침입 방법 및 과정은 밝혀지지 않았지만 침입에 성공한 공격자는 쉘 명령어를 이용해 DLL 파일 저장 및 레지스트리 수정 등의 동작을 수행한 것으로 추정된다. 먼저 로더를 swprv 서비스의 DLL 파일인 swprv.dll로 위장하고 C:\Windows` 폴더에 저장한다. 이후 해당 서비스의 레지스트리에서 DLL 경로를 수정해 서비스 시작 시 로더의 ServiceMain 함수가 호출되도록 유도한다.

- 레지스트리 수정 명령어 : reg add HKLM\SYSTEM\CurrentControlSet\Services\swprv\Parameters

                                         /v ServiceDll /t REG_EXPAND_SZ /d c:\windows\swprv.dll /f

 

[그림 2] swprv.dll 로드 경로

 

호출된 ServiceMain 함수는 파일 내부의 .data 섹션에 저장된 Sagerunex 백도어 페이로드를 복호화하고 PE의 매직 및 시그니처 값과 비교해 PE 데이터인지 검증한다. 이후 헤더를 읽고 섹션 데이터를 순차적으로 복사해 PE 이미지를 메모리에 로드하며 Sagerunex 백도어의 익스포트 함수인 MainEntrance의 주소를 계산해 호출한다.

 

[그림 3] MainEntrance 함수 호출

 

Sagerunex 백도어는 GetLocalTime을 이용해 시스템의 현재 시간을 확인하고 공격자의 C&C 서버에서 수신한 활성화 조건과 반복적으로 비교하면서 잠복 상태로 대기한다.

 

[그림 4] 활성화 조건 비교 코드

 

이후, 현재 시간이 활성화 조건을 만족해 잠복 상태에서 깨어나면 공격자의 C&C 서버에서 추가 명령어를 수신 및 수행한다. , 각각의 서버 명령어 수행 사이에도 일정한 시간 간격을 두고 동작하도록 설계된 것을 확인할 수 있다. 예시로 [그림 6]의 코드는 1번의 명령어 수행마다 5, 10번의 명령어 수행마다 30분의 시간 간격을 갖는다. 이와 같은 설계는 프로세스의 자원 점유율을 줄이고 악성코드 동작 간의 연결성을 약화시킴으로써 보안 프로그램의 탐지 가능성을 낮추는 역할로 추정된다.

 

[그림 5] 서버 명령어 수행 간 대기 코드

 

Sagerunex[그림 6]의 변종 A와 같은 IP 주소 기반의 HTTPS 통신 외에도 클라우드 및 메일 서비스 등 다양한 서버 연결 방식에 따른 변종이 존재한다. 예시로 변종 B Dropbox API를 이용해 데이터를 업로드 및 다운로드하는 방식을 사용하며 변종 C는 파일 내부에 저장된 계정 정보를 이용해 Zimbra 메일 서비스에 로그인한 후 메일을 주고받는 방식으로 서버와 통신한다.

 

[그림 6] C&C 연결 방식에 따른 변종

 

서버와 연결에 성공하면 Sagerunex 백도어는 서버로부터 명령 코드를 수신해 스크립트 실행 및 파일 수정 등의 동작을 포함한 [ 1]의 명령을 수행한다.

 

[표 1] C&C 서버 명령어 목록

 

서버 명령 코드 중 0x206를 수신하는 경우 백도어는 CreateProcess 함수를 이용해 cmd.exe 프로세스를 생성하고 함께 수신된 cmd 명령어를 실행한다.

 

[그림 7] cmd 명령어 실행 코드

 

Sagerunex는 윈도우의 기본 서비스로 위장해 실행되며 활성화 조건에 따른 잠복 기능을 포함하고 있기 때문에 사용자가 감염 여부를 식별하기 어려워 주의가 필요하다. 따라서, 출처가 불분명한 메일의 열람을 지양하고, 보안 프로그램과 OS를 항상 최신버전으로 유지할 것을 권고한다.

 

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

 

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