본문 바로가기
Research & Insights

샌즈랩은 실제 사이버 위협 정보를 지속적으로 수집하고 분석하며, APT를 비롯한 고도화 공격의 흐름과 맥락을 추적합니다. 장기간 축적한 대규모 위협 데이터와 CTI 운영 경험을 바탕으로 악성코드, 공격 인프라, 데이터 유출, AI 보안 이슈를 깊이 있게 연구합니다. 실제 위협에서 발견한 변화와 기술적 분석 결과는 Tech Report로, 새롭게 포착되는 위협 정보는 CTX Threat News로 공유합니다.

[02월 | 악성코드 분석 보고서] 방위 및 항공 우주 분야 기업을 노린 SnakeKeylogger 악성코드

2025년 04월 14일위협 분석

샌즈랩 위협 분석팀은 매월 악성코드를 선정하여 보고서를 작성합니다.

샌즈랩 위협 분석팀은 매월 악성코드를 선정하여 보고서를 작성합니다.

전문 분석을 통해 파악한 악성코드의 특징과 위협 동향, 연관 정보 등을 공유해 안전한 사이버 환경을 만들어 가고자 합니다.

악성코드에 대한 더 상세한 정보는 사이버 위협 인텔리전스 서비스 <CTX>에서 확인하실 수 있습니다.


1. 개요

본 보고서는 업무 관련 파일명을 사용하여 유포된 인포스틸러 악성코드에 대한 분석을 다룬다.

해당 악성코드는 “견적 요청 건.cmd”와 같은 계약 업무 관련 파일명을 사용하여 사용자의 실행을 유도하며, 감염된 시스템에서 사용자 계정 정보, 신용카드 정보, 쿠키, 자동완성 데이터 등을 탈취하는 기능을 수행한다.


이 악성코드는 사회공학적 기법을 활용하여 업무 관련 파일로 위장되었으며, 다단계 실행 구조와 탐지 우회 기법을 적용하여 악성 행위를 수행한다. 특히, 프로세스 할로윙(Process Hollowing) 기법을 이용하여 악성코드를 정상 프로세스에 주입함으로써 탐지를 우회하고, 분석을 어렵게 만든다. 또한, 정상적인 소프트웨어처럼 보이도록 특정 오픈소스 라이브러리를 포함하고 있으며, 보안 연구 환경을 탐지하여 동작을 제한하는 기능도 확인되었다.


유사한 사례로, 터키에서도 계약 문서로 위장한 악성 이메일을 이용해 Snake Keylogger 변종이 유포된 정황이 확인된 바 있다. 해당 악성코드는 이메일을 통해 유포되었으며, 본 보고서에서 분석한 악성코드와 마찬가지로 인포스틸러 유형이며, 브라우저 및 이메일 클라이언트에서 사용자 계정 정보, 쿠키, 신용 카드 정보 등 민감한 데이터를 수집하는 기능을 포함하고 있다. 이처럼 두 악성코드 간 유사성을 고려했을 때, 본 보고서에서 분석한 악성코드 또한 이메일을 통해 유포되었을 가능성이 크다.


현재 분석된 버전은 일부 기능이 미완성된 상태로 확인되었으나, 코드 내부에 솔루션 무력화, 키로깅, 추가 악성코드 다운로드 등 향후 활성화될 가능성이 있는 기능들이 포함되어 있다. 본 보고서는 해당 악성코드의 동작 방식과 탐지 우회 전략, 그리고 향후 위협 요소를 분석한다.




2. 악성코드 정보

샌즈랩의 CTX 플랫폼에서 한국을 대상으로 유포된 인포스틸러 악성코드가 발견되었다.

해당 악성코드는 메소드 이름과 API 호출 키 등을 난독화하여 탐지 회피를 시도하며, 이러한 난독화 기법은 악성코드의 구조와 의도를 파악하기 어렵게 만들어 보안 탐지를 회피하고 분석 시간을 증가시키는 효과를 가진다.



[그림 1] 샌즈랩 CTX에서 확인된 한국 대상 인포스틸러 악성코드

[그림 1] 샌즈랩 CTX에서 확인된 한국 대상 인포스틸러 악성코드


이 악성코드는 “견적 요청 건.cmd”라는 파일명으로 유포되어 피해자가 이를 실행하도록 유도하며, 실행 후 “Fuzio.exe”가 동작하는 방식으로 구성되어 있다. 프로그램이 실행되면 “Form1”이라는 이름의 미완성된 UI 창이 표시되며, 표면적으로 추가적인 악성 행위는 드러나지 않는다. 이는 사용자가 악성코드 실행을 인지하지 못하도록 하기 위한 설계로 분석된다.



[그림 2] 견적 요청 건.cmd 실행 화면

[그림 2] 견적 요청 건.cmd 실행 화면


