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

이미지 스위칭을 이용하는 Ande Loader

TACHYON & ISARC 2024. 4. 25. 14:14

최근 북미의 제조업을 대상으로 Ande Loader를 사용해 악성코드를 유포하는 캠페인이 발견됐다. 해당 캠페인에서 사용된 Ande LoaderBase64로 인코딩된 후 VBScript 형태로 유포됐으며, 공격자의 C&C 서버에서 최종 페이로드인 NjRAT을 다운로드 후 실행한다. 이후, 실행된 NjRAT은 사용자 PC에서 C&C 서버 연결을 시도하고 파일을 다운로드하거나 명령에 따른 추가 동작을 수행한다.

 

공격자가 Ande Loader를 이용해 사용자 PC에서 최종 페이로드를 다운로드 및 실행하는 흐름도는 [그림 1]과 같다.

 

[그림 1] 흐름도

 

     VBS 파일 내부의 PE 데이터를 Baset64로 디코딩해 Ande Loader를 확보한 후, 별도의 드롭 과정 없이 실행한다.

     Ande Loader는 추가 페이로드를 실행하는 로더로 공격자가 운영하는 C&C 서버에서 바이너리 파일을 다운로드한다.

     이후, Ande Loader에서 다운로드한 파일을 Base64로 디코딩하며, 디코딩한 데이터는 NjRAT 악성코드이다.

     마지막으로, 정상 프로그램인 .NET 프레임워크의 구성요소 중 1개를 선정해 실행하고, 이미지 스위칭을 이용해 PE 이미지를 최종 페이로드로 교체한 후 실행한다.

 

1. VBS

VBS 파일은 내부에 Base64로 인코딩된 PE 데이터를 포함하고 있으며, 해당 데이터를 디코딩하고 실행하는 역할을 한다. 스크립트는 [그림 2]와 같이 파워쉘을 이용해 디코딩 후, 파라미터 전달과 함께 VAI 메서드를 직접 호출함으로써 PE를 실행한다.

 

[그림 2] PE 데이터 디코딩 및 실행 스크립트

 

 

2. Ande Loader

VBS에서 디코딩된 PE.NET DLL 형식의 로더 악성코드인 Ande Loader로 이미지 스위칭 기법을 이용해 최종 페이로드를 실행하고, VBS 파일을 자동 실행 등록한다.

 

2.1. 페이로드 다운로드

Ande LoaderVAI 함수가 실행되면 먼저 공격자의 C&C 서버에 접속해 Base64로 인코딩된 최종 페이로드를 다운로드한다.

 

[그림 3] 페이로드 다운로드

  

C&C 서버의 주소는 난독화돼 이전 단계에서 VAI 함수를 호출할 때 파라미터로 전달된다. Ande Loader는 해당 파라미터의 난독화를 해제한 후 서버에서 페이로드를 다운로드 및 디코딩하고, 이미지 스위칭을 이용해 최종 페이로드를 실행한다.

 

[그림 4] 난독화 해제 및 페이로드 다운로드 코드

 

2.2. 이미지 스위칭

최종 페이로드의 다운로드 및 디코딩이 완료되면, [1].NET 프레임워크 구성 요소 중에서 이미지 스위칭을 수행할 대상 프로세스를 무작위로 선택한다.

 

[표 1] 이미지 스위칭 대상 목록

 

이후, CreateProcess로 대상 프로세스를 생성하고, ZwUnmapViewOfSection을 이용해 정상 프로세스의 메모리 매핑을 해제한다. 그리고, 매핑 해제된 공간에 WriteProcessMemory로 교체할 PE 이미지를 삽입한 후, SetThreadContext를 이용해 스레드에서 실행할 주소를 교체된 이미지의 EP(Entry Point)로 설정한다. 마지막으로, ResumeThread를 호출해 스레드를 시작한다.

 

[그림 5] 이미지 스위칭 코드

 

이미지 스위칭이 성공하면 최종 페이로드가 정상 프로세스로 위장해 실행된다. 하기의 [그림 6]은 이미지 스위칭 전과 후를 비교한 결과로 [1]의 대상 프로세스 중 cvtres.exe로 테스트를 진행했으며, 테스트 프로세스의 메모리가 다른 데이터로 변경된 것을 볼 수 있다.

 

[그림 6] 이미지 스위칭 전과 후의 메모리 덤프 비교

 

2.3. 자동 실행 등록

한편, 로더는 VBS 파일을 %AppData% 경로에 복사하고 해당 파일을 다른 2개의 방법으로 자동 실행을 등록하며, 첫 번째는 [그림 7]과 같이 Run 레지스트리에 복사된 VBS 파일의 경로를 등록하는 것이다.

레지스트리 경로 : HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

 

[그림 7] Run 레지스트리 등록

 

두 번째 방법은 시작프로그램 폴더에 바로가기를 생성하는 것으로, 시스템 시작 시 파워쉘을 이용해 복사된 VBS 파일을 실행함으로써 지속성을 획득한다.

 

[그림 8] 바로가기 생성

 

 

3. 최종 페이로드 (NjRAT)

C&C 서버에서 다운로드한 최종 페이로드는 NjRAT 악성코드로 먼저 감염된 호스트에서 사용자의 입력을 기록하는 키로깅 동작을 수행한다. 키로깅 데이터는 [그림 9]와 같이 레지스트리에 [kl]이라는 이름으로 저장되는 것을 확인할 수 있다.

키로깅 저장 레지스트리 경로 : HKCU\SOFTWARE\65150beea

 

[그림 9] 키로깅 데이터 저장

 

그리고, C&C 서버와 통신해 시스템 정보를 전송하고, 명령어를 수신해 추가 동작을 수행한다. 명령어는 문자열을 비교해 구분되며, [2]에서 명령어와 그에 따른 동작을 나타낸다.

 

[표 2] C&C 서버 명령어 및 동작 목록

 

, 분석 시점에서 서버가 응답하지 않아 추가적인 데이터 교환과 동작은 발생하지 않았다.

 

[그림 10] C&C 서버 통신 결과

  

Ande Loader는 공격자가 의도와 목적에 맞게 최종 페이로드의 변경이 가능하고, 이미지 스위칭 기법을 이용해 악성코드를 정상 프로세스로 위장할 수 있어 주의가 필요하다. 따라서, 출처가 불분명한 파일의 다운로드와 실행을 지양하고, 보안 프로그램과 OS를 항상 최신버전으로 유지할 것을 권고한다.

 

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

 

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