<악성코드 분석공부>/<여분지>

Remote Template Injection 공격기법

gosoeungduk 2022. 1. 18. 16:36
반응형

#문서형악성코드 #공격기법 #Remote Template Injection


최근에 중국 문서형 악성코드를 분석하면서 자주 쓰이는 문서형 악성코드 공격기법에 대해 정리해보기로 한다.

Remote Template Injection 이라고 워드파일에는 템플릿 파일을 이용하여 악성코드를 안전하게 퍼트릴 수 있는 방법이 존재한다.

워드에는 미리 만들어진 템플릿 양식이 있고, 이 파일을 구성하는데에는 템플릿 설정, 매크로 등등이 담겨있는 .dotm 파일이 존재한다.

템플릿 형식으로 만든 docx 파일을 zip 파일로 만들어 압축을 푼 뒤, word/\_rels/settings.xml.rels 파일을 설정하면 외부로 부터 불러올 dotm 파일을 설정할 수 있다.

만약, 불러오는 dotm 파일에 악성매크로가 존재한다면, docx 에 악성 dotm 을 불러와서 매크로를 실행하는 꼴이 되어버린다.

아래는 개략적인 공격 모식도를 통해 더 쉽게 이해해보자.

이 Remote Template Injection 공격기법의 장점은 크게 두 가지 정도이다.

  1. 실제로 유포되는 .docx 파일에 매크로가 내포되어 있지 않기에 Email 백신(?) 서버 혹은 안티바이러스 체계 내에서 docx 를 악성 문서 파일로 간주하지 않는 경우가 많다.

  2. 혹시나 더이상의 악성코드 유포를 멈추고 싶을 때, dotm 이 있는 URL 의 서버만 파기하면 되기에 언제든 docx 를 일반 문서파일로 되돌려 놓을 수 있다. 공격자 입장에서는 퍼지는 범위를 알아서(?) 조절할 수 있는 것이다.

이 정도면 기법 설명은 끝난 듯 하고, 실제 악성코드를 한 번 만들어보자.

우선 워드에서 제공하는 기본 이력서 템플릿이나 여러 템플릿 중 아무거나 택해서 문서를 만들어놓는다.

그리고 settings.xml.rels 파일에서 Target 부분의 url 을 내가 악성 dotm 을 업로드 해놓은 곳의 URL 로 교체한다.

그리고 재 압축하여 확장자만 zip 에서 docx 로 바꾸고 유포하면 된다.

dotm 파일에는 간단하게 계산기를 강제로 켜는 매크로 스크립트만 남겨놓고 저장한다..

// crazy_cat_self_destroy.dotm
Sub AutoOpen()
    a
End Sub

Sub Document_Open()
    a
End Sub

Sub a()
    Dim wsh As Object
    Set wsh = CreateObject("WScript.Shell")
    wsh.Run ("calc.exe")
End Sub

이거 그대로 정상 docx 에 연결하면 끝나는 것이다.

문서 열자마자 매크로 사용 버튼 누르면 계산기가 켜진다.


추가 참고자료

링크된 템플릿 파일 unlinking 시켜서 증거인멸하기

반응형