백그라운드에서는 사용자의 계정 정보, 웹사이트에 저장된 데이터 등 다양한 민감 정보를 수집하며, 이를 Telegram, Discord, 웹 패널 등을 통해 공격자에게 전송하는 기능을 수행한다. 다만, Telegram 관련 설정에서 토큰과 ID 값이 비어 있어 실제 전송이 이루어지지 않으며, 코드 내부에서도 구현되지 않은 메소드가 다수 존재하는 것으로 확인되었다. 이러한 분석 결과를 고려할 때, 해당 악성코드는 아직 미완성 단계에 있는 것으로 판단된다.


이 악성코드는 난독화된 데이터를 리소스 파일에 저장한 후, 실행 시 복호화하여 악성 페이로드로 활용한다. 실행 과정에서는 프로세스 할로윙 기법을 사용하여 악성 행위가 수행되는 프로세스를 은닉하며, 분석을 어렵게 만들기 위해 dnSpy1 , DarkUI2 등의 오픈소스 라이브러리를 결합한 것이 확인되었다. Fuzio.exe 와 Example.dll 내부에 dnSpy 및 DarkUI 관련 네임스페이스가 포함되어 있었으며, 이는 정상적인 오픈소스 프로젝트로 위장하고 악성코드의 핵심 기능을 은폐하기 위한 목적으로 사용된 것으로 분석된다. 이러한 방식은 악성코드가 정상적인 소프트웨어로 보이도록 위장하여 보안 탐지를 우회하고 본래의 목적을 숨기는 효과를 가진다.


1 dnSpy: .NET 기반 바이너리를 디컴파일하고 디버깅하는 도구

2 DarkUI: UI 요소를 제공하는 라이브러리



[그림 3] Example.dll 내 네임스페이스(좌)에 포함되어 있는 DarkUI 라이브러리(우) 구성 요소

[그림 3] Example.dll 내 네임스페이스(좌)에 포함되어 있는 DarkUI 라이브러리(우) 구성 요소


결론적으로, 이 인포스틸러 악성코드는 사회공학적 기법과 난독화를 결합하여 악성 행위를 수행하도록 설계되었으며, 분석 시간을 지연시키는 전략이 적용된 것으로 판단된다. 현재는 미완성된 상태로 인해 위협이 제한적이지만, 향후 추가적인 기능이 구현될 경우 사용자 계정 탈취 및 민감 정보 수집을 통해 심각한 위협을 초래할 가능성이 있다.




3. 악성코드 동작 순서도

피해자가 “견적 요청 건.cmd” 파일을 실행하면 내부적으로 Fuzio.exe가 동작한다.

이 실행 파일은 내장된 리소스 Example을 복호화한 후, 해당 데이터를 메모리에 로드하여 특정 클래스를 실행하는 기능을 수행한다.


이후 Example.dll은 내장 리소스 AQipUvwTwkLZyiCs를 복호화하고, 내부 특정 클래스를 실행시킨다. 이 클래스는 동일한 자식 프로세스를 생성한 뒤, 해당 프로세스에 Remington.exe를 프로세스 할로윙 기법을 이용하여 주입하는 역할을 수행한다. 이를 통해 악성코드는 정상 프로세스를 가장하여 탐지를 우회하고, 악성 행위를 은닉하는 방식으로 동작한다.


최종적으로 실행된 Remington.exe는 감염된 시스템에서 민감한 정보를 수집하는 핵심 악성코드로 기능하며, 브라우저 로그인 정보, 쿠키, 신용카드 정보, 자동완성 데이터, 다운로드 기록 등을 탈취하도록 설계되어 있다. 공격자는 이러한 데이터를 수집한 후, FTP, 이메일(SMTP), Discord, Telegram, C2 서버, C2 웹 패널 등을 활용하여 외부로 전송할 수 있도록 코드를 구성하였다. 그러나 현재 활성화된 데이터 전송 방식은 SMTP 프로토콜을 이용한 이메일 전송뿐이며, 공격자가 데이터를 전송하는 데 사용했던 covid19support.top과 51.38.27.67:8081 서버는 현재 비활성화된 상태로 확인되었다.



[그림 4] 악성코드 동작 순서도

[그림 4] 악성코드 동작 순서도




4. 악성코드 분석

4.1. Fuzio.exe

4.1.1 전체 기능 분석



[그림 5] Fuzio.exe 파일 정보

[그림 5] Fuzio.exe 파일 정보


Fuzio.exe는 실행 시 내장된 리소스 Example을 복호화하여 특정 클래스를 실행하는 기능을 수행한다.

프로그램이 실행되면 크기 800 x 450의 “Form1”이라는 폼이 표시되는데, 이는 미완성된 상태로 보인다. 이러한 방식은 사용자가 프로그램을 정상적인 소프트웨어로 인식하도록 유도하여 악성 행위를 눈치채지 못하게 하려는 목적이 있는 것으로 분석된다.



[그림 6] 폼 초기화 코드

[그림 6] 폼 초기화 코드


4.1.2. 세부 코드 분석

Fuzio.exe는 먼저 내장 리소스 Example을 추출하여 바이트 배열로 변환한 후, 공격자가 제작한 복호화 함수 SYYM()을 이용해 복호화한다. 복호화된 데이터는 어셈블리로 로드되며, 이후 메타 토큰 데이터 순서를 기준으로 public 타입 목록을 탐색하여 36번째 public 타입을 반환하는 방식으로 특정 클래스를 실행한다.



