MS 정상 유틸리티 mavinject.exe를 이용한 인젝션 공격 사례

MS 정상 유틸리티 mavinject.exe를 이용한 인젝션 공격 사례

1. 개요

Mavinject.exe는 Microsoft에서 제공하는 정식 유틸리티로 Application Virtualization(App-V) 환경에서 DLL을 특정 프로세스에 인젝션하는 용도로 사용된다. Windows 10 버전 1607부터 운영체제에 기본 포함되어 있으며 Microsoft의 디지털 서명이 적용된 신뢰할 수 있는 실행 파일이기 때문에, 대부분의 보안 솔루션에서는 해당 프로세스를 신뢰 목록(화이트리스트)에 포함시키는 경향이 있다. 

공격자들은 이와 같은 맹점을 이용하여 정상 프로세스에 악성 DLL 페이로드를 주입하는 용도로 mavinject.exe를 악용한다.

[그림 1] mavinject.exe 파일 속성 및 인증서 정보

이 기법은 MITRE ATT&CK에서 다음과 같이 분류한다.

 

 

2. 동작 원리

mavinject.exe는 전통적인 DLL 인젝션 기법을 자동화하여 동작하도록 구현되어 있다. 동작 시 내부적으로 호출되는 주요 Windows API는 다음과 같다:

 

  1. OpenProcess: 대상 프로세스의 핸들을 획득하며, PROCESS_VM_OPERATION, PROCESS_VM_WRITE, PROCESS_CREATE_THREAD 권한이 요구된다.
  2. VirtualAllocEx: 대상 프로세스의 가상 메모리 공간에 메모리를 할당한다.
  3. WriteProcessMemory: 할당된 메모리 공간에 DLL 경로를 기록하여 로딩 준비를 마친다.
  4. CreateRemoteThread: 새 스레드를 생성하여 LoadLibraryW 함수를 호출하고, 해당 DLL을 로드 및 실행시킨다.

 

이러한 일련의 동작은 정상적인 윈도우 시스템 작업처럼 보일 수 있지만, 공격자의 입장에서는 이를 통해 외부 코드 실행 및 탐지 우회를 동시에 달성할 수 있다.

단, Mavinject.exe는 App-V 기능이 활성화된 환경(Windows 10 1607 이상)에서만 사용 가능하며, 일부 보안 솔루션은 App-V 활성 여부를 기반으로 탐지 유무를 판단한다.

 

 

3. 실행 방식 예시

 

1) DLL 인젝션 (/INJECTRUNNING)

이 방식은 실행 중인 정상 프로세스를 대상으로 악성 DLL을 인젝션 할 때 많이 사용되는 방식이다.

 

mavinject.exe <PID> /INJECTRUNNING <DLL 경로>

  • <PID>: 대상 프로세스의 Process ID
  • <DLL 경로>: 인젝션 할  DLL 파일의 전체 경로

 

다음은 mavinject.exe 를 사용하여 메모장 프로세스(notepad.exe)에 Windows 계산기 프로그램(calc.exe)을 실행하는 DLL 파일을 인젝션하는 예제이다. 

mavinject.exe 3812 /INJECTRUNNING c:\test\run_calc.dll

 

[그림 2] 인젝션 예제

 

이때 계산기를 실행하는 스레드는 정상 프로세스 notepad.exe 내에서 동작한다. 만약 악성코드를 다운로드하거나 C&C 서버 접속과 같이 악성 기능을 포함한 DLL로 인젝션한다면, 실제로는 메모장 프로세스가 해당 동작을 수행하는 것으로 보일 것이다. 프로세스 트리 구조로 확인해도 최상위 프로세스가 mavinject.exe(정상) 이므로 대부분의 EDR 제품에서 이상 행위로 탐지하는 것을 회피할 수 있다. 이와 같이 공격자는 정상 프로세스의 비 정상 행위를 탐지하기 어려운 점을 악용한다.

 

mavinject.exe는 일반적인 DLL 파일뿐 아니라 NTFS Alternate Data Stream (ADS) 경로에 존재하는 DLL도 인젝션 대상으로 사용할 수 있다. 

예를 들어 다음과 같이 test.txt 파일에 ADS 스트림으로 생성한 hidden_dll 데이터(DLL)도 인젝션 대상으로 지정이 가능하다. 이는 일반적인 파일 탐지 로직을 우회하는 데 활용될 수 있는 기법이다.

[그림 3] ADS로 생성한 DLL 인젝션 예제

ADS를 악용한 악성코드 공격 사례는 다음의 게시글을 참고한다.

 

 

2) DLL Import 테이블 기반 인젝션 (/HMODULE)

 

