1. 개요

- MMC를 활용해 보안 장치를 우회하는 새로운 공격 수법 GrimResource 등장 [1]

> MMC를 통해 MSC 파일을 열 수 있음
> 해당 MSC 파일 내 StringTable이라는 요소에 저장되어 있는 APDS 자원을 익스플로잇
> 보안 장치들을 우회하여 원하는 코드 실행 가능

 

1.1 Microsoft Management Console, MMC

- 마이크로소프트 관리 콘솔
Windows 운영 체제에서 시스템 구성 요소를 관리하고 설정하는 데 사용되는 도구
여러 관리 항목들(스냅인, 특정 시스템 구성 요소를 관리하는 작은 모듈)을 한곳에 모아 관리할 수 있도록 하는 프로그램
- Windows 환경에서 GUI와 콘솔의 생성, 저장, 열기 등을 수행할 프로그램 작업을 제공하는 일종의 응용 프로그램

 

1.2 Management Saved Console, MSC

MMC에서 만든 사용자 정의 콘솔을 저장한 파일

 

2. 주요내용

GrimResource 공격은 apds.dll 라이브러리에 있는 오래된 XXS 결함을 사용

> MSC 파일의 StringTable섹션에 취약한 APDS 리소스에 대한 참조를 추가하여 임의의 자바스크립트를 실행할 수 있음

해당 취약점은 이미 2018년 MS와 Adobe로 제보가 되었으나 아직 패치되지 않음

[사진 1] StringTable 섹션 APDS 리소스

 

ActiveX 보안 경고를 피하기위해 TransformNode 난독화 기술을 사용

> TransformNode 난독화: 소스 코드를 분석해 코드의 구조와 기능을 파악한 후 그 결과를 바탕으로 변환 규칙을 생성 및 적용하여 난독화
> 난독화된 내장 VBScript가 생성

[사진 2] TransformNode 난독화

 

- VBScript는 일련의 환경 변수에서 대상 페이로드를 설정한 뒤 DotNetToJs 기술을 활용하여 .NET 로더 실행

> DotNetToJs: Microsoft .NET 코드를 JavaScript 코드로 변환하는 프로세스

[사진 3] VBScript

 

- 로더는 VBScript가 설정한 환경 변수에서 페이로드 검색dllhost.exe의 새 인스턴스 생성하여 페이로드 주입
> 페이로드 주입에 DirtyCLR 기술, 함수 연결 해제 및 간접 syscall을 사용

[사진 4] 환경변수 설정
[사진 5] 페이로드 검색 로더

 

- 확인 권고사항
> mmc.exe에 의해 호출된 apds.dll과 관련된 파일 작업
> MCC를 통한 의심스러운 실행, 특히 .msc 파일 인수를 사용하여 mmc.exe에 의해 생성된 프로세스
> 스크립트 엔진 또는 .NET 구성 요소에서 발생하는 mmc.exe에 의한 RWX 메모리 할당
> JScript 또는 VBScript와 같은 비표준 스크립트 인터프리터 내에서 비정상적인 .NET COM 개체 생성
> APDS XSS 리디렉션의 결과로 INetCache 폴더에 생성된 임시 HTML 파일

 

- 의심스러운 MSC 파일을 탐지하는데 도움이 되도록 YARA 규칙 및 침해지표 제공

rule Windows_GrimResource_MMC {
    meta:
        author = "Elastic Security"
        reference = "https://www.elastic.co/security-labs/GrimResource"
        reference_sample = "14bcb7196143fd2b800385e9b32cfacd837007b0face71a73b546b53310258bb"
        arch_context = "x86"
        scan_context = "file, memory"
        license = "Elastic License v2"
        os = "windows"
    strings:
        $xml = "<?xml"
        $a = "MMC_ConsoleFile" 
        $b1 = "apds.dll" 
        $b2 = "res://"
        $b3 = "javascript:eval("
        $b4 = ".loadXML("
    condition:
       $xml at 0 and $a and 2 of ($b*)
}
 

X의 Samir님(@SBousseaden)

Elastic Security Labs has discovered a new method for initial access and evasion in the wild, termed #GrimResource, which involves arbitrary execution in mmc.exe through a crafted MSC file. https://t.co/q4u4gTPE6O https://t.co/usWJvhygIC

x.com

 

3. 참고

[1] https://www.elastic.co/security-labs/grimresource
[2] https://x.com/i/status/1804225219571147140
[3] https://thehackernews.com/2024/06/new-attack-technique-exploits-microsoft.html
[4] https://www.bleepingcomputer.com/news/security/new-grimresource-attack-uses-msc-files-and-windows-xss-flaw-to-breach-networks/
[5] https://www.boannews.com/media/view.asp?idx=130867&page=1&kind=1

+ Recent posts