[그림 7] Example의 36번째 public 타입 반환 메인 코드

[그림 7] Example의 36번째 public 타입 반환 메인 코드



[그림 8] 어셈블리 로드 후, public 타입 목록 반환 코드

[그림 8] 어셈블리 로드 후, public 타입 목록 반환 코드


분석 결과, 복호화된 Example의 데이터는 Example.dll 파일로 확인되었으며, 해당 DLL의 public 타입 목록에서 36번째 public 타입은 UOBBssQLTBnTDUiGUyhCkhxiCLfOhJwhGkJTyTOxQQnJnDDhTsi 클래스인 것으로 분석되었다.


4.2. Example.dll

4.2.1. 전체 기능 분석



[그림 9] Example.dll 파일 정보

[그림 9] Example.dll 파일 정보


Example.dll의 UOBBssQLTBnTDUiGUyhCkhxiCLfOhJwhGkJTyTOxQQnJnDDhTsi 클래스는 내장 리소스 AQipUvwTwkLZyiCs를 복호화하는 기능을 수행한다. 복호화된 데이터는 특정 파일로 로드되며, 이후 내부에 포함된 vTOBOpTyAAvQkvZvwvxLfhLDrUkCOfiQETyyQECGGfUQGE 클래스에서 ShopyBy() 메소드를 호출한다. 이 메소드는 두 개의 인자를 전달받아 실행되며, 이를 활용하여 특정 기능을 수행한다.



[그림10] UOBBssQLTBnTDUiGUyhCkhxiCLfOhJwhGkJTyTOxQQnJnDDhTsi 클래스 코드

[그림10] UOBBssQLTBnTDUiGUyhCkhxiCLfOhJwhGkJTyTOxQQnJnDDhTsi 클래스 코드


4.2.2. 세부 코드 분석

Example.dll은 내장 리소스 AQipUvwTwkLZyiCs를 복호화하여 바이트 배열로 변환한다. 이후 변환된 데이터는 Thread.Get Domain().Load()를 통해 어셈블리로 로드되며, 해당 어셈블리 내부의 fQTxvsCvCTEnwspAkDAivZUsnQiOyvnxpsAhvwBkvJGZMZ 네임스페이스 내 vTOBOpTyAAvQkvZvwvxLfhLDrUkCOfiQETyyQECGGfUQGE 클래스 타입을 참조한다. 로드된 클래스에서 ShopyBy() 메소드를 검색한 후, Invoke()를 통해 실행된다. 이 과정에서 메소드의 실행을 위해 두 개의 인자가 전달되며, 각각 다음과 같은 역할을 수행한다.


1. 첫 번째 인자: Scrivens 리소스를 복호화한 후 바이트 배열로 변환한 데이터

2. 두 번째 인자: 현재 실행 중인 실행 파일의 경로. 즉, <실행 경로>\Fuzio.exe



[그림 11] ShopyBy() 실행 결과 반환 코드

[그림 11] ShopyBy() 실행 결과 반환 코드


분석 결과, 각 내장 리소스의 복호화 결과는 다음과 같이 확인되었다.


AQipUvwTwkLZyiCs -> AQipUvwTwkLZyiCs.dll

Scrivens -> Remington.exe


4.3. AQipUvwTwkLZyiCs.dll

4.3.1. 전체 기능 분석



[그림 12] AQipUvwTwkLZyiCs.dll 파일 정보

[그림 12] AQipUvwTwkLZyiCs.dll 파일 정보


AQipUvwTwkLZyiCs.dll은 ShopyBy() 메소드를 통해 프로세스 할로윙 기법을 수행하며, 실행 중인 프로세스에 악성코드를 주입하는 역할을 한다. 새로운 프로세스를 생성한 후 이를 일시 정지(Suspended) 상태로 유지하고, 대상 프로세스의 메모리를 조작하여 Scrivens 파일(Remington.exe)을 주입한다. 최종적으로 신규 프로세스는 완전히 대체되며, Remington.exe가 실행되어 악성 행위를 수행하도록 동작한다.


4.3.2. 세부 코드 분석

HandleRun() 메소드는 프로세스 할로윙 기법을 수행하며, 이를 통해 보안 소프트웨어의 탐지를 우회하고, 감염된 시스템에서 은밀한 정보 탈취 및 악성 행위를 가능하게 한다.



[그림 13] ShopyBy() 코드

[그림 13] ShopyBy() 코드


이 메소드의 전체적인 동작 과정은 다음과 같다.


① 초기화 및 프로세스 생성

HandleRun() 메소드는 실행 파일 경로를 문자열로 저장한 후, STARTUP_INFORMATION 및 PROCESS_INFORMATION 구조체를 초기화한다. 이후 CreateProcess() API를 호출하여 현재 실행 중인 EXE의 새로운 프로세스를 생성하며, CREATE_SUS PENDED 플래그를 설정하여 프로세스를 일시 정지 상태로 유지한다. 이를 통해 프로세스가 실행되지 않은 상태에서 메모리를 조작할 수 있도록 한다.



