모든 회사들은 office product (워드나 엑셀 등)을 사용하기 때문에 많은 해킹 공격들은 악성 워드 파일이나 악성 엑셀부터 시작됩니다.
특히 북한은 악성 워드 파일을 사용하여 대한민국을 공격하는 것으로 알려져 있습니다.
오늘은 간단하게 악성 워프/엑셀 파일을 어떻게 분석할 수 있을지 알아보도록 하고, 분석할 악성 워드 파일은 Emotet입니다.
보시다시피 Macro가 들어가 있는 워드 파일입니다. 여기서부터 바로 의심해야 할 것 같습니다. 만약에 회사 동료나 이메일 보낸 사람의 이메일 주소를 보고 정당한 것 같아도 Macro는 왜 있을까요?
악성코드 분석에 대해 아무것도 몰라도 충분히 방어가 가능합니다. 저는 .exe 파일이든 워드 파일이든 무조건 intezer라는 홈페이지에서 악성코드를 sandbox 환경 안에서 돌려 봅니다.
보시다시피 많은 정보를 얻을 수 있고, 딱 봐도 malicious라고 나오네요. 여러가지의 hash도 나오고 Virustotal 링크도 있기 때문에 클릭해서 샘플에 대한 더 많은 정보를 받을 수 있습니다.
Intezer가 좋은 이유는 무엇이냐면, 깔끔한 interface에서 TTP (Tactics, Techniques, Procedures)와 IOC (Indicators of Compromise)와 악성코드의 Behavior까지 알 수 있다는 것입니다. 아래의 사진 보시면 Network IOC가 나오고 악성코드가 실행되면 연결하고자 하는 아이피 주소들이 확인할 수 있습니다.
그러면 이제 가장 기본적인 분석을 했으니 더 깊게 파내서 분석해 봅시다.
틀림없이, 악성 office파일을 분석할 때 가장 도움이 되는데 tool은 oletools입니다.
https://github.com/decalage2/oletools
GitHub - decalage2/oletools: oletools - python tools to analyze MS OLE2 files (Structured Storage, Compound File Binary Format)
oletools - python tools to analyze MS OLE2 files (Structured Storage, Compound File Binary Format) and MS Office documents, for malware analysis, forensics and debugging. - GitHub - decalage2/oleto...
github.com
oletools의 olevba를 돌려보면 다음 output을 받습니다.
olevba [파일 이름]
딱 봐도 suspicious 한 Create 하고 CreateObject가 있습니다. 오른쪽에 설명까지 있으니 어떤 파일이 실행되거나 시스템 명령어가 실행될 수 있다는 것을 확인할 수 있습니다.
다음으로는 파일을 열어 직접 Macro를 확인해 보겠습니다. 보시다시피 코드는 말이 안 되지만 위의 사진의 Create, CreateObject가 보입니다. 이 부분은 우리가 이제 실행시키고 싶지 않기 때문에 comment out 하고 (프로그래밍 언어마다 다르지만 여기서는 간단하게 --> ' )
하지만 대신 우리가 알고 싶은 것은 그 변수들에 무엇이 들어가 있는지 궁금하기 때문에 Debug.Print를 사용하여 나중에 코드를 실행되면 프린트될 것입니다.
코드를 실행시키기 전에 당연히 Breakpoint를 무조건 박고!
아하! Debug.Print를 사용했으니 변수들의 output을 받을 수 있습니다.
그래서 우리가 지금까지 알아낸 것은:
1) Macro 실행 버튼을 누르면 Macro가 실행된다.
2) 실행되면 powershell로 Base64 encoded payload 실행.
그러면 이제 powershell이 무슨 꿍꿍이를 하고 있는지 봐 봅시다.
CyberChef를 사용하여 다음 output을 받습니다. Base64이기 때문에 CyberChef의 Recipe들 중에 Base64를 고르고 Nullbyte도 많기 때문에 "Remove null Bytes"도 추가했습니다. Powershell 코드를 더 자세하게 분석해 보도록 하겠습니다.
코드를 조금 정리하다 보니 바로 눈에 들어오는 몇 가지가 있습니다.
1) 악성 powershell 코드는 Directory를 하나 만든다.
2) C2 서버에 연결하여 다른 파일은 다운로드한다.
그러면 위의 워드 파일처럼 이 Powershell 코드는 breakpoint를 박고, 실행시켜 봅시다.
1) 무슨 Directory를 생산하는지가 궁금하기 때문에 bp를 하나 박고
2) 연결할 서버들도 무엇인지 알고 싶어서 bp 하나 더!
그리고 이제 천천히 실행 시키다 보면 새로운 Directory의 path를 받고, 통신서버 웹주소도 나옵니다!
Ursnif Loader 악성 Word 파일 분석 (0) | 2022.05.19 |
---|