1. 악성 MS 오피스 문서 전략
스피어 피싱에 가장 많이 사용됨
악성 문서를 식별할 수 있는 눈이 있으면 초동조치를 포함한 사후조치를 앞당길 수 있음
- 악성 MS 오피스 문서의 일반적인 유형
1. 매크로 유형
- 문서 내에 "VBA" 혹은 "Macro" 단어를 포함한 폴더와 파일이 존재할 가능성이 높음
= yaratool로 패턴 매칭하면 쉽게 찾음, ole tools로 매크로 유형을 빠르게 식별하고 내장된 매크로 코드를 추출할 수 있다.
2. DDE 유형(Dynamic Data Exchange)
- DDE/DDEAUTO 명령을 통해 실행 하고자 하는 명령 스크립트가 존재함
DDE는 MS 오피스 문서들(엑셀, 파워포인트, 워드 등) 간에 데이터를 공유하기 위해 사용하는 기술(일부 명령을 사용해서 공유하는데 이를 악용)
3. 외부링크 참조 유형 - OOXML(Open Office XML)로 zip 파일 포맷과 유사
- xml로 끝나는 확장자 파일은 내장 파일들의 연관 관계, 포맷, 해석 정보가 정의 되어 있음
- 그중에서 문서 내에 "*.xml.rels" 파일을 조사하면 참조하는 외부 링크 정보를 확인할 수 있음
-> 외부 개체를 참조하는 것은 정상적인 기능 중 하나인데 이를 틀어서 악용
코드를 분석하는 목적은 IOC(Indicators Of Compromise) 침해사고 지표를 뽑아내는 것이 목적이다.
2. 악성 MS 오피스문서 분석 Excel 4.0 매크로
[악성 엑셀 문서 파일 트리아지 밋 Excel 4.0(XLM) 매크로 분석]
1) 악성 XLS 문서 트링지
- XLS 구조 분석을 통한 이상 징후 탐지
- 악성 매크로 시트 정보 및 악성 페이로드 확인
2) Excel 4.0(XLM) 매크로 분석
- 악성 매크로 시트(Very HIDDEN 속성) 분석을 통한 악성 행위 분석
XLS 문서 파일
XLS 문서 파일의 경우 작은 파일시스템과 같은 포맷을 가지고 있는데 주로
OLE(Object Linking and Embedding), CFBF(Compound File Binary Format)
형식으로 구 버전 MS 오피스 프로그램에서 사용한다.
대표 확장자 = doc, ppt, xls 등..
- 먼저, MS Office Word, Excel 문서와 같은 OLE 파일을 분석하여 OLE 파일 유형, VBA 매크로, 내장된 OLE 객체, 암호화 존재 여부 등을 탐지하는 oleid.py를 사용하여 엑셀 문서 파일의 이상징후를 확인
- 매크로 확인
- strings 도구로 의심스러운 문자열 추출하기
- txt파일을 열어 실행파일 확장자를 입력하면 c2도메인으로 추정되는 문자열이 나온다.(외부로부터 특정 파일을 불러와 악성행위를 함)
- ole 및 오픈 xlm을 분석하여 vba매크로 암호화, 난독화, ioc주소(ip주소, url, 실행 파일)을 탐지하는 olevba.py로 확인
very hidden 속성 시트, worksheet visible 속성 + exec로 매크로를 실행하면 A1 매크로를 다운로드 한다.
(oledump도구를 사용할 때 plugin_biff 플러그인을 사용해야 하며 매크로를 excel 4.0매크로를 나타내는 -x 또는 --xlm 옵션을 지정해줘야 한다.)
very hidden 속성으로 숨기기 취소가 없어짐 -> HxD(16진수 편집기)를 이용해서 BoundSheet 레코드를 일부 수정해야 한다.
BoundSheet : XLS구조 중 하나로 시트 이름, 상태, 유형 등 정보가 저장된 레코드
- 공격자는 이 boundsheet 레코드의 시트 상태 정보 부분을 very hidden으로 변경하여 매크로 시트를 은닉한다.
16진수 편집기로 boundsheet를 나타내는 85 00을 찾기
이중 main은 정상적으로 보이므로 두번째 hiDden_m@3Cro를 확인하기
9바이트 위치의 1바이트는 Very Hidden처리 돼 있다
"02" = 매우 숨김(very hidden)
"01" = 숨김(hidden)
"00" = 숨김해제(visible)
msiexec.exe 파일을 이용해 i 옵션으로 cykom1.msi를 브라우저 임시 파일에 다운로드 후 /q 옵션으로 설치 시 ui를 설정
3,4 악성 MS 오피스문서분석 VBA 매크로 PPAM 문서 Part 1,2
vba 매크로 유형 악성 ppam 문서 파일 분석
1) 악성 ppam 문서 트리아지
- ppam 파일 정의/구조 분석을 통한 이상 징후 탐지
- 악성 vba 매크로 확인
2) vba 매크로 분석
- 악성 vba 매크로 분석을 통한 악성 행위 분석
PPAM(power point add-in macro) 파일은 ms 파워포인터에서 사용하는 add-in 파일로 프레젠테이션 개발 목적으로 사용되는 파일
확장자가 doc -> docx, ppt -> pptx, xls -> xlsx
ppam에서 zip으로 확장자를 변경해서 압축해제가 가능
- 압축해제하면 다음과 같은 4개의 파일이 나온다.
- content_types.xml에는 /ppt/slide, /ppt/layout 등의 컨텐츠 정보가 저장
- rels는 패키지 간의 관계를 나타내는 부분으로 오피스 문서 구조에서 섹션간의 관계 정보가 저장되어 있다.
docProps 디렉토리 안에 썸네일, 파일 등록 정보, 파워포인트 정보가 있다.
- ppt 디렉토리에는 슬라이드, 레이아웃 등의 구성요소들이 있다.
- 분석
- oleid 도구로 vba 매크로, 내장된 ole 객체, 암호화 존재 여부 등 이상을 탐지
- risk high 매크로 존재 확인
- 의심스러운 문자열 확인하기
1. cmd, powershell 등 문자열
2. C2 도메인으로 추정되는 문자열이 존재하는 유형
--> 존재하지 않는것으로 확인
- ole 및 오픈 xlm을 분석하여 vba매크로 암호화, 난독화, ioc주소(ip주소, url, 실행 파일)을 탐지하는 olevba.py로 문서의 이상징후 확인하기
--> ppt/dfh~.bi라는 파일에서 vba 매크로가 탐지됨
autoOpen, copyfilel, create 등의 단어를 확인
- 매크로 실행 해보기
-->오피스 프로그램 오류처럼 속여서 실행되고 확인을 눌러 에러를 끄면 특정 사이트로 접속되어 C2서버로 이동시킨다.
사용자를 유해 사이트로 유도
- 새 ppt 창을 열어 개발자 도구 -> visual basic을 열어준다.
모듈창 - 삽입 -> 모듈
지역창 - 보기 -> 지역창
으로 두 개 다 열어주기
그리고 악성 vba를 모듈창에 복사 replace로 난독화된 코드를 디버깅
auto_Open() - 함수를 사용해서 매크로 허용 시 매크로가 자동 실행되도록 설정
msgBox - 메시지 박스를 띄워 오피스에 문제가 발생한 것처럼 사용자를 속이기
mshta.exe - 웹 브라우저 연결 없이 url에 접근할 수 있는 기능을 가진 mshta.exe파일을 c:\ProgramData 경로에 cond.com이라는 이름으로 복사한다
그리고 복사한 cond.com 파일을 통해 bitly 단축 url에 접속할 수 있도록 변수를 선언
마지막으로 win32_Process를 이용해서 cond파일을 생성해서 단축 url로 접속을 유도
5,6 VBA 매크로 유형 악성 XLSB 문서 파일 분석
[악성 엑셀 문서 파일 트리아지 및 VBA 매크로 분석]
- 01) 악성 XLSB 문서 트리아지
- XLSB 구조 분석을 통한 이상 징후 탐지
- 악성 매크로 시트 정보 및 악성 페이로드 확인
- 02) VBA 매크로 시트 분석
- 악성 VBA 매크로 분석을 통한 악성 행위 분석
- 03) PowerShell 매크로 분석
- Powershell 분석을 통한 악성 행위 분석
악성 문서 구조 살펴 보기
HandsOn-7
xlsb 파일의 b는 Binary 파일을 의미한다. -> OOXML(Open Packaging Conventions) 구조를 사용[zip 기반]
스프레드시트 데이터를 Binary File 파일 형식으로 저장하여 다른 엑셀 파일 형식보다 빠르게 읽고 쓸 수 있다.
- mal파일 확장자를 zip으로 변경후 압축 풀면 다음과 같은 파일이 나온다.
- 패키지 part의 내용 타입의 목록을 가지는 content_types.xml 파일
- package의 자료와의 연관성을 정의하는 .rels 파일
- docProps 폴더에는 OOXML 문서에 관련된 특성을 포함하는 app.xml/core.xml 파일
- xl파일은 레이아웃 등의 구성 요소 가 기능별로 나뉘어져 저장되어 있다.
분석 시작
- oleid 파이썬 스크립트로 이상 징후 탐지 -> risk high의 매크로 존재 확인
- 의심스러운 문자열 확인 위해서 strings64로 문자열 추출 -> 의심스러운 문자열은 발견하지 못했다.
- olevba 파이썬 스크립트로 난독화, ioc 등을 탐지하기 위해 사용 -> 의심스러운 키워드 확인
- 문서 열람하여 매크로 내용 확인 -> 다른 기업을 사칭
- 디버깅 vba매크로 확인을 위해 visual basic을 실행하면 olevba로 매크로를 확인했을 때 있었던 시트를 볼 수 있다.
- thisworkbook의 코드를 디버깅 -> g5,g6부분에 powershell을 확인
- 엑셀에서 문서를 보면 F 다음 G인데 그 칸을 줄여 놓은 것을 확인
이미지를 옮기고 값을 G칸을 늘리면 powershell 코드 발견
ReDim으로 DGJG배열을 만들어 해당 url값을 넣고 있다 -> powershell 코드가 들어간다
sSvno변수에 createObject 함수로 오브젝트를 만들기 위해 invukKAT값을 저장한다.
invukKAT는 RijxuydD 함수값을 가져온다.
RijxuydD 함수를 보면 shell.Application을 이어 붙이고 있다.
i=1 To Len(wjkwer) - shellExecute의 문자열의 총 길이를 구하고
char = Mid(wjkwer, i, 1) - 캐릭터 변수에 해당 문자열을 하나씩 대입한다.
if( char <> " ") Then - 만약 대입된 값이 공백이 아니면
newStr = newStr + Mid(wjkwer, i,1) - 그 값을 newStr에 넣고
RijxuydD=newStr - 최종적으로 조합된 문자열을 반환한다. invukKAT으로 간다.
- 디버깅 끝에 에러 메시지가 나오고 temp경로에 misc.vbs를 다운로드
- pwowershell 코드 분석
powershell 코드를 복사해 window powershell ise에 붙여넣은 후 분석
문자가 거꾸로 적힘
4번째 줄에 join으로 합치고 다음 regex로 한글자씩 문자를 뒤집어준다. - 다시 join으로 결합
선택영역 실행으로 4번째 줄까지 그다음 regex 부분을 실행하면 다음과 같이 실행 명령을 확인 -> onedrive에서 파일을 다운 받아 misc.vbs이름으로 변경
마지막 줄 start-process로 이 파일을 실행
7,8,9 악성 MS 오피스 문서분석 VBA 매크로 Word 문서 Part 1,2,3
[악성 MS 워드 문서 파일 트리아지 및 매크로 스크립트 분석]
- 01) 악성 MS 워드 트리아지 - MS 워드 구조 분석을 통한 이상 징후 탐지, 악성 매크로 스크립트 추출
- 02) 매크로 스크립트 분석 - 스키립트 분석을 통한 악성 행위 분석
'교육 및 자격증 > KISA : 스피어 피싱 대응' 카테고리의 다른 글
온라인 일방향 침해사고 대응 훈련(중급, 스피어 피싱 대응 - 기본과정) (0) | 2022.11.14 |
---|