[그림 14] 초기화와 프로세스 생성 코드

[그림 14] 초기화와 프로세스 생성 코드


② 메모리 컨텍스트 조작 준비

새롭게 생성된 프로세스의 실행 컨텍스트를 가져오기 위해, 시스템 환경에 따라 GetThreadContext() 또는 Wow64GetThreadContext() API를 호출한다. 이 과정에서 프로세스의 주요 레지스터 값을 포함한 컨텍스트 정보가 array 배열에 저장된다.



[그림 15] 메모리 컨텍스트 조작 준비 코드

[그림 15] 메모리 컨텍스트 조작 준비 코드


③ PE 헤더 오프셋 계산

Scrivens 파일의 PE 헤더 오프셋을 계산하는 과정이 수행된다. PE Signature 위치를 기준으로 데이터를 읽어 헤더 정보를 분석하며, 이를 통해 베이스 주소 및 섹션 정보를 추출하고 추가적인 오프셋을 계산한다. 이는 PE 구조를 기반으로 메모리를 올바르게 매핑하기 위한 필수적인 작업이다.



[그림 16] PE 헤더 오프셋 계산 코드

[그림 16] PE 헤더 오프셋 계산 코드


④ 이미지 베이스 주소 확인 및 메모리 할당

기존 실행 파일의 이미지 베이스 주소와 Scrivens 파일의 이미지 베이스 주소를 비교하여 충돌 여부를 확인한다. 만약 충돌이 발생하면 기존 프로세스의 메모리를 해제하고, VirtualAllocEx() API를 호출하여 Scrivens 파일을 로드할 새로운 메모리 공간을 할당한다. 만약 메모리 할당이 실패하면 다른 주소를 시도하거나 예외를 발생시켜 프로세스를 종료하도록 한다.



[그림 17] 이미지 베이스 주소 확인 및 메모리 할당 코드

[그림 17] 이미지 베이스 주소 확인 및 메모리 할당 코드


⑤ 악성코드 주입

할당된 메모리 공간에 WriteProcessMemory() API를 사용하여 Scrivens 파일을 복사한다. 이 과정에서는 Scrivens의 헤더 및 섹션 데이터를 분석하고, 각 섹션을 적절한 메모리 주소에 로드하는 작업이 수행된다. 특히 VirtualAddress 및 PointerToRawData 정보를 활용하여 메모리 맵을 올바르게 구성하며, 이를 통해 Scrivens가 정상적으로 실행될 수 있도록 준비한다.



[그림 18] Scrivens 데이터 주입 코드

[그림 18] Scrivens 데이터 주입 코드


⑥ 실행 지점 업데이트

Scrivens의 EntryPoint 주소를 계산하고, 이 값을 새롭게 생성된 프로세스의 실행 컨텍스트에 반영한다. 이를 위해 SetThreadContext() 또는 Wow64SetThreadContext() API를 호출하여 기존 프로세스의 실행 지점을 Scrivens 파일의 EntryPoint로 변경한다. 이 과정이 완료되면 프로세스는 Scrivens 코드가 실행되도록 재구성된다.



[그림 19 ]실행 지점 업데이트 코드

[그림 19 ]실행 지점 업데이트 코드


⑦ 프로세스 재개

모든 준비 과정이 끝나면 ResumeThread() API를 호출하여 일시 정지된 프로세스를 재개한다. 이 시점부터 기존 실행 파일이 아닌 Scrivens 파일(Remington.exe)이 실행되며, 감염된 시스템에서 악성 행위를 수행하게 된다. 원래 실행했던 파일이 정상적인 프로그램처럼 보이지만, 내부적으로는 완전히 변조된 코드가 실행되고 있는 셈이다.



[그림 20] 프로세스 재개 코드

[그림 20] 프로세스 재개 코드


4.4. Remington.exe

4.4.1. 전체 기능 분석



[그림 21] Remington.exe 정보

[그림 21] Remington.exe 정보


Remington.exe는 악성코드의 핵심 역할을 수행하는 모듈로, 감염된 시스템에서 민감한 데이터를 탈취하고 외부로 전송하는 기능을 담당한다. 해당 악성코드는 내부적으로 COVID19 네임스페이스를 활용하며, 사용자 계정 정보, 웹사이트 쿠키, 신용카드 정보, 방문 기록, 다운로드 기록 등을 수집할 수 있도록 설계되어 있다.


이 악성코드는 실행 환경을 점검하는 안티 분석 기법을 적용하여, 특정 네트워크에서 실행될 경우 데이터 탈취 및 전송 기능을 제한한다. 수집된 데이터는 FTP, 이메일(SMTP), Discord, Telegram, C2 서버, C2 웹 패널 등 다양한 방법을 통해 공격자에게 전송될 수 있도록 설계되었지만, 현재는 SMTP 방식만 활성화된 상태로 확인되었다.


