-

[악성코드] CVE-2017-8291 한글 문서(.hwp) 악성코드 본문

Workspace

[악성코드] CVE-2017-8291 한글 문서(.hwp) 악성코드

r99bbit 2020. 8. 12. 16:49

요약

- postscript 문법 : https://www.adobe.com/content/dam/acom/en/devnet/actionscript/articles/PLRM.pdf

- 분석에 사용한 도구 : www.nurilab.com/products/hwpscan2

 

누리랩 - HwpScan2

아래아한글 취약점 점검 도구

www.nurilab.com

SHA256 : 72fd996d651baaad444ac7664b39f66e1eb030a924fe3544ff7c7d80dff768ea

 

- HWP 파일/Dropper : EPS 파일이 삽입되어있으며 한글 파일 열람 시 고스트스크립트 취약점에 의해 Base64로 인코딩된 다운로더와 이를 복호화하고 PowerShell 인자로 전달하는 VBS를 드랍한다.

 

- AutoCad.mij.ver01/Downloader : (Base64로 인코딩된) PowerShell Script로 작성되어있으며 쉘코드가 담긴 악성코드를 구글 드라이브로부터 다운로드 한다.

경로 : C:\Users\%UserName%\AppData\Roaming\Microsoft\

 

- Zeorder88.0.2.vbs/Downloader : 시작 프로그램에 등록되며, 드랍 이후 호스트룰 재시동하면 악성 코드를 다운로드 하도록 설계되어있다.

경로 : C:\Users\%UserName%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\


HWP 파일/Dropper

 HWP 파일을 언패킹해보면 BinData 영역에 eps 파일이 삽입 되어있는 것을 볼 수 있다. BinData는 HWP에서 객체(그림, 음악 파일 등)들이 위치하는 곳이며 eps 취약점을 이용한 악성코드들은 대부분 BinData 부분에 저러한 dropper를 삽입해 놓는 경향을 볼 수 있다. 참고로 저렇게 eps를 삽입해놓게 되면 ghostscript 취약점인 CVE-2017-8291에 의해 악성 스크립트가 인터프리팅되고 쉘코드가 drop될 수 있다.

 

 해당 eps를 decompress하여 추출해 보았다(hwp는 BinData에 객체를 저장할 때 압축하므로 decompress 과정이 필요) Post Script의 writestring 함수를 이용하여 특정 경로에 다운로더를 드랍한다. 전형적인 arbitrary write 형태이다. 조금더 구체적으로 분석해보자면 base64로 인코딩된 다운로더(AutoCad.mij.ver01)를 드랍하고 이를 powershell 의 base64 decode 함수를 이용해 디코딩&실행하게 된다.


AutoCad.mij.ver01/Dowloader

 

 HWP 파일을 열면 eps 파일이 인터프리팅되며 해당 위치에 AutoCad.mij.ver01이라는 파일이 하나 drop된다. 위에서도 봤겠지만 얘는 base64로 인코딩된 데이터이다. 아마 Windows Defender나 Exection Poilcy우회하기 위함인듯?

 

 Base64로 디코딩했을 때는 위와 같이 나온다. 코드는 조금 더럽긴 하지만 powershell script이며 shellcode를 구글 드라이브 url에서 download & execute하는 내용이다. shellcode는 현재 해당 주소가 죽어버려서 못구했다(한발 늦게 분석ㅜㅜ).


Zeorder88.0.2.vbs/Downloader

 vbs(비주얼베이직 스크립트) 형태로 시작 프로그램에 drop되며 감염 이후 재시동시 AutoCad.mij.ver01를 Base64 디코딩하고, Powershell 인자로 넘겨서 shellcode를 다운받도록 하는 역할을 한다. 헌데, 내가 알기론 MS가 임의의 스크립트 실행에 대해서는 이미 조치를 해놓은 것으로 알고있다.

 

Advanced Threat Defender : https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-antivirus/detect-block-potentially-unwanted-apps-microsoft-defender-antivirus

 

Block potentially unwanted applications with Microsoft Defender Antivirus - Windows security

Enable the potentially unwanted application (PUA) antivirus feature to block unwanted software such as adware.

docs.microsoft.com


 고스트스크립트 취약점(CVE-2017-8291)은 북쪽 그분들이 2년째 우려먹고 있기 때문에 충분히 분석해볼만한 가치가 있다고 생각해서 글을 남겨보았다. 아래는 그 이력이다.

 

  2017년에 이미 관련 패치가 배포되었음에도 계속해서 피해 사례가 발생하는건 아마도 구버전의 한글 문서 프로그램을 사용하는 공공기관이 많아서 때문이라고 생각한다. 그만큼 보안 의식이 잡혀있지 않겠다는 것 이겠지..

 

다음엔 hwp 말고 다른 문서 포맷도 분석해봐야겠다.

Comments