#문서형악성코드 #공격기법 #Remote Template Injection
최근에 중국 문서형 악성코드를 분석하면서 자주 쓰이는 문서형 악성코드 공격기법에 대해 정리해보기로 한다.
Remote Template Injection 이라고 워드파일에는 템플릿 파일을 이용하여 악성코드를 안전하게 퍼트릴 수 있는 방법이 존재한다.
워드에는 미리 만들어진 템플릿 양식이 있고, 이 파일을 구성하는데에는 템플릿 설정, 매크로 등등이 담겨있는 .dotm 파일이 존재한다.
템플릿 형식으로 만든 docx 파일을 zip 파일로 만들어 압축을 푼 뒤, word/\_rels/settings.xml.rels
파일을 설정하면 외부로 부터 불러올 dotm 파일을 설정할 수 있다.
만약, 불러오는 dotm 파일에 악성매크로가 존재한다면, docx 에 악성 dotm 을 불러와서 매크로를 실행하는 꼴이 되어버린다.
아래는 개략적인 공격 모식도를 통해 더 쉽게 이해해보자.
이 Remote Template Injection 공격기법의 장점은 크게 두 가지 정도이다.
실제로 유포되는 .docx 파일에 매크로가 내포되어 있지 않기에 Email 백신(?) 서버 혹은 안티바이러스 체계 내에서 docx 를 악성 문서 파일로 간주하지 않는 경우가 많다.
혹시나 더이상의 악성코드 유포를 멈추고 싶을 때, 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 에 연결하면 끝나는 것이다.
문서 열자마자 매크로 사용 버튼 누르면 계산기가 켜진다.
추가 참고자료
'<악성코드 분석공부> > <여분지>' 카테고리의 다른 글
안드로이드 디컴파일러에서 리소스 찾기 (0) | 2022.02.01 |
---|---|
Cyberchef online - 데이터 변환, 디코딩/인코딩 (0) | 2022.01.07 |
Didier Stevens Workshop : 악성문서파일 분석 도구 콜렉션 (0) | 2021.12.15 |
Process Hollowing 기법 실습 (0) | 2021.08.26 |
ProcMon "Unable to load Process Monitor device driver" 에러 (0) | 2021.08.18 |