추가적으로, 공인 IP 및 국가 정보를 조회하는 기능과 Telegram API를 이용한 메시지 전송 기능이 포함되어 있지만, Telegram API의 토큰 값이 비어 있어 현재는 활성화되지 않은 상태이다. 악성코드는 특정 도메인 covid19support.top과 통신을 시도하나, 해당 서버는 현재 운영되지 않는 것으로 확인되었다.


4.4.2. 세부 코드 분석

Remington.exe의 내부 네임스페이스 COVID19에는 319개의 메소드가 정의되어 있으나, 이 중 26개는 선언만 되어 있을 뿐 실제 기능이 구현되지 않은 것으로 확인되었다.



[그림 22] COVID19.Main()의 일부 코드

[그림 22] COVID19.Main()의 일부 코드


ClickTracker() 메소드는 TelegramMSG()를 호출하여 Telegram API를 이용해 메시지를 전송하는 기능을 수행한다. 이 과정에서 Telegram API의 sendMessage 엔드포인트를 호출하여, HTTP 요청을 통해 메시지를 전달하도록 구성되어 있다.



[그림 23] ClickTracker 메소드 코드

[그림 23] ClickTracker 메소드 코드


http://api.Telegram.org/bot<token>/sendMessage?chat_id=<chat_id>%text=<msg>

[그림 24] Telgeram API의 메시지 전송 URL



[그림 25] TelegramMSG 메소드 코드

[그림 25] TelegramMSG 메소드 코드


그러나 해당 기능에서 사용되는 토큰 값과 채팅 ID 값이 난독화되어 있었으며, 복호화 결과 값이 존재하지 않았다. 이를 통해 해당 기능은 아직 활성화되지 않았거나, 공격자가 테스트용으로만 활용했을 가능성이 있다.



[그림 26] 토큰 값 복호화 결과

[그림 26] 토큰 값 복호화 결과



[그림 27] Telegram 통신 디코딩

[그림 27] Telegram 통신 디코딩


또한, 감염된 PC의 공인 IP 및 국가 정보를 확인하는 기능을 포함하고 있다.

해당 기능은 특정 API를 호출하여 피해자의 네트워크 정보를 조회한 후, 이를 바탕으로 추가적인 분석을 수행할 수 있도록 설계되어 있다.


- checkup.dyndns.org -> 감염된 PC의 공인 IP 주소 조회

- reallyfreegeoip.org -> 조회한 IP 주소를 기반으로 국가 정보를 요청



[그림 28] ClickINFO 변수 선언 코드

[그림 28] ClickINFO 변수 선언 코드



[그림 29] TheCountryNameInfo() 코드

[그림 29] TheCountryNameInfo() 코드



[그림 30] IPLogger() 코드

[그림 30] IPLogger() 코드


이러한 기능을 통해 공격자는 피해자의 네트워크 환경을 분석하고, 특정 국가 또는 기관에 속한 시스템인지 여부를 판단할 수 있다.

다음은 실제 파일 실행 시 나타나는 네트워크 통신이다.



[그림 31] 실행 시 발생하는 네트워크 통신

[그림 31] 실행 시 발생하는 네트워크 통신



[그림 32] reallyfreegeoip API 통신

[그림 32] reallyfreegeoip API 통신


Remington.exe는 감염된 시스템에서 민감한 정보를 탈취하는 기능을 수행하며, 브라우저 및 시스템에 저장된 다양한 사용자 데이터를 수집할 수 있도록 설계되었다. 주요 정보 탈취 기능은 다음과 같다.


메소드 명

탈취 정보

COVIDST<이메일 클라이언트>

로컬 설정 파일 및 레지스트리에서 계정 정보 탈취

COVIDST<브라우저>

SQLite 데이터베이스에서 브라우저 계정 정보 탈취

Cookies_<브라우저>

SQLite 데이터베이스에서 브라우저 쿠키 정보 탈취

CreditCard_<브라우저>

SQLite 데이터베이스에서 브라우저에 저장된 신용카드 정보 탈취

AutoFill_<브라우저>

SQLite 데이터베이스에서 브라우저의 자동완성 데이터 탈취

Downloads_<브라우저>

SQLite 데이터베이스에서 브라우저의 방문 기록 탈취

TopSites_<브라우저>

SQLite 데이터베이스에서 브라우저의 자주 방문한 사이트 정보 탈취

DownloadRecord_<브라우저>

SQLite 데이터베이스에서 브라우저의 다운로드 기록 탈취

[표 1] 메소드명에 해당하는 탈취 정보



[그림 33] 정보 탈취 메소드 코드

[그림 33] 정보 탈취 메소드 코드


AntiBotStart() 메소드는 실행 환경을 점검하여 악성코드의 동작 여부를 결정하는 역할을 수행한다. 먼저 AntiBot() 메소드를 호출하여 감염된 시스템이 특정 네트워크 환경에서 실행 중인지 확인하며, 이후 특정 IP 주소에서 동작할 경우 데이터 탈취 기능을 비활성화하도록 설계되어 있다.



