본문 바로가기
악성코드 정보

악성 매크로 코드를 '좀 더' 숨긴 엑셀 파일 유포 - very hidden

by 분석팀 2020. 3. 11.

새로운 방식으로 악성 매크로 코드를 숨긴 엑셀 파일이 발견되었다. 이번 파일은 엑셀 4.0 (XLM) 매크로 시트를 이용하였는데, 기존의 악성 매크로 시트를 단순히 숨겼던 방식에서 일반적인 사용자 인터페이스로는 숨김 속성을 없앨 수 없게 없게 변경하였다. VBA 매크로 코드 방식을 이용하지도 않고 XLM 매크로 시트를 직접 확인할 수도 없기 때문에 문서 내에 악성 코드가 어디에 존재하는지 바로 확인하기 어렵다. 

 

  • 파일명 - invoice_805274.xls
  • 생성일 - 2020-03-09 15:30:32
  • MD5 - a7b074da0251f0f8952090967846737e

엑셀 4.0 매크로 시트를 이용한 악성 파일은 2019년 초 활발하게 유포되었다. 당시 유포된 파일은 매크로 시트를 숨기기(Hide) 함으로써 사용자에게 코드가 노출되지 않으면서 악성 기능만 동작하게 하였다. 숨기기 취소(Unhide)를 하면 시트를 확인할 수 있었다. 하지만 이번에 유포된 파일은 숨기기 취소 자체가 활성화되어 있지 않기 때문에 매크로 시트의 존재 여부를 의심하거나 확인할 수 없다. 파일 내에 존재하는 매크로 코드를 직접 뽑았을 때 결과나 악성 기능이 실행되는 것 자체는 변함이 없다. 

※ 엑셀 4.0 (XLM) 매크로 시트 참고 - https://asec.ahnlab.com/1232

 

숨기기 취소(Unhide)가 활성화되지 않는 것은, 매크로 시트가 'very hidden' 속성으로 만들어졌기 때문이다. 숨겨진 시트는 hidden 속성을 갖는 것에 비해 very hidden은 숨겨진 사실 자체를 숨긴다. 엑셀에서 제공하는 일반적인 사용자 기능으로는 매크로 시트에 부여할 수 없는 속성이다. 악성 파일의 매크로 시트를 구성하는 바이너리를 보면 '01' (Excel 4.0 macro sheet)가 '02' (very hidden)로 값이 되어 있음을 확인할 수 있다.

 

very hidden으로 된 매크로 시트를 보기 위해서는 직접 파일을 Hex 에디터로 열어서 해당 속성 부분을 '00' 또는 '01'로 수정하거나, 약간의 VBA 코드를 이용하여 시트를 찾아 모든 시트의 속성을 보이게 변경할 수 있다. 툴을 통해  매크로 시트의 Cell Formula 존재를 확인하였고, Formula의 호출 구조를 시트를 통해 직접 확인한다. 숨겨진 매크로 시트 이름은 'sygfdfdfdesie'이며 각 Cell을 구성하는 난독화 된 형태의 Formula가 확인되었다. 악성 파일은 hxxp://gembeap.com/myknt7lx250y8u3/okbdy.exe 주소에 접속하여 뱅킹 정보 탈취 목적의 EXE 악성 파일을 다운로드하는 기능을 수행한다. 

 

엑셀 매크로 시트를 very hidden 속성으로 좀 더 숨김으로써 공격자는 기존의 진단 방식 우회하거나 악성 코드 노출을 최대한 방지할 수 있다. 아직은 많은 엑셀 파일에서 확인된 방식은 아니며 이후 변화를 지켜볼 필요가 있다. 

 

현재 안랩 V3에서는 이와 같은 악성코드를 다음과 같은 진단명으로 진단하고 있다.

- Downloader/Xls.Generic (2020.03.10.04)

 

 

 

댓글