1. 개요

- 북한 해킹 조직 킴수키(Kimsuky)에서 과거 활용했던 취약점

- 과거 북한은 해당 취약점을 이용해 2014.12.09 한수원 사태를 일으킴

- 해당 취약점은 발견 당시 Zero-Day 취약점이었으며, 2017.04 MS에서 패치를 진행

- 러시아에서 사이버무기로 활용하던 제로데이 취약점으로, 취약점이 공개되자 북한이 활용한 것으로 판단

※ 보안뉴스 "세계적인 관심 받고 있는 북한의 APT 단체 킴수키, 어떻게 막아야 하나" 취약점이 포함되어 있어 정리

 

2. 관련 지식

2.1 OLE

- 객체 연결 삽입(Object Linking and Embedding, OLE)의 준말

- MS에서 개발하였으며, 문서와 기타 객체에 연결과 삽입을 도와주는 연결규약

- 다른 응용프로그램에서 작성된 문자나 그림, mp3 등의 개체를 현재 작성 중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있게 하는 기능

버전 설명
OLE 1.0 - 1990년에 출시
- MS가 초기 버전의 윈도우 OS용으로 만든 동적 데이터 교환(Dynamic Data Exchange, DDE)를 확장한 것
OLE 2.0 - 자동화, 드래그 앤 드롭 등의 기능이 추가

 

- 해당 취약점에서는 OLE2 link object를 악용

> OLE2 기술을 사용하여 생성된 객체를 다른 문서나 응용 프로그램과 연결하는 객체

> 원본 객체의 데이터와 OLE2 기술을 사용하여 생성된 링크 정보를 포함하며, 링크 정보를 사용하여 원본 객체를 참조

 

2.2 RTF 파일

- 서식있는 텍스트 파일 (Rich Text Format, RTF)

- MS가 1987년 개발 및 표준화한 파일 포맷으로 확장자로 ".RTF"를 가짐

- Microsoft Word, LibreOffice, OpenOffice 등 다양한 소프트웨어에서 지원

- 텍스트만 저장하는 일반 텍스트 파일과 달리 글꼴 스타일, 서식, 이미지 등에 대한 정보도 저장되어 서식 유지 가능

> ASCII 텍스트로 작성되어 있으며, 문서에 포함된 서식(글꼴, 색상, 크기, 스타일 등)을 나타내는 태그가 포함

> 서식 태그는 RTF 리더기나 편집기에서 해석되어 문서의 서식이 적용

 

2.3 URL Moniker

- URL Moniker는 COM 개체의 구성요소로, 인터넷에서 리소스를 찾아내 참조하기 위한 기술

- URL을 사용하여 웹 페이지, 이미지, 비디오, 오디오 등의 인터넷 리소스를 찾아내고, 해당 리소스를 다른 응용 프로그램과 공유할 수 있도록 해줌

COM(Component Object Model) 개체
- Microsoft에서 개발한 소프트웨어 컴포넌트 모델
- 프로그래밍 언어나 기술에 관계없이 서로 다른 소프트웨어 컴포넌트들이 상호작용할 수 있도록 해주는 일종의 인터페이스 규격
- COM 개체는 다른 소프트웨어 컴포넌트와 통신하기 위한 메서드와 속성을 제공하며, COM 라이브러리에 등록된 후 COM의 런타임 환경에서 실행

 

2.4 HTA 파일

- HTML Application의 약자이며, 확장자로 ".HTA"를 가짐

- 소스 코드가 HTML , 동적 HTML, VBScript, JScript 와 같이 Internet Explorer에서 지원하는 하나 이상의 스크립팅 언어로 구성된 Microsoft Windows 프로그램

- 인터넷 브라우저 보안 모델의 제약 없이 실행되며,  "완전히 신뢰할 수 있는" 응용 프로그램으로 실행됨

> 실행 시 실행 경고창이 생성되지 않음

> 신뢰할 수 없는 프로그램을 실행할 수 있고, Powershell을 이용하여 로컬 파일 목록을 획득하거나 랜섬웨어 공격 등에 악용되기도 함

 

2.4.1 HTML과 HTA 비교

- 아래 계산기를 실행하는 코드를 HTML과 HTA 파일로 만들어 실행해 결과를 비교

> HTML 실행 시 Activex 함수 실행 관련 경고창이 발생할 것으로 예상

> HTA 실행 시 아무런 경고창 없이 실행될 것으로 예상

<html>
<head>
<script language="javascript">
  shell = new ActiveXObject("WScript.shell");
  shell.Exec('calc.exe');
</script>
</head>
<body>
</body>
</html>

 

 

- 예상과 달리 HTML과 HTA 파일 모두 첨부파일 실행 시 경고창이 발생하지 않음

> 엣지, 크롬으로 HTML을 실행해 보았으나, 경고창이 발생하지 않음

> 인터넷 익스플로러에서 HTML를 실행하면 ActivexObject 컨텐츠와 상호작용을 허용이 필요하다는 정보를 찾음

>  하지만, IE에서도 HTML 실행에 대한 경고가 발생하지 않았으며, 이유에 대해서는 아직 잘 모르겠음

 

 

- 두 파일의 아이콘과 실행 결과 모두 차이를 보임

> HTML 실행 결과 Activex 함수가 실행되지 않아 계산기 실행이 되지않음

> HTA 실행 결과 Activex 함수가 실행되어 계산기가 실행

[사진 1] HTML(좌), HTA(우) 아이콘 및 실행결과 비교

 

3. 공격방식

① 공격자가 OLE2 link object를 포함한 MS Word 문서를 사용자에게 피싱 메일 등으로 전송

② 사용자가 해당 문서를 열람할 경우 URL Moniker에 의해 공격자가 지정한 서버(공격자가 제어 가능한 서버)에 접근

③ 공격자의 서버에서 HTA 파일 형태로 스크립트가 사용자에게 전송

④ HTA 파일 특성 상 경고창 없이 실행되며, HTA 내부에 포함된 Powershell 명령이 실행되어 악성파일 요청

⑤ 요청한 악성파일을 전송 및 실행하여 악성행위 수행

+ Recent posts