[그림 34] AntiBotStart() 일부 코드

[그림 34] AntiBotStart() 일부 코드



[그림 35] AntiBot() 코드

[그림 35] AntiBot() 코드


코드에서 확인된 IP 주소 중 141.226.236.91은 이스라엘 Ben-Gurion University of the Negv 소속 사이버 보안 연구 기관과 연관되어 있으며, 3.23.155.57은 AWS에서 호스팅된 CAPE Sandbox 분석 환경에서 사용되는 것으로 확인되었다. 이들 IP는 각각 사이버 보안 연구 및 악성코드 분석에 활용되는 인프라로 추정되며, 공격자는 해당 환경에서 악성코드가 탐지 및 분석되는 것을 방지하기 위해 예외 처리를 적용한 것으로 보인다.



[그림 36] 141.226.236.91

[그림 36] 141.226.236.91



[그림 37] 3.23.155.57:8000

[그림 37] 3.23.155.57:8000


반면, 89.208.29.130 및 69.55.5.249는 공개적인 정보가 확인되지 않았으나, 이는 공격자가 직접 운영하는 테스트 환경이거나, 특정 조직의 네트워크와 연관된 IP일 가능성이 있다. 이러한 설정은 악성코드가 특정 환경에서만 정상적으로 동작하도록 제한하기 위한 조치일 수 있으며, 공격자가 배포 전에 내부 테스트를 수행했을 가능성을 시사한다.


이러한 분석 결과를 종합하면, AntiBotStart() 메소드는 특정 보안 연구 환경과 분석 시스템에서 악성 행위를 제한하는 기능을 수행한다. 이는 환경 기반 실행 제한 기법을 활용한 것으로, 공격자가 보안 연구진의 분석을 방해하고 악성코드의 탐지 우회를 목적으로 설정한 전략으로 볼 수 있다.


또한, 악성코드는 사용자 데이터를 공격자에게 전송할 수 있도록 설계되어 있으며, 총 6가지 전송 방식을 지원한다. 코드에 포함된 전송 방식은 FTP, 이메일(SMTP), Discord, Telegram, C2 서버, C2 웹 패널로 구성되어 있다.


전송 방식

공격자 정보

FTP 업로드

FTP 서버 정보 없음

이메일(SMTP) 전송

SMTP 서버: mail.covid19support.top

Telegram 전송

Telegram 봇 토큰 및 ID 정보 없음

C2 서버 전송

C2 서버: http://51.38.247.67:8081/_send_.php?L

Discord 웹훅 전송

Discord 웹훅 URL 및 계정 정보 없음

C2 웹 패널 전송

C2 웹 패널 API 주소 정보 없음

[표 2] 전송 방식 및 공격자 정보



[그림 38] 탈취 정보 전송 일부 코드

[그림 38] 탈취 정보 전송 일부 코드


현재 활성화된 데이터 전송 방식은 이메일(SMTP) 전송뿐이며, 공격자는 다음과 같은 계정을 활용하여 데이터를 유출한 것으로 보인다.

- 발신 이메일: logs4@covid19support.top

- 수신 이메일: log4@covid19support.top

- SMTP 포트: 587

- SMTP 비밀번호: 7213575aceACE@@


추가적으로, 공격자가 활용한 covid19support.top 도메인과 C2 서버(51.38.247.67:8081)는 현재 비활성화된 상태로 확인되었다.


covid19support.top 도메인 접속을 시도했으나, "ERR_CONNECTION_REFUSED" 오류가 발생하여 정상적인 접근이 불가능한 상태임을 확인하였다. 해당 도메인의 IP 주소를 조회한 결과, 91.195.240.12로 확인되었으며, 추가적인 분석 결과 독일 기반의 도메인 파킹 서비스에서 약 260만 개 이상의 도메인이 관리되는 것으로 나타났다. 이를 통해 공격자는 특정 시점에서만 도메인을 활성화하여 악성코드를 배포한 후, 차단을 피하기 위해 도메인을 폐기했거나 새로운 인프라를 구축했을 가능성이 크다.



[그림 39] covid19support.top 도메인 접속 결과

[그림 39] covid19support.top 도메인 접속 결과



[그림 40] covid19support.top 도메인의 IP 주소 조회 결과

[그림 40] covid19support.top 도메인의 IP 주소 조회 결과



[그림 41] 91.195.240.12 정보 조회 결과

[그림 41] 91.195.240.12 정보 조회 결과


51.38.247.67:8081 C2 서버 또한 현재 응답이 없는 상태이며, 포트 8081에서 아무런 정보도 반환되지 않았다. 이는 공격자가 서버를 내렸거나, 특정 조건에서만 활성화되도록 설정했을 가능성을 시사한다.

