Microsoft Word
Last updated
Was this helpful?
Last updated
Was this helpful?
MS의 Word는 공격자들이 가장 애용하는 피싱 파일 중 하나입니다.
이번 섹션에서는 실제 악성코드를 통한 실습보단, 간단한 코드를 통해 원리를 학습함에 목적을 둡니다.
MS Word를 실행시킨 후 Macro 버튼을 클릭하여 현재 문서에 대한 매크로를 생성합니다.
매크로의 이름은 AutoOpen으로 설정하여 자동으로 실행되게끔 한 뒤, 현재 문서를 등록하여 생성합니다.
이렇게 제작한 매크로는 문서를 실행하자마자 매크로 실행을 묻는 팝업창이 나타납니다.
매크로를 생성하면 다음과 같이 매크로 코드를 입력할 수 있는 창이 나타납니다.
아래 코드를 입력 후 실행 버튼을 클릭했을 때, Shell.Run의 인자에 적힌 프로그램인 메모장이
실제로 실행되는 것을 확인할 수 있습니다.
매크로 미리보기 실행을 통해서 메모장이 정상적으로 클라이언트 PC에서 실행되는 것을 확인했으니,
C2 서버에서 웹 서비스를 실행 후, 해당 서비스에 접근하여 파일을 다운로드 및 실행하는 코드를 삽입합니다.
리스너는 HTTP를 설정 후 실행을 클릭하면 리버스쉘 연결을 시도하는 파워쉘 코드가 생성됩니다.
이어서 생성된 파워쉘 코드를 매크로에서 실행하는 코드의 인자로 전달합니다.
코드는 macro 디렉토리로 접근했을 때 파일을 다운로드 후 메모리 단에서 실행하는 코드입니다.
매크로 코드창을 종료 후 파일 타입을 Word 97-2003 문서
혹은 Word 97-2003 Document(*.doc)
로 저장합니다.
또한 실행중인 코발트 스트라이크 웹 서버에서는 /macro 경로에 접속 요청이 들어왔을 때,
어떤 파일을 호스트에게 전달할 지에 대해서 설정해야 합니다.
현재 피해자 PC에서 C2 웹 서버로 접근 시 파워쉘 원라이너를 실행하여 쉘을 연결하게끔 만들 것이기에
페이로드 타입을 파워쉘로 지정하여 서버를 대기합니다.
이제 피해자 이메일로 피싱 Word 파일을 전송 후, 클릭하기를 기다리면 됩니다.
피해자 PC에서 파일을 실행 후 코발트 스트라이크 비콘에 해당 PC가 추가된 것을 확인합니다.
VBA 매크로를 이용한 통신 수립 외에도 템플릿에 악성 코드를 삽입하여 비콘 연결 방법도 존재합니다.
MS에서는 템플릿을 기반으로 문서를 제작할 수 있기 때문에 이러한 기능을 악용하는 것입니다.
템플릿은 직접 만들 수도 있고, 인터넷에서 다운로드 할 수도 있기 때문에 만약 악성 코드가 심어진 템플릿을
온라인에서 다운로드 받는다면, 피해자는 본인도 모르게 공격자 C2에 연결을 하게될 수도 있습니다.
먼저 악성 코드 자체를 담을 템플릿 1개와, 해당 템플릿을 통해 생성할 문서 1개를 만들어줍니다.
템플릿 문서에는 공격자 C2로 접근하여 연결 수립 파일을 다운로드 후 실행하는 매크로를 작성 후 저장합니다.
템플릿 문서의 파일 형식은 Word 97-2003 서식 파일
혹은 Word 97-2003 Template (*.dot)
입니다.
악성 매크로가 담긴 템플릿을 생성했으니, 이제 템플릿을 다운로드 할 수 있도록 호스트 파일을 지정합니다.
그 다음으로 템플릿을 적용 시킬 report 문서를 생성합니다.
문서의 확장자는 Word 문서
혹은 Word Document (*.docx)
로 생성합니다.
docx는 xml 파일의 집합이기 때문에 7zip 등의 압축 프로그램으로 압축 파일을 열어볼 수 있습니다.
압축파일 열기 > _rels > settings.xml.rels
파일을 편집 기능으로 실행합니다.
settings.xml.rels 파일에 있는 Target의 URL을 이전에 열어둔 C2 웹 서버의 템플릿 주소로 지정합니다.
저장 후에는 report.docx 파일을 피해자에게 전송 후 실행하기를 기다립니다.
피해자 PC에서 docx 파일을 클릭 시 docx 파일에서 참조하는 http://wiki.com/template.dot이 불러와지며
공격자 C2 웹 서버에 있던 template.dot 파일을 다운로드 합니다.
그리고 template.dot 파일에 존재하는 매크로가 실행되며 http://wiki.com/macro에 위치하는
파워쉘 스크립트가 실행되며 최종적으로 비콘이 연결된 것을 확인할 수 있습니다.