ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [스피어피싱] 12강 악성 HWP 문서 분석
    보안/스피어피싱 2024. 9. 8. 23:19

    1. 악성 HWP 문서 분석

    1.1 HWP 트라이지를 위한 징후

    1. OLE 스트림을 포함하고 있고 실행 파일을 포함하고 있는 스트림이 존재하면 악성 가능성 높음
      • BinData 스토리지에 OLE 확장자를 가지고 있는 스트림이 존재하는지 확인
      • HWP 파일의 압축을 푼 후 패턴 매칭을 활용해 실행 파일을 포함하고 있는 스트림이 존재하는지 확인
    2. 포스트 스크립트를 포함하고 있는 스트림이 존재하면 악성일 가능성이 높음
      • 포스트 스크립트를 인터프립트 하기 위해 고스트 스크립트가 필요
        • 한글 파일에는 이러한 고스트 스크립트가 내장되어 있음
      • PS 또는 EPS 확장자를 가지고 있는 스트림이 존재하는지 확인
      • 스트림 내용을 확인하여 정상적인 포스트 스크립트인지 확인
    3. 동일한 내용의 스트림이 다수 존재하는 경우 악성일 가능성 높음
      • 동일한 사이즈의 스트림이 다수 존재하는지 확인
        • 바디 텍스트라고 부르는 섹션의 수가 여러개일 경우 = 비정상
        • 여러개의 섹션이 존재하는데 완벽하게 해시값까지 같다 = 비정상
    4. 실행 파일을 포함하고 있는 스트림이 존재하는 경우 악성일 가능성이 높음
    5. 스크립트를 포함하고 있는 경우 악성일 가능성이 높음

     

    1.2 문서 구조

    • DOC, HWP, XLS, PPT - OLE Compound Document 구조
      • 파일시스템 처럼 서로가 폴더랑 스트림 구조로 이루어짐
    • DOCX, HWPX,, XLSX, PPTX - ZIP - OOXML
      • XML 기반으로 데이터 표현

     

    2. 실습

    분석할 한글 파일

     

    파일 구조 확인

     

    file 명령어를 이용하여 분석 할 문서 파일의 구조를 파악한다.

     

    OLEDUMP 이용 구조 파악

     

    OLEDUMP 도구 이용하여 악성 징후 존재를 확인한다.

     

    해당 파일의 경우 한글 파일로서 문서 내 정확한 악성 징후 판별을 위해선 zlib 압축을 풀어내야만 HWP 포맷의 자료를 읽을 수 있다.

     

    분석 할 파일을 ZIP으로 변환 후 압축 해제를 진행한다.

     

    ZIP 변환

     

    압축해제

     

    압축 해제 결과

     

    압축을 해제하여 내제된 파일들이 확인되었다.

     

    PE 파일이 존재하는지 확인을 하기 위해 YARA룰을 사용한다.

     

    PE 파일의 구조는 다음과 같다.

    • 처음 MZ
    • 60 Byte Jump 하면 4 Byte 문자열(필드값) 존재
    • PE@@

     

    아래의 YARA룰은 이러한 PE 파일의 구조를 반영하여 MZ라는 문자열이 탐지되었을 시 60 Byte를 이동 후 필드값 뒤의 문자열이 PE@@인지 확인하는 YARA 룰이다.

     

    YARA 룰

     

    YARA 룰 사용 PE 탐지

     

    YARA룰 실행 결과 2개의 PE 파일이 확인되었다.

     

    분석 수행 절차를 정리하자면 아래와 같다.

    1. OLEDUMP 도구 이용하여 악성 징후 존재 확인
    2. YARA 룰 이용하여 PE 파일을 내장하고 있는지 확인
    3. PE 파일이 HIT 될 경우 pe carve.py 사용
    4. 그 후 덤프된 carved 파일을 IDA 이용 로딩 및 추가 분석 수행...

     

    [Comment]

    - 이해 안가는 점

    1. File 명령어 써서 확인했을때는 CFBF 형식이라 ZIP 구조 아닐거 같은데 ZIP 구조인 이유
      • 한글 파일이라 그런가?
    2. 분석 절차 2번까지는 수행 했는데 그 이후 부분을 못했음

     

    공부 더해서 이해 해야함...

Designed by Tistory.