IP 분석 결과, 51.38.247.67은 OVH SAS(프랑스 기반 클라우드 서비스 업체)에서 할당된 것으로 확인되었으며, 공격자는 OVH 클라우드에서 Windows 서버가 설치된 VPS(Virtual Private Server) 자산을 할당받아 C2서버로 운영한 것으로 추정된다. 이를 종합적으로 고려했을 때, 공격자는 OVH SAS 클라우드 서비스를 이용하여 C2 서버를 운영하다가 차단을 피하기 위해 서버를 내렸거나, 특정 네트워크 환경에서만 접근이 가능하도록 제한했을 가능성이 있다.



[그림 42] 51.38.247.67:8081 연결 시도 결과

[그림 42] 51.38.247.67:8081 연결 시도 결과



[그림 43] 51.38.247.67 정보 조회 결과

[그림 43] 51.38.247.67 정보 조회 결과


4.4.3. 미구현된 악성 기능

Remington.exe 내부에는 선언만 되어 있고, 실제로 구현되지 않은 다수의 메소드가 포함되어 있는 것으로 확인되었다. 현재는 코드 상에서 실행되지 않지만, 향후 업데이트될 경우 활성화될 가능성이 높은 기능들을 분석한 결과, 다음과 같은 악성 행위가 수행될 수 있음을 확인하였다.


① 분석 회피 및 자기 보호 기능

# AntiVm(), AntiSandboxie(), SelfHidden(), MeltMele()

- 가상 머신(VM), 샌드박스 환경을 탐지하여 악성코드가 분석되지 않도록 차단하고, 자신의 존재를 은닉하는 기능 수행 가능

# SelfDestruct()

- 감염 흔적을 제거하기 위해 자체 파일을 삭제하는 기능 수행 가능. 분석 방해 및 탐지 회피 목적으로 사용될 가능성 존재


② 보안 기능 무력화 및 사용자 제어 차단

# DisableWD(), Restores_Disabler(), Taskmgr_Disabler(), CMD_Disabler(), Registeries_Disabler()

- 보안 솔루션(Windows Defender) 및 시스템 복구 기능을 비활성화하고, 작업 관리자(Task Manager), 명령 프롬프트(CMD), 레지스트리 편집기(Registries) 접근을 차단하여 사용자의 제어권을 제한하는 기능 수행 가능


③ 정보 탈취 및 모니터링 기능

# StartKeylogger(), KeyLogger()

- 키로깅 기능을 통해 로그인 정보, 금융 정보, 이메일 자격 증명 등을 탈취하는 데 악용 가능

# TakeScreenshot()

- 피해자의 화면을 캡처하여 공격자에게 전송하는 기능 수행 가능

# OutlookContact(), FoxmailCustomContact()

- 이메일 클라이언트(Outlook, Foxmail)에서 저장된 연락처 정보를 수집하여 피싱 공격이나 스팸 메일 전송에 악용 가능


④ 추가적인 악성 행위 수행

# DownloaderFile(), ProcessKiller(), Browser_Killer()

- 원격 서버에서 추가 악성코드를 다운로드 및 실행하거나, 특정 프로세스를 종료하여 보안 소프트웨어 및 브라우저를 강제로 종료하는 기능 수행 가능

# CookiesEraser()

- 브라우저의 로그인 세션 및 저장된 쿠키 데이터를 삭제하여 피해자의 재인증을 유도하고, 공격자가 새로운 인증 정보를 탈취할 가능성 존재


현재 해당 기능들은 코드 내에서 선언만 되어 있고 활성화되지 않았으나, 악성코드가 지속적으로 개발될 경우 일부 기능이 활성화될 가능성이 크다. 특히, 솔루션 무력화 및 분석 방해 기능이 구현될 경우 탐지 회피 능력이 한층 강화될 것으로 예상되며, 키로깅 및 화면 캡처 기능이 활성화될 경우 금융 정보 및 기업 기밀 자료 탈취로 이어질 가능성이 있다.




5. 결론

본 보고서에서 분석한 악성코드는 인포스틸러 유형으로, 감염된 시스템에서 사용자 계정 정보, 브라우저 데이터, 신용카드 정보 등을 탈취하는 기능을 수행한다. CTX APT Intelligence 분석 결과, 해당 악성코드는 한국 뿐만 아니라 호주, 헝가리, 독일에서도 유포된 정황이 확인되었다.


이는 특정 국가를 겨냥한 표적 공격이 아닌, 다수의 국가를 대상으로 한 광범위한 공격 캠페인의 일부일 가능성을 시사한다.

또한, CTX에서는 분석 대상 악성코드를 SnakeKeylogger 위협 유형으로 분류했으며, 특정 도메인(covid19support.top)과의 연계 정황이 확인되었다.


SnakeKeylogger는 닷넷(.NET) 기반 인포스틸러 악성코드로, 이메일(SMTP), FTP 또는 Telegram을 이용한 데이터 유출 기능과 키로깅 기능을 포함하는 것이 특징이다. 본 보고서에서 분석한 악성코드 또한 동일한 데이터 유출 방식을 구현하고 있으며, SMTP 프로토콜을 통해 공격자의 이메일 서버로 데이터를 전송하는 기능이 확인되었다. 다만, 키로깅 기능과 관련된 코드는 선언만 되어있고 실제로 동작하지 않는다. 이를 고려했을 때 분석 대상 악성코드는 SnakeKeylogger의 변종일 가능성이 높다. 기존 SnakeKeylogger를 기반으로 일부 기능이 제거되거나 변경된 형태로 제작되었을 가능성이 있으며, 향후 공격자가 키로깅 기능을 활성화할 가능성도 배제할 수 없다.



