자기 흐름 doc 매크로 분석 절차

계속해서 Emotet 검체가 많이 착탄하고 있기 때문에, 자기류입니다만 매크로 해석할 때의 순서를 기재합니다.
누군가의 참고가 되면 다행입니다.

당연합니다만, 해석할 때는 검증 환경으로, 인터넷 접속 환경등에 유의의 위(폐쇄 환경 추천) 검증해 주실 수 있도록 잘 부탁드리겠습니다.

분석 절차



1) 해석 준비



・해석하고 싶은 파일의 준비. 이번은 Emotet 시료입니다.

· Fiddler 시작
네트워크 분석 소프트웨어입니다. Wireshark의 HTTP만 버전이라고 생각하면 k.
통신 시도를 확인하기 위해 시작합니다.
· Fakenet 시작
요청에 적절한 응답을 제공하는 로컬 프록시입니다.
폐쇄 환경에서도 가능한 한 거동을 마치게 됩니다. (2차 검체 취득은 무리이지만)

2) 매크로 활성화



콘텐츠 활성화를 눌러 매크로를 활성화합니다.
통신이 발생하면 Fiddle에서 통신 시도를 확인할 수 있습니다.
Powershell 프로세스에서 통신 시도를 시작했음을 알 수 있습니다.


3) 매크로 확인



Word 파일에서 Alt+F11를 눌러 개발자 도구를 시작합니다.
왼쪽 메뉴의 프로젝트를 열면 "표준 모듈"의 아래쪽에 난독화된 매크로를 찾을 수 있을까 생각합니다.


4) 인수를 붙인다


Ctrl+F 에서 검색 창을 표시합니다.
문자열을 Create 나 Shell 등,
대상을 "현재 프로젝트"로 설정하여 검색합니다.


아래와 같은 형태의 문자열이 히트하면 OK입니다. (인수는 샘플)Create(Czcpyib, Fpbbsin, Pftqijpd, Tyhacm, Gcepmog, Biap)
※목처가 서 있지 않는 경우는, Fiddler를 보면서 1행씩 실행해 보거나,
브레이크포인트를 놓고 실행시키거나 라든지로 나눕니다만, 여기에서는 할애합니다.

5) Debug.print에서 인수 표시



4에서 목표를 붙인 Create 내의 인수를 하나씩 Debug.Print하여 출력시킵니다.


위와 같이 걸면 F5를 눌러 매크로를 다시 실행합니다.

6) 이미디 가중치 창 확인



메뉴의 표시>이미디에이트 윈도우를 열면, powershell에 건네주고 있는 인수가 출력되고 있을 것입니다.


7) Base64 디코딩



전달되는 인수는 Emotet의 경우 Base64로 인코딩되는 경우가 많기 때문에,
어떤 형태로 디코딩합니다.
이번에는 CyberChef를 사용합니다.
※Base64의 레시피만이라면 스페이스가 들어가 버리므로 null를 지우는 레시피를 함께 넣고 있습니다.


CyberChef 넣을 수 없는 사정등이 있으면, Windows 순정 커멘드로 디코드 하는 배치를 과거에 만들고 있으므로 사용해 주세요.
htps : // 코 m / 하라 페코 _ 냐 / 그리고 ms /에서 cbc6이다 0294677f9d5

8) URL 등의 정보를 바탕으로 해석을 계속



Fiddler에서는 보이지 않았던 HTTPS 등의 접속처도 풀 패스로 보이고 있기 때문에,
URL이 살아 있으면 2차 검체의 취득도 가능하게 되어 있을 것입니다.
디코드된 정보를 바탕으로 해석을 계속해 보세요.

결론



매크로에 대해서는 무지의 극한이므로,
「더 좋은 방법 있어!」등의 어드바이스가 있으면 꼭 가르쳐 주세요!

좋은 웹페이지 즐겨찾기