꿈을꾸는 파랑새

오늘은 악성코드 VBA 매크로 비밀번호 푸는 방법에 대해 글을 적어 보겠습니다. 해당 글에 관심 있으신 분들은 2가지 분류가 아닐까 생각이 됩니다. 첫 번째는 VBA 에 암호를 걸어 놓았는데 잊어버려서 아니면 악성코드 분석하는데 악성코드 제작자가 VBA 에다가 암호를 걸어 놓아서 분석을 방해하기 위해서 이걸 해제하기 위해서 일 것입니다.
VBA 이라는 것은 Visual Basic for Applications의 약자로 Microsoft Office(마이크로소프트 오피스)에 내장된 프로그래밍 언어이며 주 용도는 매크로를 돌리고 사용자 정의 함수를 사용하는 것으로 컴퓨터활용능력 1급을 시험을 보시는 분들에게는 반드시 알아야 한다고 알고 있습니다.
물론 손재주가 좋으신 분들은 긍정적으로 게임을 만드는 것을 시도하는 분 들고 계시는 걸로 알고 있습니다. 일단 보통은 긍정적으로 사용하지만, 악성코드 제작자들은 이런 것을 악용해서 매크로 바이러스 즉 악성코드를 만들어서 국가 기관, 국회의원, 특정 단체, 대학교수 등에 이메일에 첨부해서 해당 악성코드를 작동하게 한 다음 조언을 받는다든지, 국가 안보가 어쩌고저쩌고하는 등의 내용이나 정상적인 논문을 위장하고 있지만 실제로는 VBA를 보면 악성코드가 작동하기 위해서 구성이 돼 있습니다.

한국에서는 김수키(Kimsuky)양이 유명합니다. 즉 자신이 만든 악성코드를 자신이 지정한 표적에 전달하고 실행을 하려고 즉 사용자가 문서에 표시된 매크로 사용을 클릭하기만 하면 악성코드가 실행되기 때문에 약발이 종종 먹히는 경우입니다.

즉 사회공학(社會工學,Social engineering) 공격 방식을 사용하고 있으며 쉽게 이야기하면 국방부에 근문 하는 군인들에게는 군사 관련, 안보 관련 키워드를 사용하고 일반인 같은 경우에는 연애인 관련 이슈, 정치인들의 말들을 사용하는 경우입니다.

이런 매크로 악성코드 같은 보통은 그냥 VBA를 볼 수가 있지만 사람 귀찮게 하려고 예를 들어 최근 캠페인에서는 작성자가 문서에 암호화된 텍스트를 표시하도록 해서 그런 다음 암호를 해독하기 위해 매크로 사용을 클릭하도록 사용자에게 유도 매크로가 실행되면 암호화된 텍스트를 숨긴 다음 실제로 읽을 수 있는 텍스트를 표시하는 공격 방법을 사용합니다.

일반적인 방법은 프로젝트를 암호로 보호하는 방법을 사용합니다. 이렇게 하면 사람들이 코드를 볼 수 없지만 약간의 16진수 조작으로 해당 암호를 제거할 수가 있습니다.

악성코드 VBA 프로젝트 암호 요구
악성코드 VBA 프로젝트 암호 요구

즉 일반적으로 돈을 주고 사용을 하는 상용 프로그램이 아닌 HxD Hex Editor 같은 프로그램으로 충분히 해제 분해할 수가 있습니다.
방법은 간단합니다. 먼저 프로젝트를 암호를 한 악성코드 와 그리고 HxD Hex Editor를 준비합니다. 먼저 지난 시간에 자문 요청서를 위장하는 김수키 가 만든 악성코드를 예를 들어 보겠습니다.
먼저 해당 워드 파일이든 엑셀 파일이든 먼저 확정자를 zip 로 변경을 해줍니다.
그리고 압축 프로그램을 사용해서 해당 압축 파일을 강제로 풀어 줍니다.
그리고 나서 워드를 같은 경우 다음 경로가 될 것입니다.
(예시)C:\Users\사용자 계정\Desktop\자문 요청서\word
여기서 보면 vbaProject.bin이라는 파일을 보일 것입니다. 이것을 HxD Hex Editor로 열어줍니다.
그러면 16진수 보일 것인데 여기서 그냥 DPB 를 검색을 합니다.

매크로 DPB 위치
매크로 DPB 위치

그럼 여기서 사용한 악성코드의 DPB는 다음과 같은 것을 확인을 할수가 있습니다.
DPB="0002ACB3C9B3C94C37B4C94AE7C1C02758944AA8941BDF203F4E8C82A8145D9BC304B9FB"
GC="80822C2F2D2F2D2F"
해당 DPB를 DPX 로 변경을 하고 저장을 합니다.

매크로 DPB 변경
매크로 DPB 변경

그리고 나서 해당 압축을 풀었던 것을 다시 압축하고 확장자는 doc로 변경을 합니다.
그리고 해당 악성 매크로가 삽입된 워드 파일을 실행합니다. 그러면 VBA에서 에러가 나오는 것을 볼 수가 있습니다.

VBA 에러
VBA 에러

개발자 탭이 없는 경우 파일->옵션->리본 사용자 지정으로 이동하여 오른쪽에 있는 개발자 확인란을 선택하여 추가를 진행할 수가 있습니다.

매크로 프로젝트 읽기 전용 모드 해제
매크로 프로젝트 읽기 전용 모드 해제

개발자 탭이 없는 경우 파일->옵션->리본 사용자 지정으로 이동하여 오른쪽에 있는 개발자 확인란을 선택하여 추가를 진행할 수가 있습니다. 여기서 Visual Basic을 클릭하면 Visual Basic Editor가 열고 여기에서 신규 또는 기존 프로젝트를 확인/편집할 수 있습니다.

악성코드 매크로 비빌번호 해제 후 매크로 명령어

악성 코드 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트 속성을 선택 속성이 표시되면 보호 탭을 선택하고 읽기 전용으로 잠금 부분을 해제 해 줍니다.

문서를 저장하고 닫고 나서 다시 문서를 열면 개발자 탭에서 Visual Basic을 클릭하여 VBA 프로젝트를 볼 수 있습니다. 거기에서 이전에 보호된 VBA 프로젝트가 이제 볼 수가 있고 악성코드를 분석하시는 분들 또는 악성코드 분석을 하면서 공부하시는 분들은 해당 코드를 보면서 분석을 진행하시면 됩니다.
이렇게 하면 쉽게 매크로 프로젝트에 비밀번호(암호)가 걸린 것을 볼 수가 있을 것입니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band