작은 메모장

악성HWP문서 분석_Macro 2 본문

KISA 사이버 보안 훈련/스피어피싱 대응 심화

악성HWP문서 분석_Macro 2

으앙내눈 2023. 5. 30. 04:48

이번 목표인 HWP 문서

file 명령어를 사용하여 문서를 분석

원래 리눅스에서 사용가능한 명령어인데 환경변수를 이용하여 윈도우 상에서 사용 가능하게 구성

 

분석한 결과 CDF v2 Document 형식

Compound Document Format의 약자로

Object Linking and Embedding, OLE라고도 불림

어떤 데이터가 들어가 있는지 디렉토리 항목을 확인

3개의 스토리지와 9개의 스트림이 존재

이중 Scripts 스토리지 아래에 DefaultJScript 스트림을 분석

8번째 섹션에 DefaultJScript가 존재 이를 파일화하여 저장

zlib 압축되어 있을것이므로, 압축 또한 해제

압축 해제가 정상적으로 된 모습

 

스크립트 분석

상당히 심플한 구성으로 되어있는 모습

가장 중요한 OnDocument_Open()을 분석

10번줄에서 WScript.Shell을 호출하여 Run을 하는것을 관찰할 수 있음

wscript는 윈도우를 구동하는 쉘 프로그램으로, 스트립트를 실행할 수 있는 환경을 제공

여기서 돌아가는 명령은 커맨드 명령과 동일한 효과를 지님

 

shell 명령의 Run 메서드를 통해 파워쉘 프로세스가 실행

명령에는 -noP -sta -w 1 -enc의 4개의 실행옵션이 설정되어 있음

-noP는 프로필 정보를 로드하지 않음

-sta는 단일 스레드로 명령을 실행

-w 1은 -windowStyle을 1로 설정하여 히든 옵션으로 실행창이 동작하는 것을 보이지 않게 함

-enc은 base64로 디코딩하여 명령을 수행

때문에 뒤에 엄청난 양의 데이터는 base64로 인코딩되어 있음을 알 수 있음

 

저 데이터를 해석하기 위해, 복사 후 노트패드에 붙여넣기

생성한 텍스트 파일을 base64 디코딩

디코딩 후 분석하면 상당히 더럽게 스크립트가 짜여져 있는 모습

이를 원할하게 분석하기 위해 다시 복사 후 노트패드로 옮김

세미콜론을 기준으로 줄바꿈을 실행할 것임

또, {를 기준으로 줄바꿈도 실행할 것임

PowerShell명령어이므로, 이에 맞게 설정

최대한 보기 좋게 만들었으나 아직까지 눈에 들어오지 않는 상황

툴을 사용하여 보기 좋게 만들거임

들여쓰기가 된 모습

이제 이걸 분석 시작

첫째 줄을 실행시키면 아래와 같은 결과가 나온다

cachedGroupPolicySetting이라는 그룹이 보임

이는 메모리에 로딩된 그룹정책에 관련한 그룹

이 명령 이후의 명령들을 보면

파워쉘 스크립트블록 로깅의 키 값에 0을 설정하여

파워쉘 명령 작업들이 이벤트로그에 기록되지 않도록 함

AMSI(Anti-Malware Scan Interface)의 관련 테이블 값도 변경하려고 하는것 같음

AMSI 초기화가 실패된 것으로 설정해, AMSI의 기능을 우회하려고 함

결과적으로 스크립트 로깅을 비활성화하고

AMSI의 기능을 우회하여

웹 클라이언트를 만들고 프록시를 사용해 C2 도메인의 리소스에서 자원을 요청하는 명령임