mavinject.exe <PID> /HMODULE=<Base Address> <DLL 이름> <Ordinal 번호>

  • <PID>: 인젝션 대상 프로세스의 Process ID
  • <Base Address>: 타깃 프로세스 내 로드된 모듈의 베이스 주소
  • <DLL 이름>: 임포트할 DLL 이름
  • <Ordinal 번호>: 호출할 Export 함수의 Ordinal 인덱스

 

이 방식은 실행 파일의 Import Address Table(함수 참조 테이블)을 조작해 외부 DLL의 특정 함수를 직접 호출하도록 유도하는 기법이다. 주입할 DLL과 해당 함수의 위치 정보를 명시적으로 지정할 수 있어 보다 정밀한 제어가 가능하다.

 

 

4. 공격 사례

다음은 mavinject.exe를 실제 공격에 악용한 사례이다.

 

사례 1: Earth Preta(Mustang Panda)의 waitfor.exe 인젝션

 

TrendMicro의 연구에 따르면 중국의 국가 지원을 받는 것으로 알려진 APT 조직 Earth Preta(Mustang Panda)은 Mavinject.exe를 이용한 새로운 공격 캠페인을 수행하였다.

공격자는 피싱 메일을 통해 초기 침투에 성공한 뒤 정상 실행 파일(OriginLegacyCLI.exe)과 악성 DLL(EACore.dll)을 포함한 압축 파일을 사용자에게 유포했다. 이들은 타겟 시스템에 ESET 백신 프로세스가 동작 중일 경우 정상 프로세스인 waitfor.exe에 악성 DLL을 인젝션한다.

 

여기서 mavinject.exe를 선택한 이유는 명확하다. Microsoft 인증서로 서명되어 신뢰할 수 있는 유틸리티이기 때문에 보안 솔루션의 탐지 우회에 용이하고 시스템 내부에서의 인젝션 행위를 정상으로 위장할 수 있기 때문이다. 공격자는 이 점을 이용해 은밀하게 백도어를 활성화하고 이후 C2 서버와 통신을 유지하고 명령을 수행할 수 있는 구조를 구축했다.

 

사례 2: Lazarus 그룹의 explorer.exe 인젝션 기법

 

Lazarus는 문서 기반 악성코드 유포 기법을 주로 사용하는 공격 그룹이다. 이 사례에서도 악성 매크로가 포함된 문서를 통해 초기 접근 권한을 획득했다. 문서를 통해 실행된 스크립트는 외부에서 악성 페이로드를 다운로드하고, 이후 mavinject.exe를 이용하여 explorer.exe에 악성 DLL을 인젝션하는 방식으로 동작한다.

explorer.exe는 Windows 사용자 환경의 중심이 되는 프로세스로 보안 솔루션에서 민감도를 낮게 설정하는 경우가 많다. mavinject.exe를 통한 인젝션은 이러한 성격을 활용하여 탐지 가능성을 최소화하는 데 유리하다. 즉, 해당 공격은 정상 프로세스를 경유한 인젝션이라는 형태를 통해 행위 기반 탐지 시스템을 효과적으로 회피하려는 의도로 설계된 것으로 해석된다.

[그림 4] Earth Preta (Mustang Panda) – 공격 도식도

 

5. 탐지 및 대응 방안

5.1. 탐지 방법

  • 명령줄에서 mavinject.exe 실행 여부 및 인자(/INJECTRUNNING, /HMODULE) 탐지
  • Sysmon, EDR 등에서 OpenProcess, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread 호출 패턴 모니터링
  • LoadLibraryW 호출 경로 추적 및 이상 여부 식별

 

5.2. 대응 방안

  • App-V 기능 미사용 시 mavinject.exe 실행 차단 정책 적용
  • 허용되지 않은 프로세스 간 DLL 인젝션 탐지 룰 수립
  • 시스템 내 정상 프로세스의 비정상 DLL 로딩 이력 주기적 점검

 

6. 결론

mavinject.exe는 Windows 운영체제에 기본 포함된 정식 도구지만, 위협 행위자의 관점에선 탐지 우회를 위한 유효한 수단으로 사용될 수 있다. Earth Preta나 Lazarus 그룹과 같은 APT 조직들이 이 도구를 활용해 정교한 인젝션을 수행하고 있다는 점은 정상 도구조차도 위협 행위자의 전술에 포함될 수 있음을 보여준다. 

보안 담당자는 이러한 시스템 유틸리티가 공격 체인의 일부로 활용될 가능성을 염두에 두고, 탐지 전략과 대응 정책을 설계해야 한다. 결국, ‘정상처럼 보이는 비정상’을 식별하는 것이 고급 위협 대응의 핵심이다.

 

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