[그림 44] 샌즈랩 CTX에서 확인된 악성코드의 연관 캠페인 정보

[그림 44] 샌즈랩 CTX에서 확인된 악성코드의 연관 캠페인 정보


유사한 사례로, 터키에서는 TUSAŞ(Turkish Aerospace Industries)를 사칭한 악성 이메일을 통해 Snake Keylogger 변종이 유포된 정황이 확인되었다. 이 악성코드는 계약 문서로 위장하여 피해자를 속이고, 감염된 시스템에서 사용자 계정 정보, 브라우저 쿠키, 금융 정보 등을 수집하는 기능을 수행한다. 분석 대상 악성코드 또한 유사한 코드 구성과 정보 탈취 기능을 포함하고 있으며, 이러한 점을 고려할 때 이메일을 주요 유포 경로로 활용했을 것으로 예상된다.


또한, 프로세스 할로윙(Process Hollowing) 기법을 사용하여 악성코드를 정상 프로세스에 주입함으로써 탐지를 우회하고 분석을 어렵게 만든다. 특히, 정상적인 소프트웨어처럼 보이도록 특정 오픈소스 라이브러리를 포함하고 있으며, 보안 연구 환경을 탐지하여 동작을 제한하는 기능도 확인되었다.


현재 분석된 버전은 일부 기능이 미완성된 상태로 확인되었지만, 코드 내부에 솔루션 무력화, 키로깅 등 향후 활성화될 가능성이 있는 기능들이 포함되어 있다. 따라서, 향후 해당 악성코드가 추가적으로 업데이트되거나 변종이 등장할 경우, 보다 정교한 정보 탈취 기능과 탐지 우회 기법을 갖출 것이다.




6. 수집/유출 정보

탈취 정보

세부 정보

대상 프로그램

브라우저

- 계정 정보

- 쿠키

- 신용카드 정보

- 자동 완성 데이터

- 방문 기록

- 자주 방문한 사이트

- 다운로드 기록

360 China, 360 English, 7Star, Amigo, BlackHawk, Blisk, Brave, Cent, Chedot, Chrome, Chrome Canary, Chromium, Citrio, CocCoc, Comodo, CoolNovo, Coowon, CyberFox, Epic, Falkon, FireFox, Ghost, IceDragon, Iridium, Iron, Kinza, Kometa, Liebao, MicrosoftEdge, Nichrome, Orbitum, PaleMoon, QIPSurf, QQ, SeaMonkey, Sleipnir, Slim, Slimjet, Sputnik, Superbird, Torch, UC, Uran, Vivaldi, WaterFox , Xpom, xVast

이메일

- 계정 정보

- IMAP 비밀번호

- POP3 비밀번호

- HTTP 비밀번호

- SMTP 비밀번호

Outlook, Foxmail, Thunderbird, PostBox

FTP

- Host

- User

- Password

- Port

FileZilla



7. IoC 정보

7.1. sha 256 해시

- Fuzio.exe/A42ED71F0E79BD1C7A9DEA80898016D199F6486455A44929927B2A356C4499F8

- Example.dll/33dc029cf1a2924dd1e6940e978ec7dc8ba3c3c71cb0611c38095e8097969b5d

- AQipUvwTwkLZyiCs.dll/9c3a7120e337a34b946fc969993c492cec20d3e185c8775b0d4d44cb492d54db

- Remington.exe/bc89907782e3bd88e95b84fdcbd658e5a9bb70b567cf52538d44fd86911e3ab6


7.2. IP

- AntiBot(): 89.208.29.130 / 69.55.5.249 / 141.226.236.91 / 3.23.155.57

- C2 서버: 51.38.247.67

- covid19support.top: 91.195.240.12


7.3. 도메인

- mail.covid19support.top

- covid19support.top

- api.Telegram.org

- checkip.dyndns.org

- reallyfreegeoip.org


7.4. URL

- hxxp://mail.covid19support.top

- http://api.Telegram.org/bot<token>/sendMessage?chat_id=<chat_id>%text=<msg>

- hxxp://checkip.dyndns.org

- hxxps://51.38.247.67:8081

- hxxp://reallyfreegeoip.org/xml/<IP>




​8. 참고 자료

- https://www.ctx.io/report/file/a42ed71f0e79bd1c7a9dea80898016d199f6486455a44929927b2a356c4499f8

- https://github.com/dnSpy/dnSpy/tree/master/dnSpy

- https://github.com/RobinPerris/DarkUI

- https://www.malwation.com/blog/technical-analysis-of-phishing-campaigns-targeting-the-defense-industry-delivering-snake-keylogger











위협분석팀_손원서






월간_리포트_CTX_푸터


블로그_푸터_시안1