코드 상의 특징을 통해 살펴본 2가지 공격그룹 (한글문서 취약점)
Contents
코드 상의 특징을 통해 살펴본 2가지 공격그룹 (한글문서 취약점)
안랩 ASEC 분석팀은 한글 EPS 취약점(CVE-2017-8291)을 이용하는 악성코드에서 쉘코드(ShellCode)를 실행하기 위한 전 단계에서 제작자 실수로 추정되는 코드상의 오류가 확인되었다. 전체 악성코드 동작에는 영향이 없지만, 이러한 코드상의 실수가 2018년부터 최근 한글 문서 악성코드에서도 지속적으로 발견되고 있다. 또한, 이러한 코드상의 실수가 없는 형태도 함께 발견되고 있는 점을 볼 때, 코드상의 특징을 바탕으로 제작자를 2개의 그룹으로 분류할 수 있다.
한글 EPS 취약점 파일들은 악의적인 쉘코드를 실행하기 전 공통적으로 해당 메모리 영역의 속성을 변경하기 위해 VirutalProtect 라는 API를 사용한다. 코드상의 오류라고 판단하는 부분은 VirutalProtect API 호출을 통해 쉘코드 영역의 메모리의 속성을 변경(PAGE_EXECUTE_READWRITE) 시, 변경하고하 하는 영역이 쉘코드 주소가 아닌 쉘코드 크기 값으로 잘못 전달되는 부분이다.
하지만, 이러한 코드상의 오류에도 불구하고 동작에 문제가 없는 것은 취약한 “gsdll32.dll”을 실행하는 “gbb.exe”와 “gswin32c.exe”에 DEP(데이터 실행 방지) 옵션이 해제되어 있기 때문이다.
VirtualProtect 호출에 실패하는 한글 문서 파일은 [그림 2]과 같이 ROP(Return-Oriented Programming) 가젯 구성 시, 스택에 저장된 0x74948C50(VirtualProtect 주소)와 0x02496AF8(쉘코드 주소)값 사이에 리턴 주소 …
안랩 ASEC 분석팀은 한글 EPS 취약점(CVE-2017-8291)을 이용하는 악성코드에서 쉘코드(ShellCode)를 실행하기 위한 전 단계에서 제작자 실수로 추정되는 코드상의 오류가 확인되었다. 전체 악성코드 동작에는 영향이 없지만, 이러한 코드상의 실수가 2018년부터 최근 한글 문서 악성코드에서도 지속적으로 발견되고 있다. 또한, 이러한 코드상의 실수가 없는 형태도 함께 발견되고 있는 점을 볼 때, 코드상의 특징을 바탕으로 제작자를 2개의 그룹으로 분류할 수 있다.
한글 EPS 취약점 파일들은 악의적인 쉘코드를 실행하기 전 공통적으로 해당 메모리 영역의 속성을 변경하기 위해 VirutalProtect 라는 API를 사용한다. 코드상의 오류라고 판단하는 부분은 VirutalProtect API 호출을 통해 쉘코드 영역의 메모리의 속성을 변경(PAGE_EXECUTE_READWRITE) 시, 변경하고하 하는 영역이 쉘코드 주소가 아닌 쉘코드 크기 값으로 잘못 전달되는 부분이다.
하지만, 이러한 코드상의 오류에도 불구하고 동작에 문제가 없는 것은 취약한 “gsdll32.dll”을 실행하는 “gbb.exe”와 “gswin32c.exe”에 DEP(데이터 실행 방지) 옵션이 해제되어 있기 때문이다.
VirtualProtect 호출에 실패하는 한글 문서 파일은 [그림 2]과 같이 ROP(Return-Oriented Programming) 가젯 구성 시, 스택에 저장된 0x74948C50(VirtualProtect 주소)와 0x02496AF8(쉘코드 주소)값 사이에 리턴 주소 …
IoC
7d1d7ffee0e2f2778dc6e941bcafbd08
98b68c2f2fdc67db371bb6783b811c8f
a5320c6a6afea3c7cc21bfcdbd5e2f6b
c87696a3224f97e30200a93021e44ab6
f865ea5f29bac6fe7f1d976a36c79713
42ae424f27d83fa132b2967b64f6ba21
f392492ef5ea1b399b4c0af38810b0d6
2bc233b892b8308cebadb09ae915b8d9
0316f6067bc02c23c1975d83c659da21
48d9e625ea3efbcbef3963c8714544a7
34ef0e67dad9ea8540f0fb3d91468dcf
98b68c2f2fdc67db371bb6783b811c8f
a5320c6a6afea3c7cc21bfcdbd5e2f6b
c87696a3224f97e30200a93021e44ab6
f865ea5f29bac6fe7f1d976a36c79713
42ae424f27d83fa132b2967b64f6ba21
f392492ef5ea1b399b4c0af38810b0d6
2bc233b892b8308cebadb09ae915b8d9
0316f6067bc02c23c1975d83c659da21
48d9e625ea3efbcbef3963c8714544a7
34ef0e67dad9ea8540f0fb3d91468dcf