ActiveX란? (About Active)
MS사(Microsoft)에서 만든 COM(컴포넌트 오브젝트 모델)과 OLE(오브젝트 링킹 앤 임베딩)기술두개를 합쳐서 새로 이름을지은것이 바로 ActiveX입니다. 주로 IE에서 애드온인 ActiveX Control으로 사용되지요.
유독 우리나라에선 많이 사용되었지만, 보안적인 문제로 인하여 점차 사라지고 있는 상황입니다. ActiveX의 불편함과 보안성을 지적하는 패러디도 많이 나타났지요.


불편하다곤 하지만, 초기에 MS의 개발 자원을 웹에서 이용할 수 있다는 점으로 동적 웹페이지의 시대를 열기도 했었죠.
기능이 많아 약점도 많은 이 ActiveX에 대해 분석하는 방법에 대한 이야기입니다.
분석에 앞서 ActiveX를 설치하면 파일이 남는 부분에 대해 잠깐 보도록 하겠습니다.
ActiveX는 기본적으로 시스템루트 디렉토리 하단의 Downloaded Program Files 하단에 관련 파일이 있으며, ocx 등의 파일을 확보할 수 있습니다.
ActiveX 취약점과 분석 방법(ActiveX Vulnerability & Analysis)
뭐 딱히 어딘가에 취약점 종류가 명시되어 있는 건 아닙니다.
주로 EDB나 Zero 마켓에 올라오는 종류는 BOF, BUF, FMS 등을 이용하여 시스템에서 명령을 실행하거나 Shell을 열 수 있는
부분이 자주 올라오는데 이런것들 이외에도 웹에서 적용할 수 있는 여러 공격이 유사하게 들어갈 수 있습니다.
그냥 대충 정리한거긴 한데, 제가 보는 시점에선 크게 명령실행, File Down/Upload, 파라미터 변조 등으로 나눌 수 있을 것 같네요. 물론, 파라미터 변조에서 대다수의 방법이 나오긴 하지만 주로 꼽자면 이정도로 보여요.
일단 ActiveX에 대해 우리가 넘겨줘야할 파라미터, 값들에 대해서 찾아야합니다.
여러가지 방법을 통해서 사용하는 함수들을 알아낼 수 있습니다.
1. WebPage에서 호출되는 구간을 통해 확인
2. Tool을 통해 함수 확인
첫번째 방법은 ActiveX가 사용되는 페이지를 보고 있을 때 편리합니다.
대게 ActiveX를 사용할때 ActiveX에서 사용하는 Method 를 웹에서 호출해야하기 때문이죠.
두번째 방법은 Tool을 통해 사용하는 함수를 확인하는 방법입니다.
주로 MS사에서 배포하는 OEL/COM Object Viewer로 확인이 가능합니다.
oleview.exe는 MS Resource Kit에 포함되어 있으며, 아래 링크에서 RK 설치 후 tool 디렉토리에 들어가시면 사용하실 수 있습니다.
http://www.microsoft.com/en-us/download/details.aspx?id=17657
[Program files (x86)/Windows Resource Kits/Tools/oleview.exe]
설치 후 각 툴 내 리스트에서 우클릭 후 View Type Information 을 통해 확인할 수 있습니다.
left layer list -> right click -> View Type Information
위처럼 메소드에 대해서 확인이 가능합니다. 추가로 처음 사용시 dll 이 없는 이슈가 있었는데, 해당 dll을 깔아 쉽게 설치가 가능합니다. (아래 Error 발생 시)
ActiveX에서 사용하는 메소드에 대해 확인이 되었으니, 일반 웹 해킹 기법과 유사하게 공격이 가능합니다.
임의로 해당 ActiveX파일을 호출하는 웹 페이지를 만든 후 사용하는 Method 에 대해 파라미터 값을 변조하여 Traversal,Execute Command 등 여러가지 공격을 수행하면 됩니다.
예를들면 아래와 같이 볼 수 있겠네요.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Untitled</title>
<meta name="generator" content="Namo WebEditor v3.0">
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p><object classid="clsid:0D886696-C7CE-11D3-A175-08002BF12506" width="445" height="449">
</object>
</p>
</body>
</html>
간단한 ActiveX 코드를 가지고 설명하도록 하겠습니다. 먼저 object 태그를 이용하여 ActiveX 를 로드합니다.
조금 더 발전된 코드에서 취약점 분석이 들어가는 부분입니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Untitled</title>
<meta name="generator" content="Namo WebEditor v3.0">
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<script language="vbscript">
sub OnTextButtonClick()
Test.SetText form.TextEdit.value
end sub
sub OnDrawTypeChange()
Test.DrawType = form.DrawTypeCombo.value
end sub
</script>
<p><object classid="clsid:0D886696-C7CE-11D3-A175-08002BF17507" width="315" height="320">
id = "Test" </object>
</p>
<form name="form" method="get">
<p><input type="text" name="TextEdit" value="ActiveX 테스트"> <input type="button"
name="TextButton" value="설정"> <select
name="DrawTypeCombo">
<option value="0">사각형</option>
<option value="1">원</option></select></p>
</form>
<p> </p>
</body>
</html>
여기서 중요한 부분이 바로 vbscript 로 작성된 함수들입니다. 이 함수들을 통해 ActiveX로 데이터가 넘어가며 처리한 결
과를 웹에 나타나게 되는데, 이 부분에서 ../../../를 통해 시스템 파일을 유도하거나, 시스템 명령으로 악성 코드를 설치
할 수 있는 발판을 마련하게 됩니다.
요즘 많이 쓰이지는 않지만, 취약점 분석단계에서 아직은 필요한 부분입니다. (사용이 적어도, 리스크가 높기에..)
감사합니다.
Reference
http://www.dart.com/web-get-page-code-example.aspxhttp://teamcrak.tistory.com/111
http://jys92.com.ne.kr/VisualC/UseActiveXInWeb.htm
![]() |
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment