OLE(Object Linking & Embedding) 개체란?
각각의 응용프로그램들이 생산한 다양한 자료들을 독립적으로 사용하는 것이 아니라, 각각의 자료들을 서로 엮어놓는 것.
예시로는, 한글 문서에 도표나 수식, 그림 등을 포함하고 필요에 따라 음향 자료를 함께 문서에 포함하는 것이다. 반대로 음악 전용 프로그램에서 음악 자료에 필요한 설명문을 문서 편집 전용 프로그램을 이용해 만든 다음, 그 자료를 그대로 음악 자료에 포함할 수 있다.
이렇게 각각의 독립적 자료들을 하나의 응용프로그램에서 다양하게 사용할 수 있는 기능을 개체 연결과 포함, 즉 OLE 기능이라고 한다.
앞에서 설명한 객체연결삽입기능(OLE)를 사용한 공격기술 관련 뉴스를 보게되어 정리해보았다.
해커들은 문서를 이용한 공격을 할 때, 주로 취약점을 이용하여 사용자가 문서를 열람하기만 해도 악성코드가 자동으로 실행되게 했었다. 그러나 최근 제조사들의 시큐어코딩 적용으로 취약점 발견 빈도가 감소하며, 해커들은 취약점 보다는 매크로, OLE와 같이 문서의 정상 기능을 악용한 공격기술을 주로 사용한다고 한다.
MS 오피스 문서에서 악성코드 유포 시 주로 매크로가 사용되듯이, 한글 문서에서는 OLE 기능이 사용된다.
OLE 기능은 한글 문서 내에 외부의 파일을 직접 문서 내에 삽입하는 기능이다. 해커들을 해당 기능을 악용하여 악성 스크립트나 프로그램을 삽입하고, 사용자의 실행을 유도할 수 있다.
한글 문서의 입력탭 - OLE 개체 - 파일로부터 만들기에서 exe 또는 bat 유형의 악성파일을 삽입할 수 있다. 그림파일 등을 입력 후 하이퍼링크 기능을 이용해 악성코드를 연결하는 것도 가능하다.
실제 공격 사례를 보면 투명하게 만들고 전체에 넣어서 문서 내 어디를 클릭하더라도 악성코드가 실행되도록 하는 기술이 사용되거나, 공공문서 등으로 내용을 위조하여 클릭을 유도하는 식으로 사용되고 있다.
한글 프로그램의 버전에 따라 실행 결과도 다르다고 한다. 한글 2018 이하의 버전은 하이퍼링크 기능을 이용해 클릭만 하면 즉시 실행되기 때문에 주의해야 하며, 한글 2018 이상의 버전부터는 하이퍼링크 클릭 시 실행 경고가 발생하도록 되어있다고 한다.
한글 문서 내의 악성코드 삽입 시나리오 실습
아래와 같이 batch 파일을 만들고 문서 내에 삽입 후 실행시키도록 유도한다.
코드를 잠깐 설명하자면, 관리자 권한이 필요하여 관리자 권한을 얻고 명령어를 수행하는 .bat 언어의 코드이다.
관리자 권한을 얻어 batch 파일을 실행시키는 코드는 아래 주소를 참고했다.
관리자권한 실행 안하고 Batch파일로 관리자권한 취득하기
::.bat 기본 세팅 값
::모든 명령줄 끄기
@echo off
::UTF8로 설정
@chcp 65001
::모든 명령줄 clean
cls
goto :CheckUAC
::관리자 권한 취득하기
:CheckUAC
::관리자 권한 체크
>nul 2>&1 "%SYSTEMROOT%\\system32\\cacls.exe" "%SYSTEMROOT%\\system32\\config\\system"
if '%errorlevel%' NEQ '0' (
goto :UACAccess
) else (
goto :Done
)
:UACAccess
cls
echo.
echo --- 관리자 권한이 필요합니다. ---
echo "ENTER"키(또는 "예" 버튼)를 눌러 관리자 권한을 취득 합니다...
echo [참고 : 관리자 권한이 없기때문에 한번더 실행됩니다.]
timeout 5 >nul
::pause >nul
::관리자 권한 주기위해 VBS파일을 생성
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\\getadmin.vbs"
echo UAC.ShellExecute "cmd", "/c """"%~f0"" """ + Wscript.Arguments.Item(0) + """ ""%user%""""", "%CD%", "runas", 1 >> "%temp%\\getadmin.vbs"
"%temp%\\getadmin.vbs" "%file%"
::관리자 권한 완료후 VBS파일 삭제
del "%temp%\\getadmin.vbs"
exit /b
:Done
cls
echo.
echo --- 관리자 권한을 취득하였습니다. ---
echo 1초후에 다음설치 단계로 이동...
timeout 1
::여기서부터 권리자 권한 필요한 명령어 입력
start chrome <https://lieadaon.tistory.com/>
echo Hello User:-) > "%USERPROFILE%\\Desktop\\Notice.txt"
echo Hello User:-) > "%USERPROFILE%\\Desktop\\Remove_test.txt"
timeout /t 10
del "%USERPROFILE%\\Desktop\\Remove_test.txt"
pause
exit
밑의 사진은 위에서 생성한 .bat 파일을 넣어둔 상황이다.
해당 파일을 더블클릭하면 스크립트를 실행하게 된다.