작은 메모장
악성HWP문서 분석_익스플로잇 2 본문
이번 목표 문서
희안하게 이 문서는 확장자가 hwp가 아닌 hwpx로 되어있음
hwpx은 OWPML(Open Word-Processor Markup Language)로 만들어 짐
이로인해 만들어진게 HWPML
그 확장자가 hwpx
hwp와 hwpx의 가장 큰 차이는
hwp는 바이너리 파일 기반 포맷
hwpx는 xml기반의 개방형 파일 포맷
= ZIP 파일 포맷
hwpx로 이루어지는 공격은
- xml에 공격자의 코드를 삽입
- 삽입한 xml 파일을 파싱 후 사용자에게 전송
- HWP 프로세스가 이를 파싱하는 도중 공격자의 코드를 실행
즉, xml에 악성 페이로드 코드가 존재
트리아지
확장자를 ZIP으로 변경 후 분석
특수 파이썬 코드를 실행하여 이상한 xml파일을 감지
section0.xml 파일이 이상하다고 알림
이 xml 파일을 분석
역시나 코드가 상당히 더럽게 짜여있음
이를 보기 쉽게 보기 쉽게 > 뒤에 줄바꿈을 시행
변환 후 코드를 살펴보면 이상한 색코드가 계속 삽입됨
xml에서, 색코드는 gradation buffer에 저장됨
버퍼가 꽉 차면 값을 받을 수 없어야하는데, 이 취약점은 버퍼보다 더 많은 값을 넣어 buffer overflow 발생
이를 이용하여 공격자는 공격을 실행
즉, 이 색코드가 공격하려는 코드
특수한 파이썬 코드를 이용하여 색코드를 추출
추출한 코드는 디버거를 통해 실행될 예정
xdbg를 이용하여 32비트 계산기를 실행
저번과 똑같이 메모리 주소를 할당하고 거기에 쉘코드를 주입
주입된 쉘코드 시작점에 EIP설정
추출한 쉘 코드를 분석해도 익스플로잇 상태의 메모리 레이아웃이 아님
=> 쉘코드 정상실행 불가
코드를 천천히 보면, 크러쉬가 발생해야하는 부분이 있어 설정하고 분석을 진행해야 함
근데 디코딩하는 부분도 없고, 페이로드에 관련된 문자열도 존재하지 않음
때문에 이 쉘코드가 실행하는 또 다른 문자열이 있는지를 분석해야함
스크립트 코드 분석
section0.xml로 돌아와 코드를 살펴보면 drawText 안에 이상한 데이터가 있음
drawText는 글상자를 나타내는 태그
이 이상한 데이터를 UFT-8 디코딩 후 UTF-16 인코딩
특수한 파이썬 코드로 이를 수행
shellcode라는 파일로 생성
Hex 에디터로 이를 실행하면
뭔가 도메인 주소 같은 것과 powershell명령어처럼 보이는 문구가 뒤집혀 있음
이는 스택에 들어가기 위해 순서를 거꾸로 써놓은것
아까 만들어둔 디버거 메모리 공간에 쉘코드를 주입
코드를 살펴보면 스택에 뭔가 엄청난 데이터를 쌓고 있는것이 보임
스택이 끝나는 부분에 중단점(F2)를 설정하고 실행(F9)
스택 꼭대기를 가리키는 ESP값이 powershell 호출 명령을 담고 있는 것이 보임
이를 쫓아가보면
아래 보라색 영역이 스택에 쌓인 명령
Ctrl + E를 눌러 이를 변환
해당 코드는 WinExec 함수를 통해 특정 주소에서 코드를 메모리에 다운받아 실행하는 코드
'KISA 사이버 보안 훈련 > 스피어피싱 대응 심화' 카테고리의 다른 글
악성HWP문서 분석_오브젝트 1 (0) | 2023.05.30 |
---|---|
악성HWP문서 분석_익스플로잇 3 (0) | 2023.05.30 |
악성HWP문서 분석_익스플로잇 1 (0) | 2023.05.30 |
악성HWP문서 분석_Macro 2 (0) | 2023.05.30 |
악성HWP문서 분석_Macro 1 (0) | 2023.05.30 |